pentoo-overlay/app-crypt/asleap/files/7.patch

4913 lines
308 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

From 667f3c5fef7834b6f414af635d0f523857ad26ba Mon Sep 17 00:00:00 2001
From: Zack Weinberg <zackw@panix.com>
Date: Sun, 20 Jun 2021 18:55:19 -0400
Subject: [PATCH 1/5] =?UTF-8?q?Don=E2=80=99t=20link=20against=20-lcrypt=20?=
=?UTF-8?q?or=20-lcrypto.=20Preliminary=20Makefile=20cleanup.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Since all of the cryptographic primitives required by asleap (DES,
MD4, and SHA1) are obsolete, it is best to ship implementations
ourselves rather than rely on external libraries that may deprecate
them or remove them altogether. SHA1 is already being supplied by
sha1.c, but MD4 is optionally supplied by OpenSSL (libcrypto) and for
DES we are relying on the obsolete SVID functions encrypt and setkey.
Remove the ifdefs in common.c and genkeys.c allowing for the use of
OpenSSLs implementation of MD4. In the Makefile, remove both
-lxcrypt and -lcrypto from LDLIBS, and add md4.o to the link for both
asleap and genkeys. This means the program will not compile right
now, with undefined references to encrypt and setkey—this will be
corrected in the next commit.
While were messing with the Makefile, overhaul it with proper use of
object files, built-in rules and variables, and comprehensive .c:.h
dependency lists.
While were messing with the Makefile, eliminate the only place where
we need a -D_LINUX by instead using __GNU_LIBRARY__ to detect the
availability of <endian.h>. This *may* mean makefile.cygwin is no
longer necessary. Will come back to that.
---
Makefile | 40 ++++++++++++++++++----------------------
common.c | 13 ++-----------
genkeys.c | 2 --
sha1.c | 8 ++++----
4 files changed, 24 insertions(+), 39 deletions(-)
diff --git a/Makefile b/Makefile
index 905936b..bb48dfe 100644
--- a/Makefile
+++ b/Makefile
@@ -7,35 +7,31 @@
# <dragorn> i think thats all anyone does
# <dragorn> make is a twisted beast
##################################
-LDLIBS = -lpcap -lxcrypt
-CFLAGS = -pipe -Wall -D_LINUX -D_OPENSSL_MD4
-LDLIBS += -lcrypto
-CFLAGS += -g3 #-ggdb -g
-PROGOBJ = asleap.o genkeys.o utils.o common.o sha1.o
-PROG = asleap genkeys
-#CC = clang-10
-CC = gcc
-
-all: $(PROG) $(PROGOBJ)
+CFLAGS = -g3 -Og -Wall
+CPPFLAGS =
+LDLIBS = -lpcap
-utils: utils.c utils.h
- $(CC) $(CFLAGS) utils.c -c
+PROG = asleap genkeys
+COMMON_OBJS = common.o md4.o sha1.o utils.o
-common: common.c common.h
- $(CC) $(CFLAGS) common.c -c
+all: $(PROG)
-sha1: sha1.c sha1.h
- $(CC) $(CFLAGS) sha1.c -c
+asleap: asleap.o $(COMMON_OBJS)
+ $(CC) $(CFLAGS) -o $@ $^ $(LDLIBS)
-asleap: asleap.c asleap.h sha1.o common.o common.h utils.o version.h sha1.c \
- sha1.h
- $(CC) $(CFLAGS) asleap.c -o asleap common.o utils.o sha1.o $(LDLIBS)
+genkeys: genkeys.o $(COMMON_OBJS)
+ $(CC) $(CFLAGS) -o $@ $^ $(LDLIBS)
-genkeys: genkeys.c md4.c md4.h common.o utils.o version.h common.h
- $(CC) $(CFLAGS) md4.c genkeys.c -o genkeys common.o utils.o $(LDLIBS)
+asleap.o: asleap.c asleap.h utils.h common.h version.h sha1.h radiotap.h \
+ byteswap.h ieee80211.h ieee8021x.h ietfproto.h
+common.o: common.c common.h utils.h md4.h
+genkeys.o: genkeys.c common.h version.h utils.h
+sha1.o: sha1.c common.h sha1.h
+md4.o: md4.c md4.h
+utils.o: utils.c utils.h
clean:
- $(RM) $(PROGOBJ) $(PROG) *~
+ -rm -f $(PROG) asleap.o genkeys.o $(COMMON_OBJS)
strip:
@ls -l $(PROG)
diff --git a/common.c b/common.c
index bd37138..9bda1ce 100644
--- a/common.c
+++ b/common.c
@@ -26,19 +26,10 @@
#include <string.h>
#include <stdlib.h>
#include <stdint.h>
+
#include "common.h"
#include "utils.h"
-
-#ifdef _OPENSSL_MD4
-#include <openssl/md4.h>
-#define MD4Init MD4_Init
-#define MD4Update MD4_Update
-#define MD4Final MD4_Final
-#define MD4WRAP MD4
-#else
#include "md4.h"
-#define MD4WRAP md4
-#endif
/* written from scratch
* Copyright (C) 2001 Jochen Eisinger, University of Freiburg
@@ -125,5 +116,5 @@ void NtPasswordHash(char *secret, int secret_len, unsigned char *hash)
unicodePassword[i * 2] = (unsigned char)secret[i];
/* Unicode is 2 bytes per char */
- MD4WRAP(unicodePassword, secret_len * 2, hash);
+ md4(unicodePassword, secret_len * 2, hash);
}
diff --git a/genkeys.c b/genkeys.c
index 2803367..545b70e 100644
--- a/genkeys.c
+++ b/genkeys.c
@@ -219,14 +219,12 @@ int main(int argc, char *argv[])
password[strlen(password) - 1] = 0;
}
-#ifndef _OPENSSL_MD4
/* md4.c seems to have a problem with passwords longer than 31 bytes.
This seems odd to me, but it should have little impact on our
final product, since I assume there are few passwords we will be
able to identify with a dictionary attack that are longer than 31
bytes. */
password[31] = 0;
-#endif
NtPasswordHash(password, strlen(password), pwhash);
diff --git a/sha1.c b/sha1.c
index 7be1c7d..ca77121 100644
--- a/sha1.c
+++ b/sha1.c
@@ -16,13 +16,13 @@
#include <stdio.h>
#include <string.h>
-#ifndef _LINUX
-#warning "Assuming little-endian for Windows"
-#else
-#include <endian.h>
+#ifdef __GNU_LIBRARY__
+# include <endian.h>
# if __BYTE_ORDER == __BIG_ENDIAN
# define WORDS_BIGENDIAN
# endif
+#else
+# warning "Assuming little-endian for non-glibc (endian.h not available)"
#endif
#include "common.h"
From 5d255cbd4f0be7b4370a450673b780b7c381fb0a Mon Sep 17 00:00:00 2001
From: Zack Weinberg <zackw@panix.com>
Date: Sun, 20 Jun 2021 19:29:34 -0400
Subject: [PATCH 2/5] Import DES implementation from libxcrypt.
This implementation was originally written by David Burren for NetBSD
and is therefore under a 3-clause BSD license. By using it directly,
the Expand and Collapse operations in utils.c cease to be necessary.
---
Makefile | 4 +-
des-tables.c | 3853 ++++++++++++++++++++++++++++++++++++++++++++++++++
des.c | 280 ++++
des.h | 77 +
utils.c | 49 +-
5 files changed, 4219 insertions(+), 44 deletions(-)
create mode 100644 des-tables.c
create mode 100644 des.c
create mode 100644 des.h
diff --git a/Makefile b/Makefile
index bb48dfe..51552c8 100644
--- a/Makefile
+++ b/Makefile
@@ -12,7 +12,7 @@ CPPFLAGS =
LDLIBS = -lpcap
PROG = asleap genkeys
-COMMON_OBJS = common.o md4.o sha1.o utils.o
+COMMON_OBJS = common.o des.o des-tables.o md4.o sha1.o utils.o
all: $(PROG)
@@ -25,6 +25,8 @@ genkeys: genkeys.o $(COMMON_OBJS)
asleap.o: asleap.c asleap.h utils.h common.h version.h sha1.h radiotap.h \
byteswap.h ieee80211.h ieee8021x.h ietfproto.h
common.o: common.c common.h utils.h md4.h
+des.o: des.c des.h
+des-tables.o: des-tables.c des.h
genkeys.o: genkeys.c common.h version.h utils.h
sha1.o: sha1.c common.h sha1.h
md4.o: md4.c md4.h
diff --git a/des-tables.c b/des-tables.c
new file mode 100644
index 0000000..63a4713
--- /dev/null
+++ b/des-tables.c
@@ -0,0 +1,3853 @@
+/*
+ * FreeSec: libcrypt for NetBSD
+ *
+ * Copyright (c) 1994 David Burren
+ * All rights reserved.
+ *
+ * Adapted for FreeBSD-2.0 by Geoffrey M. Rehmet
+ * this file should now *only* export crypt(), in order to make
+ * binaries of libcrypt exportable from the USA
+ *
+ * Adapted for FreeBSD-4.0 by Mark R V Murray
+ * this file should now *only* export crypt_des(), in order to make
+ * a module that can be optionally included in libcrypt.
+ *
+ * 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.
+ * 3. Neither the name of the author nor the names of other contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+ *
+ * This is an original implementation of the DES and the crypt(3) interfaces
+ * by David Burren <davidb@werj.com.au>.
+ */
+
+/*
+ * The tables in this file were generated from a more compact
+ * representation of the DES S-boxes and P-boxes by the program
+ * gen-des-tables.c in the original FreeSec tree.
+ */
+
+#include "des.h"
+
+const uint8_t m_sbox[4][4096] =
+{
+ {
+ 0xef, 0xe3, 0xe1, 0xed, 0xe8, 0xe4, 0xee, 0xe7, 0xe6, 0xef, 0xeb, 0xe2,
+ 0xe3, 0xe8, 0xe4, 0xee, 0xe9, 0xec, 0xe7, 0xe0, 0xe2, 0xe1, 0xed, 0xea,
+ 0xec, 0xe6, 0xe0, 0xe9, 0xe5, 0xeb, 0xea, 0xe5, 0xe0, 0xed, 0xee, 0xe8,
+ 0xe7, 0xea, 0xeb, 0xe1, 0xea, 0xe3, 0xe4, 0xef, 0xed, 0xe4, 0xe1, 0xe2,
+ 0xe5, 0xeb, 0xe8, 0xe6, 0xec, 0xe7, 0xe6, 0xec, 0xe9, 0xe0, 0xe3, 0xe5,
+ 0xe2, 0xee, 0xef, 0xe9, 0x0f, 0x03, 0x01, 0x0d, 0x08, 0x04, 0x0e, 0x07,
+ 0x06, 0x0f, 0x0b, 0x02, 0x03, 0x08, 0x04, 0x0e, 0x09, 0x0c, 0x07, 0x00,
+ 0x02, 0x01, 0x0d, 0x0a, 0x0c, 0x06, 0x00, 0x09, 0x05, 0x0b, 0x0a, 0x05,
+ 0x00, 0x0d, 0x0e, 0x08, 0x07, 0x0a, 0x0b, 0x01, 0x0a, 0x03, 0x04, 0x0f,
+ 0x0d, 0x04, 0x01, 0x02, 0x05, 0x0b, 0x08, 0x06, 0x0c, 0x07, 0x06, 0x0c,
+ 0x09, 0x00, 0x03, 0x05, 0x02, 0x0e, 0x0f, 0x09, 0x4f, 0x43, 0x41, 0x4d,
+ 0x48, 0x44, 0x4e, 0x47, 0x46, 0x4f, 0x4b, 0x42, 0x43, 0x48, 0x44, 0x4e,
+ 0x49, 0x4c, 0x47, 0x40, 0x42, 0x41, 0x4d, 0x4a, 0x4c, 0x46, 0x40, 0x49,
+ 0x45, 0x4b, 0x4a, 0x45, 0x40, 0x4d, 0x4e, 0x48, 0x47, 0x4a, 0x4b, 0x41,
+ 0x4a, 0x43, 0x44, 0x4f, 0x4d, 0x44, 0x41, 0x42, 0x45, 0x4b, 0x48, 0x46,
+ 0x4c, 0x47, 0x46, 0x4c, 0x49, 0x40, 0x43, 0x45, 0x42, 0x4e, 0x4f, 0x49,
+ 0xff, 0xf3, 0xf1, 0xfd, 0xf8, 0xf4, 0xfe, 0xf7, 0xf6, 0xff, 0xfb, 0xf2,
+ 0xf3, 0xf8, 0xf4, 0xfe, 0xf9, 0xfc, 0xf7, 0xf0, 0xf2, 0xf1, 0xfd, 0xfa,
+ 0xfc, 0xf6, 0xf0, 0xf9, 0xf5, 0xfb, 0xfa, 0xf5, 0xf0, 0xfd, 0xfe, 0xf8,
+ 0xf7, 0xfa, 0xfb, 0xf1, 0xfa, 0xf3, 0xf4, 0xff, 0xfd, 0xf4, 0xf1, 0xf2,
+ 0xf5, 0xfb, 0xf8, 0xf6, 0xfc, 0xf7, 0xf6, 0xfc, 0xf9, 0xf0, 0xf3, 0xf5,
+ 0xf2, 0xfe, 0xff, 0xf9, 0xdf, 0xd3, 0xd1, 0xdd, 0xd8, 0xd4, 0xde, 0xd7,
+ 0xd6, 0xdf, 0xdb, 0xd2, 0xd3, 0xd8, 0xd4, 0xde, 0xd9, 0xdc, 0xd7, 0xd0,
+ 0xd2, 0xd1, 0xdd, 0xda, 0xdc, 0xd6, 0xd0, 0xd9, 0xd5, 0xdb, 0xda, 0xd5,
+ 0xd0, 0xdd, 0xde, 0xd8, 0xd7, 0xda, 0xdb, 0xd1, 0xda, 0xd3, 0xd4, 0xdf,
+ 0xdd, 0xd4, 0xd1, 0xd2, 0xd5, 0xdb, 0xd8, 0xd6, 0xdc, 0xd7, 0xd6, 0xdc,
+ 0xd9, 0xd0, 0xd3, 0xd5, 0xd2, 0xde, 0xdf, 0xd9, 0x7f, 0x73, 0x71, 0x7d,
+ 0x78, 0x74, 0x7e, 0x77, 0x76, 0x7f, 0x7b, 0x72, 0x73, 0x78, 0x74, 0x7e,
+ 0x79, 0x7c, 0x77, 0x70, 0x72, 0x71, 0x7d, 0x7a, 0x7c, 0x76, 0x70, 0x79,
+ 0x75, 0x7b, 0x7a, 0x75, 0x70, 0x7d, 0x7e, 0x78, 0x77, 0x7a, 0x7b, 0x71,
+ 0x7a, 0x73, 0x74, 0x7f, 0x7d, 0x74, 0x71, 0x72, 0x75, 0x7b, 0x78, 0x76,
+ 0x7c, 0x77, 0x76, 0x7c, 0x79, 0x70, 0x73, 0x75, 0x72, 0x7e, 0x7f, 0x79,
+ 0x1f, 0x13, 0x11, 0x1d, 0x18, 0x14, 0x1e, 0x17, 0x16, 0x1f, 0x1b, 0x12,
+ 0x13, 0x18, 0x14, 0x1e, 0x19, 0x1c, 0x17, 0x10, 0x12, 0x11, 0x1d, 0x1a,
+ 0x1c, 0x16, 0x10, 0x19, 0x15, 0x1b, 0x1a, 0x15, 0x10, 0x1d, 0x1e, 0x18,
+ 0x17, 0x1a, 0x1b, 0x11, 0x1a, 0x13, 0x14, 0x1f, 0x1d, 0x14, 0x11, 0x12,
+ 0x15, 0x1b, 0x18, 0x16, 0x1c, 0x17, 0x16, 0x1c, 0x19, 0x10, 0x13, 0x15,
+ 0x12, 0x1e, 0x1f, 0x19, 0x4f, 0x43, 0x41, 0x4d, 0x48, 0x44, 0x4e, 0x47,
+ 0x46, 0x4f, 0x4b, 0x42, 0x43, 0x48, 0x44, 0x4e, 0x49, 0x4c, 0x47, 0x40,
+ 0x42, 0x41, 0x4d, 0x4a, 0x4c, 0x46, 0x40, 0x49, 0x45, 0x4b, 0x4a, 0x45,
+ 0x40, 0x4d, 0x4e, 0x48, 0x47, 0x4a, 0x4b, 0x41, 0x4a, 0x43, 0x44, 0x4f,
+ 0x4d, 0x44, 0x41, 0x42, 0x45, 0x4b, 0x48, 0x46, 0x4c, 0x47, 0x46, 0x4c,
+ 0x49, 0x40, 0x43, 0x45, 0x42, 0x4e, 0x4f, 0x49, 0x2f, 0x23, 0x21, 0x2d,
+ 0x28, 0x24, 0x2e, 0x27, 0x26, 0x2f, 0x2b, 0x22, 0x23, 0x28, 0x24, 0x2e,
+ 0x29, 0x2c, 0x27, 0x20, 0x22, 0x21, 0x2d, 0x2a, 0x2c, 0x26, 0x20, 0x29,
+ 0x25, 0x2b, 0x2a, 0x25, 0x20, 0x2d, 0x2e, 0x28, 0x27, 0x2a, 0x2b, 0x21,
+ 0x2a, 0x23, 0x24, 0x2f, 0x2d, 0x24, 0x21, 0x22, 0x25, 0x2b, 0x28, 0x26,
+ 0x2c, 0x27, 0x26, 0x2c, 0x29, 0x20, 0x23, 0x25, 0x22, 0x2e, 0x2f, 0x29,
+ 0xef, 0xe3, 0xe1, 0xed, 0xe8, 0xe4, 0xee, 0xe7, 0xe6, 0xef, 0xeb, 0xe2,
+ 0xe3, 0xe8, 0xe4, 0xee, 0xe9, 0xec, 0xe7, 0xe0, 0xe2, 0xe1, 0xed, 0xea,
+ 0xec, 0xe6, 0xe0, 0xe9, 0xe5, 0xeb, 0xea, 0xe5, 0xe0, 0xed, 0xee, 0xe8,
+ 0xe7, 0xea, 0xeb, 0xe1, 0xea, 0xe3, 0xe4, 0xef, 0xed, 0xe4, 0xe1, 0xe2,
+ 0xe5, 0xeb, 0xe8, 0xe6, 0xec, 0xe7, 0xe6, 0xec, 0xe9, 0xe0, 0xe3, 0xe5,
+ 0xe2, 0xee, 0xef, 0xe9, 0xff, 0xf3, 0xf1, 0xfd, 0xf8, 0xf4, 0xfe, 0xf7,
+ 0xf6, 0xff, 0xfb, 0xf2, 0xf3, 0xf8, 0xf4, 0xfe, 0xf9, 0xfc, 0xf7, 0xf0,
+ 0xf2, 0xf1, 0xfd, 0xfa, 0xfc, 0xf6, 0xf0, 0xf9, 0xf5, 0xfb, 0xfa, 0xf5,
+ 0xf0, 0xfd, 0xfe, 0xf8, 0xf7, 0xfa, 0xfb, 0xf1, 0xfa, 0xf3, 0xf4, 0xff,
+ 0xfd, 0xf4, 0xf1, 0xf2, 0xf5, 0xfb, 0xf8, 0xf6, 0xfc, 0xf7, 0xf6, 0xfc,
+ 0xf9, 0xf0, 0xf3, 0xf5, 0xf2, 0xfe, 0xff, 0xf9, 0x2f, 0x23, 0x21, 0x2d,
+ 0x28, 0x24, 0x2e, 0x27, 0x26, 0x2f, 0x2b, 0x22, 0x23, 0x28, 0x24, 0x2e,
+ 0x29, 0x2c, 0x27, 0x20, 0x22, 0x21, 0x2d, 0x2a, 0x2c, 0x26, 0x20, 0x29,
+ 0x25, 0x2b, 0x2a, 0x25, 0x20, 0x2d, 0x2e, 0x28, 0x27, 0x2a, 0x2b, 0x21,
+ 0x2a, 0x23, 0x24, 0x2f, 0x2d, 0x24, 0x21, 0x22, 0x25, 0x2b, 0x28, 0x26,
+ 0x2c, 0x27, 0x26, 0x2c, 0x29, 0x20, 0x23, 0x25, 0x22, 0x2e, 0x2f, 0x29,
+ 0xbf, 0xb3, 0xb1, 0xbd, 0xb8, 0xb4, 0xbe, 0xb7, 0xb6, 0xbf, 0xbb, 0xb2,
+ 0xb3, 0xb8, 0xb4, 0xbe, 0xb9, 0xbc, 0xb7, 0xb0, 0xb2, 0xb1, 0xbd, 0xba,
+ 0xbc, 0xb6, 0xb0, 0xb9, 0xb5, 0xbb, 0xba, 0xb5, 0xb0, 0xbd, 0xbe, 0xb8,
+ 0xb7, 0xba, 0xbb, 0xb1, 0xba, 0xb3, 0xb4, 0xbf, 0xbd, 0xb4, 0xb1, 0xb2,
+ 0xb5, 0xbb, 0xb8, 0xb6, 0xbc, 0xb7, 0xb6, 0xbc, 0xb9, 0xb0, 0xb3, 0xb5,
+ 0xb2, 0xbe, 0xbf, 0xb9, 0xdf, 0xd3, 0xd1, 0xdd, 0xd8, 0xd4, 0xde, 0xd7,
+ 0xd6, 0xdf, 0xdb, 0xd2, 0xd3, 0xd8, 0xd4, 0xde, 0xd9, 0xdc, 0xd7, 0xd0,
+ 0xd2, 0xd1, 0xdd, 0xda, 0xdc, 0xd6, 0xd0, 0xd9, 0xd5, 0xdb, 0xda, 0xd5,
+ 0xd0, 0xdd, 0xde, 0xd8, 0xd7, 0xda, 0xdb, 0xd1, 0xda, 0xd3, 0xd4, 0xdf,
+ 0xdd, 0xd4, 0xd1, 0xd2, 0xd5, 0xdb, 0xd8, 0xd6, 0xdc, 0xd7, 0xd6, 0xdc,
+ 0xd9, 0xd0, 0xd3, 0xd5, 0xd2, 0xde, 0xdf, 0xd9, 0x8f, 0x83, 0x81, 0x8d,
+ 0x88, 0x84, 0x8e, 0x87, 0x86, 0x8f, 0x8b, 0x82, 0x83, 0x88, 0x84, 0x8e,
+ 0x89, 0x8c, 0x87, 0x80, 0x82, 0x81, 0x8d, 0x8a, 0x8c, 0x86, 0x80, 0x89,
+ 0x85, 0x8b, 0x8a, 0x85, 0x80, 0x8d, 0x8e, 0x88, 0x87, 0x8a, 0x8b, 0x81,
+ 0x8a, 0x83, 0x84, 0x8f, 0x8d, 0x84, 0x81, 0x82, 0x85, 0x8b, 0x88, 0x86,
+ 0x8c, 0x87, 0x86, 0x8c, 0x89, 0x80, 0x83, 0x85, 0x82, 0x8e, 0x8f, 0x89,
+ 0x1f, 0x13, 0x11, 0x1d, 0x18, 0x14, 0x1e, 0x17, 0x16, 0x1f, 0x1b, 0x12,
+ 0x13, 0x18, 0x14, 0x1e, 0x19, 0x1c, 0x17, 0x10, 0x12, 0x11, 0x1d, 0x1a,
+ 0x1c, 0x16, 0x10, 0x19, 0x15, 0x1b, 0x1a, 0x15, 0x10, 0x1d, 0x1e, 0x18,
+ 0x17, 0x1a, 0x1b, 0x11, 0x1a, 0x13, 0x14, 0x1f, 0x1d, 0x14, 0x11, 0x12,
+ 0x15, 0x1b, 0x18, 0x16, 0x1c, 0x17, 0x16, 0x1c, 0x19, 0x10, 0x13, 0x15,
+ 0x12, 0x1e, 0x1f, 0x19, 0x3f, 0x33, 0x31, 0x3d, 0x38, 0x34, 0x3e, 0x37,
+ 0x36, 0x3f, 0x3b, 0x32, 0x33, 0x38, 0x34, 0x3e, 0x39, 0x3c, 0x37, 0x30,
+ 0x32, 0x31, 0x3d, 0x3a, 0x3c, 0x36, 0x30, 0x39, 0x35, 0x3b, 0x3a, 0x35,
+ 0x30, 0x3d, 0x3e, 0x38, 0x37, 0x3a, 0x3b, 0x31, 0x3a, 0x33, 0x34, 0x3f,
+ 0x3d, 0x34, 0x31, 0x32, 0x35, 0x3b, 0x38, 0x36, 0x3c, 0x37, 0x36, 0x3c,
+ 0x39, 0x30, 0x33, 0x35, 0x32, 0x3e, 0x3f, 0x39, 0xaf, 0xa3, 0xa1, 0xad,
+ 0xa8, 0xa4, 0xae, 0xa7, 0xa6, 0xaf, 0xab, 0xa2, 0xa3, 0xa8, 0xa4, 0xae,
+ 0xa9, 0xac, 0xa7, 0xa0, 0xa2, 0xa1, 0xad, 0xaa, 0xac, 0xa6, 0xa0, 0xa9,
+ 0xa5, 0xab, 0xaa, 0xa5, 0xa0, 0xad, 0xae, 0xa8, 0xa7, 0xaa, 0xab, 0xa1,
+ 0xaa, 0xa3, 0xa4, 0xaf, 0xad, 0xa4, 0xa1, 0xa2, 0xa5, 0xab, 0xa8, 0xa6,
+ 0xac, 0xa7, 0xa6, 0xac, 0xa9, 0xa0, 0xa3, 0xa5, 0xa2, 0xae, 0xaf, 0xa9,
+ 0xaf, 0xa3, 0xa1, 0xad, 0xa8, 0xa4, 0xae, 0xa7, 0xa6, 0xaf, 0xab, 0xa2,
+ 0xa3, 0xa8, 0xa4, 0xae, 0xa9, 0xac, 0xa7, 0xa0, 0xa2, 0xa1, 0xad, 0xaa,
+ 0xac, 0xa6, 0xa0, 0xa9, 0xa5, 0xab, 0xaa, 0xa5, 0xa0, 0xad, 0xae, 0xa8,
+ 0xa7, 0xaa, 0xab, 0xa1, 0xaa, 0xa3, 0xa4, 0xaf, 0xad, 0xa4, 0xa1, 0xa2,
+ 0xa5, 0xab, 0xa8, 0xa6, 0xac, 0xa7, 0xa6, 0xac, 0xa9, 0xa0, 0xa3, 0xa5,
+ 0xa2, 0xae, 0xaf, 0xa9, 0x6f, 0x63, 0x61, 0x6d, 0x68, 0x64, 0x6e, 0x67,
+ 0x66, 0x6f, 0x6b, 0x62, 0x63, 0x68, 0x64, 0x6e, 0x69, 0x6c, 0x67, 0x60,
+ 0x62, 0x61, 0x6d, 0x6a, 0x6c, 0x66, 0x60, 0x69, 0x65, 0x6b, 0x6a, 0x65,
+ 0x60, 0x6d, 0x6e, 0x68, 0x67, 0x6a, 0x6b, 0x61, 0x6a, 0x63, 0x64, 0x6f,
+ 0x6d, 0x64, 0x61, 0x62, 0x65, 0x6b, 0x68, 0x66, 0x6c, 0x67, 0x66, 0x6c,
+ 0x69, 0x60, 0x63, 0x65, 0x62, 0x6e, 0x6f, 0x69, 0x6f, 0x63, 0x61, 0x6d,
+ 0x68, 0x64, 0x6e, 0x67, 0x66, 0x6f, 0x6b, 0x62, 0x63, 0x68, 0x64, 0x6e,
+ 0x69, 0x6c, 0x67, 0x60, 0x62, 0x61, 0x6d, 0x6a, 0x6c, 0x66, 0x60, 0x69,
+ 0x65, 0x6b, 0x6a, 0x65, 0x60, 0x6d, 0x6e, 0x68, 0x67, 0x6a, 0x6b, 0x61,
+ 0x6a, 0x63, 0x64, 0x6f, 0x6d, 0x64, 0x61, 0x62, 0x65, 0x6b, 0x68, 0x66,
+ 0x6c, 0x67, 0x66, 0x6c, 0x69, 0x60, 0x63, 0x65, 0x62, 0x6e, 0x6f, 0x69,
+ 0xcf, 0xc3, 0xc1, 0xcd, 0xc8, 0xc4, 0xce, 0xc7, 0xc6, 0xcf, 0xcb, 0xc2,
+ 0xc3, 0xc8, 0xc4, 0xce, 0xc9, 0xcc, 0xc7, 0xc0, 0xc2, 0xc1, 0xcd, 0xca,
+ 0xcc, 0xc6, 0xc0, 0xc9, 0xc5, 0xcb, 0xca, 0xc5, 0xc0, 0xcd, 0xce, 0xc8,
+ 0xc7, 0xca, 0xcb, 0xc1, 0xca, 0xc3, 0xc4, 0xcf, 0xcd, 0xc4, 0xc1, 0xc2,
+ 0xc5, 0xcb, 0xc8, 0xc6, 0xcc, 0xc7, 0xc6, 0xcc, 0xc9, 0xc0, 0xc3, 0xc5,
+ 0xc2, 0xce, 0xcf, 0xc9, 0xcf, 0xc3, 0xc1, 0xcd, 0xc8, 0xc4, 0xce, 0xc7,
+ 0xc6, 0xcf, 0xcb, 0xc2, 0xc3, 0xc8, 0xc4, 0xce, 0xc9, 0xcc, 0xc7, 0xc0,
+ 0xc2, 0xc1, 0xcd, 0xca, 0xcc, 0xc6, 0xc0, 0xc9, 0xc5, 0xcb, 0xca, 0xc5,
+ 0xc0, 0xcd, 0xce, 0xc8, 0xc7, 0xca, 0xcb, 0xc1, 0xca, 0xc3, 0xc4, 0xcf,
+ 0xcd, 0xc4, 0xc1, 0xc2, 0xc5, 0xcb, 0xc8, 0xc6, 0xcc, 0xc7, 0xc6, 0xcc,
+ 0xc9, 0xc0, 0xc3, 0xc5, 0xc2, 0xce, 0xcf, 0xc9, 0xbf, 0xb3, 0xb1, 0xbd,
+ 0xb8, 0xb4, 0xbe, 0xb7, 0xb6, 0xbf, 0xbb, 0xb2, 0xb3, 0xb8, 0xb4, 0xbe,
+ 0xb9, 0xbc, 0xb7, 0xb0, 0xb2, 0xb1, 0xbd, 0xba, 0xbc, 0xb6, 0xb0, 0xb9,
+ 0xb5, 0xbb, 0xba, 0xb5, 0xb0, 0xbd, 0xbe, 0xb8, 0xb7, 0xba, 0xbb, 0xb1,
+ 0xba, 0xb3, 0xb4, 0xbf, 0xbd, 0xb4, 0xb1, 0xb2, 0xb5, 0xbb, 0xb8, 0xb6,
+ 0xbc, 0xb7, 0xb6, 0xbc, 0xb9, 0xb0, 0xb3, 0xb5, 0xb2, 0xbe, 0xbf, 0xb9,
+ 0x5f, 0x53, 0x51, 0x5d, 0x58, 0x54, 0x5e, 0x57, 0x56, 0x5f, 0x5b, 0x52,
+ 0x53, 0x58, 0x54, 0x5e, 0x59, 0x5c, 0x57, 0x50, 0x52, 0x51, 0x5d, 0x5a,
+ 0x5c, 0x56, 0x50, 0x59, 0x55, 0x5b, 0x5a, 0x55, 0x50, 0x5d, 0x5e, 0x58,
+ 0x57, 0x5a, 0x5b, 0x51, 0x5a, 0x53, 0x54, 0x5f, 0x5d, 0x54, 0x51, 0x52,
+ 0x55, 0x5b, 0x58, 0x56, 0x5c, 0x57, 0x56, 0x5c, 0x59, 0x50, 0x53, 0x55,
+ 0x52, 0x5e, 0x5f, 0x59, 0x9f, 0x93, 0x91, 0x9d, 0x98, 0x94, 0x9e, 0x97,
+ 0x96, 0x9f, 0x9b, 0x92, 0x93, 0x98, 0x94, 0x9e, 0x99, 0x9c, 0x97, 0x90,
+ 0x92, 0x91, 0x9d, 0x9a, 0x9c, 0x96, 0x90, 0x99, 0x95, 0x9b, 0x9a, 0x95,
+ 0x90, 0x9d, 0x9e, 0x98, 0x97, 0x9a, 0x9b, 0x91, 0x9a, 0x93, 0x94, 0x9f,
+ 0x9d, 0x94, 0x91, 0x92, 0x95, 0x9b, 0x98, 0x96, 0x9c, 0x97, 0x96, 0x9c,
+ 0x99, 0x90, 0x93, 0x95, 0x92, 0x9e, 0x9f, 0x99, 0x9f, 0x93, 0x91, 0x9d,
+ 0x98, 0x94, 0x9e, 0x97, 0x96, 0x9f, 0x9b, 0x92, 0x93, 0x98, 0x94, 0x9e,
+ 0x99, 0x9c, 0x97, 0x90, 0x92, 0x91, 0x9d, 0x9a, 0x9c, 0x96, 0x90, 0x99,
+ 0x95, 0x9b, 0x9a, 0x95, 0x90, 0x9d, 0x9e, 0x98, 0x97, 0x9a, 0x9b, 0x91,
+ 0x9a, 0x93, 0x94, 0x9f, 0x9d, 0x94, 0x91, 0x92, 0x95, 0x9b, 0x98, 0x96,
+ 0x9c, 0x97, 0x96, 0x9c, 0x99, 0x90, 0x93, 0x95, 0x92, 0x9e, 0x9f, 0x99,
+ 0x5f, 0x53, 0x51, 0x5d, 0x58, 0x54, 0x5e, 0x57, 0x56, 0x5f, 0x5b, 0x52,
+ 0x53, 0x58, 0x54, 0x5e, 0x59, 0x5c, 0x57, 0x50, 0x52, 0x51, 0x5d, 0x5a,
+ 0x5c, 0x56, 0x50, 0x59, 0x55, 0x5b, 0x5a, 0x55, 0x50, 0x5d, 0x5e, 0x58,
+ 0x57, 0x5a, 0x5b, 0x51, 0x5a, 0x53, 0x54, 0x5f, 0x5d, 0x54, 0x51, 0x52,
+ 0x55, 0x5b, 0x58, 0x56, 0x5c, 0x57, 0x56, 0x5c, 0x59, 0x50, 0x53, 0x55,
+ 0x52, 0x5e, 0x5f, 0x59, 0x0f, 0x03, 0x01, 0x0d, 0x08, 0x04, 0x0e, 0x07,
+ 0x06, 0x0f, 0x0b, 0x02, 0x03, 0x08, 0x04, 0x0e, 0x09, 0x0c, 0x07, 0x00,
+ 0x02, 0x01, 0x0d, 0x0a, 0x0c, 0x06, 0x00, 0x09, 0x05, 0x0b, 0x0a, 0x05,
+ 0x00, 0x0d, 0x0e, 0x08, 0x07, 0x0a, 0x0b, 0x01, 0x0a, 0x03, 0x04, 0x0f,
+ 0x0d, 0x04, 0x01, 0x02, 0x05, 0x0b, 0x08, 0x06, 0x0c, 0x07, 0x06, 0x0c,
+ 0x09, 0x00, 0x03, 0x05, 0x02, 0x0e, 0x0f, 0x09, 0x3f, 0x33, 0x31, 0x3d,
+ 0x38, 0x34, 0x3e, 0x37, 0x36, 0x3f, 0x3b, 0x32, 0x33, 0x38, 0x34, 0x3e,
+ 0x39, 0x3c, 0x37, 0x30, 0x32, 0x31, 0x3d, 0x3a, 0x3c, 0x36, 0x30, 0x39,
+ 0x35, 0x3b, 0x3a, 0x35, 0x30, 0x3d, 0x3e, 0x38, 0x37, 0x3a, 0x3b, 0x31,
+ 0x3a, 0x33, 0x34, 0x3f, 0x3d, 0x34, 0x31, 0x32, 0x35, 0x3b, 0x38, 0x36,
+ 0x3c, 0x37, 0x36, 0x3c, 0x39, 0x30, 0x33, 0x35, 0x32, 0x3e, 0x3f, 0x39,
+ 0x7f, 0x73, 0x71, 0x7d, 0x78, 0x74, 0x7e, 0x77, 0x76, 0x7f, 0x7b, 0x72,
+ 0x73, 0x78, 0x74, 0x7e, 0x79, 0x7c, 0x77, 0x70, 0x72, 0x71, 0x7d, 0x7a,
+ 0x7c, 0x76, 0x70, 0x79, 0x75, 0x7b, 0x7a, 0x75, 0x70, 0x7d, 0x7e, 0x78,
+ 0x77, 0x7a, 0x7b, 0x71, 0x7a, 0x73, 0x74, 0x7f, 0x7d, 0x74, 0x71, 0x72,
+ 0x75, 0x7b, 0x78, 0x76, 0x7c, 0x77, 0x76, 0x7c, 0x79, 0x70, 0x73, 0x75,
+ 0x72, 0x7e, 0x7f, 0x79, 0x8f, 0x83, 0x81, 0x8d, 0x88, 0x84, 0x8e, 0x87,
+ 0x86, 0x8f, 0x8b, 0x82, 0x83, 0x88, 0x84, 0x8e, 0x89, 0x8c, 0x87, 0x80,
+ 0x82, 0x81, 0x8d, 0x8a, 0x8c, 0x86, 0x80, 0x89, 0x85, 0x8b, 0x8a, 0x85,
+ 0x80, 0x8d, 0x8e, 0x88, 0x87, 0x8a, 0x8b, 0x81, 0x8a, 0x83, 0x84, 0x8f,
+ 0x8d, 0x84, 0x81, 0x82, 0x85, 0x8b, 0x88, 0x86, 0x8c, 0x87, 0x86, 0x8c,
+ 0x89, 0x80, 0x83, 0x85, 0x82, 0x8e, 0x8f, 0x89, 0x4f, 0x43, 0x41, 0x4d,
+ 0x48, 0x44, 0x4e, 0x47, 0x46, 0x4f, 0x4b, 0x42, 0x43, 0x48, 0x44, 0x4e,
+ 0x49, 0x4c, 0x47, 0x40, 0x42, 0x41, 0x4d, 0x4a, 0x4c, 0x46, 0x40, 0x49,
+ 0x45, 0x4b, 0x4a, 0x45, 0x40, 0x4d, 0x4e, 0x48, 0x47, 0x4a, 0x4b, 0x41,
+ 0x4a, 0x43, 0x44, 0x4f, 0x4d, 0x44, 0x41, 0x42, 0x45, 0x4b, 0x48, 0x46,
+ 0x4c, 0x47, 0x46, 0x4c, 0x49, 0x40, 0x43, 0x45, 0x42, 0x4e, 0x4f, 0x49,
+ 0xff, 0xf3, 0xf1, 0xfd, 0xf8, 0xf4, 0xfe, 0xf7, 0xf6, 0xff, 0xfb, 0xf2,
+ 0xf3, 0xf8, 0xf4, 0xfe, 0xf9, 0xfc, 0xf7, 0xf0, 0xf2, 0xf1, 0xfd, 0xfa,
+ 0xfc, 0xf6, 0xf0, 0xf9, 0xf5, 0xfb, 0xfa, 0xf5, 0xf0, 0xfd, 0xfe, 0xf8,
+ 0xf7, 0xfa, 0xfb, 0xf1, 0xfa, 0xf3, 0xf4, 0xff, 0xfd, 0xf4, 0xf1, 0xf2,
+ 0xf5, 0xfb, 0xf8, 0xf6, 0xfc, 0xf7, 0xf6, 0xfc, 0xf9, 0xf0, 0xf3, 0xf5,
+ 0xf2, 0xfe, 0xff, 0xf9, 0x1f, 0x13, 0x11, 0x1d, 0x18, 0x14, 0x1e, 0x17,
+ 0x16, 0x1f, 0x1b, 0x12, 0x13, 0x18, 0x14, 0x1e, 0x19, 0x1c, 0x17, 0x10,
+ 0x12, 0x11, 0x1d, 0x1a, 0x1c, 0x16, 0x10, 0x19, 0x15, 0x1b, 0x1a, 0x15,
+ 0x10, 0x1d, 0x1e, 0x18, 0x17, 0x1a, 0x1b, 0x11, 0x1a, 0x13, 0x14, 0x1f,
+ 0x1d, 0x14, 0x11, 0x12, 0x15, 0x1b, 0x18, 0x16, 0x1c, 0x17, 0x16, 0x1c,
+ 0x19, 0x10, 0x13, 0x15, 0x12, 0x1e, 0x1f, 0x19, 0xcf, 0xc3, 0xc1, 0xcd,
+ 0xc8, 0xc4, 0xce, 0xc7, 0xc6, 0xcf, 0xcb, 0xc2, 0xc3, 0xc8, 0xc4, 0xce,
+ 0xc9, 0xcc, 0xc7, 0xc0, 0xc2, 0xc1, 0xcd, 0xca, 0xcc, 0xc6, 0xc0, 0xc9,
+ 0xc5, 0xcb, 0xca, 0xc5, 0xc0, 0xcd, 0xce, 0xc8, 0xc7, 0xca, 0xcb, 0xc1,
+ 0xca, 0xc3, 0xc4, 0xcf, 0xcd, 0xc4, 0xc1, 0xc2, 0xc5, 0xcb, 0xc8, 0xc6,
+ 0xcc, 0xc7, 0xc6, 0xcc, 0xc9, 0xc0, 0xc3, 0xc5, 0xc2, 0xce, 0xcf, 0xc9,
+ 0xef, 0xe3, 0xe1, 0xed, 0xe8, 0xe4, 0xee, 0xe7, 0xe6, 0xef, 0xeb, 0xe2,
+ 0xe3, 0xe8, 0xe4, 0xee, 0xe9, 0xec, 0xe7, 0xe0, 0xe2, 0xe1, 0xed, 0xea,
+ 0xec, 0xe6, 0xe0, 0xe9, 0xe5, 0xeb, 0xea, 0xe5, 0xe0, 0xed, 0xee, 0xe8,
+ 0xe7, 0xea, 0xeb, 0xe1, 0xea, 0xe3, 0xe4, 0xef, 0xed, 0xe4, 0xe1, 0xe2,
+ 0xe5, 0xeb, 0xe8, 0xe6, 0xec, 0xe7, 0xe6, 0xec, 0xe9, 0xe0, 0xe3, 0xe5,
+ 0xe2, 0xee, 0xef, 0xe9, 0x8f, 0x83, 0x81, 0x8d, 0x88, 0x84, 0x8e, 0x87,
+ 0x86, 0x8f, 0x8b, 0x82, 0x83, 0x88, 0x84, 0x8e, 0x89, 0x8c, 0x87, 0x80,
+ 0x82, 0x81, 0x8d, 0x8a, 0x8c, 0x86, 0x80, 0x89, 0x85, 0x8b, 0x8a, 0x85,
+ 0x80, 0x8d, 0x8e, 0x88, 0x87, 0x8a, 0x8b, 0x81, 0x8a, 0x83, 0x84, 0x8f,
+ 0x8d, 0x84, 0x81, 0x82, 0x85, 0x8b, 0x88, 0x86, 0x8c, 0x87, 0x86, 0x8c,
+ 0x89, 0x80, 0x83, 0x85, 0x82, 0x8e, 0x8f, 0x89, 0x8f, 0x83, 0x81, 0x8d,
+ 0x88, 0x84, 0x8e, 0x87, 0x86, 0x8f, 0x8b, 0x82, 0x83, 0x88, 0x84, 0x8e,
+ 0x89, 0x8c, 0x87, 0x80, 0x82, 0x81, 0x8d, 0x8a, 0x8c, 0x86, 0x80, 0x89,
+ 0x85, 0x8b, 0x8a, 0x85, 0x80, 0x8d, 0x8e, 0x88, 0x87, 0x8a, 0x8b, 0x81,
+ 0x8a, 0x83, 0x84, 0x8f, 0x8d, 0x84, 0x81, 0x82, 0x85, 0x8b, 0x88, 0x86,
+ 0x8c, 0x87, 0x86, 0x8c, 0x89, 0x80, 0x83, 0x85, 0x82, 0x8e, 0x8f, 0x89,
+ 0x2f, 0x23, 0x21, 0x2d, 0x28, 0x24, 0x2e, 0x27, 0x26, 0x2f, 0x2b, 0x22,
+ 0x23, 0x28, 0x24, 0x2e, 0x29, 0x2c, 0x27, 0x20, 0x22, 0x21, 0x2d, 0x2a,
+ 0x2c, 0x26, 0x20, 0x29, 0x25, 0x2b, 0x2a, 0x25, 0x20, 0x2d, 0x2e, 0x28,
+ 0x27, 0x2a, 0x2b, 0x21, 0x2a, 0x23, 0x24, 0x2f, 0x2d, 0x24, 0x21, 0x22,
+ 0x25, 0x2b, 0x28, 0x26, 0x2c, 0x27, 0x26, 0x2c, 0x29, 0x20, 0x23, 0x25,
+ 0x22, 0x2e, 0x2f, 0x29, 0xdf, 0xd3, 0xd1, 0xdd, 0xd8, 0xd4, 0xde, 0xd7,
+ 0xd6, 0xdf, 0xdb, 0xd2, 0xd3, 0xd8, 0xd4, 0xde, 0xd9, 0xdc, 0xd7, 0xd0,
+ 0xd2, 0xd1, 0xdd, 0xda, 0xdc, 0xd6, 0xd0, 0xd9, 0xd5, 0xdb, 0xda, 0xd5,
+ 0xd0, 0xdd, 0xde, 0xd8, 0xd7, 0xda, 0xdb, 0xd1, 0xda, 0xd3, 0xd4, 0xdf,
+ 0xdd, 0xd4, 0xd1, 0xd2, 0xd5, 0xdb, 0xd8, 0xd6, 0xdc, 0xd7, 0xd6, 0xdc,
+ 0xd9, 0xd0, 0xd3, 0xd5, 0xd2, 0xde, 0xdf, 0xd9, 0x4f, 0x43, 0x41, 0x4d,
+ 0x48, 0x44, 0x4e, 0x47, 0x46, 0x4f, 0x4b, 0x42, 0x43, 0x48, 0x44, 0x4e,
+ 0x49, 0x4c, 0x47, 0x40, 0x42, 0x41, 0x4d, 0x4a, 0x4c, 0x46, 0x40, 0x49,
+ 0x45, 0x4b, 0x4a, 0x45, 0x40, 0x4d, 0x4e, 0x48, 0x47, 0x4a, 0x4b, 0x41,
+ 0x4a, 0x43, 0x44, 0x4f, 0x4d, 0x44, 0x41, 0x42, 0x45, 0x4b, 0x48, 0x46,
+ 0x4c, 0x47, 0x46, 0x4c, 0x49, 0x40, 0x43, 0x45, 0x42, 0x4e, 0x4f, 0x49,
+ 0x6f, 0x63, 0x61, 0x6d, 0x68, 0x64, 0x6e, 0x67, 0x66, 0x6f, 0x6b, 0x62,
+ 0x63, 0x68, 0x64, 0x6e, 0x69, 0x6c, 0x67, 0x60, 0x62, 0x61, 0x6d, 0x6a,
+ 0x6c, 0x66, 0x60, 0x69, 0x65, 0x6b, 0x6a, 0x65, 0x60, 0x6d, 0x6e, 0x68,
+ 0x67, 0x6a, 0x6b, 0x61, 0x6a, 0x63, 0x64, 0x6f, 0x6d, 0x64, 0x61, 0x62,
+ 0x65, 0x6b, 0x68, 0x66, 0x6c, 0x67, 0x66, 0x6c, 0x69, 0x60, 0x63, 0x65,
+ 0x62, 0x6e, 0x6f, 0x69, 0x9f, 0x93, 0x91, 0x9d, 0x98, 0x94, 0x9e, 0x97,
+ 0x96, 0x9f, 0x9b, 0x92, 0x93, 0x98, 0x94, 0x9e, 0x99, 0x9c, 0x97, 0x90,
+ 0x92, 0x91, 0x9d, 0x9a, 0x9c, 0x96, 0x90, 0x99, 0x95, 0x9b, 0x9a, 0x95,
+ 0x90, 0x9d, 0x9e, 0x98, 0x97, 0x9a, 0x9b, 0x91, 0x9a, 0x93, 0x94, 0x9f,
+ 0x9d, 0x94, 0x91, 0x92, 0x95, 0x9b, 0x98, 0x96, 0x9c, 0x97, 0x96, 0x9c,
+ 0x99, 0x90, 0x93, 0x95, 0x92, 0x9e, 0x9f, 0x99, 0x2f, 0x23, 0x21, 0x2d,
+ 0x28, 0x24, 0x2e, 0x27, 0x26, 0x2f, 0x2b, 0x22, 0x23, 0x28, 0x24, 0x2e,
+ 0x29, 0x2c, 0x27, 0x20, 0x22, 0x21, 0x2d, 0x2a, 0x2c, 0x26, 0x20, 0x29,
+ 0x25, 0x2b, 0x2a, 0x25, 0x20, 0x2d, 0x2e, 0x28, 0x27, 0x2a, 0x2b, 0x21,
+ 0x2a, 0x23, 0x24, 0x2f, 0x2d, 0x24, 0x21, 0x22, 0x25, 0x2b, 0x28, 0x26,
+ 0x2c, 0x27, 0x26, 0x2c, 0x29, 0x20, 0x23, 0x25, 0x22, 0x2e, 0x2f, 0x29,
+ 0x1f, 0x13, 0x11, 0x1d, 0x18, 0x14, 0x1e, 0x17, 0x16, 0x1f, 0x1b, 0x12,
+ 0x13, 0x18, 0x14, 0x1e, 0x19, 0x1c, 0x17, 0x10, 0x12, 0x11, 0x1d, 0x1a,
+ 0x1c, 0x16, 0x10, 0x19, 0x15, 0x1b, 0x1a, 0x15, 0x10, 0x1d, 0x1e, 0x18,
+ 0x17, 0x1a, 0x1b, 0x11, 0x1a, 0x13, 0x14, 0x1f, 0x1d, 0x14, 0x11, 0x12,
+ 0x15, 0x1b, 0x18, 0x16, 0x1c, 0x17, 0x16, 0x1c, 0x19, 0x10, 0x13, 0x15,
+ 0x12, 0x1e, 0x1f, 0x19, 0xbf, 0xb3, 0xb1, 0xbd, 0xb8, 0xb4, 0xbe, 0xb7,
+ 0xb6, 0xbf, 0xbb, 0xb2, 0xb3, 0xb8, 0xb4, 0xbe, 0xb9, 0xbc, 0xb7, 0xb0,
+ 0xb2, 0xb1, 0xbd, 0xba, 0xbc, 0xb6, 0xb0, 0xb9, 0xb5, 0xbb, 0xba, 0xb5,
+ 0xb0, 0xbd, 0xbe, 0xb8, 0xb7, 0xba, 0xbb, 0xb1, 0xba, 0xb3, 0xb4, 0xbf,
+ 0xbd, 0xb4, 0xb1, 0xb2, 0xb5, 0xbb, 0xb8, 0xb6, 0xbc, 0xb7, 0xb6, 0xbc,
+ 0xb9, 0xb0, 0xb3, 0xb5, 0xb2, 0xbe, 0xbf, 0xb9, 0x7f, 0x73, 0x71, 0x7d,
+ 0x78, 0x74, 0x7e, 0x77, 0x76, 0x7f, 0x7b, 0x72, 0x73, 0x78, 0x74, 0x7e,
+ 0x79, 0x7c, 0x77, 0x70, 0x72, 0x71, 0x7d, 0x7a, 0x7c, 0x76, 0x70, 0x79,
+ 0x75, 0x7b, 0x7a, 0x75, 0x70, 0x7d, 0x7e, 0x78, 0x77, 0x7a, 0x7b, 0x71,
+ 0x7a, 0x73, 0x74, 0x7f, 0x7d, 0x74, 0x71, 0x72, 0x75, 0x7b, 0x78, 0x76,
+ 0x7c, 0x77, 0x76, 0x7c, 0x79, 0x70, 0x73, 0x75, 0x72, 0x7e, 0x7f, 0x79,
+ 0xff, 0xf3, 0xf1, 0xfd, 0xf8, 0xf4, 0xfe, 0xf7, 0xf6, 0xff, 0xfb, 0xf2,
+ 0xf3, 0xf8, 0xf4, 0xfe, 0xf9, 0xfc, 0xf7, 0xf0, 0xf2, 0xf1, 0xfd, 0xfa,
+ 0xfc, 0xf6, 0xf0, 0xf9, 0xf5, 0xfb, 0xfa, 0xf5, 0xf0, 0xfd, 0xfe, 0xf8,
+ 0xf7, 0xfa, 0xfb, 0xf1, 0xfa, 0xf3, 0xf4, 0xff, 0xfd, 0xf4, 0xf1, 0xf2,
+ 0xf5, 0xfb, 0xf8, 0xf6, 0xfc, 0xf7, 0xf6, 0xfc, 0xf9, 0xf0, 0xf3, 0xf5,
+ 0xf2, 0xfe, 0xff, 0xf9, 0x5f, 0x53, 0x51, 0x5d, 0x58, 0x54, 0x5e, 0x57,
+ 0x56, 0x5f, 0x5b, 0x52, 0x53, 0x58, 0x54, 0x5e, 0x59, 0x5c, 0x57, 0x50,
+ 0x52, 0x51, 0x5d, 0x5a, 0x5c, 0x56, 0x50, 0x59, 0x55, 0x5b, 0x5a, 0x55,
+ 0x50, 0x5d, 0x5e, 0x58, 0x57, 0x5a, 0x5b, 0x51, 0x5a, 0x53, 0x54, 0x5f,
+ 0x5d, 0x54, 0x51, 0x52, 0x55, 0x5b, 0x58, 0x56, 0x5c, 0x57, 0x56, 0x5c,
+ 0x59, 0x50, 0x53, 0x55, 0x52, 0x5e, 0x5f, 0x59, 0xcf, 0xc3, 0xc1, 0xcd,
+ 0xc8, 0xc4, 0xce, 0xc7, 0xc6, 0xcf, 0xcb, 0xc2, 0xc3, 0xc8, 0xc4, 0xce,
+ 0xc9, 0xcc, 0xc7, 0xc0, 0xc2, 0xc1, 0xcd, 0xca, 0xcc, 0xc6, 0xc0, 0xc9,
+ 0xc5, 0xcb, 0xca, 0xc5, 0xc0, 0xcd, 0xce, 0xc8, 0xc7, 0xca, 0xcb, 0xc1,
+ 0xca, 0xc3, 0xc4, 0xcf, 0xcd, 0xc4, 0xc1, 0xc2, 0xc5, 0xcb, 0xc8, 0xc6,
+ 0xcc, 0xc7, 0xc6, 0xcc, 0xc9, 0xc0, 0xc3, 0xc5, 0xc2, 0xce, 0xcf, 0xc9,
+ 0xbf, 0xb3, 0xb1, 0xbd, 0xb8, 0xb4, 0xbe, 0xb7, 0xb6, 0xbf, 0xbb, 0xb2,
+ 0xb3, 0xb8, 0xb4, 0xbe, 0xb9, 0xbc, 0xb7, 0xb0, 0xb2, 0xb1, 0xbd, 0xba,
+ 0xbc, 0xb6, 0xb0, 0xb9, 0xb5, 0xbb, 0xba, 0xb5, 0xb0, 0xbd, 0xbe, 0xb8,
+ 0xb7, 0xba, 0xbb, 0xb1, 0xba, 0xb3, 0xb4, 0xbf, 0xbd, 0xb4, 0xb1, 0xb2,
+ 0xb5, 0xbb, 0xb8, 0xb6, 0xbc, 0xb7, 0xb6, 0xbc, 0xb9, 0xb0, 0xb3, 0xb5,
+ 0xb2, 0xbe, 0xbf, 0xb9, 0x9f, 0x93, 0x91, 0x9d, 0x98, 0x94, 0x9e, 0x97,
+ 0x96, 0x9f, 0x9b, 0x92, 0x93, 0x98, 0x94, 0x9e, 0x99, 0x9c, 0x97, 0x90,
+ 0x92, 0x91, 0x9d, 0x9a, 0x9c, 0x96, 0x90, 0x99, 0x95, 0x9b, 0x9a, 0x95,
+ 0x90, 0x9d, 0x9e, 0x98, 0x97, 0x9a, 0x9b, 0x91, 0x9a, 0x93, 0x94, 0x9f,
+ 0x9d, 0x94, 0x91, 0x92, 0x95, 0x9b, 0x98, 0x96, 0x9c, 0x97, 0x96, 0x9c,
+ 0x99, 0x90, 0x93, 0x95, 0x92, 0x9e, 0x9f, 0x99, 0x3f, 0x33, 0x31, 0x3d,
+ 0x38, 0x34, 0x3e, 0x37, 0x36, 0x3f, 0x3b, 0x32, 0x33, 0x38, 0x34, 0x3e,
+ 0x39, 0x3c, 0x37, 0x30, 0x32, 0x31, 0x3d, 0x3a, 0x3c, 0x36, 0x30, 0x39,
+ 0x35, 0x3b, 0x3a, 0x35, 0x30, 0x3d, 0x3e, 0x38, 0x37, 0x3a, 0x3b, 0x31,
+ 0x3a, 0x33, 0x34, 0x3f, 0x3d, 0x34, 0x31, 0x32, 0x35, 0x3b, 0x38, 0x36,
+ 0x3c, 0x37, 0x36, 0x3c, 0x39, 0x30, 0x33, 0x35, 0x32, 0x3e, 0x3f, 0x39,
+ 0x7f, 0x73, 0x71, 0x7d, 0x78, 0x74, 0x7e, 0x77, 0x76, 0x7f, 0x7b, 0x72,
+ 0x73, 0x78, 0x74, 0x7e, 0x79, 0x7c, 0x77, 0x70, 0x72, 0x71, 0x7d, 0x7a,
+ 0x7c, 0x76, 0x70, 0x79, 0x75, 0x7b, 0x7a, 0x75, 0x70, 0x7d, 0x7e, 0x78,
+ 0x77, 0x7a, 0x7b, 0x71, 0x7a, 0x73, 0x74, 0x7f, 0x7d, 0x74, 0x71, 0x72,
+ 0x75, 0x7b, 0x78, 0x76, 0x7c, 0x77, 0x76, 0x7c, 0x79, 0x70, 0x73, 0x75,
+ 0x72, 0x7e, 0x7f, 0x79, 0xef, 0xe3, 0xe1, 0xed, 0xe8, 0xe4, 0xee, 0xe7,
+ 0xe6, 0xef, 0xeb, 0xe2, 0xe3, 0xe8, 0xe4, 0xee, 0xe9, 0xec, 0xe7, 0xe0,
+ 0xe2, 0xe1, 0xed, 0xea, 0xec, 0xe6, 0xe0, 0xe9, 0xe5, 0xeb, 0xea, 0xe5,
+ 0xe0, 0xed, 0xee, 0xe8, 0xe7, 0xea, 0xeb, 0xe1, 0xea, 0xe3, 0xe4, 0xef,
+ 0xed, 0xe4, 0xe1, 0xe2, 0xe5, 0xeb, 0xe8, 0xe6, 0xec, 0xe7, 0xe6, 0xec,
+ 0xe9, 0xe0, 0xe3, 0xe5, 0xe2, 0xee, 0xef, 0xe9, 0x3f, 0x33, 0x31, 0x3d,
+ 0x38, 0x34, 0x3e, 0x37, 0x36, 0x3f, 0x3b, 0x32, 0x33, 0x38, 0x34, 0x3e,
+ 0x39, 0x3c, 0x37, 0x30, 0x32, 0x31, 0x3d, 0x3a, 0x3c, 0x36, 0x30, 0x39,
+ 0x35, 0x3b, 0x3a, 0x35, 0x30, 0x3d, 0x3e, 0x38, 0x37, 0x3a, 0x3b, 0x31,
+ 0x3a, 0x33, 0x34, 0x3f, 0x3d, 0x34, 0x31, 0x32, 0x35, 0x3b, 0x38, 0x36,
+ 0x3c, 0x37, 0x36, 0x3c, 0x39, 0x30, 0x33, 0x35, 0x32, 0x3e, 0x3f, 0x39,
+ 0xaf, 0xa3, 0xa1, 0xad, 0xa8, 0xa4, 0xae, 0xa7, 0xa6, 0xaf, 0xab, 0xa2,
+ 0xa3, 0xa8, 0xa4, 0xae, 0xa9, 0xac, 0xa7, 0xa0, 0xa2, 0xa1, 0xad, 0xaa,
+ 0xac, 0xa6, 0xa0, 0xa9, 0xa5, 0xab, 0xaa, 0xa5, 0xa0, 0xad, 0xae, 0xa8,
+ 0xa7, 0xaa, 0xab, 0xa1, 0xaa, 0xa3, 0xa4, 0xaf, 0xad, 0xa4, 0xa1, 0xa2,
+ 0xa5, 0xab, 0xa8, 0xa6, 0xac, 0xa7, 0xa6, 0xac, 0xa9, 0xa0, 0xa3, 0xa5,
+ 0xa2, 0xae, 0xaf, 0xa9, 0xaf, 0xa3, 0xa1, 0xad, 0xa8, 0xa4, 0xae, 0xa7,
+ 0xa6, 0xaf, 0xab, 0xa2, 0xa3, 0xa8, 0xa4, 0xae, 0xa9, 0xac, 0xa7, 0xa0,
+ 0xa2, 0xa1, 0xad, 0xaa, 0xac, 0xa6, 0xa0, 0xa9, 0xa5, 0xab, 0xaa, 0xa5,
+ 0xa0, 0xad, 0xae, 0xa8, 0xa7, 0xaa, 0xab, 0xa1, 0xaa, 0xa3, 0xa4, 0xaf,
+ 0xad, 0xa4, 0xa1, 0xa2, 0xa5, 0xab, 0xa8, 0xa6, 0xac, 0xa7, 0xa6, 0xac,
+ 0xa9, 0xa0, 0xa3, 0xa5, 0xa2, 0xae, 0xaf, 0xa9, 0x0f, 0x03, 0x01, 0x0d,
+ 0x08, 0x04, 0x0e, 0x07, 0x06, 0x0f, 0x0b, 0x02, 0x03, 0x08, 0x04, 0x0e,
+ 0x09, 0x0c, 0x07, 0x00, 0x02, 0x01, 0x0d, 0x0a, 0x0c, 0x06, 0x00, 0x09,
+ 0x05, 0x0b, 0x0a, 0x05, 0x00, 0x0d, 0x0e, 0x08, 0x07, 0x0a, 0x0b, 0x01,
+ 0x0a, 0x03, 0x04, 0x0f, 0x0d, 0x04, 0x01, 0x02, 0x05, 0x0b, 0x08, 0x06,
+ 0x0c, 0x07, 0x06, 0x0c, 0x09, 0x00, 0x03, 0x05, 0x02, 0x0e, 0x0f, 0x09,
+ 0x5f, 0x53, 0x51, 0x5d, 0x58, 0x54, 0x5e, 0x57, 0x56, 0x5f, 0x5b, 0x52,
+ 0x53, 0x58, 0x54, 0x5e, 0x59, 0x5c, 0x57, 0x50, 0x52, 0x51, 0x5d, 0x5a,
+ 0x5c, 0x56, 0x50, 0x59, 0x55, 0x5b, 0x5a, 0x55, 0x50, 0x5d, 0x5e, 0x58,
+ 0x57, 0x5a, 0x5b, 0x51, 0x5a, 0x53, 0x54, 0x5f, 0x5d, 0x54, 0x51, 0x52,
+ 0x55, 0x5b, 0x58, 0x56, 0x5c, 0x57, 0x56, 0x5c, 0x59, 0x50, 0x53, 0x55,
+ 0x52, 0x5e, 0x5f, 0x59, 0x6f, 0x63, 0x61, 0x6d, 0x68, 0x64, 0x6e, 0x67,
+ 0x66, 0x6f, 0x6b, 0x62, 0x63, 0x68, 0x64, 0x6e, 0x69, 0x6c, 0x67, 0x60,
+ 0x62, 0x61, 0x6d, 0x6a, 0x6c, 0x66, 0x60, 0x69, 0x65, 0x6b, 0x6a, 0x65,
+ 0x60, 0x6d, 0x6e, 0x68, 0x67, 0x6a, 0x6b, 0x61, 0x6a, 0x63, 0x64, 0x6f,
+ 0x6d, 0x64, 0x61, 0x62, 0x65, 0x6b, 0x68, 0x66, 0x6c, 0x67, 0x66, 0x6c,
+ 0x69, 0x60, 0x63, 0x65, 0x62, 0x6e, 0x6f, 0x69, 0x0f, 0x03, 0x01, 0x0d,
+ 0x08, 0x04, 0x0e, 0x07, 0x06, 0x0f, 0x0b, 0x02, 0x03, 0x08, 0x04, 0x0e,
+ 0x09, 0x0c, 0x07, 0x00, 0x02, 0x01, 0x0d, 0x0a, 0x0c, 0x06, 0x00, 0x09,
+ 0x05, 0x0b, 0x0a, 0x05, 0x00, 0x0d, 0x0e, 0x08, 0x07, 0x0a, 0x0b, 0x01,
+ 0x0a, 0x03, 0x04, 0x0f, 0x0d, 0x04, 0x01, 0x02, 0x05, 0x0b, 0x08, 0x06,
+ 0x0c, 0x07, 0x06, 0x0c, 0x09, 0x00, 0x03, 0x05, 0x02, 0x0e, 0x0f, 0x09,
+ 0xdf, 0xd3, 0xd1, 0xdd, 0xd8, 0xd4, 0xde, 0xd7, 0xd6, 0xdf, 0xdb, 0xd2,
+ 0xd3, 0xd8, 0xd4, 0xde, 0xd9, 0xdc, 0xd7, 0xd0, 0xd2, 0xd1, 0xdd, 0xda,
+ 0xdc, 0xd6, 0xd0, 0xd9, 0xd5, 0xdb, 0xda, 0xd5, 0xd0, 0xdd, 0xde, 0xd8,
+ 0xd7, 0xda, 0xdb, 0xd1, 0xda, 0xd3, 0xd4, 0xdf, 0xdd, 0xd4, 0xd1, 0xd2,
+ 0xd5, 0xdb, 0xd8, 0xd6, 0xdc, 0xd7, 0xd6, 0xdc, 0xd9, 0xd0, 0xd3, 0xd5,
+ 0xd2, 0xde, 0xdf, 0xd9,
+ },
+ {
+ 0xa7, 0xad, 0xad, 0xa8, 0xae, 0xab, 0xa3, 0xa5, 0xa0, 0xa6, 0xa6, 0xaf,
+ 0xa9, 0xa0, 0xaa, 0xa3, 0xa1, 0xa4, 0xa2, 0xa7, 0xa8, 0xa2, 0xa5, 0xac,
+ 0xab, 0xa1, 0xac, 0xaa, 0xa4, 0xae, 0xaf, 0xa9, 0xaa, 0xa3, 0xa6, 0xaf,
+ 0xa9, 0xa0, 0xa0, 0xa6, 0xac, 0xaa, 0xab, 0xa1, 0xa7, 0xad, 0xad, 0xa8,
+ 0xaf, 0xa9, 0xa1, 0xa4, 0xa3, 0xa5, 0xae, 0xab, 0xa5, 0xac, 0xa2, 0xa7,
+ 0xa8, 0xa2, 0xa4, 0xae, 0xd7, 0xdd, 0xdd, 0xd8, 0xde, 0xdb, 0xd3, 0xd5,
+ 0xd0, 0xd6, 0xd6, 0xdf, 0xd9, 0xd0, 0xda, 0xd3, 0xd1, 0xd4, 0xd2, 0xd7,
+ 0xd8, 0xd2, 0xd5, 0xdc, 0xdb, 0xd1, 0xdc, 0xda, 0xd4, 0xde, 0xdf, 0xd9,
+ 0xda, 0xd3, 0xd6, 0xdf, 0xd9, 0xd0, 0xd0, 0xd6, 0xdc, 0xda, 0xdb, 0xd1,
+ 0xd7, 0xdd, 0xdd, 0xd8, 0xdf, 0xd9, 0xd1, 0xd4, 0xd3, 0xd5, 0xde, 0xdb,
+ 0xd5, 0xdc, 0xd2, 0xd7, 0xd8, 0xd2, 0xd4, 0xde, 0x07, 0x0d, 0x0d, 0x08,
+ 0x0e, 0x0b, 0x03, 0x05, 0x00, 0x06, 0x06, 0x0f, 0x09, 0x00, 0x0a, 0x03,
+ 0x01, 0x04, 0x02, 0x07, 0x08, 0x02, 0x05, 0x0c, 0x0b, 0x01, 0x0c, 0x0a,
+ 0x04, 0x0e, 0x0f, 0x09, 0x0a, 0x03, 0x06, 0x0f, 0x09, 0x00, 0x00, 0x06,
+ 0x0c, 0x0a, 0x0b, 0x01, 0x07, 0x0d, 0x0d, 0x08, 0x0f, 0x09, 0x01, 0x04,
+ 0x03, 0x05, 0x0e, 0x0b, 0x05, 0x0c, 0x02, 0x07, 0x08, 0x02, 0x04, 0x0e,
+ 0x77, 0x7d, 0x7d, 0x78, 0x7e, 0x7b, 0x73, 0x75, 0x70, 0x76, 0x76, 0x7f,
+ 0x79, 0x70, 0x7a, 0x73, 0x71, 0x74, 0x72, 0x77, 0x78, 0x72, 0x75, 0x7c,
+ 0x7b, 0x71, 0x7c, 0x7a, 0x74, 0x7e, 0x7f, 0x79, 0x7a, 0x73, 0x76, 0x7f,
+ 0x79, 0x70, 0x70, 0x76, 0x7c, 0x7a, 0x7b, 0x71, 0x77, 0x7d, 0x7d, 0x78,
+ 0x7f, 0x79, 0x71, 0x74, 0x73, 0x75, 0x7e, 0x7b, 0x75, 0x7c, 0x72, 0x77,
+ 0x78, 0x72, 0x74, 0x7e, 0x97, 0x9d, 0x9d, 0x98, 0x9e, 0x9b, 0x93, 0x95,
+ 0x90, 0x96, 0x96, 0x9f, 0x99, 0x90, 0x9a, 0x93, 0x91, 0x94, 0x92, 0x97,
+ 0x98, 0x92, 0x95, 0x9c, 0x9b, 0x91, 0x9c, 0x9a, 0x94, 0x9e, 0x9f, 0x99,
+ 0x9a, 0x93, 0x96, 0x9f, 0x99, 0x90, 0x90, 0x96, 0x9c, 0x9a, 0x9b, 0x91,
+ 0x97, 0x9d, 0x9d, 0x98, 0x9f, 0x99, 0x91, 0x94, 0x93, 0x95, 0x9e, 0x9b,
+ 0x95, 0x9c, 0x92, 0x97, 0x98, 0x92, 0x94, 0x9e, 0x07, 0x0d, 0x0d, 0x08,
+ 0x0e, 0x0b, 0x03, 0x05, 0x00, 0x06, 0x06, 0x0f, 0x09, 0x00, 0x0a, 0x03,
+ 0x01, 0x04, 0x02, 0x07, 0x08, 0x02, 0x05, 0x0c, 0x0b, 0x01, 0x0c, 0x0a,
+ 0x04, 0x0e, 0x0f, 0x09, 0x0a, 0x03, 0x06, 0x0f, 0x09, 0x00, 0x00, 0x06,
+ 0x0c, 0x0a, 0x0b, 0x01, 0x07, 0x0d, 0x0d, 0x08, 0x0f, 0x09, 0x01, 0x04,
+ 0x03, 0x05, 0x0e, 0x0b, 0x05, 0x0c, 0x02, 0x07, 0x08, 0x02, 0x04, 0x0e,
+ 0xe7, 0xed, 0xed, 0xe8, 0xee, 0xeb, 0xe3, 0xe5, 0xe0, 0xe6, 0xe6, 0xef,
+ 0xe9, 0xe0, 0xea, 0xe3, 0xe1, 0xe4, 0xe2, 0xe7, 0xe8, 0xe2, 0xe5, 0xec,
+ 0xeb, 0xe1, 0xec, 0xea, 0xe4, 0xee, 0xef, 0xe9, 0xea, 0xe3, 0xe6, 0xef,
+ 0xe9, 0xe0, 0xe0, 0xe6, 0xec, 0xea, 0xeb, 0xe1, 0xe7, 0xed, 0xed, 0xe8,
+ 0xef, 0xe9, 0xe1, 0xe4, 0xe3, 0xe5, 0xee, 0xeb, 0xe5, 0xec, 0xe2, 0xe7,
+ 0xe8, 0xe2, 0xe4, 0xee, 0x97, 0x9d, 0x9d, 0x98, 0x9e, 0x9b, 0x93, 0x95,
+ 0x90, 0x96, 0x96, 0x9f, 0x99, 0x90, 0x9a, 0x93, 0x91, 0x94, 0x92, 0x97,
+ 0x98, 0x92, 0x95, 0x9c, 0x9b, 0x91, 0x9c, 0x9a, 0x94, 0x9e, 0x9f, 0x99,
+ 0x9a, 0x93, 0x96, 0x9f, 0x99, 0x90, 0x90, 0x96, 0x9c, 0x9a, 0x9b, 0x91,
+ 0x97, 0x9d, 0x9d, 0x98, 0x9f, 0x99, 0x91, 0x94, 0x93, 0x95, 0x9e, 0x9b,
+ 0x95, 0x9c, 0x92, 0x97, 0x98, 0x92, 0x94, 0x9e, 0x67, 0x6d, 0x6d, 0x68,
+ 0x6e, 0x6b, 0x63, 0x65, 0x60, 0x66, 0x66, 0x6f, 0x69, 0x60, 0x6a, 0x63,
+ 0x61, 0x64, 0x62, 0x67, 0x68, 0x62, 0x65, 0x6c, 0x6b, 0x61, 0x6c, 0x6a,
+ 0x64, 0x6e, 0x6f, 0x69, 0x6a, 0x63, 0x66, 0x6f, 0x69, 0x60, 0x60, 0x66,
+ 0x6c, 0x6a, 0x6b, 0x61, 0x67, 0x6d, 0x6d, 0x68, 0x6f, 0x69, 0x61, 0x64,
+ 0x63, 0x65, 0x6e, 0x6b, 0x65, 0x6c, 0x62, 0x67, 0x68, 0x62, 0x64, 0x6e,
+ 0x37, 0x3d, 0x3d, 0x38, 0x3e, 0x3b, 0x33, 0x35, 0x30, 0x36, 0x36, 0x3f,
+ 0x39, 0x30, 0x3a, 0x33, 0x31, 0x34, 0x32, 0x37, 0x38, 0x32, 0x35, 0x3c,
+ 0x3b, 0x31, 0x3c, 0x3a, 0x34, 0x3e, 0x3f, 0x39, 0x3a, 0x33, 0x36, 0x3f,
+ 0x39, 0x30, 0x30, 0x36, 0x3c, 0x3a, 0x3b, 0x31, 0x37, 0x3d, 0x3d, 0x38,
+ 0x3f, 0x39, 0x31, 0x34, 0x33, 0x35, 0x3e, 0x3b, 0x35, 0x3c, 0x32, 0x37,
+ 0x38, 0x32, 0x34, 0x3e, 0x37, 0x3d, 0x3d, 0x38, 0x3e, 0x3b, 0x33, 0x35,
+ 0x30, 0x36, 0x36, 0x3f, 0x39, 0x30, 0x3a, 0x33, 0x31, 0x34, 0x32, 0x37,
+ 0x38, 0x32, 0x35, 0x3c, 0x3b, 0x31, 0x3c, 0x3a, 0x34, 0x3e, 0x3f, 0x39,
+ 0x3a, 0x33, 0x36, 0x3f, 0x39, 0x30, 0x30, 0x36, 0x3c, 0x3a, 0x3b, 0x31,
+ 0x37, 0x3d, 0x3d, 0x38, 0x3f, 0x39, 0x31, 0x34, 0x33, 0x35, 0x3e, 0x3b,
+ 0x35, 0x3c, 0x32, 0x37, 0x38, 0x32, 0x34, 0x3e, 0x47, 0x4d, 0x4d, 0x48,
+ 0x4e, 0x4b, 0x43, 0x45, 0x40, 0x46, 0x46, 0x4f, 0x49, 0x40, 0x4a, 0x43,
+ 0x41, 0x44, 0x42, 0x47, 0x48, 0x42, 0x45, 0x4c, 0x4b, 0x41, 0x4c, 0x4a,
+ 0x44, 0x4e, 0x4f, 0x49, 0x4a, 0x43, 0x46, 0x4f, 0x49, 0x40, 0x40, 0x46,
+ 0x4c, 0x4a, 0x4b, 0x41, 0x47, 0x4d, 0x4d, 0x48, 0x4f, 0x49, 0x41, 0x44,
+ 0x43, 0x45, 0x4e, 0x4b, 0x45, 0x4c, 0x42, 0x47, 0x48, 0x42, 0x44, 0x4e,
+ 0xf7, 0xfd, 0xfd, 0xf8, 0xfe, 0xfb, 0xf3, 0xf5, 0xf0, 0xf6, 0xf6, 0xff,
+ 0xf9, 0xf0, 0xfa, 0xf3, 0xf1, 0xf4, 0xf2, 0xf7, 0xf8, 0xf2, 0xf5, 0xfc,
+ 0xfb, 0xf1, 0xfc, 0xfa, 0xf4, 0xfe, 0xff, 0xf9, 0xfa, 0xf3, 0xf6, 0xff,
+ 0xf9, 0xf0, 0xf0, 0xf6, 0xfc, 0xfa, 0xfb, 0xf1, 0xf7, 0xfd, 0xfd, 0xf8,
+ 0xff, 0xf9, 0xf1, 0xf4, 0xf3, 0xf5, 0xfe, 0xfb, 0xf5, 0xfc, 0xf2, 0xf7,
+ 0xf8, 0xf2, 0xf4, 0xfe, 0x67, 0x6d, 0x6d, 0x68, 0x6e, 0x6b, 0x63, 0x65,
+ 0x60, 0x66, 0x66, 0x6f, 0x69, 0x60, 0x6a, 0x63, 0x61, 0x64, 0x62, 0x67,
+ 0x68, 0x62, 0x65, 0x6c, 0x6b, 0x61, 0x6c, 0x6a, 0x64, 0x6e, 0x6f, 0x69,
+ 0x6a, 0x63, 0x66, 0x6f, 0x69, 0x60, 0x60, 0x66, 0x6c, 0x6a, 0x6b, 0x61,
+ 0x67, 0x6d, 0x6d, 0x68, 0x6f, 0x69, 0x61, 0x64, 0x63, 0x65, 0x6e, 0x6b,
+ 0x65, 0x6c, 0x62, 0x67, 0x68, 0x62, 0x64, 0x6e, 0x57, 0x5d, 0x5d, 0x58,
+ 0x5e, 0x5b, 0x53, 0x55, 0x50, 0x56, 0x56, 0x5f, 0x59, 0x50, 0x5a, 0x53,
+ 0x51, 0x54, 0x52, 0x57, 0x58, 0x52, 0x55, 0x5c, 0x5b, 0x51, 0x5c, 0x5a,
+ 0x54, 0x5e, 0x5f, 0x59, 0x5a, 0x53, 0x56, 0x5f, 0x59, 0x50, 0x50, 0x56,
+ 0x5c, 0x5a, 0x5b, 0x51, 0x57, 0x5d, 0x5d, 0x58, 0x5f, 0x59, 0x51, 0x54,
+ 0x53, 0x55, 0x5e, 0x5b, 0x55, 0x5c, 0x52, 0x57, 0x58, 0x52, 0x54, 0x5e,
+ 0xa7, 0xad, 0xad, 0xa8, 0xae, 0xab, 0xa3, 0xa5, 0xa0, 0xa6, 0xa6, 0xaf,
+ 0xa9, 0xa0, 0xaa, 0xa3, 0xa1, 0xa4, 0xa2, 0xa7, 0xa8, 0xa2, 0xa5, 0xac,
+ 0xab, 0xa1, 0xac, 0xaa, 0xa4, 0xae, 0xaf, 0xa9, 0xaa, 0xa3, 0xa6, 0xaf,
+ 0xa9, 0xa0, 0xa0, 0xa6, 0xac, 0xaa, 0xab, 0xa1, 0xa7, 0xad, 0xad, 0xa8,
+ 0xaf, 0xa9, 0xa1, 0xa4, 0xa3, 0xa5, 0xae, 0xab, 0xa5, 0xac, 0xa2, 0xa7,
+ 0xa8, 0xa2, 0xa4, 0xae, 0x17, 0x1d, 0x1d, 0x18, 0x1e, 0x1b, 0x13, 0x15,
+ 0x10, 0x16, 0x16, 0x1f, 0x19, 0x10, 0x1a, 0x13, 0x11, 0x14, 0x12, 0x17,
+ 0x18, 0x12, 0x15, 0x1c, 0x1b, 0x11, 0x1c, 0x1a, 0x14, 0x1e, 0x1f, 0x19,
+ 0x1a, 0x13, 0x16, 0x1f, 0x19, 0x10, 0x10, 0x16, 0x1c, 0x1a, 0x1b, 0x11,
+ 0x17, 0x1d, 0x1d, 0x18, 0x1f, 0x19, 0x11, 0x14, 0x13, 0x15, 0x1e, 0x1b,
+ 0x15, 0x1c, 0x12, 0x17, 0x18, 0x12, 0x14, 0x1e, 0x27, 0x2d, 0x2d, 0x28,
+ 0x2e, 0x2b, 0x23, 0x25, 0x20, 0x26, 0x26, 0x2f, 0x29, 0x20, 0x2a, 0x23,
+ 0x21, 0x24, 0x22, 0x27, 0x28, 0x22, 0x25, 0x2c, 0x2b, 0x21, 0x2c, 0x2a,
+ 0x24, 0x2e, 0x2f, 0x29, 0x2a, 0x23, 0x26, 0x2f, 0x29, 0x20, 0x20, 0x26,
+ 0x2c, 0x2a, 0x2b, 0x21, 0x27, 0x2d, 0x2d, 0x28, 0x2f, 0x29, 0x21, 0x24,
+ 0x23, 0x25, 0x2e, 0x2b, 0x25, 0x2c, 0x22, 0x27, 0x28, 0x22, 0x24, 0x2e,
+ 0xd7, 0xdd, 0xdd, 0xd8, 0xde, 0xdb, 0xd3, 0xd5, 0xd0, 0xd6, 0xd6, 0xdf,
+ 0xd9, 0xd0, 0xda, 0xd3, 0xd1, 0xd4, 0xd2, 0xd7, 0xd8, 0xd2, 0xd5, 0xdc,
+ 0xdb, 0xd1, 0xdc, 0xda, 0xd4, 0xde, 0xdf, 0xd9, 0xda, 0xd3, 0xd6, 0xdf,
+ 0xd9, 0xd0, 0xd0, 0xd6, 0xdc, 0xda, 0xdb, 0xd1, 0xd7, 0xdd, 0xdd, 0xd8,
+ 0xdf, 0xd9, 0xd1, 0xd4, 0xd3, 0xd5, 0xde, 0xdb, 0xd5, 0xdc, 0xd2, 0xd7,
+ 0xd8, 0xd2, 0xd4, 0xde, 0x87, 0x8d, 0x8d, 0x88, 0x8e, 0x8b, 0x83, 0x85,
+ 0x80, 0x86, 0x86, 0x8f, 0x89, 0x80, 0x8a, 0x83, 0x81, 0x84, 0x82, 0x87,
+ 0x88, 0x82, 0x85, 0x8c, 0x8b, 0x81, 0x8c, 0x8a, 0x84, 0x8e, 0x8f, 0x89,
+ 0x8a, 0x83, 0x86, 0x8f, 0x89, 0x80, 0x80, 0x86, 0x8c, 0x8a, 0x8b, 0x81,
+ 0x87, 0x8d, 0x8d, 0x88, 0x8f, 0x89, 0x81, 0x84, 0x83, 0x85, 0x8e, 0x8b,
+ 0x85, 0x8c, 0x82, 0x87, 0x88, 0x82, 0x84, 0x8e, 0xc7, 0xcd, 0xcd, 0xc8,
+ 0xce, 0xcb, 0xc3, 0xc5, 0xc0, 0xc6, 0xc6, 0xcf, 0xc9, 0xc0, 0xca, 0xc3,
+ 0xc1, 0xc4, 0xc2, 0xc7, 0xc8, 0xc2, 0xc5, 0xcc, 0xcb, 0xc1, 0xcc, 0xca,
+ 0xc4, 0xce, 0xcf, 0xc9, 0xca, 0xc3, 0xc6, 0xcf, 0xc9, 0xc0, 0xc0, 0xc6,
+ 0xcc, 0xca, 0xcb, 0xc1, 0xc7, 0xcd, 0xcd, 0xc8, 0xcf, 0xc9, 0xc1, 0xc4,
+ 0xc3, 0xc5, 0xce, 0xcb, 0xc5, 0xcc, 0xc2, 0xc7, 0xc8, 0xc2, 0xc4, 0xce,
+ 0x57, 0x5d, 0x5d, 0x58, 0x5e, 0x5b, 0x53, 0x55, 0x50, 0x56, 0x56, 0x5f,
+ 0x59, 0x50, 0x5a, 0x53, 0x51, 0x54, 0x52, 0x57, 0x58, 0x52, 0x55, 0x5c,
+ 0x5b, 0x51, 0x5c, 0x5a, 0x54, 0x5e, 0x5f, 0x59, 0x5a, 0x53, 0x56, 0x5f,
+ 0x59, 0x50, 0x50, 0x56, 0x5c, 0x5a, 0x5b, 0x51, 0x57, 0x5d, 0x5d, 0x58,
+ 0x5f, 0x59, 0x51, 0x54, 0x53, 0x55, 0x5e, 0x5b, 0x55, 0x5c, 0x52, 0x57,
+ 0x58, 0x52, 0x54, 0x5e, 0x77, 0x7d, 0x7d, 0x78, 0x7e, 0x7b, 0x73, 0x75,
+ 0x70, 0x76, 0x76, 0x7f, 0x79, 0x70, 0x7a, 0x73, 0x71, 0x74, 0x72, 0x77,
+ 0x78, 0x72, 0x75, 0x7c, 0x7b, 0x71, 0x7c, 0x7a, 0x74, 0x7e, 0x7f, 0x79,
+ 0x7a, 0x73, 0x76, 0x7f, 0x79, 0x70, 0x70, 0x76, 0x7c, 0x7a, 0x7b, 0x71,
+ 0x77, 0x7d, 0x7d, 0x78, 0x7f, 0x79, 0x71, 0x74, 0x73, 0x75, 0x7e, 0x7b,
+ 0x75, 0x7c, 0x72, 0x77, 0x78, 0x72, 0x74, 0x7e, 0xe7, 0xed, 0xed, 0xe8,
+ 0xee, 0xeb, 0xe3, 0xe5, 0xe0, 0xe6, 0xe6, 0xef, 0xe9, 0xe0, 0xea, 0xe3,
+ 0xe1, 0xe4, 0xe2, 0xe7, 0xe8, 0xe2, 0xe5, 0xec, 0xeb, 0xe1, 0xec, 0xea,
+ 0xe4, 0xee, 0xef, 0xe9, 0xea, 0xe3, 0xe6, 0xef, 0xe9, 0xe0, 0xe0, 0xe6,
+ 0xec, 0xea, 0xeb, 0xe1, 0xe7, 0xed, 0xed, 0xe8, 0xef, 0xe9, 0xe1, 0xe4,
+ 0xe3, 0xe5, 0xee, 0xeb, 0xe5, 0xec, 0xe2, 0xe7, 0xe8, 0xe2, 0xe4, 0xee,
+ 0xb7, 0xbd, 0xbd, 0xb8, 0xbe, 0xbb, 0xb3, 0xb5, 0xb0, 0xb6, 0xb6, 0xbf,
+ 0xb9, 0xb0, 0xba, 0xb3, 0xb1, 0xb4, 0xb2, 0xb7, 0xb8, 0xb2, 0xb5, 0xbc,
+ 0xbb, 0xb1, 0xbc, 0xba, 0xb4, 0xbe, 0xbf, 0xb9, 0xba, 0xb3, 0xb6, 0xbf,
+ 0xb9, 0xb0, 0xb0, 0xb6, 0xbc, 0xba, 0xbb, 0xb1, 0xb7, 0xbd, 0xbd, 0xb8,
+ 0xbf, 0xb9, 0xb1, 0xb4, 0xb3, 0xb5, 0xbe, 0xbb, 0xb5, 0xbc, 0xb2, 0xb7,
+ 0xb8, 0xb2, 0xb4, 0xbe, 0xc7, 0xcd, 0xcd, 0xc8, 0xce, 0xcb, 0xc3, 0xc5,
+ 0xc0, 0xc6, 0xc6, 0xcf, 0xc9, 0xc0, 0xca, 0xc3, 0xc1, 0xc4, 0xc2, 0xc7,
+ 0xc8, 0xc2, 0xc5, 0xcc, 0xcb, 0xc1, 0xcc, 0xca, 0xc4, 0xce, 0xcf, 0xc9,
+ 0xca, 0xc3, 0xc6, 0xcf, 0xc9, 0xc0, 0xc0, 0xc6, 0xcc, 0xca, 0xcb, 0xc1,
+ 0xc7, 0xcd, 0xcd, 0xc8, 0xcf, 0xc9, 0xc1, 0xc4, 0xc3, 0xc5, 0xce, 0xcb,
+ 0xc5, 0xcc, 0xc2, 0xc7, 0xc8, 0xc2, 0xc4, 0xce, 0x47, 0x4d, 0x4d, 0x48,
+ 0x4e, 0x4b, 0x43, 0x45, 0x40, 0x46, 0x46, 0x4f, 0x49, 0x40, 0x4a, 0x43,
+ 0x41, 0x44, 0x42, 0x47, 0x48, 0x42, 0x45, 0x4c, 0x4b, 0x41, 0x4c, 0x4a,
+ 0x44, 0x4e, 0x4f, 0x49, 0x4a, 0x43, 0x46, 0x4f, 0x49, 0x40, 0x40, 0x46,
+ 0x4c, 0x4a, 0x4b, 0x41, 0x47, 0x4d, 0x4d, 0x48, 0x4f, 0x49, 0x41, 0x44,
+ 0x43, 0x45, 0x4e, 0x4b, 0x45, 0x4c, 0x42, 0x47, 0x48, 0x42, 0x44, 0x4e,
+ 0xb7, 0xbd, 0xbd, 0xb8, 0xbe, 0xbb, 0xb3, 0xb5, 0xb0, 0xb6, 0xb6, 0xbf,
+ 0xb9, 0xb0, 0xba, 0xb3, 0xb1, 0xb4, 0xb2, 0xb7, 0xb8, 0xb2, 0xb5, 0xbc,
+ 0xbb, 0xb1, 0xbc, 0xba, 0xb4, 0xbe, 0xbf, 0xb9, 0xba, 0xb3, 0xb6, 0xbf,
+ 0xb9, 0xb0, 0xb0, 0xb6, 0xbc, 0xba, 0xbb, 0xb1, 0xb7, 0xbd, 0xbd, 0xb8,
+ 0xbf, 0xb9, 0xb1, 0xb4, 0xb3, 0xb5, 0xbe, 0xbb, 0xb5, 0xbc, 0xb2, 0xb7,
+ 0xb8, 0xb2, 0xb4, 0xbe, 0x27, 0x2d, 0x2d, 0x28, 0x2e, 0x2b, 0x23, 0x25,
+ 0x20, 0x26, 0x26, 0x2f, 0x29, 0x20, 0x2a, 0x23, 0x21, 0x24, 0x22, 0x27,
+ 0x28, 0x22, 0x25, 0x2c, 0x2b, 0x21, 0x2c, 0x2a, 0x24, 0x2e, 0x2f, 0x29,
+ 0x2a, 0x23, 0x26, 0x2f, 0x29, 0x20, 0x20, 0x26, 0x2c, 0x2a, 0x2b, 0x21,
+ 0x27, 0x2d, 0x2d, 0x28, 0x2f, 0x29, 0x21, 0x24, 0x23, 0x25, 0x2e, 0x2b,
+ 0x25, 0x2c, 0x22, 0x27, 0x28, 0x22, 0x24, 0x2e, 0xf7, 0xfd, 0xfd, 0xf8,
+ 0xfe, 0xfb, 0xf3, 0xf5, 0xf0, 0xf6, 0xf6, 0xff, 0xf9, 0xf0, 0xfa, 0xf3,
+ 0xf1, 0xf4, 0xf2, 0xf7, 0xf8, 0xf2, 0xf5, 0xfc, 0xfb, 0xf1, 0xfc, 0xfa,
+ 0xf4, 0xfe, 0xff, 0xf9, 0xfa, 0xf3, 0xf6, 0xff, 0xf9, 0xf0, 0xf0, 0xf6,
+ 0xfc, 0xfa, 0xfb, 0xf1, 0xf7, 0xfd, 0xfd, 0xf8, 0xff, 0xf9, 0xf1, 0xf4,
+ 0xf3, 0xf5, 0xfe, 0xfb, 0xf5, 0xfc, 0xf2, 0xf7, 0xf8, 0xf2, 0xf4, 0xfe,
+ 0x87, 0x8d, 0x8d, 0x88, 0x8e, 0x8b, 0x83, 0x85, 0x80, 0x86, 0x86, 0x8f,
+ 0x89, 0x80, 0x8a, 0x83, 0x81, 0x84, 0x82, 0x87, 0x88, 0x82, 0x85, 0x8c,
+ 0x8b, 0x81, 0x8c, 0x8a, 0x84, 0x8e, 0x8f, 0x89, 0x8a, 0x83, 0x86, 0x8f,
+ 0x89, 0x80, 0x80, 0x86, 0x8c, 0x8a, 0x8b, 0x81, 0x87, 0x8d, 0x8d, 0x88,
+ 0x8f, 0x89, 0x81, 0x84, 0x83, 0x85, 0x8e, 0x8b, 0x85, 0x8c, 0x82, 0x87,
+ 0x88, 0x82, 0x84, 0x8e, 0x17, 0x1d, 0x1d, 0x18, 0x1e, 0x1b, 0x13, 0x15,
+ 0x10, 0x16, 0x16, 0x1f, 0x19, 0x10, 0x1a, 0x13, 0x11, 0x14, 0x12, 0x17,
+ 0x18, 0x12, 0x15, 0x1c, 0x1b, 0x11, 0x1c, 0x1a, 0x14, 0x1e, 0x1f, 0x19,
+ 0x1a, 0x13, 0x16, 0x1f, 0x19, 0x10, 0x10, 0x16, 0x1c, 0x1a, 0x1b, 0x11,
+ 0x17, 0x1d, 0x1d, 0x18, 0x1f, 0x19, 0x11, 0x14, 0x13, 0x15, 0x1e, 0x1b,
+ 0x15, 0x1c, 0x12, 0x17, 0x18, 0x12, 0x14, 0x1e, 0xd7, 0xdd, 0xdd, 0xd8,
+ 0xde, 0xdb, 0xd3, 0xd5, 0xd0, 0xd6, 0xd6, 0xdf, 0xd9, 0xd0, 0xda, 0xd3,
+ 0xd1, 0xd4, 0xd2, 0xd7, 0xd8, 0xd2, 0xd5, 0xdc, 0xdb, 0xd1, 0xdc, 0xda,
+ 0xd4, 0xde, 0xdf, 0xd9, 0xda, 0xd3, 0xd6, 0xdf, 0xd9, 0xd0, 0xd0, 0xd6,
+ 0xdc, 0xda, 0xdb, 0xd1, 0xd7, 0xdd, 0xdd, 0xd8, 0xdf, 0xd9, 0xd1, 0xd4,
+ 0xd3, 0xd5, 0xde, 0xdb, 0xd5, 0xdc, 0xd2, 0xd7, 0xd8, 0xd2, 0xd4, 0xde,
+ 0x17, 0x1d, 0x1d, 0x18, 0x1e, 0x1b, 0x13, 0x15, 0x10, 0x16, 0x16, 0x1f,
+ 0x19, 0x10, 0x1a, 0x13, 0x11, 0x14, 0x12, 0x17, 0x18, 0x12, 0x15, 0x1c,
+ 0x1b, 0x11, 0x1c, 0x1a, 0x14, 0x1e, 0x1f, 0x19, 0x1a, 0x13, 0x16, 0x1f,
+ 0x19, 0x10, 0x10, 0x16, 0x1c, 0x1a, 0x1b, 0x11, 0x17, 0x1d, 0x1d, 0x18,
+ 0x1f, 0x19, 0x11, 0x14, 0x13, 0x15, 0x1e, 0x1b, 0x15, 0x1c, 0x12, 0x17,
+ 0x18, 0x12, 0x14, 0x1e, 0x67, 0x6d, 0x6d, 0x68, 0x6e, 0x6b, 0x63, 0x65,
+ 0x60, 0x66, 0x66, 0x6f, 0x69, 0x60, 0x6a, 0x63, 0x61, 0x64, 0x62, 0x67,
+ 0x68, 0x62, 0x65, 0x6c, 0x6b, 0x61, 0x6c, 0x6a, 0x64, 0x6e, 0x6f, 0x69,
+ 0x6a, 0x63, 0x66, 0x6f, 0x69, 0x60, 0x60, 0x66, 0x6c, 0x6a, 0x6b, 0x61,
+ 0x67, 0x6d, 0x6d, 0x68, 0x6f, 0x69, 0x61, 0x64, 0x63, 0x65, 0x6e, 0x6b,
+ 0x65, 0x6c, 0x62, 0x67, 0x68, 0x62, 0x64, 0x6e, 0xa7, 0xad, 0xad, 0xa8,
+ 0xae, 0xab, 0xa3, 0xa5, 0xa0, 0xa6, 0xa6, 0xaf, 0xa9, 0xa0, 0xaa, 0xa3,
+ 0xa1, 0xa4, 0xa2, 0xa7, 0xa8, 0xa2, 0xa5, 0xac, 0xab, 0xa1, 0xac, 0xaa,
+ 0xa4, 0xae, 0xaf, 0xa9, 0xaa, 0xa3, 0xa6, 0xaf, 0xa9, 0xa0, 0xa0, 0xa6,
+ 0xac, 0xaa, 0xab, 0xa1, 0xa7, 0xad, 0xad, 0xa8, 0xaf, 0xa9, 0xa1, 0xa4,
+ 0xa3, 0xa5, 0xae, 0xab, 0xa5, 0xac, 0xa2, 0xa7, 0xa8, 0xa2, 0xa4, 0xae,
+ 0x47, 0x4d, 0x4d, 0x48, 0x4e, 0x4b, 0x43, 0x45, 0x40, 0x46, 0x46, 0x4f,
+ 0x49, 0x40, 0x4a, 0x43, 0x41, 0x44, 0x42, 0x47, 0x48, 0x42, 0x45, 0x4c,
+ 0x4b, 0x41, 0x4c, 0x4a, 0x44, 0x4e, 0x4f, 0x49, 0x4a, 0x43, 0x46, 0x4f,
+ 0x49, 0x40, 0x40, 0x46, 0x4c, 0x4a, 0x4b, 0x41, 0x47, 0x4d, 0x4d, 0x48,
+ 0x4f, 0x49, 0x41, 0x44, 0x43, 0x45, 0x4e, 0x4b, 0x45, 0x4c, 0x42, 0x47,
+ 0x48, 0x42, 0x44, 0x4e, 0xd7, 0xdd, 0xdd, 0xd8, 0xde, 0xdb, 0xd3, 0xd5,
+ 0xd0, 0xd6, 0xd6, 0xdf, 0xd9, 0xd0, 0xda, 0xd3, 0xd1, 0xd4, 0xd2, 0xd7,
+ 0xd8, 0xd2, 0xd5, 0xdc, 0xdb, 0xd1, 0xdc, 0xda, 0xd4, 0xde, 0xdf, 0xd9,
+ 0xda, 0xd3, 0xd6, 0xdf, 0xd9, 0xd0, 0xd0, 0xd6, 0xdc, 0xda, 0xdb, 0xd1,
+ 0xd7, 0xdd, 0xdd, 0xd8, 0xdf, 0xd9, 0xd1, 0xd4, 0xd3, 0xd5, 0xde, 0xdb,
+ 0xd5, 0xdc, 0xd2, 0xd7, 0xd8, 0xd2, 0xd4, 0xde, 0x97, 0x9d, 0x9d, 0x98,
+ 0x9e, 0x9b, 0x93, 0x95, 0x90, 0x96, 0x96, 0x9f, 0x99, 0x90, 0x9a, 0x93,
+ 0x91, 0x94, 0x92, 0x97, 0x98, 0x92, 0x95, 0x9c, 0x9b, 0x91, 0x9c, 0x9a,
+ 0x94, 0x9e, 0x9f, 0x99, 0x9a, 0x93, 0x96, 0x9f, 0x99, 0x90, 0x90, 0x96,
+ 0x9c, 0x9a, 0x9b, 0x91, 0x97, 0x9d, 0x9d, 0x98, 0x9f, 0x99, 0x91, 0x94,
+ 0x93, 0x95, 0x9e, 0x9b, 0x95, 0x9c, 0x92, 0x97, 0x98, 0x92, 0x94, 0x9e,
+ 0x07, 0x0d, 0x0d, 0x08, 0x0e, 0x0b, 0x03, 0x05, 0x00, 0x06, 0x06, 0x0f,
+ 0x09, 0x00, 0x0a, 0x03, 0x01, 0x04, 0x02, 0x07, 0x08, 0x02, 0x05, 0x0c,
+ 0x0b, 0x01, 0x0c, 0x0a, 0x04, 0x0e, 0x0f, 0x09, 0x0a, 0x03, 0x06, 0x0f,
+ 0x09, 0x00, 0x00, 0x06, 0x0c, 0x0a, 0x0b, 0x01, 0x07, 0x0d, 0x0d, 0x08,
+ 0x0f, 0x09, 0x01, 0x04, 0x03, 0x05, 0x0e, 0x0b, 0x05, 0x0c, 0x02, 0x07,
+ 0x08, 0x02, 0x04, 0x0e, 0x87, 0x8d, 0x8d, 0x88, 0x8e, 0x8b, 0x83, 0x85,
+ 0x80, 0x86, 0x86, 0x8f, 0x89, 0x80, 0x8a, 0x83, 0x81, 0x84, 0x82, 0x87,
+ 0x88, 0x82, 0x85, 0x8c, 0x8b, 0x81, 0x8c, 0x8a, 0x84, 0x8e, 0x8f, 0x89,
+ 0x8a, 0x83, 0x86, 0x8f, 0x89, 0x80, 0x80, 0x86, 0x8c, 0x8a, 0x8b, 0x81,
+ 0x87, 0x8d, 0x8d, 0x88, 0x8f, 0x89, 0x81, 0x84, 0x83, 0x85, 0x8e, 0x8b,
+ 0x85, 0x8c, 0x82, 0x87, 0x88, 0x82, 0x84, 0x8e, 0x67, 0x6d, 0x6d, 0x68,
+ 0x6e, 0x6b, 0x63, 0x65, 0x60, 0x66, 0x66, 0x6f, 0x69, 0x60, 0x6a, 0x63,
+ 0x61, 0x64, 0x62, 0x67, 0x68, 0x62, 0x65, 0x6c, 0x6b, 0x61, 0x6c, 0x6a,
+ 0x64, 0x6e, 0x6f, 0x69, 0x6a, 0x63, 0x66, 0x6f, 0x69, 0x60, 0x60, 0x66,
+ 0x6c, 0x6a, 0x6b, 0x61, 0x67, 0x6d, 0x6d, 0x68, 0x6f, 0x69, 0x61, 0x64,
+ 0x63, 0x65, 0x6e, 0x6b, 0x65, 0x6c, 0x62, 0x67, 0x68, 0x62, 0x64, 0x6e,
+ 0xf7, 0xfd, 0xfd, 0xf8, 0xfe, 0xfb, 0xf3, 0xf5, 0xf0, 0xf6, 0xf6, 0xff,
+ 0xf9, 0xf0, 0xfa, 0xf3, 0xf1, 0xf4, 0xf2, 0xf7, 0xf8, 0xf2, 0xf5, 0xfc,
+ 0xfb, 0xf1, 0xfc, 0xfa, 0xf4, 0xfe, 0xff, 0xf9, 0xfa, 0xf3, 0xf6, 0xff,
+ 0xf9, 0xf0, 0xf0, 0xf6, 0xfc, 0xfa, 0xfb, 0xf1, 0xf7, 0xfd, 0xfd, 0xf8,
+ 0xff, 0xf9, 0xf1, 0xf4, 0xf3, 0xf5, 0xfe, 0xfb, 0xf5, 0xfc, 0xf2, 0xf7,
+ 0xf8, 0xf2, 0xf4, 0xfe, 0x97, 0x9d, 0x9d, 0x98, 0x9e, 0x9b, 0x93, 0x95,
+ 0x90, 0x96, 0x96, 0x9f, 0x99, 0x90, 0x9a, 0x93, 0x91, 0x94, 0x92, 0x97,
+ 0x98, 0x92, 0x95, 0x9c, 0x9b, 0x91, 0x9c, 0x9a, 0x94, 0x9e, 0x9f, 0x99,
+ 0x9a, 0x93, 0x96, 0x9f, 0x99, 0x90, 0x90, 0x96, 0x9c, 0x9a, 0x9b, 0x91,
+ 0x97, 0x9d, 0x9d, 0x98, 0x9f, 0x99, 0x91, 0x94, 0x93, 0x95, 0x9e, 0x9b,
+ 0x95, 0x9c, 0x92, 0x97, 0x98, 0x92, 0x94, 0x9e, 0x37, 0x3d, 0x3d, 0x38,
+ 0x3e, 0x3b, 0x33, 0x35, 0x30, 0x36, 0x36, 0x3f, 0x39, 0x30, 0x3a, 0x33,
+ 0x31, 0x34, 0x32, 0x37, 0x38, 0x32, 0x35, 0x3c, 0x3b, 0x31, 0x3c, 0x3a,
+ 0x34, 0x3e, 0x3f, 0x39, 0x3a, 0x33, 0x36, 0x3f, 0x39, 0x30, 0x30, 0x36,
+ 0x3c, 0x3a, 0x3b, 0x31, 0x37, 0x3d, 0x3d, 0x38, 0x3f, 0x39, 0x31, 0x34,
+ 0x33, 0x35, 0x3e, 0x3b, 0x35, 0x3c, 0x32, 0x37, 0x38, 0x32, 0x34, 0x3e,
+ 0x87, 0x8d, 0x8d, 0x88, 0x8e, 0x8b, 0x83, 0x85, 0x80, 0x86, 0x86, 0x8f,
+ 0x89, 0x80, 0x8a, 0x83, 0x81, 0x84, 0x82, 0x87, 0x88, 0x82, 0x85, 0x8c,
+ 0x8b, 0x81, 0x8c, 0x8a, 0x84, 0x8e, 0x8f, 0x89, 0x8a, 0x83, 0x86, 0x8f,
+ 0x89, 0x80, 0x80, 0x86, 0x8c, 0x8a, 0x8b, 0x81, 0x87, 0x8d, 0x8d, 0x88,
+ 0x8f, 0x89, 0x81, 0x84, 0x83, 0x85, 0x8e, 0x8b, 0x85, 0x8c, 0x82, 0x87,
+ 0x88, 0x82, 0x84, 0x8e, 0x07, 0x0d, 0x0d, 0x08, 0x0e, 0x0b, 0x03, 0x05,
+ 0x00, 0x06, 0x06, 0x0f, 0x09, 0x00, 0x0a, 0x03, 0x01, 0x04, 0x02, 0x07,
+ 0x08, 0x02, 0x05, 0x0c, 0x0b, 0x01, 0x0c, 0x0a, 0x04, 0x0e, 0x0f, 0x09,
+ 0x0a, 0x03, 0x06, 0x0f, 0x09, 0x00, 0x00, 0x06, 0x0c, 0x0a, 0x0b, 0x01,
+ 0x07, 0x0d, 0x0d, 0x08, 0x0f, 0x09, 0x01, 0x04, 0x03, 0x05, 0x0e, 0x0b,
+ 0x05, 0x0c, 0x02, 0x07, 0x08, 0x02, 0x04, 0x0e, 0x77, 0x7d, 0x7d, 0x78,
+ 0x7e, 0x7b, 0x73, 0x75, 0x70, 0x76, 0x76, 0x7f, 0x79, 0x70, 0x7a, 0x73,
+ 0x71, 0x74, 0x72, 0x77, 0x78, 0x72, 0x75, 0x7c, 0x7b, 0x71, 0x7c, 0x7a,
+ 0x74, 0x7e, 0x7f, 0x79, 0x7a, 0x73, 0x76, 0x7f, 0x79, 0x70, 0x70, 0x76,
+ 0x7c, 0x7a, 0x7b, 0x71, 0x77, 0x7d, 0x7d, 0x78, 0x7f, 0x79, 0x71, 0x74,
+ 0x73, 0x75, 0x7e, 0x7b, 0x75, 0x7c, 0x72, 0x77, 0x78, 0x72, 0x74, 0x7e,
+ 0xb7, 0xbd, 0xbd, 0xb8, 0xbe, 0xbb, 0xb3, 0xb5, 0xb0, 0xb6, 0xb6, 0xbf,
+ 0xb9, 0xb0, 0xba, 0xb3, 0xb1, 0xb4, 0xb2, 0xb7, 0xb8, 0xb2, 0xb5, 0xbc,
+ 0xbb, 0xb1, 0xbc, 0xba, 0xb4, 0xbe, 0xbf, 0xb9, 0xba, 0xb3, 0xb6, 0xbf,
+ 0xb9, 0xb0, 0xb0, 0xb6, 0xbc, 0xba, 0xbb, 0xb1, 0xb7, 0xbd, 0xbd, 0xb8,
+ 0xbf, 0xb9, 0xb1, 0xb4, 0xb3, 0xb5, 0xbe, 0xbb, 0xb5, 0xbc, 0xb2, 0xb7,
+ 0xb8, 0xb2, 0xb4, 0xbe, 0x47, 0x4d, 0x4d, 0x48, 0x4e, 0x4b, 0x43, 0x45,
+ 0x40, 0x46, 0x46, 0x4f, 0x49, 0x40, 0x4a, 0x43, 0x41, 0x44, 0x42, 0x47,
+ 0x48, 0x42, 0x45, 0x4c, 0x4b, 0x41, 0x4c, 0x4a, 0x44, 0x4e, 0x4f, 0x49,
+ 0x4a, 0x43, 0x46, 0x4f, 0x49, 0x40, 0x40, 0x46, 0x4c, 0x4a, 0x4b, 0x41,
+ 0x47, 0x4d, 0x4d, 0x48, 0x4f, 0x49, 0x41, 0x44, 0x43, 0x45, 0x4e, 0x4b,
+ 0x45, 0x4c, 0x42, 0x47, 0x48, 0x42, 0x44, 0x4e, 0x17, 0x1d, 0x1d, 0x18,
+ 0x1e, 0x1b, 0x13, 0x15, 0x10, 0x16, 0x16, 0x1f, 0x19, 0x10, 0x1a, 0x13,
+ 0x11, 0x14, 0x12, 0x17, 0x18, 0x12, 0x15, 0x1c, 0x1b, 0x11, 0x1c, 0x1a,
+ 0x14, 0x1e, 0x1f, 0x19, 0x1a, 0x13, 0x16, 0x1f, 0x19, 0x10, 0x10, 0x16,
+ 0x1c, 0x1a, 0x1b, 0x11, 0x17, 0x1d, 0x1d, 0x18, 0x1f, 0x19, 0x11, 0x14,
+ 0x13, 0x15, 0x1e, 0x1b, 0x15, 0x1c, 0x12, 0x17, 0x18, 0x12, 0x14, 0x1e,
+ 0xf7, 0xfd, 0xfd, 0xf8, 0xfe, 0xfb, 0xf3, 0xf5, 0xf0, 0xf6, 0xf6, 0xff,
+ 0xf9, 0xf0, 0xfa, 0xf3, 0xf1, 0xf4, 0xf2, 0xf7, 0xf8, 0xf2, 0xf5, 0xfc,
+ 0xfb, 0xf1, 0xfc, 0xfa, 0xf4, 0xfe, 0xff, 0xf9, 0xfa, 0xf3, 0xf6, 0xff,
+ 0xf9, 0xf0, 0xf0, 0xf6, 0xfc, 0xfa, 0xfb, 0xf1, 0xf7, 0xfd, 0xfd, 0xf8,
+ 0xff, 0xf9, 0xf1, 0xf4, 0xf3, 0xf5, 0xfe, 0xfb, 0xf5, 0xfc, 0xf2, 0xf7,
+ 0xf8, 0xf2, 0xf4, 0xfe, 0x27, 0x2d, 0x2d, 0x28, 0x2e, 0x2b, 0x23, 0x25,
+ 0x20, 0x26, 0x26, 0x2f, 0x29, 0x20, 0x2a, 0x23, 0x21, 0x24, 0x22, 0x27,
+ 0x28, 0x22, 0x25, 0x2c, 0x2b, 0x21, 0x2c, 0x2a, 0x24, 0x2e, 0x2f, 0x29,
+ 0x2a, 0x23, 0x26, 0x2f, 0x29, 0x20, 0x20, 0x26, 0x2c, 0x2a, 0x2b, 0x21,
+ 0x27, 0x2d, 0x2d, 0x28, 0x2f, 0x29, 0x21, 0x24, 0x23, 0x25, 0x2e, 0x2b,
+ 0x25, 0x2c, 0x22, 0x27, 0x28, 0x22, 0x24, 0x2e, 0xe7, 0xed, 0xed, 0xe8,
+ 0xee, 0xeb, 0xe3, 0xe5, 0xe0, 0xe6, 0xe6, 0xef, 0xe9, 0xe0, 0xea, 0xe3,
+ 0xe1, 0xe4, 0xe2, 0xe7, 0xe8, 0xe2, 0xe5, 0xec, 0xeb, 0xe1, 0xec, 0xea,
+ 0xe4, 0xee, 0xef, 0xe9, 0xea, 0xe3, 0xe6, 0xef, 0xe9, 0xe0, 0xe0, 0xe6,
+ 0xec, 0xea, 0xeb, 0xe1, 0xe7, 0xed, 0xed, 0xe8, 0xef, 0xe9, 0xe1, 0xe4,
+ 0xe3, 0xe5, 0xee, 0xeb, 0xe5, 0xec, 0xe2, 0xe7, 0xe8, 0xe2, 0xe4, 0xee,
+ 0xc7, 0xcd, 0xcd, 0xc8, 0xce, 0xcb, 0xc3, 0xc5, 0xc0, 0xc6, 0xc6, 0xcf,
+ 0xc9, 0xc0, 0xca, 0xc3, 0xc1, 0xc4, 0xc2, 0xc7, 0xc8, 0xc2, 0xc5, 0xcc,
+ 0xcb, 0xc1, 0xcc, 0xca, 0xc4, 0xce, 0xcf, 0xc9, 0xca, 0xc3, 0xc6, 0xcf,
+ 0xc9, 0xc0, 0xc0, 0xc6, 0xcc, 0xca, 0xcb, 0xc1, 0xc7, 0xcd, 0xcd, 0xc8,
+ 0xcf, 0xc9, 0xc1, 0xc4, 0xc3, 0xc5, 0xce, 0xcb, 0xc5, 0xcc, 0xc2, 0xc7,
+ 0xc8, 0xc2, 0xc4, 0xce, 0x37, 0x3d, 0x3d, 0x38, 0x3e, 0x3b, 0x33, 0x35,
+ 0x30, 0x36, 0x36, 0x3f, 0x39, 0x30, 0x3a, 0x33, 0x31, 0x34, 0x32, 0x37,
+ 0x38, 0x32, 0x35, 0x3c, 0x3b, 0x31, 0x3c, 0x3a, 0x34, 0x3e, 0x3f, 0x39,
+ 0x3a, 0x33, 0x36, 0x3f, 0x39, 0x30, 0x30, 0x36, 0x3c, 0x3a, 0x3b, 0x31,
+ 0x37, 0x3d, 0x3d, 0x38, 0x3f, 0x39, 0x31, 0x34, 0x33, 0x35, 0x3e, 0x3b,
+ 0x35, 0x3c, 0x32, 0x37, 0x38, 0x32, 0x34, 0x3e, 0x57, 0x5d, 0x5d, 0x58,
+ 0x5e, 0x5b, 0x53, 0x55, 0x50, 0x56, 0x56, 0x5f, 0x59, 0x50, 0x5a, 0x53,
+ 0x51, 0x54, 0x52, 0x57, 0x58, 0x52, 0x55, 0x5c, 0x5b, 0x51, 0x5c, 0x5a,
+ 0x54, 0x5e, 0x5f, 0x59, 0x5a, 0x53, 0x56, 0x5f, 0x59, 0x50, 0x50, 0x56,
+ 0x5c, 0x5a, 0x5b, 0x51, 0x57, 0x5d, 0x5d, 0x58, 0x5f, 0x59, 0x51, 0x54,
+ 0x53, 0x55, 0x5e, 0x5b, 0x55, 0x5c, 0x52, 0x57, 0x58, 0x52, 0x54, 0x5e,
+ 0xb7, 0xbd, 0xbd, 0xb8, 0xbe, 0xbb, 0xb3, 0xb5, 0xb0, 0xb6, 0xb6, 0xbf,
+ 0xb9, 0xb0, 0xba, 0xb3, 0xb1, 0xb4, 0xb2, 0xb7, 0xb8, 0xb2, 0xb5, 0xbc,
+ 0xbb, 0xb1, 0xbc, 0xba, 0xb4, 0xbe, 0xbf, 0xb9, 0xba, 0xb3, 0xb6, 0xbf,
+ 0xb9, 0xb0, 0xb0, 0xb6, 0xbc, 0xba, 0xbb, 0xb1, 0xb7, 0xbd, 0xbd, 0xb8,
+ 0xbf, 0xb9, 0xb1, 0xb4, 0xb3, 0xb5, 0xbe, 0xbb, 0xb5, 0xbc, 0xb2, 0xb7,
+ 0xb8, 0xb2, 0xb4, 0xbe, 0xa7, 0xad, 0xad, 0xa8, 0xae, 0xab, 0xa3, 0xa5,
+ 0xa0, 0xa6, 0xa6, 0xaf, 0xa9, 0xa0, 0xaa, 0xa3, 0xa1, 0xa4, 0xa2, 0xa7,
+ 0xa8, 0xa2, 0xa5, 0xac, 0xab, 0xa1, 0xac, 0xaa, 0xa4, 0xae, 0xaf, 0xa9,
+ 0xaa, 0xa3, 0xa6, 0xaf, 0xa9, 0xa0, 0xa0, 0xa6, 0xac, 0xaa, 0xab, 0xa1,
+ 0xa7, 0xad, 0xad, 0xa8, 0xaf, 0xa9, 0xa1, 0xa4, 0xa3, 0xa5, 0xae, 0xab,
+ 0xa5, 0xac, 0xa2, 0xa7, 0xa8, 0xa2, 0xa4, 0xae, 0x57, 0x5d, 0x5d, 0x58,
+ 0x5e, 0x5b, 0x53, 0x55, 0x50, 0x56, 0x56, 0x5f, 0x59, 0x50, 0x5a, 0x53,
+ 0x51, 0x54, 0x52, 0x57, 0x58, 0x52, 0x55, 0x5c, 0x5b, 0x51, 0x5c, 0x5a,
+ 0x54, 0x5e, 0x5f, 0x59, 0x5a, 0x53, 0x56, 0x5f, 0x59, 0x50, 0x50, 0x56,
+ 0x5c, 0x5a, 0x5b, 0x51, 0x57, 0x5d, 0x5d, 0x58, 0x5f, 0x59, 0x51, 0x54,
+ 0x53, 0x55, 0x5e, 0x5b, 0x55, 0x5c, 0x52, 0x57, 0x58, 0x52, 0x54, 0x5e,
+ 0xe7, 0xed, 0xed, 0xe8, 0xee, 0xeb, 0xe3, 0xe5, 0xe0, 0xe6, 0xe6, 0xef,
+ 0xe9, 0xe0, 0xea, 0xe3, 0xe1, 0xe4, 0xe2, 0xe7, 0xe8, 0xe2, 0xe5, 0xec,
+ 0xeb, 0xe1, 0xec, 0xea, 0xe4, 0xee, 0xef, 0xe9, 0xea, 0xe3, 0xe6, 0xef,
+ 0xe9, 0xe0, 0xe0, 0xe6, 0xec, 0xea, 0xeb, 0xe1, 0xe7, 0xed, 0xed, 0xe8,
+ 0xef, 0xe9, 0xe1, 0xe4, 0xe3, 0xe5, 0xee, 0xeb, 0xe5, 0xec, 0xe2, 0xe7,
+ 0xe8, 0xe2, 0xe4, 0xee, 0x27, 0x2d, 0x2d, 0x28, 0x2e, 0x2b, 0x23, 0x25,
+ 0x20, 0x26, 0x26, 0x2f, 0x29, 0x20, 0x2a, 0x23, 0x21, 0x24, 0x22, 0x27,
+ 0x28, 0x22, 0x25, 0x2c, 0x2b, 0x21, 0x2c, 0x2a, 0x24, 0x2e, 0x2f, 0x29,
+ 0x2a, 0x23, 0x26, 0x2f, 0x29, 0x20, 0x20, 0x26, 0x2c, 0x2a, 0x2b, 0x21,
+ 0x27, 0x2d, 0x2d, 0x28, 0x2f, 0x29, 0x21, 0x24, 0x23, 0x25, 0x2e, 0x2b,
+ 0x25, 0x2c, 0x22, 0x27, 0x28, 0x22, 0x24, 0x2e, 0x77, 0x7d, 0x7d, 0x78,
+ 0x7e, 0x7b, 0x73, 0x75, 0x70, 0x76, 0x76, 0x7f, 0x79, 0x70, 0x7a, 0x73,
+ 0x71, 0x74, 0x72, 0x77, 0x78, 0x72, 0x75, 0x7c, 0x7b, 0x71, 0x7c, 0x7a,
+ 0x74, 0x7e, 0x7f, 0x79, 0x7a, 0x73, 0x76, 0x7f, 0x79, 0x70, 0x70, 0x76,
+ 0x7c, 0x7a, 0x7b, 0x71, 0x77, 0x7d, 0x7d, 0x78, 0x7f, 0x79, 0x71, 0x74,
+ 0x73, 0x75, 0x7e, 0x7b, 0x75, 0x7c, 0x72, 0x77, 0x78, 0x72, 0x74, 0x7e,
+ 0xc7, 0xcd, 0xcd, 0xc8, 0xce, 0xcb, 0xc3, 0xc5, 0xc0, 0xc6, 0xc6, 0xcf,
+ 0xc9, 0xc0, 0xca, 0xc3, 0xc1, 0xc4, 0xc2, 0xc7, 0xc8, 0xc2, 0xc5, 0xcc,
+ 0xcb, 0xc1, 0xcc, 0xca, 0xc4, 0xce, 0xcf, 0xc9, 0xca, 0xc3, 0xc6, 0xcf,
+ 0xc9, 0xc0, 0xc0, 0xc6, 0xcc, 0xca, 0xcb, 0xc1, 0xc7, 0xcd, 0xcd, 0xc8,
+ 0xcf, 0xc9, 0xc1, 0xc4, 0xc3, 0xc5, 0xce, 0xcb, 0xc5, 0xcc, 0xc2, 0xc7,
+ 0xc8, 0xc2, 0xc4, 0xce,
+ },
+ {
+ 0x2c, 0x2a, 0x21, 0x2f, 0x2a, 0x24, 0x2f, 0x22, 0x29, 0x27, 0x22, 0x2c,
+ 0x26, 0x29, 0x28, 0x25, 0x20, 0x26, 0x2d, 0x21, 0x23, 0x2d, 0x24, 0x2e,
+ 0x2e, 0x20, 0x27, 0x2b, 0x25, 0x23, 0x2b, 0x28, 0x29, 0x24, 0x2e, 0x23,
+ 0x2f, 0x22, 0x25, 0x2c, 0x22, 0x29, 0x28, 0x25, 0x2c, 0x2f, 0x23, 0x2a,
+ 0x27, 0x2b, 0x20, 0x2e, 0x24, 0x21, 0x2a, 0x27, 0x21, 0x26, 0x2d, 0x20,
+ 0x2b, 0x28, 0x26, 0x2d, 0xec, 0xea, 0xe1, 0xef, 0xea, 0xe4, 0xef, 0xe2,
+ 0xe9, 0xe7, 0xe2, 0xec, 0xe6, 0xe9, 0xe8, 0xe5, 0xe0, 0xe6, 0xed, 0xe1,
+ 0xe3, 0xed, 0xe4, 0xee, 0xee, 0xe0, 0xe7, 0xeb, 0xe5, 0xe3, 0xeb, 0xe8,
+ 0xe9, 0xe4, 0xee, 0xe3, 0xef, 0xe2, 0xe5, 0xec, 0xe2, 0xe9, 0xe8, 0xe5,
+ 0xec, 0xef, 0xe3, 0xea, 0xe7, 0xeb, 0xe0, 0xee, 0xe4, 0xe1, 0xea, 0xe7,
+ 0xe1, 0xe6, 0xed, 0xe0, 0xeb, 0xe8, 0xe6, 0xed, 0xcc, 0xca, 0xc1, 0xcf,
+ 0xca, 0xc4, 0xcf, 0xc2, 0xc9, 0xc7, 0xc2, 0xcc, 0xc6, 0xc9, 0xc8, 0xc5,
+ 0xc0, 0xc6, 0xcd, 0xc1, 0xc3, 0xcd, 0xc4, 0xce, 0xce, 0xc0, 0xc7, 0xcb,
+ 0xc5, 0xc3, 0xcb, 0xc8, 0xc9, 0xc4, 0xce, 0xc3, 0xcf, 0xc2, 0xc5, 0xcc,
+ 0xc2, 0xc9, 0xc8, 0xc5, 0xcc, 0xcf, 0xc3, 0xca, 0xc7, 0xcb, 0xc0, 0xce,
+ 0xc4, 0xc1, 0xca, 0xc7, 0xc1, 0xc6, 0xcd, 0xc0, 0xcb, 0xc8, 0xc6, 0xcd,
+ 0xbc, 0xba, 0xb1, 0xbf, 0xba, 0xb4, 0xbf, 0xb2, 0xb9, 0xb7, 0xb2, 0xbc,
+ 0xb6, 0xb9, 0xb8, 0xb5, 0xb0, 0xb6, 0xbd, 0xb1, 0xb3, 0xbd, 0xb4, 0xbe,
+ 0xbe, 0xb0, 0xb7, 0xbb, 0xb5, 0xb3, 0xbb, 0xb8, 0xb9, 0xb4, 0xbe, 0xb3,
+ 0xbf, 0xb2, 0xb5, 0xbc, 0xb2, 0xb9, 0xb8, 0xb5, 0xbc, 0xbf, 0xb3, 0xba,
+ 0xb7, 0xbb, 0xb0, 0xbe, 0xb4, 0xb1, 0xba, 0xb7, 0xb1, 0xb6, 0xbd, 0xb0,
+ 0xbb, 0xb8, 0xb6, 0xbd, 0x4c, 0x4a, 0x41, 0x4f, 0x4a, 0x44, 0x4f, 0x42,
+ 0x49, 0x47, 0x42, 0x4c, 0x46, 0x49, 0x48, 0x45, 0x40, 0x46, 0x4d, 0x41,
+ 0x43, 0x4d, 0x44, 0x4e, 0x4e, 0x40, 0x47, 0x4b, 0x45, 0x43, 0x4b, 0x48,
+ 0x49, 0x44, 0x4e, 0x43, 0x4f, 0x42, 0x45, 0x4c, 0x42, 0x49, 0x48, 0x45,
+ 0x4c, 0x4f, 0x43, 0x4a, 0x47, 0x4b, 0x40, 0x4e, 0x44, 0x41, 0x4a, 0x47,
+ 0x41, 0x46, 0x4d, 0x40, 0x4b, 0x48, 0x46, 0x4d, 0x2c, 0x2a, 0x21, 0x2f,
+ 0x2a, 0x24, 0x2f, 0x22, 0x29, 0x27, 0x22, 0x2c, 0x26, 0x29, 0x28, 0x25,
+ 0x20, 0x26, 0x2d, 0x21, 0x23, 0x2d, 0x24, 0x2e, 0x2e, 0x20, 0x27, 0x2b,
+ 0x25, 0x23, 0x2b, 0x28, 0x29, 0x24, 0x2e, 0x23, 0x2f, 0x22, 0x25, 0x2c,
+ 0x22, 0x29, 0x28, 0x25, 0x2c, 0x2f, 0x23, 0x2a, 0x27, 0x2b, 0x20, 0x2e,
+ 0x24, 0x21, 0x2a, 0x27, 0x21, 0x26, 0x2d, 0x20, 0x2b, 0x28, 0x26, 0x2d,
+ 0x1c, 0x1a, 0x11, 0x1f, 0x1a, 0x14, 0x1f, 0x12, 0x19, 0x17, 0x12, 0x1c,
+ 0x16, 0x19, 0x18, 0x15, 0x10, 0x16, 0x1d, 0x11, 0x13, 0x1d, 0x14, 0x1e,
+ 0x1e, 0x10, 0x17, 0x1b, 0x15, 0x13, 0x1b, 0x18, 0x19, 0x14, 0x1e, 0x13,
+ 0x1f, 0x12, 0x15, 0x1c, 0x12, 0x19, 0x18, 0x15, 0x1c, 0x1f, 0x13, 0x1a,
+ 0x17, 0x1b, 0x10, 0x1e, 0x14, 0x11, 0x1a, 0x17, 0x11, 0x16, 0x1d, 0x10,
+ 0x1b, 0x18, 0x16, 0x1d, 0xcc, 0xca, 0xc1, 0xcf, 0xca, 0xc4, 0xcf, 0xc2,
+ 0xc9, 0xc7, 0xc2, 0xcc, 0xc6, 0xc9, 0xc8, 0xc5, 0xc0, 0xc6, 0xcd, 0xc1,
+ 0xc3, 0xcd, 0xc4, 0xce, 0xce, 0xc0, 0xc7, 0xcb, 0xc5, 0xc3, 0xcb, 0xc8,
+ 0xc9, 0xc4, 0xce, 0xc3, 0xcf, 0xc2, 0xc5, 0xcc, 0xc2, 0xc9, 0xc8, 0xc5,
+ 0xcc, 0xcf, 0xc3, 0xca, 0xc7, 0xcb, 0xc0, 0xce, 0xc4, 0xc1, 0xca, 0xc7,
+ 0xc1, 0xc6, 0xcd, 0xc0, 0xcb, 0xc8, 0xc6, 0xcd, 0x7c, 0x7a, 0x71, 0x7f,
+ 0x7a, 0x74, 0x7f, 0x72, 0x79, 0x77, 0x72, 0x7c, 0x76, 0x79, 0x78, 0x75,
+ 0x70, 0x76, 0x7d, 0x71, 0x73, 0x7d, 0x74, 0x7e, 0x7e, 0x70, 0x77, 0x7b,
+ 0x75, 0x73, 0x7b, 0x78, 0x79, 0x74, 0x7e, 0x73, 0x7f, 0x72, 0x75, 0x7c,
+ 0x72, 0x79, 0x78, 0x75, 0x7c, 0x7f, 0x73, 0x7a, 0x77, 0x7b, 0x70, 0x7e,
+ 0x74, 0x71, 0x7a, 0x77, 0x71, 0x76, 0x7d, 0x70, 0x7b, 0x78, 0x76, 0x7d,
+ 0x4c, 0x4a, 0x41, 0x4f, 0x4a, 0x44, 0x4f, 0x42, 0x49, 0x47, 0x42, 0x4c,
+ 0x46, 0x49, 0x48, 0x45, 0x40, 0x46, 0x4d, 0x41, 0x43, 0x4d, 0x44, 0x4e,
+ 0x4e, 0x40, 0x47, 0x4b, 0x45, 0x43, 0x4b, 0x48, 0x49, 0x44, 0x4e, 0x43,
+ 0x4f, 0x42, 0x45, 0x4c, 0x42, 0x49, 0x48, 0x45, 0x4c, 0x4f, 0x43, 0x4a,
+ 0x47, 0x4b, 0x40, 0x4e, 0x44, 0x41, 0x4a, 0x47, 0x41, 0x46, 0x4d, 0x40,
+ 0x4b, 0x48, 0x46, 0x4d, 0xac, 0xaa, 0xa1, 0xaf, 0xaa, 0xa4, 0xaf, 0xa2,
+ 0xa9, 0xa7, 0xa2, 0xac, 0xa6, 0xa9, 0xa8, 0xa5, 0xa0, 0xa6, 0xad, 0xa1,
+ 0xa3, 0xad, 0xa4, 0xae, 0xae, 0xa0, 0xa7, 0xab, 0xa5, 0xa3, 0xab, 0xa8,
+ 0xa9, 0xa4, 0xae, 0xa3, 0xaf, 0xa2, 0xa5, 0xac, 0xa2, 0xa9, 0xa8, 0xa5,
+ 0xac, 0xaf, 0xa3, 0xaa, 0xa7, 0xab, 0xa0, 0xae, 0xa4, 0xa1, 0xaa, 0xa7,
+ 0xa1, 0xa6, 0xad, 0xa0, 0xab, 0xa8, 0xa6, 0xad, 0x7c, 0x7a, 0x71, 0x7f,
+ 0x7a, 0x74, 0x7f, 0x72, 0x79, 0x77, 0x72, 0x7c, 0x76, 0x79, 0x78, 0x75,
+ 0x70, 0x76, 0x7d, 0x71, 0x73, 0x7d, 0x74, 0x7e, 0x7e, 0x70, 0x77, 0x7b,
+ 0x75, 0x73, 0x7b, 0x78, 0x79, 0x74, 0x7e, 0x73, 0x7f, 0x72, 0x75, 0x7c,
+ 0x72, 0x79, 0x78, 0x75, 0x7c, 0x7f, 0x73, 0x7a, 0x77, 0x7b, 0x70, 0x7e,
+ 0x74, 0x71, 0x7a, 0x77, 0x71, 0x76, 0x7d, 0x70, 0x7b, 0x78, 0x76, 0x7d,
+ 0xbc, 0xba, 0xb1, 0xbf, 0xba, 0xb4, 0xbf, 0xb2, 0xb9, 0xb7, 0xb2, 0xbc,
+ 0xb6, 0xb9, 0xb8, 0xb5, 0xb0, 0xb6, 0xbd, 0xb1, 0xb3, 0xbd, 0xb4, 0xbe,
+ 0xbe, 0xb0, 0xb7, 0xbb, 0xb5, 0xb3, 0xbb, 0xb8, 0xb9, 0xb4, 0xbe, 0xb3,
+ 0xbf, 0xb2, 0xb5, 0xbc, 0xb2, 0xb9, 0xb8, 0xb5, 0xbc, 0xbf, 0xb3, 0xba,
+ 0xb7, 0xbb, 0xb0, 0xbe, 0xb4, 0xb1, 0xba, 0xb7, 0xb1, 0xb6, 0xbd, 0xb0,
+ 0xbb, 0xb8, 0xb6, 0xbd, 0xdc, 0xda, 0xd1, 0xdf, 0xda, 0xd4, 0xdf, 0xd2,
+ 0xd9, 0xd7, 0xd2, 0xdc, 0xd6, 0xd9, 0xd8, 0xd5, 0xd0, 0xd6, 0xdd, 0xd1,
+ 0xd3, 0xdd, 0xd4, 0xde, 0xde, 0xd0, 0xd7, 0xdb, 0xd5, 0xd3, 0xdb, 0xd8,
+ 0xd9, 0xd4, 0xde, 0xd3, 0xdf, 0xd2, 0xd5, 0xdc, 0xd2, 0xd9, 0xd8, 0xd5,
+ 0xdc, 0xdf, 0xd3, 0xda, 0xd7, 0xdb, 0xd0, 0xde, 0xd4, 0xd1, 0xda, 0xd7,
+ 0xd1, 0xd6, 0xdd, 0xd0, 0xdb, 0xd8, 0xd6, 0xdd, 0x6c, 0x6a, 0x61, 0x6f,
+ 0x6a, 0x64, 0x6f, 0x62, 0x69, 0x67, 0x62, 0x6c, 0x66, 0x69, 0x68, 0x65,
+ 0x60, 0x66, 0x6d, 0x61, 0x63, 0x6d, 0x64, 0x6e, 0x6e, 0x60, 0x67, 0x6b,
+ 0x65, 0x63, 0x6b, 0x68, 0x69, 0x64, 0x6e, 0x63, 0x6f, 0x62, 0x65, 0x6c,
+ 0x62, 0x69, 0x68, 0x65, 0x6c, 0x6f, 0x63, 0x6a, 0x67, 0x6b, 0x60, 0x6e,
+ 0x64, 0x61, 0x6a, 0x67, 0x61, 0x66, 0x6d, 0x60, 0x6b, 0x68, 0x66, 0x6d,
+ 0x1c, 0x1a, 0x11, 0x1f, 0x1a, 0x14, 0x1f, 0x12, 0x19, 0x17, 0x12, 0x1c,
+ 0x16, 0x19, 0x18, 0x15, 0x10, 0x16, 0x1d, 0x11, 0x13, 0x1d, 0x14, 0x1e,
+ 0x1e, 0x10, 0x17, 0x1b, 0x15, 0x13, 0x1b, 0x18, 0x19, 0x14, 0x1e, 0x13,
+ 0x1f, 0x12, 0x15, 0x1c, 0x12, 0x19, 0x18, 0x15, 0x1c, 0x1f, 0x13, 0x1a,
+ 0x17, 0x1b, 0x10, 0x1e, 0x14, 0x11, 0x1a, 0x17, 0x11, 0x16, 0x1d, 0x10,
+ 0x1b, 0x18, 0x16, 0x1d, 0x8c, 0x8a, 0x81, 0x8f, 0x8a, 0x84, 0x8f, 0x82,
+ 0x89, 0x87, 0x82, 0x8c, 0x86, 0x89, 0x88, 0x85, 0x80, 0x86, 0x8d, 0x81,
+ 0x83, 0x8d, 0x84, 0x8e, 0x8e, 0x80, 0x87, 0x8b, 0x85, 0x83, 0x8b, 0x88,
+ 0x89, 0x84, 0x8e, 0x83, 0x8f, 0x82, 0x85, 0x8c, 0x82, 0x89, 0x88, 0x85,
+ 0x8c, 0x8f, 0x83, 0x8a, 0x87, 0x8b, 0x80, 0x8e, 0x84, 0x81, 0x8a, 0x87,
+ 0x81, 0x86, 0x8d, 0x80, 0x8b, 0x88, 0x86, 0x8d, 0x5c, 0x5a, 0x51, 0x5f,
+ 0x5a, 0x54, 0x5f, 0x52, 0x59, 0x57, 0x52, 0x5c, 0x56, 0x59, 0x58, 0x55,
+ 0x50, 0x56, 0x5d, 0x51, 0x53, 0x5d, 0x54, 0x5e, 0x5e, 0x50, 0x57, 0x5b,
+ 0x55, 0x53, 0x5b, 0x58, 0x59, 0x54, 0x5e, 0x53, 0x5f, 0x52, 0x55, 0x5c,
+ 0x52, 0x59, 0x58, 0x55, 0x5c, 0x5f, 0x53, 0x5a, 0x57, 0x5b, 0x50, 0x5e,
+ 0x54, 0x51, 0x5a, 0x57, 0x51, 0x56, 0x5d, 0x50, 0x5b, 0x58, 0x56, 0x5d,
+ 0x5c, 0x5a, 0x51, 0x5f, 0x5a, 0x54, 0x5f, 0x52, 0x59, 0x57, 0x52, 0x5c,
+ 0x56, 0x59, 0x58, 0x55, 0x50, 0x56, 0x5d, 0x51, 0x53, 0x5d, 0x54, 0x5e,
+ 0x5e, 0x50, 0x57, 0x5b, 0x55, 0x53, 0x5b, 0x58, 0x59, 0x54, 0x5e, 0x53,
+ 0x5f, 0x52, 0x55, 0x5c, 0x52, 0x59, 0x58, 0x55, 0x5c, 0x5f, 0x53, 0x5a,
+ 0x57, 0x5b, 0x50, 0x5e, 0x54, 0x51, 0x5a, 0x57, 0x51, 0x56, 0x5d, 0x50,
+ 0x5b, 0x58, 0x56, 0x5d, 0x0c, 0x0a, 0x01, 0x0f, 0x0a, 0x04, 0x0f, 0x02,
+ 0x09, 0x07, 0x02, 0x0c, 0x06, 0x09, 0x08, 0x05, 0x00, 0x06, 0x0d, 0x01,
+ 0x03, 0x0d, 0x04, 0x0e, 0x0e, 0x00, 0x07, 0x0b, 0x05, 0x03, 0x0b, 0x08,
+ 0x09, 0x04, 0x0e, 0x03, 0x0f, 0x02, 0x05, 0x0c, 0x02, 0x09, 0x08, 0x05,
+ 0x0c, 0x0f, 0x03, 0x0a, 0x07, 0x0b, 0x00, 0x0e, 0x04, 0x01, 0x0a, 0x07,
+ 0x01, 0x06, 0x0d, 0x00, 0x0b, 0x08, 0x06, 0x0d, 0x3c, 0x3a, 0x31, 0x3f,
+ 0x3a, 0x34, 0x3f, 0x32, 0x39, 0x37, 0x32, 0x3c, 0x36, 0x39, 0x38, 0x35,
+ 0x30, 0x36, 0x3d, 0x31, 0x33, 0x3d, 0x34, 0x3e, 0x3e, 0x30, 0x37, 0x3b,
+ 0x35, 0x33, 0x3b, 0x38, 0x39, 0x34, 0x3e, 0x33, 0x3f, 0x32, 0x35, 0x3c,
+ 0x32, 0x39, 0x38, 0x35, 0x3c, 0x3f, 0x33, 0x3a, 0x37, 0x3b, 0x30, 0x3e,
+ 0x34, 0x31, 0x3a, 0x37, 0x31, 0x36, 0x3d, 0x30, 0x3b, 0x38, 0x36, 0x3d,
+ 0xfc, 0xfa, 0xf1, 0xff, 0xfa, 0xf4, 0xff, 0xf2, 0xf9, 0xf7, 0xf2, 0xfc,
+ 0xf6, 0xf9, 0xf8, 0xf5, 0xf0, 0xf6, 0xfd, 0xf1, 0xf3, 0xfd, 0xf4, 0xfe,
+ 0xfe, 0xf0, 0xf7, 0xfb, 0xf5, 0xf3, 0xfb, 0xf8, 0xf9, 0xf4, 0xfe, 0xf3,
+ 0xff, 0xf2, 0xf5, 0xfc, 0xf2, 0xf9, 0xf8, 0xf5, 0xfc, 0xff, 0xf3, 0xfa,
+ 0xf7, 0xfb, 0xf0, 0xfe, 0xf4, 0xf1, 0xfa, 0xf7, 0xf1, 0xf6, 0xfd, 0xf0,
+ 0xfb, 0xf8, 0xf6, 0xfd, 0xfc, 0xfa, 0xf1, 0xff, 0xfa, 0xf4, 0xff, 0xf2,
+ 0xf9, 0xf7, 0xf2, 0xfc, 0xf6, 0xf9, 0xf8, 0xf5, 0xf0, 0xf6, 0xfd, 0xf1,
+ 0xf3, 0xfd, 0xf4, 0xfe, 0xfe, 0xf0, 0xf7, 0xfb, 0xf5, 0xf3, 0xfb, 0xf8,
+ 0xf9, 0xf4, 0xfe, 0xf3, 0xff, 0xf2, 0xf5, 0xfc, 0xf2, 0xf9, 0xf8, 0xf5,
+ 0xfc, 0xff, 0xf3, 0xfa, 0xf7, 0xfb, 0xf0, 0xfe, 0xf4, 0xf1, 0xfa, 0xf7,
+ 0xf1, 0xf6, 0xfd, 0xf0, 0xfb, 0xf8, 0xf6, 0xfd, 0xac, 0xaa, 0xa1, 0xaf,
+ 0xaa, 0xa4, 0xaf, 0xa2, 0xa9, 0xa7, 0xa2, 0xac, 0xa6, 0xa9, 0xa8, 0xa5,
+ 0xa0, 0xa6, 0xad, 0xa1, 0xa3, 0xad, 0xa4, 0xae, 0xae, 0xa0, 0xa7, 0xab,
+ 0xa5, 0xa3, 0xab, 0xa8, 0xa9, 0xa4, 0xae, 0xa3, 0xaf, 0xa2, 0xa5, 0xac,
+ 0xa2, 0xa9, 0xa8, 0xa5, 0xac, 0xaf, 0xa3, 0xaa, 0xa7, 0xab, 0xa0, 0xae,
+ 0xa4, 0xa1, 0xaa, 0xa7, 0xa1, 0xa6, 0xad, 0xa0, 0xab, 0xa8, 0xa6, 0xad,
+ 0xdc, 0xda, 0xd1, 0xdf, 0xda, 0xd4, 0xdf, 0xd2, 0xd9, 0xd7, 0xd2, 0xdc,
+ 0xd6, 0xd9, 0xd8, 0xd5, 0xd0, 0xd6, 0xdd, 0xd1, 0xd3, 0xdd, 0xd4, 0xde,
+ 0xde, 0xd0, 0xd7, 0xdb, 0xd5, 0xd3, 0xdb, 0xd8, 0xd9, 0xd4, 0xde, 0xd3,
+ 0xdf, 0xd2, 0xd5, 0xdc, 0xd2, 0xd9, 0xd8, 0xd5, 0xdc, 0xdf, 0xd3, 0xda,
+ 0xd7, 0xdb, 0xd0, 0xde, 0xd4, 0xd1, 0xda, 0xd7, 0xd1, 0xd6, 0xdd, 0xd0,
+ 0xdb, 0xd8, 0xd6, 0xdd, 0x3c, 0x3a, 0x31, 0x3f, 0x3a, 0x34, 0x3f, 0x32,
+ 0x39, 0x37, 0x32, 0x3c, 0x36, 0x39, 0x38, 0x35, 0x30, 0x36, 0x3d, 0x31,
+ 0x33, 0x3d, 0x34, 0x3e, 0x3e, 0x30, 0x37, 0x3b, 0x35, 0x33, 0x3b, 0x38,
+ 0x39, 0x34, 0x3e, 0x33, 0x3f, 0x32, 0x35, 0x3c, 0x32, 0x39, 0x38, 0x35,
+ 0x3c, 0x3f, 0x33, 0x3a, 0x37, 0x3b, 0x30, 0x3e, 0x34, 0x31, 0x3a, 0x37,
+ 0x31, 0x36, 0x3d, 0x30, 0x3b, 0x38, 0x36, 0x3d, 0x0c, 0x0a, 0x01, 0x0f,
+ 0x0a, 0x04, 0x0f, 0x02, 0x09, 0x07, 0x02, 0x0c, 0x06, 0x09, 0x08, 0x05,
+ 0x00, 0x06, 0x0d, 0x01, 0x03, 0x0d, 0x04, 0x0e, 0x0e, 0x00, 0x07, 0x0b,
+ 0x05, 0x03, 0x0b, 0x08, 0x09, 0x04, 0x0e, 0x03, 0x0f, 0x02, 0x05, 0x0c,
+ 0x02, 0x09, 0x08, 0x05, 0x0c, 0x0f, 0x03, 0x0a, 0x07, 0x0b, 0x00, 0x0e,
+ 0x04, 0x01, 0x0a, 0x07, 0x01, 0x06, 0x0d, 0x00, 0x0b, 0x08, 0x06, 0x0d,
+ 0x9c, 0x9a, 0x91, 0x9f, 0x9a, 0x94, 0x9f, 0x92, 0x99, 0x97, 0x92, 0x9c,
+ 0x96, 0x99, 0x98, 0x95, 0x90, 0x96, 0x9d, 0x91, 0x93, 0x9d, 0x94, 0x9e,
+ 0x9e, 0x90, 0x97, 0x9b, 0x95, 0x93, 0x9b, 0x98, 0x99, 0x94, 0x9e, 0x93,
+ 0x9f, 0x92, 0x95, 0x9c, 0x92, 0x99, 0x98, 0x95, 0x9c, 0x9f, 0x93, 0x9a,
+ 0x97, 0x9b, 0x90, 0x9e, 0x94, 0x91, 0x9a, 0x97, 0x91, 0x96, 0x9d, 0x90,
+ 0x9b, 0x98, 0x96, 0x9d, 0xec, 0xea, 0xe1, 0xef, 0xea, 0xe4, 0xef, 0xe2,
+ 0xe9, 0xe7, 0xe2, 0xec, 0xe6, 0xe9, 0xe8, 0xe5, 0xe0, 0xe6, 0xed, 0xe1,
+ 0xe3, 0xed, 0xe4, 0xee, 0xee, 0xe0, 0xe7, 0xeb, 0xe5, 0xe3, 0xeb, 0xe8,
+ 0xe9, 0xe4, 0xee, 0xe3, 0xef, 0xe2, 0xe5, 0xec, 0xe2, 0xe9, 0xe8, 0xe5,
+ 0xec, 0xef, 0xe3, 0xea, 0xe7, 0xeb, 0xe0, 0xee, 0xe4, 0xe1, 0xea, 0xe7,
+ 0xe1, 0xe6, 0xed, 0xe0, 0xeb, 0xe8, 0xe6, 0xed, 0x8c, 0x8a, 0x81, 0x8f,
+ 0x8a, 0x84, 0x8f, 0x82, 0x89, 0x87, 0x82, 0x8c, 0x86, 0x89, 0x88, 0x85,
+ 0x80, 0x86, 0x8d, 0x81, 0x83, 0x8d, 0x84, 0x8e, 0x8e, 0x80, 0x87, 0x8b,
+ 0x85, 0x83, 0x8b, 0x88, 0x89, 0x84, 0x8e, 0x83, 0x8f, 0x82, 0x85, 0x8c,
+ 0x82, 0x89, 0x88, 0x85, 0x8c, 0x8f, 0x83, 0x8a, 0x87, 0x8b, 0x80, 0x8e,
+ 0x84, 0x81, 0x8a, 0x87, 0x81, 0x86, 0x8d, 0x80, 0x8b, 0x88, 0x86, 0x8d,
+ 0x9c, 0x9a, 0x91, 0x9f, 0x9a, 0x94, 0x9f, 0x92, 0x99, 0x97, 0x92, 0x9c,
+ 0x96, 0x99, 0x98, 0x95, 0x90, 0x96, 0x9d, 0x91, 0x93, 0x9d, 0x94, 0x9e,
+ 0x9e, 0x90, 0x97, 0x9b, 0x95, 0x93, 0x9b, 0x98, 0x99, 0x94, 0x9e, 0x93,
+ 0x9f, 0x92, 0x95, 0x9c, 0x92, 0x99, 0x98, 0x95, 0x9c, 0x9f, 0x93, 0x9a,
+ 0x97, 0x9b, 0x90, 0x9e, 0x94, 0x91, 0x9a, 0x97, 0x91, 0x96, 0x9d, 0x90,
+ 0x9b, 0x98, 0x96, 0x9d, 0x6c, 0x6a, 0x61, 0x6f, 0x6a, 0x64, 0x6f, 0x62,
+ 0x69, 0x67, 0x62, 0x6c, 0x66, 0x69, 0x68, 0x65, 0x60, 0x66, 0x6d, 0x61,
+ 0x63, 0x6d, 0x64, 0x6e, 0x6e, 0x60, 0x67, 0x6b, 0x65, 0x63, 0x6b, 0x68,
+ 0x69, 0x64, 0x6e, 0x63, 0x6f, 0x62, 0x65, 0x6c, 0x62, 0x69, 0x68, 0x65,
+ 0x6c, 0x6f, 0x63, 0x6a, 0x67, 0x6b, 0x60, 0x6e, 0x64, 0x61, 0x6a, 0x67,
+ 0x61, 0x66, 0x6d, 0x60, 0x6b, 0x68, 0x66, 0x6d, 0x4c, 0x4a, 0x41, 0x4f,
+ 0x4a, 0x44, 0x4f, 0x42, 0x49, 0x47, 0x42, 0x4c, 0x46, 0x49, 0x48, 0x45,
+ 0x40, 0x46, 0x4d, 0x41, 0x43, 0x4d, 0x44, 0x4e, 0x4e, 0x40, 0x47, 0x4b,
+ 0x45, 0x43, 0x4b, 0x48, 0x49, 0x44, 0x4e, 0x43, 0x4f, 0x42, 0x45, 0x4c,
+ 0x42, 0x49, 0x48, 0x45, 0x4c, 0x4f, 0x43, 0x4a, 0x47, 0x4b, 0x40, 0x4e,
+ 0x44, 0x41, 0x4a, 0x47, 0x41, 0x46, 0x4d, 0x40, 0x4b, 0x48, 0x46, 0x4d,
+ 0xbc, 0xba, 0xb1, 0xbf, 0xba, 0xb4, 0xbf, 0xb2, 0xb9, 0xb7, 0xb2, 0xbc,
+ 0xb6, 0xb9, 0xb8, 0xb5, 0xb0, 0xb6, 0xbd, 0xb1, 0xb3, 0xbd, 0xb4, 0xbe,
+ 0xbe, 0xb0, 0xb7, 0xbb, 0xb5, 0xb3, 0xbb, 0xb8, 0xb9, 0xb4, 0xbe, 0xb3,
+ 0xbf, 0xb2, 0xb5, 0xbc, 0xb2, 0xb9, 0xb8, 0xb5, 0xbc, 0xbf, 0xb3, 0xba,
+ 0xb7, 0xbb, 0xb0, 0xbe, 0xb4, 0xb1, 0xba, 0xb7, 0xb1, 0xb6, 0xbd, 0xb0,
+ 0xbb, 0xb8, 0xb6, 0xbd, 0x2c, 0x2a, 0x21, 0x2f, 0x2a, 0x24, 0x2f, 0x22,
+ 0x29, 0x27, 0x22, 0x2c, 0x26, 0x29, 0x28, 0x25, 0x20, 0x26, 0x2d, 0x21,
+ 0x23, 0x2d, 0x24, 0x2e, 0x2e, 0x20, 0x27, 0x2b, 0x25, 0x23, 0x2b, 0x28,
+ 0x29, 0x24, 0x2e, 0x23, 0x2f, 0x22, 0x25, 0x2c, 0x22, 0x29, 0x28, 0x25,
+ 0x2c, 0x2f, 0x23, 0x2a, 0x27, 0x2b, 0x20, 0x2e, 0x24, 0x21, 0x2a, 0x27,
+ 0x21, 0x26, 0x2d, 0x20, 0x2b, 0x28, 0x26, 0x2d, 0x8c, 0x8a, 0x81, 0x8f,
+ 0x8a, 0x84, 0x8f, 0x82, 0x89, 0x87, 0x82, 0x8c, 0x86, 0x89, 0x88, 0x85,
+ 0x80, 0x86, 0x8d, 0x81, 0x83, 0x8d, 0x84, 0x8e, 0x8e, 0x80, 0x87, 0x8b,
+ 0x85, 0x83, 0x8b, 0x88, 0x89, 0x84, 0x8e, 0x83, 0x8f, 0x82, 0x85, 0x8c,
+ 0x82, 0x89, 0x88, 0x85, 0x8c, 0x8f, 0x83, 0x8a, 0x87, 0x8b, 0x80, 0x8e,
+ 0x84, 0x81, 0x8a, 0x87, 0x81, 0x86, 0x8d, 0x80, 0x8b, 0x88, 0x86, 0x8d,
+ 0x1c, 0x1a, 0x11, 0x1f, 0x1a, 0x14, 0x1f, 0x12, 0x19, 0x17, 0x12, 0x1c,
+ 0x16, 0x19, 0x18, 0x15, 0x10, 0x16, 0x1d, 0x11, 0x13, 0x1d, 0x14, 0x1e,
+ 0x1e, 0x10, 0x17, 0x1b, 0x15, 0x13, 0x1b, 0x18, 0x19, 0x14, 0x1e, 0x13,
+ 0x1f, 0x12, 0x15, 0x1c, 0x12, 0x19, 0x18, 0x15, 0x1c, 0x1f, 0x13, 0x1a,
+ 0x17, 0x1b, 0x10, 0x1e, 0x14, 0x11, 0x1a, 0x17, 0x11, 0x16, 0x1d, 0x10,
+ 0x1b, 0x18, 0x16, 0x1d, 0xcc, 0xca, 0xc1, 0xcf, 0xca, 0xc4, 0xcf, 0xc2,
+ 0xc9, 0xc7, 0xc2, 0xcc, 0xc6, 0xc9, 0xc8, 0xc5, 0xc0, 0xc6, 0xcd, 0xc1,
+ 0xc3, 0xcd, 0xc4, 0xce, 0xce, 0xc0, 0xc7, 0xcb, 0xc5, 0xc3, 0xcb, 0xc8,
+ 0xc9, 0xc4, 0xce, 0xc3, 0xcf, 0xc2, 0xc5, 0xcc, 0xc2, 0xc9, 0xc8, 0xc5,
+ 0xcc, 0xcf, 0xc3, 0xca, 0xc7, 0xcb, 0xc0, 0xce, 0xc4, 0xc1, 0xca, 0xc7,
+ 0xc1, 0xc6, 0xcd, 0xc0, 0xcb, 0xc8, 0xc6, 0xcd, 0xbc, 0xba, 0xb1, 0xbf,
+ 0xba, 0xb4, 0xbf, 0xb2, 0xb9, 0xb7, 0xb2, 0xbc, 0xb6, 0xb9, 0xb8, 0xb5,
+ 0xb0, 0xb6, 0xbd, 0xb1, 0xb3, 0xbd, 0xb4, 0xbe, 0xbe, 0xb0, 0xb7, 0xbb,
+ 0xb5, 0xb3, 0xbb, 0xb8, 0xb9, 0xb4, 0xbe, 0xb3, 0xbf, 0xb2, 0xb5, 0xbc,
+ 0xb2, 0xb9, 0xb8, 0xb5, 0xbc, 0xbf, 0xb3, 0xba, 0xb7, 0xbb, 0xb0, 0xbe,
+ 0xb4, 0xb1, 0xba, 0xb7, 0xb1, 0xb6, 0xbd, 0xb0, 0xbb, 0xb8, 0xb6, 0xbd,
+ 0x7c, 0x7a, 0x71, 0x7f, 0x7a, 0x74, 0x7f, 0x72, 0x79, 0x77, 0x72, 0x7c,
+ 0x76, 0x79, 0x78, 0x75, 0x70, 0x76, 0x7d, 0x71, 0x73, 0x7d, 0x74, 0x7e,
+ 0x7e, 0x70, 0x77, 0x7b, 0x75, 0x73, 0x7b, 0x78, 0x79, 0x74, 0x7e, 0x73,
+ 0x7f, 0x72, 0x75, 0x7c, 0x72, 0x79, 0x78, 0x75, 0x7c, 0x7f, 0x73, 0x7a,
+ 0x77, 0x7b, 0x70, 0x7e, 0x74, 0x71, 0x7a, 0x77, 0x71, 0x76, 0x7d, 0x70,
+ 0x7b, 0x78, 0x76, 0x7d, 0xac, 0xaa, 0xa1, 0xaf, 0xaa, 0xa4, 0xaf, 0xa2,
+ 0xa9, 0xa7, 0xa2, 0xac, 0xa6, 0xa9, 0xa8, 0xa5, 0xa0, 0xa6, 0xad, 0xa1,
+ 0xa3, 0xad, 0xa4, 0xae, 0xae, 0xa0, 0xa7, 0xab, 0xa5, 0xa3, 0xab, 0xa8,
+ 0xa9, 0xa4, 0xae, 0xa3, 0xaf, 0xa2, 0xa5, 0xac, 0xa2, 0xa9, 0xa8, 0xa5,
+ 0xac, 0xaf, 0xa3, 0xaa, 0xa7, 0xab, 0xa0, 0xae, 0xa4, 0xa1, 0xaa, 0xa7,
+ 0xa1, 0xa6, 0xad, 0xa0, 0xab, 0xa8, 0xa6, 0xad, 0x1c, 0x1a, 0x11, 0x1f,
+ 0x1a, 0x14, 0x1f, 0x12, 0x19, 0x17, 0x12, 0x1c, 0x16, 0x19, 0x18, 0x15,
+ 0x10, 0x16, 0x1d, 0x11, 0x13, 0x1d, 0x14, 0x1e, 0x1e, 0x10, 0x17, 0x1b,
+ 0x15, 0x13, 0x1b, 0x18, 0x19, 0x14, 0x1e, 0x13, 0x1f, 0x12, 0x15, 0x1c,
+ 0x12, 0x19, 0x18, 0x15, 0x1c, 0x1f, 0x13, 0x1a, 0x17, 0x1b, 0x10, 0x1e,
+ 0x14, 0x11, 0x1a, 0x17, 0x11, 0x16, 0x1d, 0x10, 0x1b, 0x18, 0x16, 0x1d,
+ 0xdc, 0xda, 0xd1, 0xdf, 0xda, 0xd4, 0xdf, 0xd2, 0xd9, 0xd7, 0xd2, 0xdc,
+ 0xd6, 0xd9, 0xd8, 0xd5, 0xd0, 0xd6, 0xdd, 0xd1, 0xd3, 0xdd, 0xd4, 0xde,
+ 0xde, 0xd0, 0xd7, 0xdb, 0xd5, 0xd3, 0xdb, 0xd8, 0xd9, 0xd4, 0xde, 0xd3,
+ 0xdf, 0xd2, 0xd5, 0xdc, 0xd2, 0xd9, 0xd8, 0xd5, 0xdc, 0xdf, 0xd3, 0xda,
+ 0xd7, 0xdb, 0xd0, 0xde, 0xd4, 0xd1, 0xda, 0xd7, 0xd1, 0xd6, 0xdd, 0xd0,
+ 0xdb, 0xd8, 0xd6, 0xdd, 0xec, 0xea, 0xe1, 0xef, 0xea, 0xe4, 0xef, 0xe2,
+ 0xe9, 0xe7, 0xe2, 0xec, 0xe6, 0xe9, 0xe8, 0xe5, 0xe0, 0xe6, 0xed, 0xe1,
+ 0xe3, 0xed, 0xe4, 0xee, 0xee, 0xe0, 0xe7, 0xeb, 0xe5, 0xe3, 0xeb, 0xe8,
+ 0xe9, 0xe4, 0xee, 0xe3, 0xef, 0xe2, 0xe5, 0xec, 0xe2, 0xe9, 0xe8, 0xe5,
+ 0xec, 0xef, 0xe3, 0xea, 0xe7, 0xeb, 0xe0, 0xee, 0xe4, 0xe1, 0xea, 0xe7,
+ 0xe1, 0xe6, 0xed, 0xe0, 0xeb, 0xe8, 0xe6, 0xed, 0x7c, 0x7a, 0x71, 0x7f,
+ 0x7a, 0x74, 0x7f, 0x72, 0x79, 0x77, 0x72, 0x7c, 0x76, 0x79, 0x78, 0x75,
+ 0x70, 0x76, 0x7d, 0x71, 0x73, 0x7d, 0x74, 0x7e, 0x7e, 0x70, 0x77, 0x7b,
+ 0x75, 0x73, 0x7b, 0x78, 0x79, 0x74, 0x7e, 0x73, 0x7f, 0x72, 0x75, 0x7c,
+ 0x72, 0x79, 0x78, 0x75, 0x7c, 0x7f, 0x73, 0x7a, 0x77, 0x7b, 0x70, 0x7e,
+ 0x74, 0x71, 0x7a, 0x77, 0x71, 0x76, 0x7d, 0x70, 0x7b, 0x78, 0x76, 0x7d,
+ 0x2c, 0x2a, 0x21, 0x2f, 0x2a, 0x24, 0x2f, 0x22, 0x29, 0x27, 0x22, 0x2c,
+ 0x26, 0x29, 0x28, 0x25, 0x20, 0x26, 0x2d, 0x21, 0x23, 0x2d, 0x24, 0x2e,
+ 0x2e, 0x20, 0x27, 0x2b, 0x25, 0x23, 0x2b, 0x28, 0x29, 0x24, 0x2e, 0x23,
+ 0x2f, 0x22, 0x25, 0x2c, 0x22, 0x29, 0x28, 0x25, 0x2c, 0x2f, 0x23, 0x2a,
+ 0x27, 0x2b, 0x20, 0x2e, 0x24, 0x21, 0x2a, 0x27, 0x21, 0x26, 0x2d, 0x20,
+ 0x2b, 0x28, 0x26, 0x2d, 0x8c, 0x8a, 0x81, 0x8f, 0x8a, 0x84, 0x8f, 0x82,
+ 0x89, 0x87, 0x82, 0x8c, 0x86, 0x89, 0x88, 0x85, 0x80, 0x86, 0x8d, 0x81,
+ 0x83, 0x8d, 0x84, 0x8e, 0x8e, 0x80, 0x87, 0x8b, 0x85, 0x83, 0x8b, 0x88,
+ 0x89, 0x84, 0x8e, 0x83, 0x8f, 0x82, 0x85, 0x8c, 0x82, 0x89, 0x88, 0x85,
+ 0x8c, 0x8f, 0x83, 0x8a, 0x87, 0x8b, 0x80, 0x8e, 0x84, 0x81, 0x8a, 0x87,
+ 0x81, 0x86, 0x8d, 0x80, 0x8b, 0x88, 0x86, 0x8d, 0xdc, 0xda, 0xd1, 0xdf,
+ 0xda, 0xd4, 0xdf, 0xd2, 0xd9, 0xd7, 0xd2, 0xdc, 0xd6, 0xd9, 0xd8, 0xd5,
+ 0xd0, 0xd6, 0xdd, 0xd1, 0xd3, 0xdd, 0xd4, 0xde, 0xde, 0xd0, 0xd7, 0xdb,
+ 0xd5, 0xd3, 0xdb, 0xd8, 0xd9, 0xd4, 0xde, 0xd3, 0xdf, 0xd2, 0xd5, 0xdc,
+ 0xd2, 0xd9, 0xd8, 0xd5, 0xdc, 0xdf, 0xd3, 0xda, 0xd7, 0xdb, 0xd0, 0xde,
+ 0xd4, 0xd1, 0xda, 0xd7, 0xd1, 0xd6, 0xdd, 0xd0, 0xdb, 0xd8, 0xd6, 0xdd,
+ 0xfc, 0xfa, 0xf1, 0xff, 0xfa, 0xf4, 0xff, 0xf2, 0xf9, 0xf7, 0xf2, 0xfc,
+ 0xf6, 0xf9, 0xf8, 0xf5, 0xf0, 0xf6, 0xfd, 0xf1, 0xf3, 0xfd, 0xf4, 0xfe,
+ 0xfe, 0xf0, 0xf7, 0xfb, 0xf5, 0xf3, 0xfb, 0xf8, 0xf9, 0xf4, 0xfe, 0xf3,
+ 0xff, 0xf2, 0xf5, 0xfc, 0xf2, 0xf9, 0xf8, 0xf5, 0xfc, 0xff, 0xf3, 0xfa,
+ 0xf7, 0xfb, 0xf0, 0xfe, 0xf4, 0xf1, 0xfa, 0xf7, 0xf1, 0xf6, 0xfd, 0xf0,
+ 0xfb, 0xf8, 0xf6, 0xfd, 0x6c, 0x6a, 0x61, 0x6f, 0x6a, 0x64, 0x6f, 0x62,
+ 0x69, 0x67, 0x62, 0x6c, 0x66, 0x69, 0x68, 0x65, 0x60, 0x66, 0x6d, 0x61,
+ 0x63, 0x6d, 0x64, 0x6e, 0x6e, 0x60, 0x67, 0x6b, 0x65, 0x63, 0x6b, 0x68,
+ 0x69, 0x64, 0x6e, 0x63, 0x6f, 0x62, 0x65, 0x6c, 0x62, 0x69, 0x68, 0x65,
+ 0x6c, 0x6f, 0x63, 0x6a, 0x67, 0x6b, 0x60, 0x6e, 0x64, 0x61, 0x6a, 0x67,
+ 0x61, 0x66, 0x6d, 0x60, 0x6b, 0x68, 0x66, 0x6d, 0x9c, 0x9a, 0x91, 0x9f,
+ 0x9a, 0x94, 0x9f, 0x92, 0x99, 0x97, 0x92, 0x9c, 0x96, 0x99, 0x98, 0x95,
+ 0x90, 0x96, 0x9d, 0x91, 0x93, 0x9d, 0x94, 0x9e, 0x9e, 0x90, 0x97, 0x9b,
+ 0x95, 0x93, 0x9b, 0x98, 0x99, 0x94, 0x9e, 0x93, 0x9f, 0x92, 0x95, 0x9c,
+ 0x92, 0x99, 0x98, 0x95, 0x9c, 0x9f, 0x93, 0x9a, 0x97, 0x9b, 0x90, 0x9e,
+ 0x94, 0x91, 0x9a, 0x97, 0x91, 0x96, 0x9d, 0x90, 0x9b, 0x98, 0x96, 0x9d,
+ 0xfc, 0xfa, 0xf1, 0xff, 0xfa, 0xf4, 0xff, 0xf2, 0xf9, 0xf7, 0xf2, 0xfc,
+ 0xf6, 0xf9, 0xf8, 0xf5, 0xf0, 0xf6, 0xfd, 0xf1, 0xf3, 0xfd, 0xf4, 0xfe,
+ 0xfe, 0xf0, 0xf7, 0xfb, 0xf5, 0xf3, 0xfb, 0xf8, 0xf9, 0xf4, 0xfe, 0xf3,
+ 0xff, 0xf2, 0xf5, 0xfc, 0xf2, 0xf9, 0xf8, 0xf5, 0xfc, 0xff, 0xf3, 0xfa,
+ 0xf7, 0xfb, 0xf0, 0xfe, 0xf4, 0xf1, 0xfa, 0xf7, 0xf1, 0xf6, 0xfd, 0xf0,
+ 0xfb, 0xf8, 0xf6, 0xfd, 0xcc, 0xca, 0xc1, 0xcf, 0xca, 0xc4, 0xcf, 0xc2,
+ 0xc9, 0xc7, 0xc2, 0xcc, 0xc6, 0xc9, 0xc8, 0xc5, 0xc0, 0xc6, 0xcd, 0xc1,
+ 0xc3, 0xcd, 0xc4, 0xce, 0xce, 0xc0, 0xc7, 0xcb, 0xc5, 0xc3, 0xcb, 0xc8,
+ 0xc9, 0xc4, 0xce, 0xc3, 0xcf, 0xc2, 0xc5, 0xcc, 0xc2, 0xc9, 0xc8, 0xc5,
+ 0xcc, 0xcf, 0xc3, 0xca, 0xc7, 0xcb, 0xc0, 0xce, 0xc4, 0xc1, 0xca, 0xc7,
+ 0xc1, 0xc6, 0xcd, 0xc0, 0xcb, 0xc8, 0xc6, 0xcd, 0x0c, 0x0a, 0x01, 0x0f,
+ 0x0a, 0x04, 0x0f, 0x02, 0x09, 0x07, 0x02, 0x0c, 0x06, 0x09, 0x08, 0x05,
+ 0x00, 0x06, 0x0d, 0x01, 0x03, 0x0d, 0x04, 0x0e, 0x0e, 0x00, 0x07, 0x0b,
+ 0x05, 0x03, 0x0b, 0x08, 0x09, 0x04, 0x0e, 0x03, 0x0f, 0x02, 0x05, 0x0c,
+ 0x02, 0x09, 0x08, 0x05, 0x0c, 0x0f, 0x03, 0x0a, 0x07, 0x0b, 0x00, 0x0e,
+ 0x04, 0x01, 0x0a, 0x07, 0x01, 0x06, 0x0d, 0x00, 0x0b, 0x08, 0x06, 0x0d,
+ 0x5c, 0x5a, 0x51, 0x5f, 0x5a, 0x54, 0x5f, 0x52, 0x59, 0x57, 0x52, 0x5c,
+ 0x56, 0x59, 0x58, 0x55, 0x50, 0x56, 0x5d, 0x51, 0x53, 0x5d, 0x54, 0x5e,
+ 0x5e, 0x50, 0x57, 0x5b, 0x55, 0x53, 0x5b, 0x58, 0x59, 0x54, 0x5e, 0x53,
+ 0x5f, 0x52, 0x55, 0x5c, 0x52, 0x59, 0x58, 0x55, 0x5c, 0x5f, 0x53, 0x5a,
+ 0x57, 0x5b, 0x50, 0x5e, 0x54, 0x51, 0x5a, 0x57, 0x51, 0x56, 0x5d, 0x50,
+ 0x5b, 0x58, 0x56, 0x5d, 0x9c, 0x9a, 0x91, 0x9f, 0x9a, 0x94, 0x9f, 0x92,
+ 0x99, 0x97, 0x92, 0x9c, 0x96, 0x99, 0x98, 0x95, 0x90, 0x96, 0x9d, 0x91,
+ 0x93, 0x9d, 0x94, 0x9e, 0x9e, 0x90, 0x97, 0x9b, 0x95, 0x93, 0x9b, 0x98,
+ 0x99, 0x94, 0x9e, 0x93, 0x9f, 0x92, 0x95, 0x9c, 0x92, 0x99, 0x98, 0x95,
+ 0x9c, 0x9f, 0x93, 0x9a, 0x97, 0x9b, 0x90, 0x9e, 0x94, 0x91, 0x9a, 0x97,
+ 0x91, 0x96, 0x9d, 0x90, 0x9b, 0x98, 0x96, 0x9d, 0x6c, 0x6a, 0x61, 0x6f,
+ 0x6a, 0x64, 0x6f, 0x62, 0x69, 0x67, 0x62, 0x6c, 0x66, 0x69, 0x68, 0x65,
+ 0x60, 0x66, 0x6d, 0x61, 0x63, 0x6d, 0x64, 0x6e, 0x6e, 0x60, 0x67, 0x6b,
+ 0x65, 0x63, 0x6b, 0x68, 0x69, 0x64, 0x6e, 0x63, 0x6f, 0x62, 0x65, 0x6c,
+ 0x62, 0x69, 0x68, 0x65, 0x6c, 0x6f, 0x63, 0x6a, 0x67, 0x6b, 0x60, 0x6e,
+ 0x64, 0x61, 0x6a, 0x67, 0x61, 0x66, 0x6d, 0x60, 0x6b, 0x68, 0x66, 0x6d,
+ 0xac, 0xaa, 0xa1, 0xaf, 0xaa, 0xa4, 0xaf, 0xa2, 0xa9, 0xa7, 0xa2, 0xac,
+ 0xa6, 0xa9, 0xa8, 0xa5, 0xa0, 0xa6, 0xad, 0xa1, 0xa3, 0xad, 0xa4, 0xae,
+ 0xae, 0xa0, 0xa7, 0xab, 0xa5, 0xa3, 0xab, 0xa8, 0xa9, 0xa4, 0xae, 0xa3,
+ 0xaf, 0xa2, 0xa5, 0xac, 0xa2, 0xa9, 0xa8, 0xa5, 0xac, 0xaf, 0xa3, 0xaa,
+ 0xa7, 0xab, 0xa0, 0xae, 0xa4, 0xa1, 0xaa, 0xa7, 0xa1, 0xa6, 0xad, 0xa0,
+ 0xab, 0xa8, 0xa6, 0xad, 0x3c, 0x3a, 0x31, 0x3f, 0x3a, 0x34, 0x3f, 0x32,
+ 0x39, 0x37, 0x32, 0x3c, 0x36, 0x39, 0x38, 0x35, 0x30, 0x36, 0x3d, 0x31,
+ 0x33, 0x3d, 0x34, 0x3e, 0x3e, 0x30, 0x37, 0x3b, 0x35, 0x33, 0x3b, 0x38,
+ 0x39, 0x34, 0x3e, 0x33, 0x3f, 0x32, 0x35, 0x3c, 0x32, 0x39, 0x38, 0x35,
+ 0x3c, 0x3f, 0x33, 0x3a, 0x37, 0x3b, 0x30, 0x3e, 0x34, 0x31, 0x3a, 0x37,
+ 0x31, 0x36, 0x3d, 0x30, 0x3b, 0x38, 0x36, 0x3d, 0x4c, 0x4a, 0x41, 0x4f,
+ 0x4a, 0x44, 0x4f, 0x42, 0x49, 0x47, 0x42, 0x4c, 0x46, 0x49, 0x48, 0x45,
+ 0x40, 0x46, 0x4d, 0x41, 0x43, 0x4d, 0x44, 0x4e, 0x4e, 0x40, 0x47, 0x4b,
+ 0x45, 0x43, 0x4b, 0x48, 0x49, 0x44, 0x4e, 0x43, 0x4f, 0x42, 0x45, 0x4c,
+ 0x42, 0x49, 0x48, 0x45, 0x4c, 0x4f, 0x43, 0x4a, 0x47, 0x4b, 0x40, 0x4e,
+ 0x44, 0x41, 0x4a, 0x47, 0x41, 0x46, 0x4d, 0x40, 0x4b, 0x48, 0x46, 0x4d,
+ 0x0c, 0x0a, 0x01, 0x0f, 0x0a, 0x04, 0x0f, 0x02, 0x09, 0x07, 0x02, 0x0c,
+ 0x06, 0x09, 0x08, 0x05, 0x00, 0x06, 0x0d, 0x01, 0x03, 0x0d, 0x04, 0x0e,
+ 0x0e, 0x00, 0x07, 0x0b, 0x05, 0x03, 0x0b, 0x08, 0x09, 0x04, 0x0e, 0x03,
+ 0x0f, 0x02, 0x05, 0x0c, 0x02, 0x09, 0x08, 0x05, 0x0c, 0x0f, 0x03, 0x0a,
+ 0x07, 0x0b, 0x00, 0x0e, 0x04, 0x01, 0x0a, 0x07, 0x01, 0x06, 0x0d, 0x00,
+ 0x0b, 0x08, 0x06, 0x0d, 0x5c, 0x5a, 0x51, 0x5f, 0x5a, 0x54, 0x5f, 0x52,
+ 0x59, 0x57, 0x52, 0x5c, 0x56, 0x59, 0x58, 0x55, 0x50, 0x56, 0x5d, 0x51,
+ 0x53, 0x5d, 0x54, 0x5e, 0x5e, 0x50, 0x57, 0x5b, 0x55, 0x53, 0x5b, 0x58,
+ 0x59, 0x54, 0x5e, 0x53, 0x5f, 0x52, 0x55, 0x5c, 0x52, 0x59, 0x58, 0x55,
+ 0x5c, 0x5f, 0x53, 0x5a, 0x57, 0x5b, 0x50, 0x5e, 0x54, 0x51, 0x5a, 0x57,
+ 0x51, 0x56, 0x5d, 0x50, 0x5b, 0x58, 0x56, 0x5d, 0xec, 0xea, 0xe1, 0xef,
+ 0xea, 0xe4, 0xef, 0xe2, 0xe9, 0xe7, 0xe2, 0xec, 0xe6, 0xe9, 0xe8, 0xe5,
+ 0xe0, 0xe6, 0xed, 0xe1, 0xe3, 0xed, 0xe4, 0xee, 0xee, 0xe0, 0xe7, 0xeb,
+ 0xe5, 0xe3, 0xeb, 0xe8, 0xe9, 0xe4, 0xee, 0xe3, 0xef, 0xe2, 0xe5, 0xec,
+ 0xe2, 0xe9, 0xe8, 0xe5, 0xec, 0xef, 0xe3, 0xea, 0xe7, 0xeb, 0xe0, 0xee,
+ 0xe4, 0xe1, 0xea, 0xe7, 0xe1, 0xe6, 0xed, 0xe0, 0xeb, 0xe8, 0xe6, 0xed,
+ 0x3c, 0x3a, 0x31, 0x3f, 0x3a, 0x34, 0x3f, 0x32, 0x39, 0x37, 0x32, 0x3c,
+ 0x36, 0x39, 0x38, 0x35, 0x30, 0x36, 0x3d, 0x31, 0x33, 0x3d, 0x34, 0x3e,
+ 0x3e, 0x30, 0x37, 0x3b, 0x35, 0x33, 0x3b, 0x38, 0x39, 0x34, 0x3e, 0x33,
+ 0x3f, 0x32, 0x35, 0x3c, 0x32, 0x39, 0x38, 0x35, 0x3c, 0x3f, 0x33, 0x3a,
+ 0x37, 0x3b, 0x30, 0x3e, 0x34, 0x31, 0x3a, 0x37, 0x31, 0x36, 0x3d, 0x30,
+ 0x3b, 0x38, 0x36, 0x3d,
+ },
+ {
+ 0x4d, 0x41, 0x42, 0x4f, 0x48, 0x4d, 0x44, 0x48, 0x46, 0x4a, 0x4f, 0x43,
+ 0x4b, 0x47, 0x41, 0x44, 0x4a, 0x4c, 0x49, 0x45, 0x43, 0x46, 0x4e, 0x4b,
+ 0x45, 0x40, 0x40, 0x4e, 0x4c, 0x49, 0x47, 0x42, 0x47, 0x42, 0x4b, 0x41,
+ 0x44, 0x4e, 0x41, 0x47, 0x49, 0x44, 0x4c, 0x4a, 0x4e, 0x48, 0x42, 0x4d,
+ 0x40, 0x4f, 0x46, 0x4c, 0x4a, 0x49, 0x4d, 0x40, 0x4f, 0x43, 0x43, 0x45,
+ 0x45, 0x46, 0x48, 0x4b, 0xdd, 0xd1, 0xd2, 0xdf, 0xd8, 0xdd, 0xd4, 0xd8,
+ 0xd6, 0xda, 0xdf, 0xd3, 0xdb, 0xd7, 0xd1, 0xd4, 0xda, 0xdc, 0xd9, 0xd5,
+ 0xd3, 0xd6, 0xde, 0xdb, 0xd5, 0xd0, 0xd0, 0xde, 0xdc, 0xd9, 0xd7, 0xd2,
+ 0xd7, 0xd2, 0xdb, 0xd1, 0xd4, 0xde, 0xd1, 0xd7, 0xd9, 0xd4, 0xdc, 0xda,
+ 0xde, 0xd8, 0xd2, 0xdd, 0xd0, 0xdf, 0xd6, 0xdc, 0xda, 0xd9, 0xdd, 0xd0,
+ 0xdf, 0xd3, 0xd3, 0xd5, 0xd5, 0xd6, 0xd8, 0xdb, 0xbd, 0xb1, 0xb2, 0xbf,
+ 0xb8, 0xbd, 0xb4, 0xb8, 0xb6, 0xba, 0xbf, 0xb3, 0xbb, 0xb7, 0xb1, 0xb4,
+ 0xba, 0xbc, 0xb9, 0xb5, 0xb3, 0xb6, 0xbe, 0xbb, 0xb5, 0xb0, 0xb0, 0xbe,
+ 0xbc, 0xb9, 0xb7, 0xb2, 0xb7, 0xb2, 0xbb, 0xb1, 0xb4, 0xbe, 0xb1, 0xb7,
+ 0xb9, 0xb4, 0xbc, 0xba, 0xbe, 0xb8, 0xb2, 0xbd, 0xb0, 0xbf, 0xb6, 0xbc,
+ 0xba, 0xb9, 0xbd, 0xb0, 0xbf, 0xb3, 0xb3, 0xb5, 0xb5, 0xb6, 0xb8, 0xbb,
+ 0x0d, 0x01, 0x02, 0x0f, 0x08, 0x0d, 0x04, 0x08, 0x06, 0x0a, 0x0f, 0x03,
+ 0x0b, 0x07, 0x01, 0x04, 0x0a, 0x0c, 0x09, 0x05, 0x03, 0x06, 0x0e, 0x0b,
+ 0x05, 0x00, 0x00, 0x0e, 0x0c, 0x09, 0x07, 0x02, 0x07, 0x02, 0x0b, 0x01,
+ 0x04, 0x0e, 0x01, 0x07, 0x09, 0x04, 0x0c, 0x0a, 0x0e, 0x08, 0x02, 0x0d,
+ 0x00, 0x0f, 0x06, 0x0c, 0x0a, 0x09, 0x0d, 0x00, 0x0f, 0x03, 0x03, 0x05,
+ 0x05, 0x06, 0x08, 0x0b, 0x2d, 0x21, 0x22, 0x2f, 0x28, 0x2d, 0x24, 0x28,
+ 0x26, 0x2a, 0x2f, 0x23, 0x2b, 0x27, 0x21, 0x24, 0x2a, 0x2c, 0x29, 0x25,
+ 0x23, 0x26, 0x2e, 0x2b, 0x25, 0x20, 0x20, 0x2e, 0x2c, 0x29, 0x27, 0x22,
+ 0x27, 0x22, 0x2b, 0x21, 0x24, 0x2e, 0x21, 0x27, 0x29, 0x24, 0x2c, 0x2a,
+ 0x2e, 0x28, 0x22, 0x2d, 0x20, 0x2f, 0x26, 0x2c, 0x2a, 0x29, 0x2d, 0x20,
+ 0x2f, 0x23, 0x23, 0x25, 0x25, 0x26, 0x28, 0x2b, 0xbd, 0xb1, 0xb2, 0xbf,
+ 0xb8, 0xbd, 0xb4, 0xb8, 0xb6, 0xba, 0xbf, 0xb3, 0xbb, 0xb7, 0xb1, 0xb4,
+ 0xba, 0xbc, 0xb9, 0xb5, 0xb3, 0xb6, 0xbe, 0xbb, 0xb5, 0xb0, 0xb0, 0xbe,
+ 0xbc, 0xb9, 0xb7, 0xb2, 0xb7, 0xb2, 0xbb, 0xb1, 0xb4, 0xbe, 0xb1, 0xb7,
+ 0xb9, 0xb4, 0xbc, 0xba, 0xbe, 0xb8, 0xb2, 0xbd, 0xb0, 0xbf, 0xb6, 0xbc,
+ 0xba, 0xb9, 0xbd, 0xb0, 0xbf, 0xb3, 0xb3, 0xb5, 0xb5, 0xb6, 0xb8, 0xbb,
+ 0xed, 0xe1, 0xe2, 0xef, 0xe8, 0xed, 0xe4, 0xe8, 0xe6, 0xea, 0xef, 0xe3,
+ 0xeb, 0xe7, 0xe1, 0xe4, 0xea, 0xec, 0xe9, 0xe5, 0xe3, 0xe6, 0xee, 0xeb,
+ 0xe5, 0xe0, 0xe0, 0xee, 0xec, 0xe9, 0xe7, 0xe2, 0xe7, 0xe2, 0xeb, 0xe1,
+ 0xe4, 0xee, 0xe1, 0xe7, 0xe9, 0xe4, 0xec, 0xea, 0xee, 0xe8, 0xe2, 0xed,
+ 0xe0, 0xef, 0xe6, 0xec, 0xea, 0xe9, 0xed, 0xe0, 0xef, 0xe3, 0xe3, 0xe5,
+ 0xe5, 0xe6, 0xe8, 0xeb, 0x7d, 0x71, 0x72, 0x7f, 0x78, 0x7d, 0x74, 0x78,
+ 0x76, 0x7a, 0x7f, 0x73, 0x7b, 0x77, 0x71, 0x74, 0x7a, 0x7c, 0x79, 0x75,
+ 0x73, 0x76, 0x7e, 0x7b, 0x75, 0x70, 0x70, 0x7e, 0x7c, 0x79, 0x77, 0x72,
+ 0x77, 0x72, 0x7b, 0x71, 0x74, 0x7e, 0x71, 0x77, 0x79, 0x74, 0x7c, 0x7a,
+ 0x7e, 0x78, 0x72, 0x7d, 0x70, 0x7f, 0x76, 0x7c, 0x7a, 0x79, 0x7d, 0x70,
+ 0x7f, 0x73, 0x73, 0x75, 0x75, 0x76, 0x78, 0x7b, 0xfd, 0xf1, 0xf2, 0xff,
+ 0xf8, 0xfd, 0xf4, 0xf8, 0xf6, 0xfa, 0xff, 0xf3, 0xfb, 0xf7, 0xf1, 0xf4,
+ 0xfa, 0xfc, 0xf9, 0xf5, 0xf3, 0xf6, 0xfe, 0xfb, 0xf5, 0xf0, 0xf0, 0xfe,
+ 0xfc, 0xf9, 0xf7, 0xf2, 0xf7, 0xf2, 0xfb, 0xf1, 0xf4, 0xfe, 0xf1, 0xf7,
+ 0xf9, 0xf4, 0xfc, 0xfa, 0xfe, 0xf8, 0xf2, 0xfd, 0xf0, 0xff, 0xf6, 0xfc,
+ 0xfa, 0xf9, 0xfd, 0xf0, 0xff, 0xf3, 0xf3, 0xf5, 0xf5, 0xf6, 0xf8, 0xfb,
+ 0x4d, 0x41, 0x42, 0x4f, 0x48, 0x4d, 0x44, 0x48, 0x46, 0x4a, 0x4f, 0x43,
+ 0x4b, 0x47, 0x41, 0x44, 0x4a, 0x4c, 0x49, 0x45, 0x43, 0x46, 0x4e, 0x4b,
+ 0x45, 0x40, 0x40, 0x4e, 0x4c, 0x49, 0x47, 0x42, 0x47, 0x42, 0x4b, 0x41,
+ 0x44, 0x4e, 0x41, 0x47, 0x49, 0x44, 0x4c, 0x4a, 0x4e, 0x48, 0x42, 0x4d,
+ 0x40, 0x4f, 0x46, 0x4c, 0x4a, 0x49, 0x4d, 0x40, 0x4f, 0x43, 0x43, 0x45,
+ 0x45, 0x46, 0x48, 0x4b, 0x0d, 0x01, 0x02, 0x0f, 0x08, 0x0d, 0x04, 0x08,
+ 0x06, 0x0a, 0x0f, 0x03, 0x0b, 0x07, 0x01, 0x04, 0x0a, 0x0c, 0x09, 0x05,
+ 0x03, 0x06, 0x0e, 0x0b, 0x05, 0x00, 0x00, 0x0e, 0x0c, 0x09, 0x07, 0x02,
+ 0x07, 0x02, 0x0b, 0x01, 0x04, 0x0e, 0x01, 0x07, 0x09, 0x04, 0x0c, 0x0a,
+ 0x0e, 0x08, 0x02, 0x0d, 0x00, 0x0f, 0x06, 0x0c, 0x0a, 0x09, 0x0d, 0x00,
+ 0x0f, 0x03, 0x03, 0x05, 0x05, 0x06, 0x08, 0x0b, 0x9d, 0x91, 0x92, 0x9f,
+ 0x98, 0x9d, 0x94, 0x98, 0x96, 0x9a, 0x9f, 0x93, 0x9b, 0x97, 0x91, 0x94,
+ 0x9a, 0x9c, 0x99, 0x95, 0x93, 0x96, 0x9e, 0x9b, 0x95, 0x90, 0x90, 0x9e,
+ 0x9c, 0x99, 0x97, 0x92, 0x97, 0x92, 0x9b, 0x91, 0x94, 0x9e, 0x91, 0x97,
+ 0x99, 0x94, 0x9c, 0x9a, 0x9e, 0x98, 0x92, 0x9d, 0x90, 0x9f, 0x96, 0x9c,
+ 0x9a, 0x99, 0x9d, 0x90, 0x9f, 0x93, 0x93, 0x95, 0x95, 0x96, 0x98, 0x9b,
+ 0x8d, 0x81, 0x82, 0x8f, 0x88, 0x8d, 0x84, 0x88, 0x86, 0x8a, 0x8f, 0x83,
+ 0x8b, 0x87, 0x81, 0x84, 0x8a, 0x8c, 0x89, 0x85, 0x83, 0x86, 0x8e, 0x8b,
+ 0x85, 0x80, 0x80, 0x8e, 0x8c, 0x89, 0x87, 0x82, 0x87, 0x82, 0x8b, 0x81,
+ 0x84, 0x8e, 0x81, 0x87, 0x89, 0x84, 0x8c, 0x8a, 0x8e, 0x88, 0x82, 0x8d,
+ 0x80, 0x8f, 0x86, 0x8c, 0x8a, 0x89, 0x8d, 0x80, 0x8f, 0x83, 0x83, 0x85,
+ 0x85, 0x86, 0x88, 0x8b, 0x1d, 0x11, 0x12, 0x1f, 0x18, 0x1d, 0x14, 0x18,
+ 0x16, 0x1a, 0x1f, 0x13, 0x1b, 0x17, 0x11, 0x14, 0x1a, 0x1c, 0x19, 0x15,
+ 0x13, 0x16, 0x1e, 0x1b, 0x15, 0x10, 0x10, 0x1e, 0x1c, 0x19, 0x17, 0x12,
+ 0x17, 0x12, 0x1b, 0x11, 0x14, 0x1e, 0x11, 0x17, 0x19, 0x14, 0x1c, 0x1a,
+ 0x1e, 0x18, 0x12, 0x1d, 0x10, 0x1f, 0x16, 0x1c, 0x1a, 0x19, 0x1d, 0x10,
+ 0x1f, 0x13, 0x13, 0x15, 0x15, 0x16, 0x18, 0x1b, 0xdd, 0xd1, 0xd2, 0xdf,
+ 0xd8, 0xdd, 0xd4, 0xd8, 0xd6, 0xda, 0xdf, 0xd3, 0xdb, 0xd7, 0xd1, 0xd4,
+ 0xda, 0xdc, 0xd9, 0xd5, 0xd3, 0xd6, 0xde, 0xdb, 0xd5, 0xd0, 0xd0, 0xde,
+ 0xdc, 0xd9, 0xd7, 0xd2, 0xd7, 0xd2, 0xdb, 0xd1, 0xd4, 0xde, 0xd1, 0xd7,
+ 0xd9, 0xd4, 0xdc, 0xda, 0xde, 0xd8, 0xd2, 0xdd, 0xd0, 0xdf, 0xd6, 0xdc,
+ 0xda, 0xd9, 0xdd, 0xd0, 0xdf, 0xd3, 0xd3, 0xd5, 0xd5, 0xd6, 0xd8, 0xdb,
+ 0xad, 0xa1, 0xa2, 0xaf, 0xa8, 0xad, 0xa4, 0xa8, 0xa6, 0xaa, 0xaf, 0xa3,
+ 0xab, 0xa7, 0xa1, 0xa4, 0xaa, 0xac, 0xa9, 0xa5, 0xa3, 0xa6, 0xae, 0xab,
+ 0xa5, 0xa0, 0xa0, 0xae, 0xac, 0xa9, 0xa7, 0xa2, 0xa7, 0xa2, 0xab, 0xa1,
+ 0xa4, 0xae, 0xa1, 0xa7, 0xa9, 0xa4, 0xac, 0xaa, 0xae, 0xa8, 0xa2, 0xad,
+ 0xa0, 0xaf, 0xa6, 0xac, 0xaa, 0xa9, 0xad, 0xa0, 0xaf, 0xa3, 0xa3, 0xa5,
+ 0xa5, 0xa6, 0xa8, 0xab, 0x3d, 0x31, 0x32, 0x3f, 0x38, 0x3d, 0x34, 0x38,
+ 0x36, 0x3a, 0x3f, 0x33, 0x3b, 0x37, 0x31, 0x34, 0x3a, 0x3c, 0x39, 0x35,
+ 0x33, 0x36, 0x3e, 0x3b, 0x35, 0x30, 0x30, 0x3e, 0x3c, 0x39, 0x37, 0x32,
+ 0x37, 0x32, 0x3b, 0x31, 0x34, 0x3e, 0x31, 0x37, 0x39, 0x34, 0x3c, 0x3a,
+ 0x3e, 0x38, 0x32, 0x3d, 0x30, 0x3f, 0x36, 0x3c, 0x3a, 0x39, 0x3d, 0x30,
+ 0x3f, 0x33, 0x33, 0x35, 0x35, 0x36, 0x38, 0x3b, 0xed, 0xe1, 0xe2, 0xef,
+ 0xe8, 0xed, 0xe4, 0xe8, 0xe6, 0xea, 0xef, 0xe3, 0xeb, 0xe7, 0xe1, 0xe4,
+ 0xea, 0xec, 0xe9, 0xe5, 0xe3, 0xe6, 0xee, 0xeb, 0xe5, 0xe0, 0xe0, 0xee,
+ 0xec, 0xe9, 0xe7, 0xe2, 0xe7, 0xe2, 0xeb, 0xe1, 0xe4, 0xee, 0xe1, 0xe7,
+ 0xe9, 0xe4, 0xec, 0xea, 0xee, 0xe8, 0xe2, 0xed, 0xe0, 0xef, 0xe6, 0xec,
+ 0xea, 0xe9, 0xed, 0xe0, 0xef, 0xe3, 0xe3, 0xe5, 0xe5, 0xe6, 0xe8, 0xeb,
+ 0xcd, 0xc1, 0xc2, 0xcf, 0xc8, 0xcd, 0xc4, 0xc8, 0xc6, 0xca, 0xcf, 0xc3,
+ 0xcb, 0xc7, 0xc1, 0xc4, 0xca, 0xcc, 0xc9, 0xc5, 0xc3, 0xc6, 0xce, 0xcb,
+ 0xc5, 0xc0, 0xc0, 0xce, 0xcc, 0xc9, 0xc7, 0xc2, 0xc7, 0xc2, 0xcb, 0xc1,
+ 0xc4, 0xce, 0xc1, 0xc7, 0xc9, 0xc4, 0xcc, 0xca, 0xce, 0xc8, 0xc2, 0xcd,
+ 0xc0, 0xcf, 0xc6, 0xcc, 0xca, 0xc9, 0xcd, 0xc0, 0xcf, 0xc3, 0xc3, 0xc5,
+ 0xc5, 0xc6, 0xc8, 0xcb, 0x3d, 0x31, 0x32, 0x3f, 0x38, 0x3d, 0x34, 0x38,
+ 0x36, 0x3a, 0x3f, 0x33, 0x3b, 0x37, 0x31, 0x34, 0x3a, 0x3c, 0x39, 0x35,
+ 0x33, 0x36, 0x3e, 0x3b, 0x35, 0x30, 0x30, 0x3e, 0x3c, 0x39, 0x37, 0x32,
+ 0x37, 0x32, 0x3b, 0x31, 0x34, 0x3e, 0x31, 0x37, 0x39, 0x34, 0x3c, 0x3a,
+ 0x3e, 0x38, 0x32, 0x3d, 0x30, 0x3f, 0x36, 0x3c, 0x3a, 0x39, 0x3d, 0x30,
+ 0x3f, 0x33, 0x33, 0x35, 0x35, 0x36, 0x38, 0x3b, 0x9d, 0x91, 0x92, 0x9f,
+ 0x98, 0x9d, 0x94, 0x98, 0x96, 0x9a, 0x9f, 0x93, 0x9b, 0x97, 0x91, 0x94,
+ 0x9a, 0x9c, 0x99, 0x95, 0x93, 0x96, 0x9e, 0x9b, 0x95, 0x90, 0x90, 0x9e,
+ 0x9c, 0x99, 0x97, 0x92, 0x97, 0x92, 0x9b, 0x91, 0x94, 0x9e, 0x91, 0x97,
+ 0x99, 0x94, 0x9c, 0x9a, 0x9e, 0x98, 0x92, 0x9d, 0x90, 0x9f, 0x96, 0x9c,
+ 0x9a, 0x99, 0x9d, 0x90, 0x9f, 0x93, 0x93, 0x95, 0x95, 0x96, 0x98, 0x9b,
+ 0x5d, 0x51, 0x52, 0x5f, 0x58, 0x5d, 0x54, 0x58, 0x56, 0x5a, 0x5f, 0x53,
+ 0x5b, 0x57, 0x51, 0x54, 0x5a, 0x5c, 0x59, 0x55, 0x53, 0x56, 0x5e, 0x5b,
+ 0x55, 0x50, 0x50, 0x5e, 0x5c, 0x59, 0x57, 0x52, 0x57, 0x52, 0x5b, 0x51,
+ 0x54, 0x5e, 0x51, 0x57, 0x59, 0x54, 0x5c, 0x5a, 0x5e, 0x58, 0x52, 0x5d,
+ 0x50, 0x5f, 0x56, 0x5c, 0x5a, 0x59, 0x5d, 0x50, 0x5f, 0x53, 0x53, 0x55,
+ 0x55, 0x56, 0x58, 0x5b, 0x7d, 0x71, 0x72, 0x7f, 0x78, 0x7d, 0x74, 0x78,
+ 0x76, 0x7a, 0x7f, 0x73, 0x7b, 0x77, 0x71, 0x74, 0x7a, 0x7c, 0x79, 0x75,
+ 0x73, 0x76, 0x7e, 0x7b, 0x75, 0x70, 0x70, 0x7e, 0x7c, 0x79, 0x77, 0x72,
+ 0x77, 0x72, 0x7b, 0x71, 0x74, 0x7e, 0x71, 0x77, 0x79, 0x74, 0x7c, 0x7a,
+ 0x7e, 0x78, 0x72, 0x7d, 0x70, 0x7f, 0x76, 0x7c, 0x7a, 0x79, 0x7d, 0x70,
+ 0x7f, 0x73, 0x73, 0x75, 0x75, 0x76, 0x78, 0x7b, 0xcd, 0xc1, 0xc2, 0xcf,
+ 0xc8, 0xcd, 0xc4, 0xc8, 0xc6, 0xca, 0xcf, 0xc3, 0xcb, 0xc7, 0xc1, 0xc4,
+ 0xca, 0xcc, 0xc9, 0xc5, 0xc3, 0xc6, 0xce, 0xcb, 0xc5, 0xc0, 0xc0, 0xce,
+ 0xcc, 0xc9, 0xc7, 0xc2, 0xc7, 0xc2, 0xcb, 0xc1, 0xc4, 0xce, 0xc1, 0xc7,
+ 0xc9, 0xc4, 0xcc, 0xca, 0xce, 0xc8, 0xc2, 0xcd, 0xc0, 0xcf, 0xc6, 0xcc,
+ 0xca, 0xc9, 0xcd, 0xc0, 0xcf, 0xc3, 0xc3, 0xc5, 0xc5, 0xc6, 0xc8, 0xcb,
+ 0x5d, 0x51, 0x52, 0x5f, 0x58, 0x5d, 0x54, 0x58, 0x56, 0x5a, 0x5f, 0x53,
+ 0x5b, 0x57, 0x51, 0x54, 0x5a, 0x5c, 0x59, 0x55, 0x53, 0x56, 0x5e, 0x5b,
+ 0x55, 0x50, 0x50, 0x5e, 0x5c, 0x59, 0x57, 0x52, 0x57, 0x52, 0x5b, 0x51,
+ 0x54, 0x5e, 0x51, 0x57, 0x59, 0x54, 0x5c, 0x5a, 0x5e, 0x58, 0x52, 0x5d,
+ 0x50, 0x5f, 0x56, 0x5c, 0x5a, 0x59, 0x5d, 0x50, 0x5f, 0x53, 0x53, 0x55,
+ 0x55, 0x56, 0x58, 0x5b, 0x2d, 0x21, 0x22, 0x2f, 0x28, 0x2d, 0x24, 0x28,
+ 0x26, 0x2a, 0x2f, 0x23, 0x2b, 0x27, 0x21, 0x24, 0x2a, 0x2c, 0x29, 0x25,
+ 0x23, 0x26, 0x2e, 0x2b, 0x25, 0x20, 0x20, 0x2e, 0x2c, 0x29, 0x27, 0x22,
+ 0x27, 0x22, 0x2b, 0x21, 0x24, 0x2e, 0x21, 0x27, 0x29, 0x24, 0x2c, 0x2a,
+ 0x2e, 0x28, 0x22, 0x2d, 0x20, 0x2f, 0x26, 0x2c, 0x2a, 0x29, 0x2d, 0x20,
+ 0x2f, 0x23, 0x23, 0x25, 0x25, 0x26, 0x28, 0x2b, 0xad, 0xa1, 0xa2, 0xaf,
+ 0xa8, 0xad, 0xa4, 0xa8, 0xa6, 0xaa, 0xaf, 0xa3, 0xab, 0xa7, 0xa1, 0xa4,
+ 0xaa, 0xac, 0xa9, 0xa5, 0xa3, 0xa6, 0xae, 0xab, 0xa5, 0xa0, 0xa0, 0xae,
+ 0xac, 0xa9, 0xa7, 0xa2, 0xa7, 0xa2, 0xab, 0xa1, 0xa4, 0xae, 0xa1, 0xa7,
+ 0xa9, 0xa4, 0xac, 0xaa, 0xae, 0xa8, 0xa2, 0xad, 0xa0, 0xaf, 0xa6, 0xac,
+ 0xaa, 0xa9, 0xad, 0xa0, 0xaf, 0xa3, 0xa3, 0xa5, 0xa5, 0xa6, 0xa8, 0xab,
+ 0xfd, 0xf1, 0xf2, 0xff, 0xf8, 0xfd, 0xf4, 0xf8, 0xf6, 0xfa, 0xff, 0xf3,
+ 0xfb, 0xf7, 0xf1, 0xf4, 0xfa, 0xfc, 0xf9, 0xf5, 0xf3, 0xf6, 0xfe, 0xfb,
+ 0xf5, 0xf0, 0xf0, 0xfe, 0xfc, 0xf9, 0xf7, 0xf2, 0xf7, 0xf2, 0xfb, 0xf1,
+ 0xf4, 0xfe, 0xf1, 0xf7, 0xf9, 0xf4, 0xfc, 0xfa, 0xfe, 0xf8, 0xf2, 0xfd,
+ 0xf0, 0xff, 0xf6, 0xfc, 0xfa, 0xf9, 0xfd, 0xf0, 0xff, 0xf3, 0xf3, 0xf5,
+ 0xf5, 0xf6, 0xf8, 0xfb, 0x6d, 0x61, 0x62, 0x6f, 0x68, 0x6d, 0x64, 0x68,
+ 0x66, 0x6a, 0x6f, 0x63, 0x6b, 0x67, 0x61, 0x64, 0x6a, 0x6c, 0x69, 0x65,
+ 0x63, 0x66, 0x6e, 0x6b, 0x65, 0x60, 0x60, 0x6e, 0x6c, 0x69, 0x67, 0x62,
+ 0x67, 0x62, 0x6b, 0x61, 0x64, 0x6e, 0x61, 0x67, 0x69, 0x64, 0x6c, 0x6a,
+ 0x6e, 0x68, 0x62, 0x6d, 0x60, 0x6f, 0x66, 0x6c, 0x6a, 0x69, 0x6d, 0x60,
+ 0x6f, 0x63, 0x63, 0x65, 0x65, 0x66, 0x68, 0x6b, 0x8d, 0x81, 0x82, 0x8f,
+ 0x88, 0x8d, 0x84, 0x88, 0x86, 0x8a, 0x8f, 0x83, 0x8b, 0x87, 0x81, 0x84,
+ 0x8a, 0x8c, 0x89, 0x85, 0x83, 0x86, 0x8e, 0x8b, 0x85, 0x80, 0x80, 0x8e,
+ 0x8c, 0x89, 0x87, 0x82, 0x87, 0x82, 0x8b, 0x81, 0x84, 0x8e, 0x81, 0x87,
+ 0x89, 0x84, 0x8c, 0x8a, 0x8e, 0x88, 0x82, 0x8d, 0x80, 0x8f, 0x86, 0x8c,
+ 0x8a, 0x89, 0x8d, 0x80, 0x8f, 0x83, 0x83, 0x85, 0x85, 0x86, 0x88, 0x8b,
+ 0x1d, 0x11, 0x12, 0x1f, 0x18, 0x1d, 0x14, 0x18, 0x16, 0x1a, 0x1f, 0x13,
+ 0x1b, 0x17, 0x11, 0x14, 0x1a, 0x1c, 0x19, 0x15, 0x13, 0x16, 0x1e, 0x1b,
+ 0x15, 0x10, 0x10, 0x1e, 0x1c, 0x19, 0x17, 0x12, 0x17, 0x12, 0x1b, 0x11,
+ 0x14, 0x1e, 0x11, 0x17, 0x19, 0x14, 0x1c, 0x1a, 0x1e, 0x18, 0x12, 0x1d,
+ 0x10, 0x1f, 0x16, 0x1c, 0x1a, 0x19, 0x1d, 0x10, 0x1f, 0x13, 0x13, 0x15,
+ 0x15, 0x16, 0x18, 0x1b, 0x6d, 0x61, 0x62, 0x6f, 0x68, 0x6d, 0x64, 0x68,
+ 0x66, 0x6a, 0x6f, 0x63, 0x6b, 0x67, 0x61, 0x64, 0x6a, 0x6c, 0x69, 0x65,
+ 0x63, 0x66, 0x6e, 0x6b, 0x65, 0x60, 0x60, 0x6e, 0x6c, 0x69, 0x67, 0x62,
+ 0x67, 0x62, 0x6b, 0x61, 0x64, 0x6e, 0x61, 0x67, 0x69, 0x64, 0x6c, 0x6a,
+ 0x6e, 0x68, 0x62, 0x6d, 0x60, 0x6f, 0x66, 0x6c, 0x6a, 0x69, 0x6d, 0x60,
+ 0x6f, 0x63, 0x63, 0x65, 0x65, 0x66, 0x68, 0x6b, 0x1d, 0x11, 0x12, 0x1f,
+ 0x18, 0x1d, 0x14, 0x18, 0x16, 0x1a, 0x1f, 0x13, 0x1b, 0x17, 0x11, 0x14,
+ 0x1a, 0x1c, 0x19, 0x15, 0x13, 0x16, 0x1e, 0x1b, 0x15, 0x10, 0x10, 0x1e,
+ 0x1c, 0x19, 0x17, 0x12, 0x17, 0x12, 0x1b, 0x11, 0x14, 0x1e, 0x11, 0x17,
+ 0x19, 0x14, 0x1c, 0x1a, 0x1e, 0x18, 0x12, 0x1d, 0x10, 0x1f, 0x16, 0x1c,
+ 0x1a, 0x19, 0x1d, 0x10, 0x1f, 0x13, 0x13, 0x15, 0x15, 0x16, 0x18, 0x1b,
+ 0x6d, 0x61, 0x62, 0x6f, 0x68, 0x6d, 0x64, 0x68, 0x66, 0x6a, 0x6f, 0x63,
+ 0x6b, 0x67, 0x61, 0x64, 0x6a, 0x6c, 0x69, 0x65, 0x63, 0x66, 0x6e, 0x6b,
+ 0x65, 0x60, 0x60, 0x6e, 0x6c, 0x69, 0x67, 0x62, 0x67, 0x62, 0x6b, 0x61,
+ 0x64, 0x6e, 0x61, 0x67, 0x69, 0x64, 0x6c, 0x6a, 0x6e, 0x68, 0x62, 0x6d,
+ 0x60, 0x6f, 0x66, 0x6c, 0x6a, 0x69, 0x6d, 0x60, 0x6f, 0x63, 0x63, 0x65,
+ 0x65, 0x66, 0x68, 0x6b, 0x4d, 0x41, 0x42, 0x4f, 0x48, 0x4d, 0x44, 0x48,
+ 0x46, 0x4a, 0x4f, 0x43, 0x4b, 0x47, 0x41, 0x44, 0x4a, 0x4c, 0x49, 0x45,
+ 0x43, 0x46, 0x4e, 0x4b, 0x45, 0x40, 0x40, 0x4e, 0x4c, 0x49, 0x47, 0x42,
+ 0x47, 0x42, 0x4b, 0x41, 0x44, 0x4e, 0x41, 0x47, 0x49, 0x44, 0x4c, 0x4a,
+ 0x4e, 0x48, 0x42, 0x4d, 0x40, 0x4f, 0x46, 0x4c, 0x4a, 0x49, 0x4d, 0x40,
+ 0x4f, 0x43, 0x43, 0x45, 0x45, 0x46, 0x48, 0x4b, 0xbd, 0xb1, 0xb2, 0xbf,
+ 0xb8, 0xbd, 0xb4, 0xb8, 0xb6, 0xba, 0xbf, 0xb3, 0xbb, 0xb7, 0xb1, 0xb4,
+ 0xba, 0xbc, 0xb9, 0xb5, 0xb3, 0xb6, 0xbe, 0xbb, 0xb5, 0xb0, 0xb0, 0xbe,
+ 0xbc, 0xb9, 0xb7, 0xb2, 0xb7, 0xb2, 0xbb, 0xb1, 0xb4, 0xbe, 0xb1, 0xb7,
+ 0xb9, 0xb4, 0xbc, 0xba, 0xbe, 0xb8, 0xb2, 0xbd, 0xb0, 0xbf, 0xb6, 0xbc,
+ 0xba, 0xb9, 0xbd, 0xb0, 0xbf, 0xb3, 0xb3, 0xb5, 0xb5, 0xb6, 0xb8, 0xbb,
+ 0xbd, 0xb1, 0xb2, 0xbf, 0xb8, 0xbd, 0xb4, 0xb8, 0xb6, 0xba, 0xbf, 0xb3,
+ 0xbb, 0xb7, 0xb1, 0xb4, 0xba, 0xbc, 0xb9, 0xb5, 0xb3, 0xb6, 0xbe, 0xbb,
+ 0xb5, 0xb0, 0xb0, 0xbe, 0xbc, 0xb9, 0xb7, 0xb2, 0xb7, 0xb2, 0xbb, 0xb1,
+ 0xb4, 0xbe, 0xb1, 0xb7, 0xb9, 0xb4, 0xbc, 0xba, 0xbe, 0xb8, 0xb2, 0xbd,
+ 0xb0, 0xbf, 0xb6, 0xbc, 0xba, 0xb9, 0xbd, 0xb0, 0xbf, 0xb3, 0xb3, 0xb5,
+ 0xb5, 0xb6, 0xb8, 0xbb, 0xdd, 0xd1, 0xd2, 0xdf, 0xd8, 0xdd, 0xd4, 0xd8,
+ 0xd6, 0xda, 0xdf, 0xd3, 0xdb, 0xd7, 0xd1, 0xd4, 0xda, 0xdc, 0xd9, 0xd5,
+ 0xd3, 0xd6, 0xde, 0xdb, 0xd5, 0xd0, 0xd0, 0xde, 0xdc, 0xd9, 0xd7, 0xd2,
+ 0xd7, 0xd2, 0xdb, 0xd1, 0xd4, 0xde, 0xd1, 0xd7, 0xd9, 0xd4, 0xdc, 0xda,
+ 0xde, 0xd8, 0xd2, 0xdd, 0xd0, 0xdf, 0xd6, 0xdc, 0xda, 0xd9, 0xdd, 0xd0,
+ 0xdf, 0xd3, 0xd3, 0xd5, 0xd5, 0xd6, 0xd8, 0xdb, 0xdd, 0xd1, 0xd2, 0xdf,
+ 0xd8, 0xdd, 0xd4, 0xd8, 0xd6, 0xda, 0xdf, 0xd3, 0xdb, 0xd7, 0xd1, 0xd4,
+ 0xda, 0xdc, 0xd9, 0xd5, 0xd3, 0xd6, 0xde, 0xdb, 0xd5, 0xd0, 0xd0, 0xde,
+ 0xdc, 0xd9, 0xd7, 0xd2, 0xd7, 0xd2, 0xdb, 0xd1, 0xd4, 0xde, 0xd1, 0xd7,
+ 0xd9, 0xd4, 0xdc, 0xda, 0xde, 0xd8, 0xd2, 0xdd, 0xd0, 0xdf, 0xd6, 0xdc,
+ 0xda, 0xd9, 0xdd, 0xd0, 0xdf, 0xd3, 0xd3, 0xd5, 0xd5, 0xd6, 0xd8, 0xdb,
+ 0x8d, 0x81, 0x82, 0x8f, 0x88, 0x8d, 0x84, 0x88, 0x86, 0x8a, 0x8f, 0x83,
+ 0x8b, 0x87, 0x81, 0x84, 0x8a, 0x8c, 0x89, 0x85, 0x83, 0x86, 0x8e, 0x8b,
+ 0x85, 0x80, 0x80, 0x8e, 0x8c, 0x89, 0x87, 0x82, 0x87, 0x82, 0x8b, 0x81,
+ 0x84, 0x8e, 0x81, 0x87, 0x89, 0x84, 0x8c, 0x8a, 0x8e, 0x88, 0x82, 0x8d,
+ 0x80, 0x8f, 0x86, 0x8c, 0x8a, 0x89, 0x8d, 0x80, 0x8f, 0x83, 0x83, 0x85,
+ 0x85, 0x86, 0x88, 0x8b, 0xcd, 0xc1, 0xc2, 0xcf, 0xc8, 0xcd, 0xc4, 0xc8,
+ 0xc6, 0xca, 0xcf, 0xc3, 0xcb, 0xc7, 0xc1, 0xc4, 0xca, 0xcc, 0xc9, 0xc5,
+ 0xc3, 0xc6, 0xce, 0xcb, 0xc5, 0xc0, 0xc0, 0xce, 0xcc, 0xc9, 0xc7, 0xc2,
+ 0xc7, 0xc2, 0xcb, 0xc1, 0xc4, 0xce, 0xc1, 0xc7, 0xc9, 0xc4, 0xcc, 0xca,
+ 0xce, 0xc8, 0xc2, 0xcd, 0xc0, 0xcf, 0xc6, 0xcc, 0xca, 0xc9, 0xcd, 0xc0,
+ 0xcf, 0xc3, 0xc3, 0xc5, 0xc5, 0xc6, 0xc8, 0xcb, 0x1d, 0x11, 0x12, 0x1f,
+ 0x18, 0x1d, 0x14, 0x18, 0x16, 0x1a, 0x1f, 0x13, 0x1b, 0x17, 0x11, 0x14,
+ 0x1a, 0x1c, 0x19, 0x15, 0x13, 0x16, 0x1e, 0x1b, 0x15, 0x10, 0x10, 0x1e,
+ 0x1c, 0x19, 0x17, 0x12, 0x17, 0x12, 0x1b, 0x11, 0x14, 0x1e, 0x11, 0x17,
+ 0x19, 0x14, 0x1c, 0x1a, 0x1e, 0x18, 0x12, 0x1d, 0x10, 0x1f, 0x16, 0x1c,
+ 0x1a, 0x19, 0x1d, 0x10, 0x1f, 0x13, 0x13, 0x15, 0x15, 0x16, 0x18, 0x1b,
+ 0x3d, 0x31, 0x32, 0x3f, 0x38, 0x3d, 0x34, 0x38, 0x36, 0x3a, 0x3f, 0x33,
+ 0x3b, 0x37, 0x31, 0x34, 0x3a, 0x3c, 0x39, 0x35, 0x33, 0x36, 0x3e, 0x3b,
+ 0x35, 0x30, 0x30, 0x3e, 0x3c, 0x39, 0x37, 0x32, 0x37, 0x32, 0x3b, 0x31,
+ 0x34, 0x3e, 0x31, 0x37, 0x39, 0x34, 0x3c, 0x3a, 0x3e, 0x38, 0x32, 0x3d,
+ 0x30, 0x3f, 0x36, 0x3c, 0x3a, 0x39, 0x3d, 0x30, 0x3f, 0x33, 0x33, 0x35,
+ 0x35, 0x36, 0x38, 0x3b, 0x4d, 0x41, 0x42, 0x4f, 0x48, 0x4d, 0x44, 0x48,
+ 0x46, 0x4a, 0x4f, 0x43, 0x4b, 0x47, 0x41, 0x44, 0x4a, 0x4c, 0x49, 0x45,
+ 0x43, 0x46, 0x4e, 0x4b, 0x45, 0x40, 0x40, 0x4e, 0x4c, 0x49, 0x47, 0x42,
+ 0x47, 0x42, 0x4b, 0x41, 0x44, 0x4e, 0x41, 0x47, 0x49, 0x44, 0x4c, 0x4a,
+ 0x4e, 0x48, 0x42, 0x4d, 0x40, 0x4f, 0x46, 0x4c, 0x4a, 0x49, 0x4d, 0x40,
+ 0x4f, 0x43, 0x43, 0x45, 0x45, 0x46, 0x48, 0x4b, 0x7d, 0x71, 0x72, 0x7f,
+ 0x78, 0x7d, 0x74, 0x78, 0x76, 0x7a, 0x7f, 0x73, 0x7b, 0x77, 0x71, 0x74,
+ 0x7a, 0x7c, 0x79, 0x75, 0x73, 0x76, 0x7e, 0x7b, 0x75, 0x70, 0x70, 0x7e,
+ 0x7c, 0x79, 0x77, 0x72, 0x77, 0x72, 0x7b, 0x71, 0x74, 0x7e, 0x71, 0x77,
+ 0x79, 0x74, 0x7c, 0x7a, 0x7e, 0x78, 0x72, 0x7d, 0x70, 0x7f, 0x76, 0x7c,
+ 0x7a, 0x79, 0x7d, 0x70, 0x7f, 0x73, 0x73, 0x75, 0x75, 0x76, 0x78, 0x7b,
+ 0xad, 0xa1, 0xa2, 0xaf, 0xa8, 0xad, 0xa4, 0xa8, 0xa6, 0xaa, 0xaf, 0xa3,
+ 0xab, 0xa7, 0xa1, 0xa4, 0xaa, 0xac, 0xa9, 0xa5, 0xa3, 0xa6, 0xae, 0xab,
+ 0xa5, 0xa0, 0xa0, 0xae, 0xac, 0xa9, 0xa7, 0xa2, 0xa7, 0xa2, 0xab, 0xa1,
+ 0xa4, 0xae, 0xa1, 0xa7, 0xa9, 0xa4, 0xac, 0xaa, 0xae, 0xa8, 0xa2, 0xad,
+ 0xa0, 0xaf, 0xa6, 0xac, 0xaa, 0xa9, 0xad, 0xa0, 0xaf, 0xa3, 0xa3, 0xa5,
+ 0xa5, 0xa6, 0xa8, 0xab, 0xed, 0xe1, 0xe2, 0xef, 0xe8, 0xed, 0xe4, 0xe8,
+ 0xe6, 0xea, 0xef, 0xe3, 0xeb, 0xe7, 0xe1, 0xe4, 0xea, 0xec, 0xe9, 0xe5,
+ 0xe3, 0xe6, 0xee, 0xeb, 0xe5, 0xe0, 0xe0, 0xee, 0xec, 0xe9, 0xe7, 0xe2,
+ 0xe7, 0xe2, 0xeb, 0xe1, 0xe4, 0xee, 0xe1, 0xe7, 0xe9, 0xe4, 0xec, 0xea,
+ 0xee, 0xe8, 0xe2, 0xed, 0xe0, 0xef, 0xe6, 0xec, 0xea, 0xe9, 0xed, 0xe0,
+ 0xef, 0xe3, 0xe3, 0xe5, 0xe5, 0xe6, 0xe8, 0xeb, 0x7d, 0x71, 0x72, 0x7f,
+ 0x78, 0x7d, 0x74, 0x78, 0x76, 0x7a, 0x7f, 0x73, 0x7b, 0x77, 0x71, 0x74,
+ 0x7a, 0x7c, 0x79, 0x75, 0x73, 0x76, 0x7e, 0x7b, 0x75, 0x70, 0x70, 0x7e,
+ 0x7c, 0x79, 0x77, 0x72, 0x77, 0x72, 0x7b, 0x71, 0x74, 0x7e, 0x71, 0x77,
+ 0x79, 0x74, 0x7c, 0x7a, 0x7e, 0x78, 0x72, 0x7d, 0x70, 0x7f, 0x76, 0x7c,
+ 0x7a, 0x79, 0x7d, 0x70, 0x7f, 0x73, 0x73, 0x75, 0x75, 0x76, 0x78, 0x7b,
+ 0xad, 0xa1, 0xa2, 0xaf, 0xa8, 0xad, 0xa4, 0xa8, 0xa6, 0xaa, 0xaf, 0xa3,
+ 0xab, 0xa7, 0xa1, 0xa4, 0xaa, 0xac, 0xa9, 0xa5, 0xa3, 0xa6, 0xae, 0xab,
+ 0xa5, 0xa0, 0xa0, 0xae, 0xac, 0xa9, 0xa7, 0xa2, 0xa7, 0xa2, 0xab, 0xa1,
+ 0xa4, 0xae, 0xa1, 0xa7, 0xa9, 0xa4, 0xac, 0xaa, 0xae, 0xa8, 0xa2, 0xad,
+ 0xa0, 0xaf, 0xa6, 0xac, 0xaa, 0xa9, 0xad, 0xa0, 0xaf, 0xa3, 0xa3, 0xa5,
+ 0xa5, 0xa6, 0xa8, 0xab, 0x9d, 0x91, 0x92, 0x9f, 0x98, 0x9d, 0x94, 0x98,
+ 0x96, 0x9a, 0x9f, 0x93, 0x9b, 0x97, 0x91, 0x94, 0x9a, 0x9c, 0x99, 0x95,
+ 0x93, 0x96, 0x9e, 0x9b, 0x95, 0x90, 0x90, 0x9e, 0x9c, 0x99, 0x97, 0x92,
+ 0x97, 0x92, 0x9b, 0x91, 0x94, 0x9e, 0x91, 0x97, 0x99, 0x94, 0x9c, 0x9a,
+ 0x9e, 0x98, 0x92, 0x9d, 0x90, 0x9f, 0x96, 0x9c, 0x9a, 0x99, 0x9d, 0x90,
+ 0x9f, 0x93, 0x93, 0x95, 0x95, 0x96, 0x98, 0x9b, 0xfd, 0xf1, 0xf2, 0xff,
+ 0xf8, 0xfd, 0xf4, 0xf8, 0xf6, 0xfa, 0xff, 0xf3, 0xfb, 0xf7, 0xf1, 0xf4,
+ 0xfa, 0xfc, 0xf9, 0xf5, 0xf3, 0xf6, 0xfe, 0xfb, 0xf5, 0xf0, 0xf0, 0xfe,
+ 0xfc, 0xf9, 0xf7, 0xf2, 0xf7, 0xf2, 0xfb, 0xf1, 0xf4, 0xfe, 0xf1, 0xf7,
+ 0xf9, 0xf4, 0xfc, 0xfa, 0xfe, 0xf8, 0xf2, 0xfd, 0xf0, 0xff, 0xf6, 0xfc,
+ 0xfa, 0xf9, 0xfd, 0xf0, 0xff, 0xf3, 0xf3, 0xf5, 0xf5, 0xf6, 0xf8, 0xfb,
+ 0x5d, 0x51, 0x52, 0x5f, 0x58, 0x5d, 0x54, 0x58, 0x56, 0x5a, 0x5f, 0x53,
+ 0x5b, 0x57, 0x51, 0x54, 0x5a, 0x5c, 0x59, 0x55, 0x53, 0x56, 0x5e, 0x5b,
+ 0x55, 0x50, 0x50, 0x5e, 0x5c, 0x59, 0x57, 0x52, 0x57, 0x52, 0x5b, 0x51,
+ 0x54, 0x5e, 0x51, 0x57, 0x59, 0x54, 0x5c, 0x5a, 0x5e, 0x58, 0x52, 0x5d,
+ 0x50, 0x5f, 0x56, 0x5c, 0x5a, 0x59, 0x5d, 0x50, 0x5f, 0x53, 0x53, 0x55,
+ 0x55, 0x56, 0x58, 0x5b, 0x6d, 0x61, 0x62, 0x6f, 0x68, 0x6d, 0x64, 0x68,
+ 0x66, 0x6a, 0x6f, 0x63, 0x6b, 0x67, 0x61, 0x64, 0x6a, 0x6c, 0x69, 0x65,
+ 0x63, 0x66, 0x6e, 0x6b, 0x65, 0x60, 0x60, 0x6e, 0x6c, 0x69, 0x67, 0x62,
+ 0x67, 0x62, 0x6b, 0x61, 0x64, 0x6e, 0x61, 0x67, 0x69, 0x64, 0x6c, 0x6a,
+ 0x6e, 0x68, 0x62, 0x6d, 0x60, 0x6f, 0x66, 0x6c, 0x6a, 0x69, 0x6d, 0x60,
+ 0x6f, 0x63, 0x63, 0x65, 0x65, 0x66, 0x68, 0x6b, 0x0d, 0x01, 0x02, 0x0f,
+ 0x08, 0x0d, 0x04, 0x08, 0x06, 0x0a, 0x0f, 0x03, 0x0b, 0x07, 0x01, 0x04,
+ 0x0a, 0x0c, 0x09, 0x05, 0x03, 0x06, 0x0e, 0x0b, 0x05, 0x00, 0x00, 0x0e,
+ 0x0c, 0x09, 0x07, 0x02, 0x07, 0x02, 0x0b, 0x01, 0x04, 0x0e, 0x01, 0x07,
+ 0x09, 0x04, 0x0c, 0x0a, 0x0e, 0x08, 0x02, 0x0d, 0x00, 0x0f, 0x06, 0x0c,
+ 0x0a, 0x09, 0x0d, 0x00, 0x0f, 0x03, 0x03, 0x05, 0x05, 0x06, 0x08, 0x0b,
+ 0x8d, 0x81, 0x82, 0x8f, 0x88, 0x8d, 0x84, 0x88, 0x86, 0x8a, 0x8f, 0x83,
+ 0x8b, 0x87, 0x81, 0x84, 0x8a, 0x8c, 0x89, 0x85, 0x83, 0x86, 0x8e, 0x8b,
+ 0x85, 0x80, 0x80, 0x8e, 0x8c, 0x89, 0x87, 0x82, 0x87, 0x82, 0x8b, 0x81,
+ 0x84, 0x8e, 0x81, 0x87, 0x89, 0x84, 0x8c, 0x8a, 0x8e, 0x88, 0x82, 0x8d,
+ 0x80, 0x8f, 0x86, 0x8c, 0x8a, 0x89, 0x8d, 0x80, 0x8f, 0x83, 0x83, 0x85,
+ 0x85, 0x86, 0x88, 0x8b, 0xfd, 0xf1, 0xf2, 0xff, 0xf8, 0xfd, 0xf4, 0xf8,
+ 0xf6, 0xfa, 0xff, 0xf3, 0xfb, 0xf7, 0xf1, 0xf4, 0xfa, 0xfc, 0xf9, 0xf5,
+ 0xf3, 0xf6, 0xfe, 0xfb, 0xf5, 0xf0, 0xf0, 0xfe, 0xfc, 0xf9, 0xf7, 0xf2,
+ 0xf7, 0xf2, 0xfb, 0xf1, 0xf4, 0xfe, 0xf1, 0xf7, 0xf9, 0xf4, 0xfc, 0xfa,
+ 0xfe, 0xf8, 0xf2, 0xfd, 0xf0, 0xff, 0xf6, 0xfc, 0xfa, 0xf9, 0xfd, 0xf0,
+ 0xff, 0xf3, 0xf3, 0xf5, 0xf5, 0xf6, 0xf8, 0xfb, 0x0d, 0x01, 0x02, 0x0f,
+ 0x08, 0x0d, 0x04, 0x08, 0x06, 0x0a, 0x0f, 0x03, 0x0b, 0x07, 0x01, 0x04,
+ 0x0a, 0x0c, 0x09, 0x05, 0x03, 0x06, 0x0e, 0x0b, 0x05, 0x00, 0x00, 0x0e,
+ 0x0c, 0x09, 0x07, 0x02, 0x07, 0x02, 0x0b, 0x01, 0x04, 0x0e, 0x01, 0x07,
+ 0x09, 0x04, 0x0c, 0x0a, 0x0e, 0x08, 0x02, 0x0d, 0x00, 0x0f, 0x06, 0x0c,
+ 0x0a, 0x09, 0x0d, 0x00, 0x0f, 0x03, 0x03, 0x05, 0x05, 0x06, 0x08, 0x0b,
+ 0xed, 0xe1, 0xe2, 0xef, 0xe8, 0xed, 0xe4, 0xe8, 0xe6, 0xea, 0xef, 0xe3,
+ 0xeb, 0xe7, 0xe1, 0xe4, 0xea, 0xec, 0xe9, 0xe5, 0xe3, 0xe6, 0xee, 0xeb,
+ 0xe5, 0xe0, 0xe0, 0xee, 0xec, 0xe9, 0xe7, 0xe2, 0xe7, 0xe2, 0xeb, 0xe1,
+ 0xe4, 0xee, 0xe1, 0xe7, 0xe9, 0xe4, 0xec, 0xea, 0xee, 0xe8, 0xe2, 0xed,
+ 0xe0, 0xef, 0xe6, 0xec, 0xea, 0xe9, 0xed, 0xe0, 0xef, 0xe3, 0xe3, 0xe5,
+ 0xe5, 0xe6, 0xe8, 0xeb, 0x5d, 0x51, 0x52, 0x5f, 0x58, 0x5d, 0x54, 0x58,
+ 0x56, 0x5a, 0x5f, 0x53, 0x5b, 0x57, 0x51, 0x54, 0x5a, 0x5c, 0x59, 0x55,
+ 0x53, 0x56, 0x5e, 0x5b, 0x55, 0x50, 0x50, 0x5e, 0x5c, 0x59, 0x57, 0x52,
+ 0x57, 0x52, 0x5b, 0x51, 0x54, 0x5e, 0x51, 0x57, 0x59, 0x54, 0x5c, 0x5a,
+ 0x5e, 0x58, 0x52, 0x5d, 0x50, 0x5f, 0x56, 0x5c, 0x5a, 0x59, 0x5d, 0x50,
+ 0x5f, 0x53, 0x53, 0x55, 0x55, 0x56, 0x58, 0x5b, 0x2d, 0x21, 0x22, 0x2f,
+ 0x28, 0x2d, 0x24, 0x28, 0x26, 0x2a, 0x2f, 0x23, 0x2b, 0x27, 0x21, 0x24,
+ 0x2a, 0x2c, 0x29, 0x25, 0x23, 0x26, 0x2e, 0x2b, 0x25, 0x20, 0x20, 0x2e,
+ 0x2c, 0x29, 0x27, 0x22, 0x27, 0x22, 0x2b, 0x21, 0x24, 0x2e, 0x21, 0x27,
+ 0x29, 0x24, 0x2c, 0x2a, 0x2e, 0x28, 0x22, 0x2d, 0x20, 0x2f, 0x26, 0x2c,
+ 0x2a, 0x29, 0x2d, 0x20, 0x2f, 0x23, 0x23, 0x25, 0x25, 0x26, 0x28, 0x2b,
+ 0x9d, 0x91, 0x92, 0x9f, 0x98, 0x9d, 0x94, 0x98, 0x96, 0x9a, 0x9f, 0x93,
+ 0x9b, 0x97, 0x91, 0x94, 0x9a, 0x9c, 0x99, 0x95, 0x93, 0x96, 0x9e, 0x9b,
+ 0x95, 0x90, 0x90, 0x9e, 0x9c, 0x99, 0x97, 0x92, 0x97, 0x92, 0x9b, 0x91,
+ 0x94, 0x9e, 0x91, 0x97, 0x99, 0x94, 0x9c, 0x9a, 0x9e, 0x98, 0x92, 0x9d,
+ 0x90, 0x9f, 0x96, 0x9c, 0x9a, 0x99, 0x9d, 0x90, 0x9f, 0x93, 0x93, 0x95,
+ 0x95, 0x96, 0x98, 0x9b, 0x3d, 0x31, 0x32, 0x3f, 0x38, 0x3d, 0x34, 0x38,
+ 0x36, 0x3a, 0x3f, 0x33, 0x3b, 0x37, 0x31, 0x34, 0x3a, 0x3c, 0x39, 0x35,
+ 0x33, 0x36, 0x3e, 0x3b, 0x35, 0x30, 0x30, 0x3e, 0x3c, 0x39, 0x37, 0x32,
+ 0x37, 0x32, 0x3b, 0x31, 0x34, 0x3e, 0x31, 0x37, 0x39, 0x34, 0x3c, 0x3a,
+ 0x3e, 0x38, 0x32, 0x3d, 0x30, 0x3f, 0x36, 0x3c, 0x3a, 0x39, 0x3d, 0x30,
+ 0x3f, 0x33, 0x33, 0x35, 0x35, 0x36, 0x38, 0x3b, 0x2d, 0x21, 0x22, 0x2f,
+ 0x28, 0x2d, 0x24, 0x28, 0x26, 0x2a, 0x2f, 0x23, 0x2b, 0x27, 0x21, 0x24,
+ 0x2a, 0x2c, 0x29, 0x25, 0x23, 0x26, 0x2e, 0x2b, 0x25, 0x20, 0x20, 0x2e,
+ 0x2c, 0x29, 0x27, 0x22, 0x27, 0x22, 0x2b, 0x21, 0x24, 0x2e, 0x21, 0x27,
+ 0x29, 0x24, 0x2c, 0x2a, 0x2e, 0x28, 0x22, 0x2d, 0x20, 0x2f, 0x26, 0x2c,
+ 0x2a, 0x29, 0x2d, 0x20, 0x2f, 0x23, 0x23, 0x25, 0x25, 0x26, 0x28, 0x2b,
+ 0xcd, 0xc1, 0xc2, 0xcf, 0xc8, 0xcd, 0xc4, 0xc8, 0xc6, 0xca, 0xcf, 0xc3,
+ 0xcb, 0xc7, 0xc1, 0xc4, 0xca, 0xcc, 0xc9, 0xc5, 0xc3, 0xc6, 0xce, 0xcb,
+ 0xc5, 0xc0, 0xc0, 0xce, 0xcc, 0xc9, 0xc7, 0xc2, 0xc7, 0xc2, 0xcb, 0xc1,
+ 0xc4, 0xce, 0xc1, 0xc7, 0xc9, 0xc4, 0xcc, 0xca, 0xce, 0xc8, 0xc2, 0xcd,
+ 0xc0, 0xcf, 0xc6, 0xcc, 0xca, 0xc9, 0xcd, 0xc0, 0xcf, 0xc3, 0xc3, 0xc5,
+ 0xc5, 0xc6, 0xc8, 0xcb,
+ },
+};
+
+const uint32_t ip_maskl[8][256] =
+{
+ {
+ 0x00000000, 0x00000001, 0x00000000, 0x00000001, 0x00000100, 0x00000101,
+ 0x00000100, 0x00000101, 0x00000000, 0x00000001, 0x00000000, 0x00000001,
+ 0x00000100, 0x00000101, 0x00000100, 0x00000101, 0x00010000, 0x00010001,
+ 0x00010000, 0x00010001, 0x00010100, 0x00010101, 0x00010100, 0x00010101,
+ 0x00010000, 0x00010001, 0x00010000, 0x00010001, 0x00010100, 0x00010101,
+ 0x00010100, 0x00010101, 0x00000000, 0x00000001, 0x00000000, 0x00000001,
+ 0x00000100, 0x00000101, 0x00000100, 0x00000101, 0x00000000, 0x00000001,
+ 0x00000000, 0x00000001, 0x00000100, 0x00000101, 0x00000100, 0x00000101,
+ 0x00010000, 0x00010001, 0x00010000, 0x00010001, 0x00010100, 0x00010101,
+ 0x00010100, 0x00010101, 0x00010000, 0x00010001, 0x00010000, 0x00010001,
+ 0x00010100, 0x00010101, 0x00010100, 0x00010101, 0x01000000, 0x01000001,
+ 0x01000000, 0x01000001, 0x01000100, 0x01000101, 0x01000100, 0x01000101,
+ 0x01000000, 0x01000001, 0x01000000, 0x01000001, 0x01000100, 0x01000101,
+ 0x01000100, 0x01000101, 0x01010000, 0x01010001, 0x01010000, 0x01010001,
+ 0x01010100, 0x01010101, 0x01010100, 0x01010101, 0x01010000, 0x01010001,
+ 0x01010000, 0x01010001, 0x01010100, 0x01010101, 0x01010100, 0x01010101,
+ 0x01000000, 0x01000001, 0x01000000, 0x01000001, 0x01000100, 0x01000101,
+ 0x01000100, 0x01000101, 0x01000000, 0x01000001, 0x01000000, 0x01000001,
+ 0x01000100, 0x01000101, 0x01000100, 0x01000101, 0x01010000, 0x01010001,
+ 0x01010000, 0x01010001, 0x01010100, 0x01010101, 0x01010100, 0x01010101,
+ 0x01010000, 0x01010001, 0x01010000, 0x01010001, 0x01010100, 0x01010101,
+ 0x01010100, 0x01010101, 0x00000000, 0x00000001, 0x00000000, 0x00000001,
+ 0x00000100, 0x00000101, 0x00000100, 0x00000101, 0x00000000, 0x00000001,
+ 0x00000000, 0x00000001, 0x00000100, 0x00000101, 0x00000100, 0x00000101,
+ 0x00010000, 0x00010001, 0x00010000, 0x00010001, 0x00010100, 0x00010101,
+ 0x00010100, 0x00010101, 0x00010000, 0x00010001, 0x00010000, 0x00010001,
+ 0x00010100, 0x00010101, 0x00010100, 0x00010101, 0x00000000, 0x00000001,
+ 0x00000000, 0x00000001, 0x00000100, 0x00000101, 0x00000100, 0x00000101,
+ 0x00000000, 0x00000001, 0x00000000, 0x00000001, 0x00000100, 0x00000101,
+ 0x00000100, 0x00000101, 0x00010000, 0x00010001, 0x00010000, 0x00010001,
+ 0x00010100, 0x00010101, 0x00010100, 0x00010101, 0x00010000, 0x00010001,
+ 0x00010000, 0x00010001, 0x00010100, 0x00010101, 0x00010100, 0x00010101,
+ 0x01000000, 0x01000001, 0x01000000, 0x01000001, 0x01000100, 0x01000101,
+ 0x01000100, 0x01000101, 0x01000000, 0x01000001, 0x01000000, 0x01000001,
+ 0x01000100, 0x01000101, 0x01000100, 0x01000101, 0x01010000, 0x01010001,
+ 0x01010000, 0x01010001, 0x01010100, 0x01010101, 0x01010100, 0x01010101,
+ 0x01010000, 0x01010001, 0x01010000, 0x01010001, 0x01010100, 0x01010101,
+ 0x01010100, 0x01010101, 0x01000000, 0x01000001, 0x01000000, 0x01000001,
+ 0x01000100, 0x01000101, 0x01000100, 0x01000101, 0x01000000, 0x01000001,
+ 0x01000000, 0x01000001, 0x01000100, 0x01000101, 0x01000100, 0x01000101,
+ 0x01010000, 0x01010001, 0x01010000, 0x01010001, 0x01010100, 0x01010101,
+ 0x01010100, 0x01010101, 0x01010000, 0x01010001, 0x01010000, 0x01010001,
+ 0x01010100, 0x01010101, 0x01010100, 0x01010101,
+ },
+ {
+ 0x00000000, 0x00000002, 0x00000000, 0x00000002, 0x00000200, 0x00000202,
+ 0x00000200, 0x00000202, 0x00000000, 0x00000002, 0x00000000, 0x00000002,
+ 0x00000200, 0x00000202, 0x00000200, 0x00000202, 0x00020000, 0x00020002,
+ 0x00020000, 0x00020002, 0x00020200, 0x00020202, 0x00020200, 0x00020202,
+ 0x00020000, 0x00020002, 0x00020000, 0x00020002, 0x00020200, 0x00020202,
+ 0x00020200, 0x00020202, 0x00000000, 0x00000002, 0x00000000, 0x00000002,
+ 0x00000200, 0x00000202, 0x00000200, 0x00000202, 0x00000000, 0x00000002,
+ 0x00000000, 0x00000002, 0x00000200, 0x00000202, 0x00000200, 0x00000202,
+ 0x00020000, 0x00020002, 0x00020000, 0x00020002, 0x00020200, 0x00020202,
+ 0x00020200, 0x00020202, 0x00020000, 0x00020002, 0x00020000, 0x00020002,
+ 0x00020200, 0x00020202, 0x00020200, 0x00020202, 0x02000000, 0x02000002,
+ 0x02000000, 0x02000002, 0x02000200, 0x02000202, 0x02000200, 0x02000202,
+ 0x02000000, 0x02000002, 0x02000000, 0x02000002, 0x02000200, 0x02000202,
+ 0x02000200, 0x02000202, 0x02020000, 0x02020002, 0x02020000, 0x02020002,
+ 0x02020200, 0x02020202, 0x02020200, 0x02020202, 0x02020000, 0x02020002,
+ 0x02020000, 0x02020002, 0x02020200, 0x02020202, 0x02020200, 0x02020202,
+ 0x02000000, 0x02000002, 0x02000000, 0x02000002, 0x02000200, 0x02000202,
+ 0x02000200, 0x02000202, 0x02000000, 0x02000002, 0x02000000, 0x02000002,
+ 0x02000200, 0x02000202, 0x02000200, 0x02000202, 0x02020000, 0x02020002,
+ 0x02020000, 0x02020002, 0x02020200, 0x02020202, 0x02020200, 0x02020202,
+ 0x02020000, 0x02020002, 0x02020000, 0x02020002, 0x02020200, 0x02020202,
+ 0x02020200, 0x02020202, 0x00000000, 0x00000002, 0x00000000, 0x00000002,
+ 0x00000200, 0x00000202, 0x00000200, 0x00000202, 0x00000000, 0x00000002,
+ 0x00000000, 0x00000002, 0x00000200, 0x00000202, 0x00000200, 0x00000202,
+ 0x00020000, 0x00020002, 0x00020000, 0x00020002, 0x00020200, 0x00020202,
+ 0x00020200, 0x00020202, 0x00020000, 0x00020002, 0x00020000, 0x00020002,
+ 0x00020200, 0x00020202, 0x00020200, 0x00020202, 0x00000000, 0x00000002,
+ 0x00000000, 0x00000002, 0x00000200, 0x00000202, 0x00000200, 0x00000202,
+ 0x00000000, 0x00000002, 0x00000000, 0x00000002, 0x00000200, 0x00000202,
+ 0x00000200, 0x00000202, 0x00020000, 0x00020002, 0x00020000, 0x00020002,
+ 0x00020200, 0x00020202, 0x00020200, 0x00020202, 0x00020000, 0x00020002,
+ 0x00020000, 0x00020002, 0x00020200, 0x00020202, 0x00020200, 0x00020202,
+ 0x02000000, 0x02000002, 0x02000000, 0x02000002, 0x02000200, 0x02000202,
+ 0x02000200, 0x02000202, 0x02000000, 0x02000002, 0x02000000, 0x02000002,
+ 0x02000200, 0x02000202, 0x02000200, 0x02000202, 0x02020000, 0x02020002,
+ 0x02020000, 0x02020002, 0x02020200, 0x02020202, 0x02020200, 0x02020202,
+ 0x02020000, 0x02020002, 0x02020000, 0x02020002, 0x02020200, 0x02020202,
+ 0x02020200, 0x02020202, 0x02000000, 0x02000002, 0x02000000, 0x02000002,
+ 0x02000200, 0x02000202, 0x02000200, 0x02000202, 0x02000000, 0x02000002,
+ 0x02000000, 0x02000002, 0x02000200, 0x02000202, 0x02000200, 0x02000202,
+ 0x02020000, 0x02020002, 0x02020000, 0x02020002, 0x02020200, 0x02020202,
+ 0x02020200, 0x02020202, 0x02020000, 0x02020002, 0x02020000, 0x02020002,
+ 0x02020200, 0x02020202, 0x02020200, 0x02020202,
+ },
+ {
+ 0x00000000, 0x00000004, 0x00000000, 0x00000004, 0x00000400, 0x00000404,
+ 0x00000400, 0x00000404, 0x00000000, 0x00000004, 0x00000000, 0x00000004,
+ 0x00000400, 0x00000404, 0x00000400, 0x00000404, 0x00040000, 0x00040004,
+ 0x00040000, 0x00040004, 0x00040400, 0x00040404, 0x00040400, 0x00040404,
+ 0x00040000, 0x00040004, 0x00040000, 0x00040004, 0x00040400, 0x00040404,
+ 0x00040400, 0x00040404, 0x00000000, 0x00000004, 0x00000000, 0x00000004,
+ 0x00000400, 0x00000404, 0x00000400, 0x00000404, 0x00000000, 0x00000004,
+ 0x00000000, 0x00000004, 0x00000400, 0x00000404, 0x00000400, 0x00000404,
+ 0x00040000, 0x00040004, 0x00040000, 0x00040004, 0x00040400, 0x00040404,
+ 0x00040400, 0x00040404, 0x00040000, 0x00040004, 0x00040000, 0x00040004,
+ 0x00040400, 0x00040404, 0x00040400, 0x00040404, 0x04000000, 0x04000004,
+ 0x04000000, 0x04000004, 0x04000400, 0x04000404, 0x04000400, 0x04000404,
+ 0x04000000, 0x04000004, 0x04000000, 0x04000004, 0x04000400, 0x04000404,
+ 0x04000400, 0x04000404, 0x04040000, 0x04040004, 0x04040000, 0x04040004,
+ 0x04040400, 0x04040404, 0x04040400, 0x04040404, 0x04040000, 0x04040004,
+ 0x04040000, 0x04040004, 0x04040400, 0x04040404, 0x04040400, 0x04040404,
+ 0x04000000, 0x04000004, 0x04000000, 0x04000004, 0x04000400, 0x04000404,
+ 0x04000400, 0x04000404, 0x04000000, 0x04000004, 0x04000000, 0x04000004,
+ 0x04000400, 0x04000404, 0x04000400, 0x04000404, 0x04040000, 0x04040004,
+ 0x04040000, 0x04040004, 0x04040400, 0x04040404, 0x04040400, 0x04040404,
+ 0x04040000, 0x04040004, 0x04040000, 0x04040004, 0x04040400, 0x04040404,
+ 0x04040400, 0x04040404, 0x00000000, 0x00000004, 0x00000000, 0x00000004,
+ 0x00000400, 0x00000404, 0x00000400, 0x00000404, 0x00000000, 0x00000004,
+ 0x00000000, 0x00000004, 0x00000400, 0x00000404, 0x00000400, 0x00000404,
+ 0x00040000, 0x00040004, 0x00040000, 0x00040004, 0x00040400, 0x00040404,
+ 0x00040400, 0x00040404, 0x00040000, 0x00040004, 0x00040000, 0x00040004,
+ 0x00040400, 0x00040404, 0x00040400, 0x00040404, 0x00000000, 0x00000004,
+ 0x00000000, 0x00000004, 0x00000400, 0x00000404, 0x00000400, 0x00000404,
+ 0x00000000, 0x00000004, 0x00000000, 0x00000004, 0x00000400, 0x00000404,
+ 0x00000400, 0x00000404, 0x00040000, 0x00040004, 0x00040000, 0x00040004,
+ 0x00040400, 0x00040404, 0x00040400, 0x00040404, 0x00040000, 0x00040004,
+ 0x00040000, 0x00040004, 0x00040400, 0x00040404, 0x00040400, 0x00040404,
+ 0x04000000, 0x04000004, 0x04000000, 0x04000004, 0x04000400, 0x04000404,
+ 0x04000400, 0x04000404, 0x04000000, 0x04000004, 0x04000000, 0x04000004,
+ 0x04000400, 0x04000404, 0x04000400, 0x04000404, 0x04040000, 0x04040004,
+ 0x04040000, 0x04040004, 0x04040400, 0x04040404, 0x04040400, 0x04040404,
+ 0x04040000, 0x04040004, 0x04040000, 0x04040004, 0x04040400, 0x04040404,
+ 0x04040400, 0x04040404, 0x04000000, 0x04000004, 0x04000000, 0x04000004,
+ 0x04000400, 0x04000404, 0x04000400, 0x04000404, 0x04000000, 0x04000004,
+ 0x04000000, 0x04000004, 0x04000400, 0x04000404, 0x04000400, 0x04000404,
+ 0x04040000, 0x04040004, 0x04040000, 0x04040004, 0x04040400, 0x04040404,
+ 0x04040400, 0x04040404, 0x04040000, 0x04040004, 0x04040000, 0x04040004,
+ 0x04040400, 0x04040404, 0x04040400, 0x04040404,
+ },
+ {
+ 0x00000000, 0x00000008, 0x00000000, 0x00000008, 0x00000800, 0x00000808,
+ 0x00000800, 0x00000808, 0x00000000, 0x00000008, 0x00000000, 0x00000008,
+ 0x00000800, 0x00000808, 0x00000800, 0x00000808, 0x00080000, 0x00080008,
+ 0x00080000, 0x00080008, 0x00080800, 0x00080808, 0x00080800, 0x00080808,
+ 0x00080000, 0x00080008, 0x00080000, 0x00080008, 0x00080800, 0x00080808,
+ 0x00080800, 0x00080808, 0x00000000, 0x00000008, 0x00000000, 0x00000008,
+ 0x00000800, 0x00000808, 0x00000800, 0x00000808, 0x00000000, 0x00000008,
+ 0x00000000, 0x00000008, 0x00000800, 0x00000808, 0x00000800, 0x00000808,
+ 0x00080000, 0x00080008, 0x00080000, 0x00080008, 0x00080800, 0x00080808,
+ 0x00080800, 0x00080808, 0x00080000, 0x00080008, 0x00080000, 0x00080008,
+ 0x00080800, 0x00080808, 0x00080800, 0x00080808, 0x08000000, 0x08000008,
+ 0x08000000, 0x08000008, 0x08000800, 0x08000808, 0x08000800, 0x08000808,
+ 0x08000000, 0x08000008, 0x08000000, 0x08000008, 0x08000800, 0x08000808,
+ 0x08000800, 0x08000808, 0x08080000, 0x08080008, 0x08080000, 0x08080008,
+ 0x08080800, 0x08080808, 0x08080800, 0x08080808, 0x08080000, 0x08080008,
+ 0x08080000, 0x08080008, 0x08080800, 0x08080808, 0x08080800, 0x08080808,
+ 0x08000000, 0x08000008, 0x08000000, 0x08000008, 0x08000800, 0x08000808,
+ 0x08000800, 0x08000808, 0x08000000, 0x08000008, 0x08000000, 0x08000008,
+ 0x08000800, 0x08000808, 0x08000800, 0x08000808, 0x08080000, 0x08080008,
+ 0x08080000, 0x08080008, 0x08080800, 0x08080808, 0x08080800, 0x08080808,
+ 0x08080000, 0x08080008, 0x08080000, 0x08080008, 0x08080800, 0x08080808,
+ 0x08080800, 0x08080808, 0x00000000, 0x00000008, 0x00000000, 0x00000008,
+ 0x00000800, 0x00000808, 0x00000800, 0x00000808, 0x00000000, 0x00000008,
+ 0x00000000, 0x00000008, 0x00000800, 0x00000808, 0x00000800, 0x00000808,
+ 0x00080000, 0x00080008, 0x00080000, 0x00080008, 0x00080800, 0x00080808,
+ 0x00080800, 0x00080808, 0x00080000, 0x00080008, 0x00080000, 0x00080008,
+ 0x00080800, 0x00080808, 0x00080800, 0x00080808, 0x00000000, 0x00000008,
+ 0x00000000, 0x00000008, 0x00000800, 0x00000808, 0x00000800, 0x00000808,
+ 0x00000000, 0x00000008, 0x00000000, 0x00000008, 0x00000800, 0x00000808,
+ 0x00000800, 0x00000808, 0x00080000, 0x00080008, 0x00080000, 0x00080008,
+ 0x00080800, 0x00080808, 0x00080800, 0x00080808, 0x00080000, 0x00080008,
+ 0x00080000, 0x00080008, 0x00080800, 0x00080808, 0x00080800, 0x00080808,
+ 0x08000000, 0x08000008, 0x08000000, 0x08000008, 0x08000800, 0x08000808,
+ 0x08000800, 0x08000808, 0x08000000, 0x08000008, 0x08000000, 0x08000008,
+ 0x08000800, 0x08000808, 0x08000800, 0x08000808, 0x08080000, 0x08080008,
+ 0x08080000, 0x08080008, 0x08080800, 0x08080808, 0x08080800, 0x08080808,
+ 0x08080000, 0x08080008, 0x08080000, 0x08080008, 0x08080800, 0x08080808,
+ 0x08080800, 0x08080808, 0x08000000, 0x08000008, 0x08000000, 0x08000008,
+ 0x08000800, 0x08000808, 0x08000800, 0x08000808, 0x08000000, 0x08000008,
+ 0x08000000, 0x08000008, 0x08000800, 0x08000808, 0x08000800, 0x08000808,
+ 0x08080000, 0x08080008, 0x08080000, 0x08080008, 0x08080800, 0x08080808,
+ 0x08080800, 0x08080808, 0x08080000, 0x08080008, 0x08080000, 0x08080008,
+ 0x08080800, 0x08080808, 0x08080800, 0x08080808,
+ },
+ {
+ 0x00000000, 0x00000010, 0x00000000, 0x00000010, 0x00001000, 0x00001010,
+ 0x00001000, 0x00001010, 0x00000000, 0x00000010, 0x00000000, 0x00000010,
+ 0x00001000, 0x00001010, 0x00001000, 0x00001010, 0x00100000, 0x00100010,
+ 0x00100000, 0x00100010, 0x00101000, 0x00101010, 0x00101000, 0x00101010,
+ 0x00100000, 0x00100010, 0x00100000, 0x00100010, 0x00101000, 0x00101010,
+ 0x00101000, 0x00101010, 0x00000000, 0x00000010, 0x00000000, 0x00000010,
+ 0x00001000, 0x00001010, 0x00001000, 0x00001010, 0x00000000, 0x00000010,
+ 0x00000000, 0x00000010, 0x00001000, 0x00001010, 0x00001000, 0x00001010,
+ 0x00100000, 0x00100010, 0x00100000, 0x00100010, 0x00101000, 0x00101010,
+ 0x00101000, 0x00101010, 0x00100000, 0x00100010, 0x00100000, 0x00100010,
+ 0x00101000, 0x00101010, 0x00101000, 0x00101010, 0x10000000, 0x10000010,
+ 0x10000000, 0x10000010, 0x10001000, 0x10001010, 0x10001000, 0x10001010,
+ 0x10000000, 0x10000010, 0x10000000, 0x10000010, 0x10001000, 0x10001010,
+ 0x10001000, 0x10001010, 0x10100000, 0x10100010, 0x10100000, 0x10100010,
+ 0x10101000, 0x10101010, 0x10101000, 0x10101010, 0x10100000, 0x10100010,
+ 0x10100000, 0x10100010, 0x10101000, 0x10101010, 0x10101000, 0x10101010,
+ 0x10000000, 0x10000010, 0x10000000, 0x10000010, 0x10001000, 0x10001010,
+ 0x10001000, 0x10001010, 0x10000000, 0x10000010, 0x10000000, 0x10000010,
+ 0x10001000, 0x10001010, 0x10001000, 0x10001010, 0x10100000, 0x10100010,
+ 0x10100000, 0x10100010, 0x10101000, 0x10101010, 0x10101000, 0x10101010,
+ 0x10100000, 0x10100010, 0x10100000, 0x10100010, 0x10101000, 0x10101010,
+ 0x10101000, 0x10101010, 0x00000000, 0x00000010, 0x00000000, 0x00000010,
+ 0x00001000, 0x00001010, 0x00001000, 0x00001010, 0x00000000, 0x00000010,
+ 0x00000000, 0x00000010, 0x00001000, 0x00001010, 0x00001000, 0x00001010,
+ 0x00100000, 0x00100010, 0x00100000, 0x00100010, 0x00101000, 0x00101010,
+ 0x00101000, 0x00101010, 0x00100000, 0x00100010, 0x00100000, 0x00100010,
+ 0x00101000, 0x00101010, 0x00101000, 0x00101010, 0x00000000, 0x00000010,
+ 0x00000000, 0x00000010, 0x00001000, 0x00001010, 0x00001000, 0x00001010,
+ 0x00000000, 0x00000010, 0x00000000, 0x00000010, 0x00001000, 0x00001010,
+ 0x00001000, 0x00001010, 0x00100000, 0x00100010, 0x00100000, 0x00100010,
+ 0x00101000, 0x00101010, 0x00101000, 0x00101010, 0x00100000, 0x00100010,
+ 0x00100000, 0x00100010, 0x00101000, 0x00101010, 0x00101000, 0x00101010,
+ 0x10000000, 0x10000010, 0x10000000, 0x10000010, 0x10001000, 0x10001010,
+ 0x10001000, 0x10001010, 0x10000000, 0x10000010, 0x10000000, 0x10000010,
+ 0x10001000, 0x10001010, 0x10001000, 0x10001010, 0x10100000, 0x10100010,
+ 0x10100000, 0x10100010, 0x10101000, 0x10101010, 0x10101000, 0x10101010,
+ 0x10100000, 0x10100010, 0x10100000, 0x10100010, 0x10101000, 0x10101010,
+ 0x10101000, 0x10101010, 0x10000000, 0x10000010, 0x10000000, 0x10000010,
+ 0x10001000, 0x10001010, 0x10001000, 0x10001010, 0x10000000, 0x10000010,
+ 0x10000000, 0x10000010, 0x10001000, 0x10001010, 0x10001000, 0x10001010,
+ 0x10100000, 0x10100010, 0x10100000, 0x10100010, 0x10101000, 0x10101010,
+ 0x10101000, 0x10101010, 0x10100000, 0x10100010, 0x10100000, 0x10100010,
+ 0x10101000, 0x10101010, 0x10101000, 0x10101010,
+ },
+ {
+ 0x00000000, 0x00000020, 0x00000000, 0x00000020, 0x00002000, 0x00002020,
+ 0x00002000, 0x00002020, 0x00000000, 0x00000020, 0x00000000, 0x00000020,
+ 0x00002000, 0x00002020, 0x00002000, 0x00002020, 0x00200000, 0x00200020,
+ 0x00200000, 0x00200020, 0x00202000, 0x00202020, 0x00202000, 0x00202020,
+ 0x00200000, 0x00200020, 0x00200000, 0x00200020, 0x00202000, 0x00202020,
+ 0x00202000, 0x00202020, 0x00000000, 0x00000020, 0x00000000, 0x00000020,
+ 0x00002000, 0x00002020, 0x00002000, 0x00002020, 0x00000000, 0x00000020,
+ 0x00000000, 0x00000020, 0x00002000, 0x00002020, 0x00002000, 0x00002020,
+ 0x00200000, 0x00200020, 0x00200000, 0x00200020, 0x00202000, 0x00202020,
+ 0x00202000, 0x00202020, 0x00200000, 0x00200020, 0x00200000, 0x00200020,
+ 0x00202000, 0x00202020, 0x00202000, 0x00202020, 0x20000000, 0x20000020,
+ 0x20000000, 0x20000020, 0x20002000, 0x20002020, 0x20002000, 0x20002020,
+ 0x20000000, 0x20000020, 0x20000000, 0x20000020, 0x20002000, 0x20002020,
+ 0x20002000, 0x20002020, 0x20200000, 0x20200020, 0x20200000, 0x20200020,
+ 0x20202000, 0x20202020, 0x20202000, 0x20202020, 0x20200000, 0x20200020,
+ 0x20200000, 0x20200020, 0x20202000, 0x20202020, 0x20202000, 0x20202020,
+ 0x20000000, 0x20000020, 0x20000000, 0x20000020, 0x20002000, 0x20002020,
+ 0x20002000, 0x20002020, 0x20000000, 0x20000020, 0x20000000, 0x20000020,
+ 0x20002000, 0x20002020, 0x20002000, 0x20002020, 0x20200000, 0x20200020,
+ 0x20200000, 0x20200020, 0x20202000, 0x20202020, 0x20202000, 0x20202020,
+ 0x20200000, 0x20200020, 0x20200000, 0x20200020, 0x20202000, 0x20202020,
+ 0x20202000, 0x20202020, 0x00000000, 0x00000020, 0x00000000, 0x00000020,
+ 0x00002000, 0x00002020, 0x00002000, 0x00002020, 0x00000000, 0x00000020,
+ 0x00000000, 0x00000020, 0x00002000, 0x00002020, 0x00002000, 0x00002020,
+ 0x00200000, 0x00200020, 0x00200000, 0x00200020, 0x00202000, 0x00202020,
+ 0x00202000, 0x00202020, 0x00200000, 0x00200020, 0x00200000, 0x00200020,
+ 0x00202000, 0x00202020, 0x00202000, 0x00202020, 0x00000000, 0x00000020,
+ 0x00000000, 0x00000020, 0x00002000, 0x00002020, 0x00002000, 0x00002020,
+ 0x00000000, 0x00000020, 0x00000000, 0x00000020, 0x00002000, 0x00002020,
+ 0x00002000, 0x00002020, 0x00200000, 0x00200020, 0x00200000, 0x00200020,
+ 0x00202000, 0x00202020, 0x00202000, 0x00202020, 0x00200000, 0x00200020,
+ 0x00200000, 0x00200020, 0x00202000, 0x00202020, 0x00202000, 0x00202020,
+ 0x20000000, 0x20000020, 0x20000000, 0x20000020, 0x20002000, 0x20002020,
+ 0x20002000, 0x20002020, 0x20000000, 0x20000020, 0x20000000, 0x20000020,
+ 0x20002000, 0x20002020, 0x20002000, 0x20002020, 0x20200000, 0x20200020,
+ 0x20200000, 0x20200020, 0x20202000, 0x20202020, 0x20202000, 0x20202020,
+ 0x20200000, 0x20200020, 0x20200000, 0x20200020, 0x20202000, 0x20202020,
+ 0x20202000, 0x20202020, 0x20000000, 0x20000020, 0x20000000, 0x20000020,
+ 0x20002000, 0x20002020, 0x20002000, 0x20002020, 0x20000000, 0x20000020,
+ 0x20000000, 0x20000020, 0x20002000, 0x20002020, 0x20002000, 0x20002020,
+ 0x20200000, 0x20200020, 0x20200000, 0x20200020, 0x20202000, 0x20202020,
+ 0x20202000, 0x20202020, 0x20200000, 0x20200020, 0x20200000, 0x20200020,
+ 0x20202000, 0x20202020, 0x20202000, 0x20202020,
+ },
+ {
+ 0x00000000, 0x00000040, 0x00000000, 0x00000040, 0x00004000, 0x00004040,
+ 0x00004000, 0x00004040, 0x00000000, 0x00000040, 0x00000000, 0x00000040,
+ 0x00004000, 0x00004040, 0x00004000, 0x00004040, 0x00400000, 0x00400040,
+ 0x00400000, 0x00400040, 0x00404000, 0x00404040, 0x00404000, 0x00404040,
+ 0x00400000, 0x00400040, 0x00400000, 0x00400040, 0x00404000, 0x00404040,
+ 0x00404000, 0x00404040, 0x00000000, 0x00000040, 0x00000000, 0x00000040,
+ 0x00004000, 0x00004040, 0x00004000, 0x00004040, 0x00000000, 0x00000040,
+ 0x00000000, 0x00000040, 0x00004000, 0x00004040, 0x00004000, 0x00004040,
+ 0x00400000, 0x00400040, 0x00400000, 0x00400040, 0x00404000, 0x00404040,
+ 0x00404000, 0x00404040, 0x00400000, 0x00400040, 0x00400000, 0x00400040,
+ 0x00404000, 0x00404040, 0x00404000, 0x00404040, 0x40000000, 0x40000040,
+ 0x40000000, 0x40000040, 0x40004000, 0x40004040, 0x40004000, 0x40004040,
+ 0x40000000, 0x40000040, 0x40000000, 0x40000040, 0x40004000, 0x40004040,
+ 0x40004000, 0x40004040, 0x40400000, 0x40400040, 0x40400000, 0x40400040,
+ 0x40404000, 0x40404040, 0x40404000, 0x40404040, 0x40400000, 0x40400040,
+ 0x40400000, 0x40400040, 0x40404000, 0x40404040, 0x40404000, 0x40404040,
+ 0x40000000, 0x40000040, 0x40000000, 0x40000040, 0x40004000, 0x40004040,
+ 0x40004000, 0x40004040, 0x40000000, 0x40000040, 0x40000000, 0x40000040,
+ 0x40004000, 0x40004040, 0x40004000, 0x40004040, 0x40400000, 0x40400040,
+ 0x40400000, 0x40400040, 0x40404000, 0x40404040, 0x40404000, 0x40404040,
+ 0x40400000, 0x40400040, 0x40400000, 0x40400040, 0x40404000, 0x40404040,
+ 0x40404000, 0x40404040, 0x00000000, 0x00000040, 0x00000000, 0x00000040,
+ 0x00004000, 0x00004040, 0x00004000, 0x00004040, 0x00000000, 0x00000040,
+ 0x00000000, 0x00000040, 0x00004000, 0x00004040, 0x00004000, 0x00004040,
+ 0x00400000, 0x00400040, 0x00400000, 0x00400040, 0x00404000, 0x00404040,
+ 0x00404000, 0x00404040, 0x00400000, 0x00400040, 0x00400000, 0x00400040,
+ 0x00404000, 0x00404040, 0x00404000, 0x00404040, 0x00000000, 0x00000040,
+ 0x00000000, 0x00000040, 0x00004000, 0x00004040, 0x00004000, 0x00004040,
+ 0x00000000, 0x00000040, 0x00000000, 0x00000040, 0x00004000, 0x00004040,
+ 0x00004000, 0x00004040, 0x00400000, 0x00400040, 0x00400000, 0x00400040,
+ 0x00404000, 0x00404040, 0x00404000, 0x00404040, 0x00400000, 0x00400040,
+ 0x00400000, 0x00400040, 0x00404000, 0x00404040, 0x00404000, 0x00404040,
+ 0x40000000, 0x40000040, 0x40000000, 0x40000040, 0x40004000, 0x40004040,
+ 0x40004000, 0x40004040, 0x40000000, 0x40000040, 0x40000000, 0x40000040,
+ 0x40004000, 0x40004040, 0x40004000, 0x40004040, 0x40400000, 0x40400040,
+ 0x40400000, 0x40400040, 0x40404000, 0x40404040, 0x40404000, 0x40404040,
+ 0x40400000, 0x40400040, 0x40400000, 0x40400040, 0x40404000, 0x40404040,
+ 0x40404000, 0x40404040, 0x40000000, 0x40000040, 0x40000000, 0x40000040,
+ 0x40004000, 0x40004040, 0x40004000, 0x40004040, 0x40000000, 0x40000040,
+ 0x40000000, 0x40000040, 0x40004000, 0x40004040, 0x40004000, 0x40004040,
+ 0x40400000, 0x40400040, 0x40400000, 0x40400040, 0x40404000, 0x40404040,
+ 0x40404000, 0x40404040, 0x40400000, 0x40400040, 0x40400000, 0x40400040,
+ 0x40404000, 0x40404040, 0x40404000, 0x40404040,
+ },
+ {
+ 0x00000000, 0x00000080, 0x00000000, 0x00000080, 0x00008000, 0x00008080,
+ 0x00008000, 0x00008080, 0x00000000, 0x00000080, 0x00000000, 0x00000080,
+ 0x00008000, 0x00008080, 0x00008000, 0x00008080, 0x00800000, 0x00800080,
+ 0x00800000, 0x00800080, 0x00808000, 0x00808080, 0x00808000, 0x00808080,
+ 0x00800000, 0x00800080, 0x00800000, 0x00800080, 0x00808000, 0x00808080,
+ 0x00808000, 0x00808080, 0x00000000, 0x00000080, 0x00000000, 0x00000080,
+ 0x00008000, 0x00008080, 0x00008000, 0x00008080, 0x00000000, 0x00000080,
+ 0x00000000, 0x00000080, 0x00008000, 0x00008080, 0x00008000, 0x00008080,
+ 0x00800000, 0x00800080, 0x00800000, 0x00800080, 0x00808000, 0x00808080,
+ 0x00808000, 0x00808080, 0x00800000, 0x00800080, 0x00800000, 0x00800080,
+ 0x00808000, 0x00808080, 0x00808000, 0x00808080, 0x80000000, 0x80000080,
+ 0x80000000, 0x80000080, 0x80008000, 0x80008080, 0x80008000, 0x80008080,
+ 0x80000000, 0x80000080, 0x80000000, 0x80000080, 0x80008000, 0x80008080,
+ 0x80008000, 0x80008080, 0x80800000, 0x80800080, 0x80800000, 0x80800080,
+ 0x80808000, 0x80808080, 0x80808000, 0x80808080, 0x80800000, 0x80800080,
+ 0x80800000, 0x80800080, 0x80808000, 0x80808080, 0x80808000, 0x80808080,
+ 0x80000000, 0x80000080, 0x80000000, 0x80000080, 0x80008000, 0x80008080,
+ 0x80008000, 0x80008080, 0x80000000, 0x80000080, 0x80000000, 0x80000080,
+ 0x80008000, 0x80008080, 0x80008000, 0x80008080, 0x80800000, 0x80800080,
+ 0x80800000, 0x80800080, 0x80808000, 0x80808080, 0x80808000, 0x80808080,
+ 0x80800000, 0x80800080, 0x80800000, 0x80800080, 0x80808000, 0x80808080,
+ 0x80808000, 0x80808080, 0x00000000, 0x00000080, 0x00000000, 0x00000080,
+ 0x00008000, 0x00008080, 0x00008000, 0x00008080, 0x00000000, 0x00000080,
+ 0x00000000, 0x00000080, 0x00008000, 0x00008080, 0x00008000, 0x00008080,
+ 0x00800000, 0x00800080, 0x00800000, 0x00800080, 0x00808000, 0x00808080,
+ 0x00808000, 0x00808080, 0x00800000, 0x00800080, 0x00800000, 0x00800080,
+ 0x00808000, 0x00808080, 0x00808000, 0x00808080, 0x00000000, 0x00000080,
+ 0x00000000, 0x00000080, 0x00008000, 0x00008080, 0x00008000, 0x00008080,
+ 0x00000000, 0x00000080, 0x00000000, 0x00000080, 0x00008000, 0x00008080,
+ 0x00008000, 0x00008080, 0x00800000, 0x00800080, 0x00800000, 0x00800080,
+ 0x00808000, 0x00808080, 0x00808000, 0x00808080, 0x00800000, 0x00800080,
+ 0x00800000, 0x00800080, 0x00808000, 0x00808080, 0x00808000, 0x00808080,
+ 0x80000000, 0x80000080, 0x80000000, 0x80000080, 0x80008000, 0x80008080,
+ 0x80008000, 0x80008080, 0x80000000, 0x80000080, 0x80000000, 0x80000080,
+ 0x80008000, 0x80008080, 0x80008000, 0x80008080, 0x80800000, 0x80800080,
+ 0x80800000, 0x80800080, 0x80808000, 0x80808080, 0x80808000, 0x80808080,
+ 0x80800000, 0x80800080, 0x80800000, 0x80800080, 0x80808000, 0x80808080,
+ 0x80808000, 0x80808080, 0x80000000, 0x80000080, 0x80000000, 0x80000080,
+ 0x80008000, 0x80008080, 0x80008000, 0x80008080, 0x80000000, 0x80000080,
+ 0x80000000, 0x80000080, 0x80008000, 0x80008080, 0x80008000, 0x80008080,
+ 0x80800000, 0x80800080, 0x80800000, 0x80800080, 0x80808000, 0x80808080,
+ 0x80808000, 0x80808080, 0x80800000, 0x80800080, 0x80800000, 0x80800080,
+ 0x80808000, 0x80808080, 0x80808000, 0x80808080,
+ },
+};
+
+const uint32_t ip_maskr[8][256] =
+{
+ {
+ 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000000, 0x00000000,
+ 0x00000001, 0x00000001, 0x00000100, 0x00000100, 0x00000101, 0x00000101,
+ 0x00000100, 0x00000100, 0x00000101, 0x00000101, 0x00000000, 0x00000000,
+ 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000001, 0x00000001,
+ 0x00000100, 0x00000100, 0x00000101, 0x00000101, 0x00000100, 0x00000100,
+ 0x00000101, 0x00000101, 0x00010000, 0x00010000, 0x00010001, 0x00010001,
+ 0x00010000, 0x00010000, 0x00010001, 0x00010001, 0x00010100, 0x00010100,
+ 0x00010101, 0x00010101, 0x00010100, 0x00010100, 0x00010101, 0x00010101,
+ 0x00010000, 0x00010000, 0x00010001, 0x00010001, 0x00010000, 0x00010000,
+ 0x00010001, 0x00010001, 0x00010100, 0x00010100, 0x00010101, 0x00010101,
+ 0x00010100, 0x00010100, 0x00010101, 0x00010101, 0x00000000, 0x00000000,
+ 0x00000001, 0x00000001, 0x00000000, 0x00000000, 0x00000001, 0x00000001,
+ 0x00000100, 0x00000100, 0x00000101, 0x00000101, 0x00000100, 0x00000100,
+ 0x00000101, 0x00000101, 0x00000000, 0x00000000, 0x00000001, 0x00000001,
+ 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000100, 0x00000100,
+ 0x00000101, 0x00000101, 0x00000100, 0x00000100, 0x00000101, 0x00000101,
+ 0x00010000, 0x00010000, 0x00010001, 0x00010001, 0x00010000, 0x00010000,
+ 0x00010001, 0x00010001, 0x00010100, 0x00010100, 0x00010101, 0x00010101,
+ 0x00010100, 0x00010100, 0x00010101, 0x00010101, 0x00010000, 0x00010000,
+ 0x00010001, 0x00010001, 0x00010000, 0x00010000, 0x00010001, 0x00010001,
+ 0x00010100, 0x00010100, 0x00010101, 0x00010101, 0x00010100, 0x00010100,
+ 0x00010101, 0x00010101, 0x01000000, 0x01000000, 0x01000001, 0x01000001,
+ 0x01000000, 0x01000000, 0x01000001, 0x01000001, 0x01000100, 0x01000100,
+ 0x01000101, 0x01000101, 0x01000100, 0x01000100, 0x01000101, 0x01000101,
+ 0x01000000, 0x01000000, 0x01000001, 0x01000001, 0x01000000, 0x01000000,
+ 0x01000001, 0x01000001, 0x01000100, 0x01000100, 0x01000101, 0x01000101,
+ 0x01000100, 0x01000100, 0x01000101, 0x01000101, 0x01010000, 0x01010000,
+ 0x01010001, 0x01010001, 0x01010000, 0x01010000, 0x01010001, 0x01010001,
+ 0x01010100, 0x01010100, 0x01010101, 0x01010101, 0x01010100, 0x01010100,
+ 0x01010101, 0x01010101, 0x01010000, 0x01010000, 0x01010001, 0x01010001,
+ 0x01010000, 0x01010000, 0x01010001, 0x01010001, 0x01010100, 0x01010100,
+ 0x01010101, 0x01010101, 0x01010100, 0x01010100, 0x01010101, 0x01010101,
+ 0x01000000, 0x01000000, 0x01000001, 0x01000001, 0x01000000, 0x01000000,
+ 0x01000001, 0x01000001, 0x01000100, 0x01000100, 0x01000101, 0x01000101,
+ 0x01000100, 0x01000100, 0x01000101, 0x01000101, 0x01000000, 0x01000000,
+ 0x01000001, 0x01000001, 0x01000000, 0x01000000, 0x01000001, 0x01000001,
+ 0x01000100, 0x01000100, 0x01000101, 0x01000101, 0x01000100, 0x01000100,
+ 0x01000101, 0x01000101, 0x01010000, 0x01010000, 0x01010001, 0x01010001,
+ 0x01010000, 0x01010000, 0x01010001, 0x01010001, 0x01010100, 0x01010100,
+ 0x01010101, 0x01010101, 0x01010100, 0x01010100, 0x01010101, 0x01010101,
+ 0x01010000, 0x01010000, 0x01010001, 0x01010001, 0x01010000, 0x01010000,
+ 0x01010001, 0x01010001, 0x01010100, 0x01010100, 0x01010101, 0x01010101,
+ 0x01010100, 0x01010100, 0x01010101, 0x01010101,
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000002, 0x00000002, 0x00000000, 0x00000000,
+ 0x00000002, 0x00000002, 0x00000200, 0x00000200, 0x00000202, 0x00000202,
+ 0x00000200, 0x00000200, 0x00000202, 0x00000202, 0x00000000, 0x00000000,
+ 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000002, 0x00000002,
+ 0x00000200, 0x00000200, 0x00000202, 0x00000202, 0x00000200, 0x00000200,
+ 0x00000202, 0x00000202, 0x00020000, 0x00020000, 0x00020002, 0x00020002,
+ 0x00020000, 0x00020000, 0x00020002, 0x00020002, 0x00020200, 0x00020200,
+ 0x00020202, 0x00020202, 0x00020200, 0x00020200, 0x00020202, 0x00020202,
+ 0x00020000, 0x00020000, 0x00020002, 0x00020002, 0x00020000, 0x00020000,
+ 0x00020002, 0x00020002, 0x00020200, 0x00020200, 0x00020202, 0x00020202,
+ 0x00020200, 0x00020200, 0x00020202, 0x00020202, 0x00000000, 0x00000000,
+ 0x00000002, 0x00000002, 0x00000000, 0x00000000, 0x00000002, 0x00000002,
+ 0x00000200, 0x00000200, 0x00000202, 0x00000202, 0x00000200, 0x00000200,
+ 0x00000202, 0x00000202, 0x00000000, 0x00000000, 0x00000002, 0x00000002,
+ 0x00000000, 0x00000000, 0x00000002, 0x00000002, 0x00000200, 0x00000200,
+ 0x00000202, 0x00000202, 0x00000200, 0x00000200, 0x00000202, 0x00000202,
+ 0x00020000, 0x00020000, 0x00020002, 0x00020002, 0x00020000, 0x00020000,
+ 0x00020002, 0x00020002, 0x00020200, 0x00020200, 0x00020202, 0x00020202,
+ 0x00020200, 0x00020200, 0x00020202, 0x00020202, 0x00020000, 0x00020000,
+ 0x00020002, 0x00020002, 0x00020000, 0x00020000, 0x00020002, 0x00020002,
+ 0x00020200, 0x00020200, 0x00020202, 0x00020202, 0x00020200, 0x00020200,
+ 0x00020202, 0x00020202, 0x02000000, 0x02000000, 0x02000002, 0x02000002,
+ 0x02000000, 0x02000000, 0x02000002, 0x02000002, 0x02000200, 0x02000200,
+ 0x02000202, 0x02000202, 0x02000200, 0x02000200, 0x02000202, 0x02000202,
+ 0x02000000, 0x02000000, 0x02000002, 0x02000002, 0x02000000, 0x02000000,
+ 0x02000002, 0x02000002, 0x02000200, 0x02000200, 0x02000202, 0x02000202,
+ 0x02000200, 0x02000200, 0x02000202, 0x02000202, 0x02020000, 0x02020000,
+ 0x02020002, 0x02020002, 0x02020000, 0x02020000, 0x02020002, 0x02020002,
+ 0x02020200, 0x02020200, 0x02020202, 0x02020202, 0x02020200, 0x02020200,
+ 0x02020202, 0x02020202, 0x02020000, 0x02020000, 0x02020002, 0x02020002,
+ 0x02020000, 0x02020000, 0x02020002, 0x02020002, 0x02020200, 0x02020200,
+ 0x02020202, 0x02020202, 0x02020200, 0x02020200, 0x02020202, 0x02020202,
+ 0x02000000, 0x02000000, 0x02000002, 0x02000002, 0x02000000, 0x02000000,
+ 0x02000002, 0x02000002, 0x02000200, 0x02000200, 0x02000202, 0x02000202,
+ 0x02000200, 0x02000200, 0x02000202, 0x02000202, 0x02000000, 0x02000000,
+ 0x02000002, 0x02000002, 0x02000000, 0x02000000, 0x02000002, 0x02000002,
+ 0x02000200, 0x02000200, 0x02000202, 0x02000202, 0x02000200, 0x02000200,
+ 0x02000202, 0x02000202, 0x02020000, 0x02020000, 0x02020002, 0x02020002,
+ 0x02020000, 0x02020000, 0x02020002, 0x02020002, 0x02020200, 0x02020200,
+ 0x02020202, 0x02020202, 0x02020200, 0x02020200, 0x02020202, 0x02020202,
+ 0x02020000, 0x02020000, 0x02020002, 0x02020002, 0x02020000, 0x02020000,
+ 0x02020002, 0x02020002, 0x02020200, 0x02020200, 0x02020202, 0x02020202,
+ 0x02020200, 0x02020200, 0x02020202, 0x02020202,
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000004, 0x00000004, 0x00000000, 0x00000000,
+ 0x00000004, 0x00000004, 0x00000400, 0x00000400, 0x00000404, 0x00000404,
+ 0x00000400, 0x00000400, 0x00000404, 0x00000404, 0x00000000, 0x00000000,
+ 0x00000004, 0x00000004, 0x00000000, 0x00000000, 0x00000004, 0x00000004,
+ 0x00000400, 0x00000400, 0x00000404, 0x00000404, 0x00000400, 0x00000400,
+ 0x00000404, 0x00000404, 0x00040000, 0x00040000, 0x00040004, 0x00040004,
+ 0x00040000, 0x00040000, 0x00040004, 0x00040004, 0x00040400, 0x00040400,
+ 0x00040404, 0x00040404, 0x00040400, 0x00040400, 0x00040404, 0x00040404,
+ 0x00040000, 0x00040000, 0x00040004, 0x00040004, 0x00040000, 0x00040000,
+ 0x00040004, 0x00040004, 0x00040400, 0x00040400, 0x00040404, 0x00040404,
+ 0x00040400, 0x00040400, 0x00040404, 0x00040404, 0x00000000, 0x00000000,
+ 0x00000004, 0x00000004, 0x00000000, 0x00000000, 0x00000004, 0x00000004,
+ 0x00000400, 0x00000400, 0x00000404, 0x00000404, 0x00000400, 0x00000400,
+ 0x00000404, 0x00000404, 0x00000000, 0x00000000, 0x00000004, 0x00000004,
+ 0x00000000, 0x00000000, 0x00000004, 0x00000004, 0x00000400, 0x00000400,
+ 0x00000404, 0x00000404, 0x00000400, 0x00000400, 0x00000404, 0x00000404,
+ 0x00040000, 0x00040000, 0x00040004, 0x00040004, 0x00040000, 0x00040000,
+ 0x00040004, 0x00040004, 0x00040400, 0x00040400, 0x00040404, 0x00040404,
+ 0x00040400, 0x00040400, 0x00040404, 0x00040404, 0x00040000, 0x00040000,
+ 0x00040004, 0x00040004, 0x00040000, 0x00040000, 0x00040004, 0x00040004,
+ 0x00040400, 0x00040400, 0x00040404, 0x00040404, 0x00040400, 0x00040400,
+ 0x00040404, 0x00040404, 0x04000000, 0x04000000, 0x04000004, 0x04000004,
+ 0x04000000, 0x04000000, 0x04000004, 0x04000004, 0x04000400, 0x04000400,
+ 0x04000404, 0x04000404, 0x04000400, 0x04000400, 0x04000404, 0x04000404,
+ 0x04000000, 0x04000000, 0x04000004, 0x04000004, 0x04000000, 0x04000000,
+ 0x04000004, 0x04000004, 0x04000400, 0x04000400, 0x04000404, 0x04000404,
+ 0x04000400, 0x04000400, 0x04000404, 0x04000404, 0x04040000, 0x04040000,
+ 0x04040004, 0x04040004, 0x04040000, 0x04040000, 0x04040004, 0x04040004,
+ 0x04040400, 0x04040400, 0x04040404, 0x04040404, 0x04040400, 0x04040400,
+ 0x04040404, 0x04040404, 0x04040000, 0x04040000, 0x04040004, 0x04040004,
+ 0x04040000, 0x04040000, 0x04040004, 0x04040004, 0x04040400, 0x04040400,
+ 0x04040404, 0x04040404, 0x04040400, 0x04040400, 0x04040404, 0x04040404,
+ 0x04000000, 0x04000000, 0x04000004, 0x04000004, 0x04000000, 0x04000000,
+ 0x04000004, 0x04000004, 0x04000400, 0x04000400, 0x04000404, 0x04000404,
+ 0x04000400, 0x04000400, 0x04000404, 0x04000404, 0x04000000, 0x04000000,
+ 0x04000004, 0x04000004, 0x04000000, 0x04000000, 0x04000004, 0x04000004,
+ 0x04000400, 0x04000400, 0x04000404, 0x04000404, 0x04000400, 0x04000400,
+ 0x04000404, 0x04000404, 0x04040000, 0x04040000, 0x04040004, 0x04040004,
+ 0x04040000, 0x04040000, 0x04040004, 0x04040004, 0x04040400, 0x04040400,
+ 0x04040404, 0x04040404, 0x04040400, 0x04040400, 0x04040404, 0x04040404,
+ 0x04040000, 0x04040000, 0x04040004, 0x04040004, 0x04040000, 0x04040000,
+ 0x04040004, 0x04040004, 0x04040400, 0x04040400, 0x04040404, 0x04040404,
+ 0x04040400, 0x04040400, 0x04040404, 0x04040404,
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000008, 0x00000008, 0x00000000, 0x00000000,
+ 0x00000008, 0x00000008, 0x00000800, 0x00000800, 0x00000808, 0x00000808,
+ 0x00000800, 0x00000800, 0x00000808, 0x00000808, 0x00000000, 0x00000000,
+ 0x00000008, 0x00000008, 0x00000000, 0x00000000, 0x00000008, 0x00000008,
+ 0x00000800, 0x00000800, 0x00000808, 0x00000808, 0x00000800, 0x00000800,
+ 0x00000808, 0x00000808, 0x00080000, 0x00080000, 0x00080008, 0x00080008,
+ 0x00080000, 0x00080000, 0x00080008, 0x00080008, 0x00080800, 0x00080800,
+ 0x00080808, 0x00080808, 0x00080800, 0x00080800, 0x00080808, 0x00080808,
+ 0x00080000, 0x00080000, 0x00080008, 0x00080008, 0x00080000, 0x00080000,
+ 0x00080008, 0x00080008, 0x00080800, 0x00080800, 0x00080808, 0x00080808,
+ 0x00080800, 0x00080800, 0x00080808, 0x00080808, 0x00000000, 0x00000000,
+ 0x00000008, 0x00000008, 0x00000000, 0x00000000, 0x00000008, 0x00000008,
+ 0x00000800, 0x00000800, 0x00000808, 0x00000808, 0x00000800, 0x00000800,
+ 0x00000808, 0x00000808, 0x00000000, 0x00000000, 0x00000008, 0x00000008,
+ 0x00000000, 0x00000000, 0x00000008, 0x00000008, 0x00000800, 0x00000800,
+ 0x00000808, 0x00000808, 0x00000800, 0x00000800, 0x00000808, 0x00000808,
+ 0x00080000, 0x00080000, 0x00080008, 0x00080008, 0x00080000, 0x00080000,
+ 0x00080008, 0x00080008, 0x00080800, 0x00080800, 0x00080808, 0x00080808,
+ 0x00080800, 0x00080800, 0x00080808, 0x00080808, 0x00080000, 0x00080000,
+ 0x00080008, 0x00080008, 0x00080000, 0x00080000, 0x00080008, 0x00080008,
+ 0x00080800, 0x00080800, 0x00080808, 0x00080808, 0x00080800, 0x00080800,
+ 0x00080808, 0x00080808, 0x08000000, 0x08000000, 0x08000008, 0x08000008,
+ 0x08000000, 0x08000000, 0x08000008, 0x08000008, 0x08000800, 0x08000800,
+ 0x08000808, 0x08000808, 0x08000800, 0x08000800, 0x08000808, 0x08000808,
+ 0x08000000, 0x08000000, 0x08000008, 0x08000008, 0x08000000, 0x08000000,
+ 0x08000008, 0x08000008, 0x08000800, 0x08000800, 0x08000808, 0x08000808,
+ 0x08000800, 0x08000800, 0x08000808, 0x08000808, 0x08080000, 0x08080000,
+ 0x08080008, 0x08080008, 0x08080000, 0x08080000, 0x08080008, 0x08080008,
+ 0x08080800, 0x08080800, 0x08080808, 0x08080808, 0x08080800, 0x08080800,
+ 0x08080808, 0x08080808, 0x08080000, 0x08080000, 0x08080008, 0x08080008,
+ 0x08080000, 0x08080000, 0x08080008, 0x08080008, 0x08080800, 0x08080800,
+ 0x08080808, 0x08080808, 0x08080800, 0x08080800, 0x08080808, 0x08080808,
+ 0x08000000, 0x08000000, 0x08000008, 0x08000008, 0x08000000, 0x08000000,
+ 0x08000008, 0x08000008, 0x08000800, 0x08000800, 0x08000808, 0x08000808,
+ 0x08000800, 0x08000800, 0x08000808, 0x08000808, 0x08000000, 0x08000000,
+ 0x08000008, 0x08000008, 0x08000000, 0x08000000, 0x08000008, 0x08000008,
+ 0x08000800, 0x08000800, 0x08000808, 0x08000808, 0x08000800, 0x08000800,
+ 0x08000808, 0x08000808, 0x08080000, 0x08080000, 0x08080008, 0x08080008,
+ 0x08080000, 0x08080000, 0x08080008, 0x08080008, 0x08080800, 0x08080800,
+ 0x08080808, 0x08080808, 0x08080800, 0x08080800, 0x08080808, 0x08080808,
+ 0x08080000, 0x08080000, 0x08080008, 0x08080008, 0x08080000, 0x08080000,
+ 0x08080008, 0x08080008, 0x08080800, 0x08080800, 0x08080808, 0x08080808,
+ 0x08080800, 0x08080800, 0x08080808, 0x08080808,
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000010, 0x00000010, 0x00000000, 0x00000000,
+ 0x00000010, 0x00000010, 0x00001000, 0x00001000, 0x00001010, 0x00001010,
+ 0x00001000, 0x00001000, 0x00001010, 0x00001010, 0x00000000, 0x00000000,
+ 0x00000010, 0x00000010, 0x00000000, 0x00000000, 0x00000010, 0x00000010,
+ 0x00001000, 0x00001000, 0x00001010, 0x00001010, 0x00001000, 0x00001000,
+ 0x00001010, 0x00001010, 0x00100000, 0x00100000, 0x00100010, 0x00100010,
+ 0x00100000, 0x00100000, 0x00100010, 0x00100010, 0x00101000, 0x00101000,
+ 0x00101010, 0x00101010, 0x00101000, 0x00101000, 0x00101010, 0x00101010,
+ 0x00100000, 0x00100000, 0x00100010, 0x00100010, 0x00100000, 0x00100000,
+ 0x00100010, 0x00100010, 0x00101000, 0x00101000, 0x00101010, 0x00101010,
+ 0x00101000, 0x00101000, 0x00101010, 0x00101010, 0x00000000, 0x00000000,
+ 0x00000010, 0x00000010, 0x00000000, 0x00000000, 0x00000010, 0x00000010,
+ 0x00001000, 0x00001000, 0x00001010, 0x00001010, 0x00001000, 0x00001000,
+ 0x00001010, 0x00001010, 0x00000000, 0x00000000, 0x00000010, 0x00000010,
+ 0x00000000, 0x00000000, 0x00000010, 0x00000010, 0x00001000, 0x00001000,
+ 0x00001010, 0x00001010, 0x00001000, 0x00001000, 0x00001010, 0x00001010,
+ 0x00100000, 0x00100000, 0x00100010, 0x00100010, 0x00100000, 0x00100000,
+ 0x00100010, 0x00100010, 0x00101000, 0x00101000, 0x00101010, 0x00101010,
+ 0x00101000, 0x00101000, 0x00101010, 0x00101010, 0x00100000, 0x00100000,
+ 0x00100010, 0x00100010, 0x00100000, 0x00100000, 0x00100010, 0x00100010,
+ 0x00101000, 0x00101000, 0x00101010, 0x00101010, 0x00101000, 0x00101000,
+ 0x00101010, 0x00101010, 0x10000000, 0x10000000, 0x10000010, 0x10000010,
+ 0x10000000, 0x10000000, 0x10000010, 0x10000010, 0x10001000, 0x10001000,
+ 0x10001010, 0x10001010, 0x10001000, 0x10001000, 0x10001010, 0x10001010,
+ 0x10000000, 0x10000000, 0x10000010, 0x10000010, 0x10000000, 0x10000000,
+ 0x10000010, 0x10000010, 0x10001000, 0x10001000, 0x10001010, 0x10001010,
+ 0x10001000, 0x10001000, 0x10001010, 0x10001010, 0x10100000, 0x10100000,
+ 0x10100010, 0x10100010, 0x10100000, 0x10100000, 0x10100010, 0x10100010,
+ 0x10101000, 0x10101000, 0x10101010, 0x10101010, 0x10101000, 0x10101000,
+ 0x10101010, 0x10101010, 0x10100000, 0x10100000, 0x10100010, 0x10100010,
+ 0x10100000, 0x10100000, 0x10100010, 0x10100010, 0x10101000, 0x10101000,
+ 0x10101010, 0x10101010, 0x10101000, 0x10101000, 0x10101010, 0x10101010,
+ 0x10000000, 0x10000000, 0x10000010, 0x10000010, 0x10000000, 0x10000000,
+ 0x10000010, 0x10000010, 0x10001000, 0x10001000, 0x10001010, 0x10001010,
+ 0x10001000, 0x10001000, 0x10001010, 0x10001010, 0x10000000, 0x10000000,
+ 0x10000010, 0x10000010, 0x10000000, 0x10000000, 0x10000010, 0x10000010,
+ 0x10001000, 0x10001000, 0x10001010, 0x10001010, 0x10001000, 0x10001000,
+ 0x10001010, 0x10001010, 0x10100000, 0x10100000, 0x10100010, 0x10100010,
+ 0x10100000, 0x10100000, 0x10100010, 0x10100010, 0x10101000, 0x10101000,
+ 0x10101010, 0x10101010, 0x10101000, 0x10101000, 0x10101010, 0x10101010,
+ 0x10100000, 0x10100000, 0x10100010, 0x10100010, 0x10100000, 0x10100000,
+ 0x10100010, 0x10100010, 0x10101000, 0x10101000, 0x10101010, 0x10101010,
+ 0x10101000, 0x10101000, 0x10101010, 0x10101010,
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000020, 0x00000020, 0x00000000, 0x00000000,
+ 0x00000020, 0x00000020, 0x00002000, 0x00002000, 0x00002020, 0x00002020,
+ 0x00002000, 0x00002000, 0x00002020, 0x00002020, 0x00000000, 0x00000000,
+ 0x00000020, 0x00000020, 0x00000000, 0x00000000, 0x00000020, 0x00000020,
+ 0x00002000, 0x00002000, 0x00002020, 0x00002020, 0x00002000, 0x00002000,
+ 0x00002020, 0x00002020, 0x00200000, 0x00200000, 0x00200020, 0x00200020,
+ 0x00200000, 0x00200000, 0x00200020, 0x00200020, 0x00202000, 0x00202000,
+ 0x00202020, 0x00202020, 0x00202000, 0x00202000, 0x00202020, 0x00202020,
+ 0x00200000, 0x00200000, 0x00200020, 0x00200020, 0x00200000, 0x00200000,
+ 0x00200020, 0x00200020, 0x00202000, 0x00202000, 0x00202020, 0x00202020,
+ 0x00202000, 0x00202000, 0x00202020, 0x00202020, 0x00000000, 0x00000000,
+ 0x00000020, 0x00000020, 0x00000000, 0x00000000, 0x00000020, 0x00000020,
+ 0x00002000, 0x00002000, 0x00002020, 0x00002020, 0x00002000, 0x00002000,
+ 0x00002020, 0x00002020, 0x00000000, 0x00000000, 0x00000020, 0x00000020,
+ 0x00000000, 0x00000000, 0x00000020, 0x00000020, 0x00002000, 0x00002000,
+ 0x00002020, 0x00002020, 0x00002000, 0x00002000, 0x00002020, 0x00002020,
+ 0x00200000, 0x00200000, 0x00200020, 0x00200020, 0x00200000, 0x00200000,
+ 0x00200020, 0x00200020, 0x00202000, 0x00202000, 0x00202020, 0x00202020,
+ 0x00202000, 0x00202000, 0x00202020, 0x00202020, 0x00200000, 0x00200000,
+ 0x00200020, 0x00200020, 0x00200000, 0x00200000, 0x00200020, 0x00200020,
+ 0x00202000, 0x00202000, 0x00202020, 0x00202020, 0x00202000, 0x00202000,
+ 0x00202020, 0x00202020, 0x20000000, 0x20000000, 0x20000020, 0x20000020,
+ 0x20000000, 0x20000000, 0x20000020, 0x20000020, 0x20002000, 0x20002000,
+ 0x20002020, 0x20002020, 0x20002000, 0x20002000, 0x20002020, 0x20002020,
+ 0x20000000, 0x20000000, 0x20000020, 0x20000020, 0x20000000, 0x20000000,
+ 0x20000020, 0x20000020, 0x20002000, 0x20002000, 0x20002020, 0x20002020,
+ 0x20002000, 0x20002000, 0x20002020, 0x20002020, 0x20200000, 0x20200000,
+ 0x20200020, 0x20200020, 0x20200000, 0x20200000, 0x20200020, 0x20200020,
+ 0x20202000, 0x20202000, 0x20202020, 0x20202020, 0x20202000, 0x20202000,
+ 0x20202020, 0x20202020, 0x20200000, 0x20200000, 0x20200020, 0x20200020,
+ 0x20200000, 0x20200000, 0x20200020, 0x20200020, 0x20202000, 0x20202000,
+ 0x20202020, 0x20202020, 0x20202000, 0x20202000, 0x20202020, 0x20202020,
+ 0x20000000, 0x20000000, 0x20000020, 0x20000020, 0x20000000, 0x20000000,
+ 0x20000020, 0x20000020, 0x20002000, 0x20002000, 0x20002020, 0x20002020,
+ 0x20002000, 0x20002000, 0x20002020, 0x20002020, 0x20000000, 0x20000000,
+ 0x20000020, 0x20000020, 0x20000000, 0x20000000, 0x20000020, 0x20000020,
+ 0x20002000, 0x20002000, 0x20002020, 0x20002020, 0x20002000, 0x20002000,
+ 0x20002020, 0x20002020, 0x20200000, 0x20200000, 0x20200020, 0x20200020,
+ 0x20200000, 0x20200000, 0x20200020, 0x20200020, 0x20202000, 0x20202000,
+ 0x20202020, 0x20202020, 0x20202000, 0x20202000, 0x20202020, 0x20202020,
+ 0x20200000, 0x20200000, 0x20200020, 0x20200020, 0x20200000, 0x20200000,
+ 0x20200020, 0x20200020, 0x20202000, 0x20202000, 0x20202020, 0x20202020,
+ 0x20202000, 0x20202000, 0x20202020, 0x20202020,
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000040, 0x00000040, 0x00000000, 0x00000000,
+ 0x00000040, 0x00000040, 0x00004000, 0x00004000, 0x00004040, 0x00004040,
+ 0x00004000, 0x00004000, 0x00004040, 0x00004040, 0x00000000, 0x00000000,
+ 0x00000040, 0x00000040, 0x00000000, 0x00000000, 0x00000040, 0x00000040,
+ 0x00004000, 0x00004000, 0x00004040, 0x00004040, 0x00004000, 0x00004000,
+ 0x00004040, 0x00004040, 0x00400000, 0x00400000, 0x00400040, 0x00400040,
+ 0x00400000, 0x00400000, 0x00400040, 0x00400040, 0x00404000, 0x00404000,
+ 0x00404040, 0x00404040, 0x00404000, 0x00404000, 0x00404040, 0x00404040,
+ 0x00400000, 0x00400000, 0x00400040, 0x00400040, 0x00400000, 0x00400000,
+ 0x00400040, 0x00400040, 0x00404000, 0x00404000, 0x00404040, 0x00404040,
+ 0x00404000, 0x00404000, 0x00404040, 0x00404040, 0x00000000, 0x00000000,
+ 0x00000040, 0x00000040, 0x00000000, 0x00000000, 0x00000040, 0x00000040,
+ 0x00004000, 0x00004000, 0x00004040, 0x00004040, 0x00004000, 0x00004000,
+ 0x00004040, 0x00004040, 0x00000000, 0x00000000, 0x00000040, 0x00000040,
+ 0x00000000, 0x00000000, 0x00000040, 0x00000040, 0x00004000, 0x00004000,
+ 0x00004040, 0x00004040, 0x00004000, 0x00004000, 0x00004040, 0x00004040,
+ 0x00400000, 0x00400000, 0x00400040, 0x00400040, 0x00400000, 0x00400000,
+ 0x00400040, 0x00400040, 0x00404000, 0x00404000, 0x00404040, 0x00404040,
+ 0x00404000, 0x00404000, 0x00404040, 0x00404040, 0x00400000, 0x00400000,
+ 0x00400040, 0x00400040, 0x00400000, 0x00400000, 0x00400040, 0x00400040,
+ 0x00404000, 0x00404000, 0x00404040, 0x00404040, 0x00404000, 0x00404000,
+ 0x00404040, 0x00404040, 0x40000000, 0x40000000, 0x40000040, 0x40000040,
+ 0x40000000, 0x40000000, 0x40000040, 0x40000040, 0x40004000, 0x40004000,
+ 0x40004040, 0x40004040, 0x40004000, 0x40004000, 0x40004040, 0x40004040,
+ 0x40000000, 0x40000000, 0x40000040, 0x40000040, 0x40000000, 0x40000000,
+ 0x40000040, 0x40000040, 0x40004000, 0x40004000, 0x40004040, 0x40004040,
+ 0x40004000, 0x40004000, 0x40004040, 0x40004040, 0x40400000, 0x40400000,
+ 0x40400040, 0x40400040, 0x40400000, 0x40400000, 0x40400040, 0x40400040,
+ 0x40404000, 0x40404000, 0x40404040, 0x40404040, 0x40404000, 0x40404000,
+ 0x40404040, 0x40404040, 0x40400000, 0x40400000, 0x40400040, 0x40400040,
+ 0x40400000, 0x40400000, 0x40400040, 0x40400040, 0x40404000, 0x40404000,
+ 0x40404040, 0x40404040, 0x40404000, 0x40404000, 0x40404040, 0x40404040,
+ 0x40000000, 0x40000000, 0x40000040, 0x40000040, 0x40000000, 0x40000000,
+ 0x40000040, 0x40000040, 0x40004000, 0x40004000, 0x40004040, 0x40004040,
+ 0x40004000, 0x40004000, 0x40004040, 0x40004040, 0x40000000, 0x40000000,
+ 0x40000040, 0x40000040, 0x40000000, 0x40000000, 0x40000040, 0x40000040,
+ 0x40004000, 0x40004000, 0x40004040, 0x40004040, 0x40004000, 0x40004000,
+ 0x40004040, 0x40004040, 0x40400000, 0x40400000, 0x40400040, 0x40400040,
+ 0x40400000, 0x40400000, 0x40400040, 0x40400040, 0x40404000, 0x40404000,
+ 0x40404040, 0x40404040, 0x40404000, 0x40404000, 0x40404040, 0x40404040,
+ 0x40400000, 0x40400000, 0x40400040, 0x40400040, 0x40400000, 0x40400000,
+ 0x40400040, 0x40400040, 0x40404000, 0x40404000, 0x40404040, 0x40404040,
+ 0x40404000, 0x40404000, 0x40404040, 0x40404040,
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000080, 0x00000080, 0x00000000, 0x00000000,
+ 0x00000080, 0x00000080, 0x00008000, 0x00008000, 0x00008080, 0x00008080,
+ 0x00008000, 0x00008000, 0x00008080, 0x00008080, 0x00000000, 0x00000000,
+ 0x00000080, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x00000080,
+ 0x00008000, 0x00008000, 0x00008080, 0x00008080, 0x00008000, 0x00008000,
+ 0x00008080, 0x00008080, 0x00800000, 0x00800000, 0x00800080, 0x00800080,
+ 0x00800000, 0x00800000, 0x00800080, 0x00800080, 0x00808000, 0x00808000,
+ 0x00808080, 0x00808080, 0x00808000, 0x00808000, 0x00808080, 0x00808080,
+ 0x00800000, 0x00800000, 0x00800080, 0x00800080, 0x00800000, 0x00800000,
+ 0x00800080, 0x00800080, 0x00808000, 0x00808000, 0x00808080, 0x00808080,
+ 0x00808000, 0x00808000, 0x00808080, 0x00808080, 0x00000000, 0x00000000,
+ 0x00000080, 0x00000080, 0x00000000, 0x00000000, 0x00000080, 0x00000080,
+ 0x00008000, 0x00008000, 0x00008080, 0x00008080, 0x00008000, 0x00008000,
+ 0x00008080, 0x00008080, 0x00000000, 0x00000000, 0x00000080, 0x00000080,
+ 0x00000000, 0x00000000, 0x00000080, 0x00000080, 0x00008000, 0x00008000,
+ 0x00008080, 0x00008080, 0x00008000, 0x00008000, 0x00008080, 0x00008080,
+ 0x00800000, 0x00800000, 0x00800080, 0x00800080, 0x00800000, 0x00800000,
+ 0x00800080, 0x00800080, 0x00808000, 0x00808000, 0x00808080, 0x00808080,
+ 0x00808000, 0x00808000, 0x00808080, 0x00808080, 0x00800000, 0x00800000,
+ 0x00800080, 0x00800080, 0x00800000, 0x00800000, 0x00800080, 0x00800080,
+ 0x00808000, 0x00808000, 0x00808080, 0x00808080, 0x00808000, 0x00808000,
+ 0x00808080, 0x00808080, 0x80000000, 0x80000000, 0x80000080, 0x80000080,
+ 0x80000000, 0x80000000, 0x80000080, 0x80000080, 0x80008000, 0x80008000,
+ 0x80008080, 0x80008080, 0x80008000, 0x80008000, 0x80008080, 0x80008080,
+ 0x80000000, 0x80000000, 0x80000080, 0x80000080, 0x80000000, 0x80000000,
+ 0x80000080, 0x80000080, 0x80008000, 0x80008000, 0x80008080, 0x80008080,
+ 0x80008000, 0x80008000, 0x80008080, 0x80008080, 0x80800000, 0x80800000,
+ 0x80800080, 0x80800080, 0x80800000, 0x80800000, 0x80800080, 0x80800080,
+ 0x80808000, 0x80808000, 0x80808080, 0x80808080, 0x80808000, 0x80808000,
+ 0x80808080, 0x80808080, 0x80800000, 0x80800000, 0x80800080, 0x80800080,
+ 0x80800000, 0x80800000, 0x80800080, 0x80800080, 0x80808000, 0x80808000,
+ 0x80808080, 0x80808080, 0x80808000, 0x80808000, 0x80808080, 0x80808080,
+ 0x80000000, 0x80000000, 0x80000080, 0x80000080, 0x80000000, 0x80000000,
+ 0x80000080, 0x80000080, 0x80008000, 0x80008000, 0x80008080, 0x80008080,
+ 0x80008000, 0x80008000, 0x80008080, 0x80008080, 0x80000000, 0x80000000,
+ 0x80000080, 0x80000080, 0x80000000, 0x80000000, 0x80000080, 0x80000080,
+ 0x80008000, 0x80008000, 0x80008080, 0x80008080, 0x80008000, 0x80008000,
+ 0x80008080, 0x80008080, 0x80800000, 0x80800000, 0x80800080, 0x80800080,
+ 0x80800000, 0x80800000, 0x80800080, 0x80800080, 0x80808000, 0x80808000,
+ 0x80808080, 0x80808080, 0x80808000, 0x80808000, 0x80808080, 0x80808080,
+ 0x80800000, 0x80800000, 0x80800080, 0x80800080, 0x80800000, 0x80800000,
+ 0x80800080, 0x80800080, 0x80808000, 0x80808000, 0x80808080, 0x80808080,
+ 0x80808000, 0x80808000, 0x80808080, 0x80808080,
+ },
+};
+
+const uint32_t fp_maskl[8][256] =
+{
+ {
+ 0x00000000, 0x40000000, 0x00400000, 0x40400000, 0x00004000, 0x40004000,
+ 0x00404000, 0x40404000, 0x00000040, 0x40000040, 0x00400040, 0x40400040,
+ 0x00004040, 0x40004040, 0x00404040, 0x40404040, 0x00000000, 0x40000000,
+ 0x00400000, 0x40400000, 0x00004000, 0x40004000, 0x00404000, 0x40404000,
+ 0x00000040, 0x40000040, 0x00400040, 0x40400040, 0x00004040, 0x40004040,
+ 0x00404040, 0x40404040, 0x00000000, 0x40000000, 0x00400000, 0x40400000,
+ 0x00004000, 0x40004000, 0x00404000, 0x40404000, 0x00000040, 0x40000040,
+ 0x00400040, 0x40400040, 0x00004040, 0x40004040, 0x00404040, 0x40404040,
+ 0x00000000, 0x40000000, 0x00400000, 0x40400000, 0x00004000, 0x40004000,
+ 0x00404000, 0x40404000, 0x00000040, 0x40000040, 0x00400040, 0x40400040,
+ 0x00004040, 0x40004040, 0x00404040, 0x40404040, 0x00000000, 0x40000000,
+ 0x00400000, 0x40400000, 0x00004000, 0x40004000, 0x00404000, 0x40404000,
+ 0x00000040, 0x40000040, 0x00400040, 0x40400040, 0x00004040, 0x40004040,
+ 0x00404040, 0x40404040, 0x00000000, 0x40000000, 0x00400000, 0x40400000,
+ 0x00004000, 0x40004000, 0x00404000, 0x40404000, 0x00000040, 0x40000040,
+ 0x00400040, 0x40400040, 0x00004040, 0x40004040, 0x00404040, 0x40404040,
+ 0x00000000, 0x40000000, 0x00400000, 0x40400000, 0x00004000, 0x40004000,
+ 0x00404000, 0x40404000, 0x00000040, 0x40000040, 0x00400040, 0x40400040,
+ 0x00004040, 0x40004040, 0x00404040, 0x40404040, 0x00000000, 0x40000000,
+ 0x00400000, 0x40400000, 0x00004000, 0x40004000, 0x00404000, 0x40404000,
+ 0x00000040, 0x40000040, 0x00400040, 0x40400040, 0x00004040, 0x40004040,
+ 0x00404040, 0x40404040, 0x00000000, 0x40000000, 0x00400000, 0x40400000,
+ 0x00004000, 0x40004000, 0x00404000, 0x40404000, 0x00000040, 0x40000040,
+ 0x00400040, 0x40400040, 0x00004040, 0x40004040, 0x00404040, 0x40404040,
+ 0x00000000, 0x40000000, 0x00400000, 0x40400000, 0x00004000, 0x40004000,
+ 0x00404000, 0x40404000, 0x00000040, 0x40000040, 0x00400040, 0x40400040,
+ 0x00004040, 0x40004040, 0x00404040, 0x40404040, 0x00000000, 0x40000000,
+ 0x00400000, 0x40400000, 0x00004000, 0x40004000, 0x00404000, 0x40404000,
+ 0x00000040, 0x40000040, 0x00400040, 0x40400040, 0x00004040, 0x40004040,
+ 0x00404040, 0x40404040, 0x00000000, 0x40000000, 0x00400000, 0x40400000,
+ 0x00004000, 0x40004000, 0x00404000, 0x40404000, 0x00000040, 0x40000040,
+ 0x00400040, 0x40400040, 0x00004040, 0x40004040, 0x00404040, 0x40404040,
+ 0x00000000, 0x40000000, 0x00400000, 0x40400000, 0x00004000, 0x40004000,
+ 0x00404000, 0x40404000, 0x00000040, 0x40000040, 0x00400040, 0x40400040,
+ 0x00004040, 0x40004040, 0x00404040, 0x40404040, 0x00000000, 0x40000000,
+ 0x00400000, 0x40400000, 0x00004000, 0x40004000, 0x00404000, 0x40404000,
+ 0x00000040, 0x40000040, 0x00400040, 0x40400040, 0x00004040, 0x40004040,
+ 0x00404040, 0x40404040, 0x00000000, 0x40000000, 0x00400000, 0x40400000,
+ 0x00004000, 0x40004000, 0x00404000, 0x40404000, 0x00000040, 0x40000040,
+ 0x00400040, 0x40400040, 0x00004040, 0x40004040, 0x00404040, 0x40404040,
+ 0x00000000, 0x40000000, 0x00400000, 0x40400000, 0x00004000, 0x40004000,
+ 0x00404000, 0x40404000, 0x00000040, 0x40000040, 0x00400040, 0x40400040,
+ 0x00004040, 0x40004040, 0x00404040, 0x40404040,
+ },
+ {
+ 0x00000000, 0x10000000, 0x00100000, 0x10100000, 0x00001000, 0x10001000,
+ 0x00101000, 0x10101000, 0x00000010, 0x10000010, 0x00100010, 0x10100010,
+ 0x00001010, 0x10001010, 0x00101010, 0x10101010, 0x00000000, 0x10000000,
+ 0x00100000, 0x10100000, 0x00001000, 0x10001000, 0x00101000, 0x10101000,
+ 0x00000010, 0x10000010, 0x00100010, 0x10100010, 0x00001010, 0x10001010,
+ 0x00101010, 0x10101010, 0x00000000, 0x10000000, 0x00100000, 0x10100000,
+ 0x00001000, 0x10001000, 0x00101000, 0x10101000, 0x00000010, 0x10000010,
+ 0x00100010, 0x10100010, 0x00001010, 0x10001010, 0x00101010, 0x10101010,
+ 0x00000000, 0x10000000, 0x00100000, 0x10100000, 0x00001000, 0x10001000,
+ 0x00101000, 0x10101000, 0x00000010, 0x10000010, 0x00100010, 0x10100010,
+ 0x00001010, 0x10001010, 0x00101010, 0x10101010, 0x00000000, 0x10000000,
+ 0x00100000, 0x10100000, 0x00001000, 0x10001000, 0x00101000, 0x10101000,
+ 0x00000010, 0x10000010, 0x00100010, 0x10100010, 0x00001010, 0x10001010,
+ 0x00101010, 0x10101010, 0x00000000, 0x10000000, 0x00100000, 0x10100000,
+ 0x00001000, 0x10001000, 0x00101000, 0x10101000, 0x00000010, 0x10000010,
+ 0x00100010, 0x10100010, 0x00001010, 0x10001010, 0x00101010, 0x10101010,
+ 0x00000000, 0x10000000, 0x00100000, 0x10100000, 0x00001000, 0x10001000,
+ 0x00101000, 0x10101000, 0x00000010, 0x10000010, 0x00100010, 0x10100010,
+ 0x00001010, 0x10001010, 0x00101010, 0x10101010, 0x00000000, 0x10000000,
+ 0x00100000, 0x10100000, 0x00001000, 0x10001000, 0x00101000, 0x10101000,
+ 0x00000010, 0x10000010, 0x00100010, 0x10100010, 0x00001010, 0x10001010,
+ 0x00101010, 0x10101010, 0x00000000, 0x10000000, 0x00100000, 0x10100000,
+ 0x00001000, 0x10001000, 0x00101000, 0x10101000, 0x00000010, 0x10000010,
+ 0x00100010, 0x10100010, 0x00001010, 0x10001010, 0x00101010, 0x10101010,
+ 0x00000000, 0x10000000, 0x00100000, 0x10100000, 0x00001000, 0x10001000,
+ 0x00101000, 0x10101000, 0x00000010, 0x10000010, 0x00100010, 0x10100010,
+ 0x00001010, 0x10001010, 0x00101010, 0x10101010, 0x00000000, 0x10000000,
+ 0x00100000, 0x10100000, 0x00001000, 0x10001000, 0x00101000, 0x10101000,
+ 0x00000010, 0x10000010, 0x00100010, 0x10100010, 0x00001010, 0x10001010,
+ 0x00101010, 0x10101010, 0x00000000, 0x10000000, 0x00100000, 0x10100000,
+ 0x00001000, 0x10001000, 0x00101000, 0x10101000, 0x00000010, 0x10000010,
+ 0x00100010, 0x10100010, 0x00001010, 0x10001010, 0x00101010, 0x10101010,
+ 0x00000000, 0x10000000, 0x00100000, 0x10100000, 0x00001000, 0x10001000,
+ 0x00101000, 0x10101000, 0x00000010, 0x10000010, 0x00100010, 0x10100010,
+ 0x00001010, 0x10001010, 0x00101010, 0x10101010, 0x00000000, 0x10000000,
+ 0x00100000, 0x10100000, 0x00001000, 0x10001000, 0x00101000, 0x10101000,
+ 0x00000010, 0x10000010, 0x00100010, 0x10100010, 0x00001010, 0x10001010,
+ 0x00101010, 0x10101010, 0x00000000, 0x10000000, 0x00100000, 0x10100000,
+ 0x00001000, 0x10001000, 0x00101000, 0x10101000, 0x00000010, 0x10000010,
+ 0x00100010, 0x10100010, 0x00001010, 0x10001010, 0x00101010, 0x10101010,
+ 0x00000000, 0x10000000, 0x00100000, 0x10100000, 0x00001000, 0x10001000,
+ 0x00101000, 0x10101000, 0x00000010, 0x10000010, 0x00100010, 0x10100010,
+ 0x00001010, 0x10001010, 0x00101010, 0x10101010,
+ },
+ {
+ 0x00000000, 0x04000000, 0x00040000, 0x04040000, 0x00000400, 0x04000400,
+ 0x00040400, 0x04040400, 0x00000004, 0x04000004, 0x00040004, 0x04040004,
+ 0x00000404, 0x04000404, 0x00040404, 0x04040404, 0x00000000, 0x04000000,
+ 0x00040000, 0x04040000, 0x00000400, 0x04000400, 0x00040400, 0x04040400,
+ 0x00000004, 0x04000004, 0x00040004, 0x04040004, 0x00000404, 0x04000404,
+ 0x00040404, 0x04040404, 0x00000000, 0x04000000, 0x00040000, 0x04040000,
+ 0x00000400, 0x04000400, 0x00040400, 0x04040400, 0x00000004, 0x04000004,
+ 0x00040004, 0x04040004, 0x00000404, 0x04000404, 0x00040404, 0x04040404,
+ 0x00000000, 0x04000000, 0x00040000, 0x04040000, 0x00000400, 0x04000400,
+ 0x00040400, 0x04040400, 0x00000004, 0x04000004, 0x00040004, 0x04040004,
+ 0x00000404, 0x04000404, 0x00040404, 0x04040404, 0x00000000, 0x04000000,
+ 0x00040000, 0x04040000, 0x00000400, 0x04000400, 0x00040400, 0x04040400,
+ 0x00000004, 0x04000004, 0x00040004, 0x04040004, 0x00000404, 0x04000404,
+ 0x00040404, 0x04040404, 0x00000000, 0x04000000, 0x00040000, 0x04040000,
+ 0x00000400, 0x04000400, 0x00040400, 0x04040400, 0x00000004, 0x04000004,
+ 0x00040004, 0x04040004, 0x00000404, 0x04000404, 0x00040404, 0x04040404,
+ 0x00000000, 0x04000000, 0x00040000, 0x04040000, 0x00000400, 0x04000400,
+ 0x00040400, 0x04040400, 0x00000004, 0x04000004, 0x00040004, 0x04040004,
+ 0x00000404, 0x04000404, 0x00040404, 0x04040404, 0x00000000, 0x04000000,
+ 0x00040000, 0x04040000, 0x00000400, 0x04000400, 0x00040400, 0x04040400,
+ 0x00000004, 0x04000004, 0x00040004, 0x04040004, 0x00000404, 0x04000404,
+ 0x00040404, 0x04040404, 0x00000000, 0x04000000, 0x00040000, 0x04040000,
+ 0x00000400, 0x04000400, 0x00040400, 0x04040400, 0x00000004, 0x04000004,
+ 0x00040004, 0x04040004, 0x00000404, 0x04000404, 0x00040404, 0x04040404,
+ 0x00000000, 0x04000000, 0x00040000, 0x04040000, 0x00000400, 0x04000400,
+ 0x00040400, 0x04040400, 0x00000004, 0x04000004, 0x00040004, 0x04040004,
+ 0x00000404, 0x04000404, 0x00040404, 0x04040404, 0x00000000, 0x04000000,
+ 0x00040000, 0x04040000, 0x00000400, 0x04000400, 0x00040400, 0x04040400,
+ 0x00000004, 0x04000004, 0x00040004, 0x04040004, 0x00000404, 0x04000404,
+ 0x00040404, 0x04040404, 0x00000000, 0x04000000, 0x00040000, 0x04040000,
+ 0x00000400, 0x04000400, 0x00040400, 0x04040400, 0x00000004, 0x04000004,
+ 0x00040004, 0x04040004, 0x00000404, 0x04000404, 0x00040404, 0x04040404,
+ 0x00000000, 0x04000000, 0x00040000, 0x04040000, 0x00000400, 0x04000400,
+ 0x00040400, 0x04040400, 0x00000004, 0x04000004, 0x00040004, 0x04040004,
+ 0x00000404, 0x04000404, 0x00040404, 0x04040404, 0x00000000, 0x04000000,
+ 0x00040000, 0x04040000, 0x00000400, 0x04000400, 0x00040400, 0x04040400,
+ 0x00000004, 0x04000004, 0x00040004, 0x04040004, 0x00000404, 0x04000404,
+ 0x00040404, 0x04040404, 0x00000000, 0x04000000, 0x00040000, 0x04040000,
+ 0x00000400, 0x04000400, 0x00040400, 0x04040400, 0x00000004, 0x04000004,
+ 0x00040004, 0x04040004, 0x00000404, 0x04000404, 0x00040404, 0x04040404,
+ 0x00000000, 0x04000000, 0x00040000, 0x04040000, 0x00000400, 0x04000400,
+ 0x00040400, 0x04040400, 0x00000004, 0x04000004, 0x00040004, 0x04040004,
+ 0x00000404, 0x04000404, 0x00040404, 0x04040404,
+ },
+ {
+ 0x00000000, 0x01000000, 0x00010000, 0x01010000, 0x00000100, 0x01000100,
+ 0x00010100, 0x01010100, 0x00000001, 0x01000001, 0x00010001, 0x01010001,
+ 0x00000101, 0x01000101, 0x00010101, 0x01010101, 0x00000000, 0x01000000,
+ 0x00010000, 0x01010000, 0x00000100, 0x01000100, 0x00010100, 0x01010100,
+ 0x00000001, 0x01000001, 0x00010001, 0x01010001, 0x00000101, 0x01000101,
+ 0x00010101, 0x01010101, 0x00000000, 0x01000000, 0x00010000, 0x01010000,
+ 0x00000100, 0x01000100, 0x00010100, 0x01010100, 0x00000001, 0x01000001,
+ 0x00010001, 0x01010001, 0x00000101, 0x01000101, 0x00010101, 0x01010101,
+ 0x00000000, 0x01000000, 0x00010000, 0x01010000, 0x00000100, 0x01000100,
+ 0x00010100, 0x01010100, 0x00000001, 0x01000001, 0x00010001, 0x01010001,
+ 0x00000101, 0x01000101, 0x00010101, 0x01010101, 0x00000000, 0x01000000,
+ 0x00010000, 0x01010000, 0x00000100, 0x01000100, 0x00010100, 0x01010100,
+ 0x00000001, 0x01000001, 0x00010001, 0x01010001, 0x00000101, 0x01000101,
+ 0x00010101, 0x01010101, 0x00000000, 0x01000000, 0x00010000, 0x01010000,
+ 0x00000100, 0x01000100, 0x00010100, 0x01010100, 0x00000001, 0x01000001,
+ 0x00010001, 0x01010001, 0x00000101, 0x01000101, 0x00010101, 0x01010101,
+ 0x00000000, 0x01000000, 0x00010000, 0x01010000, 0x00000100, 0x01000100,
+ 0x00010100, 0x01010100, 0x00000001, 0x01000001, 0x00010001, 0x01010001,
+ 0x00000101, 0x01000101, 0x00010101, 0x01010101, 0x00000000, 0x01000000,
+ 0x00010000, 0x01010000, 0x00000100, 0x01000100, 0x00010100, 0x01010100,
+ 0x00000001, 0x01000001, 0x00010001, 0x01010001, 0x00000101, 0x01000101,
+ 0x00010101, 0x01010101, 0x00000000, 0x01000000, 0x00010000, 0x01010000,
+ 0x00000100, 0x01000100, 0x00010100, 0x01010100, 0x00000001, 0x01000001,
+ 0x00010001, 0x01010001, 0x00000101, 0x01000101, 0x00010101, 0x01010101,
+ 0x00000000, 0x01000000, 0x00010000, 0x01010000, 0x00000100, 0x01000100,
+ 0x00010100, 0x01010100, 0x00000001, 0x01000001, 0x00010001, 0x01010001,
+ 0x00000101, 0x01000101, 0x00010101, 0x01010101, 0x00000000, 0x01000000,
+ 0x00010000, 0x01010000, 0x00000100, 0x01000100, 0x00010100, 0x01010100,
+ 0x00000001, 0x01000001, 0x00010001, 0x01010001, 0x00000101, 0x01000101,
+ 0x00010101, 0x01010101, 0x00000000, 0x01000000, 0x00010000, 0x01010000,
+ 0x00000100, 0x01000100, 0x00010100, 0x01010100, 0x00000001, 0x01000001,
+ 0x00010001, 0x01010001, 0x00000101, 0x01000101, 0x00010101, 0x01010101,
+ 0x00000000, 0x01000000, 0x00010000, 0x01010000, 0x00000100, 0x01000100,
+ 0x00010100, 0x01010100, 0x00000001, 0x01000001, 0x00010001, 0x01010001,
+ 0x00000101, 0x01000101, 0x00010101, 0x01010101, 0x00000000, 0x01000000,
+ 0x00010000, 0x01010000, 0x00000100, 0x01000100, 0x00010100, 0x01010100,
+ 0x00000001, 0x01000001, 0x00010001, 0x01010001, 0x00000101, 0x01000101,
+ 0x00010101, 0x01010101, 0x00000000, 0x01000000, 0x00010000, 0x01010000,
+ 0x00000100, 0x01000100, 0x00010100, 0x01010100, 0x00000001, 0x01000001,
+ 0x00010001, 0x01010001, 0x00000101, 0x01000101, 0x00010101, 0x01010101,
+ 0x00000000, 0x01000000, 0x00010000, 0x01010000, 0x00000100, 0x01000100,
+ 0x00010100, 0x01010100, 0x00000001, 0x01000001, 0x00010001, 0x01010001,
+ 0x00000101, 0x01000101, 0x00010101, 0x01010101,
+ },
+ {
+ 0x00000000, 0x80000000, 0x00800000, 0x80800000, 0x00008000, 0x80008000,
+ 0x00808000, 0x80808000, 0x00000080, 0x80000080, 0x00800080, 0x80800080,
+ 0x00008080, 0x80008080, 0x00808080, 0x80808080, 0x00000000, 0x80000000,
+ 0x00800000, 0x80800000, 0x00008000, 0x80008000, 0x00808000, 0x80808000,
+ 0x00000080, 0x80000080, 0x00800080, 0x80800080, 0x00008080, 0x80008080,
+ 0x00808080, 0x80808080, 0x00000000, 0x80000000, 0x00800000, 0x80800000,
+ 0x00008000, 0x80008000, 0x00808000, 0x80808000, 0x00000080, 0x80000080,
+ 0x00800080, 0x80800080, 0x00008080, 0x80008080, 0x00808080, 0x80808080,
+ 0x00000000, 0x80000000, 0x00800000, 0x80800000, 0x00008000, 0x80008000,
+ 0x00808000, 0x80808000, 0x00000080, 0x80000080, 0x00800080, 0x80800080,
+ 0x00008080, 0x80008080, 0x00808080, 0x80808080, 0x00000000, 0x80000000,
+ 0x00800000, 0x80800000, 0x00008000, 0x80008000, 0x00808000, 0x80808000,
+ 0x00000080, 0x80000080, 0x00800080, 0x80800080, 0x00008080, 0x80008080,
+ 0x00808080, 0x80808080, 0x00000000, 0x80000000, 0x00800000, 0x80800000,
+ 0x00008000, 0x80008000, 0x00808000, 0x80808000, 0x00000080, 0x80000080,
+ 0x00800080, 0x80800080, 0x00008080, 0x80008080, 0x00808080, 0x80808080,
+ 0x00000000, 0x80000000, 0x00800000, 0x80800000, 0x00008000, 0x80008000,
+ 0x00808000, 0x80808000, 0x00000080, 0x80000080, 0x00800080, 0x80800080,
+ 0x00008080, 0x80008080, 0x00808080, 0x80808080, 0x00000000, 0x80000000,
+ 0x00800000, 0x80800000, 0x00008000, 0x80008000, 0x00808000, 0x80808000,
+ 0x00000080, 0x80000080, 0x00800080, 0x80800080, 0x00008080, 0x80008080,
+ 0x00808080, 0x80808080, 0x00000000, 0x80000000, 0x00800000, 0x80800000,
+ 0x00008000, 0x80008000, 0x00808000, 0x80808000, 0x00000080, 0x80000080,
+ 0x00800080, 0x80800080, 0x00008080, 0x80008080, 0x00808080, 0x80808080,
+ 0x00000000, 0x80000000, 0x00800000, 0x80800000, 0x00008000, 0x80008000,
+ 0x00808000, 0x80808000, 0x00000080, 0x80000080, 0x00800080, 0x80800080,
+ 0x00008080, 0x80008080, 0x00808080, 0x80808080, 0x00000000, 0x80000000,
+ 0x00800000, 0x80800000, 0x00008000, 0x80008000, 0x00808000, 0x80808000,
+ 0x00000080, 0x80000080, 0x00800080, 0x80800080, 0x00008080, 0x80008080,
+ 0x00808080, 0x80808080, 0x00000000, 0x80000000, 0x00800000, 0x80800000,
+ 0x00008000, 0x80008000, 0x00808000, 0x80808000, 0x00000080, 0x80000080,
+ 0x00800080, 0x80800080, 0x00008080, 0x80008080, 0x00808080, 0x80808080,
+ 0x00000000, 0x80000000, 0x00800000, 0x80800000, 0x00008000, 0x80008000,
+ 0x00808000, 0x80808000, 0x00000080, 0x80000080, 0x00800080, 0x80800080,
+ 0x00008080, 0x80008080, 0x00808080, 0x80808080, 0x00000000, 0x80000000,
+ 0x00800000, 0x80800000, 0x00008000, 0x80008000, 0x00808000, 0x80808000,
+ 0x00000080, 0x80000080, 0x00800080, 0x80800080, 0x00008080, 0x80008080,
+ 0x00808080, 0x80808080, 0x00000000, 0x80000000, 0x00800000, 0x80800000,
+ 0x00008000, 0x80008000, 0x00808000, 0x80808000, 0x00000080, 0x80000080,
+ 0x00800080, 0x80800080, 0x00008080, 0x80008080, 0x00808080, 0x80808080,
+ 0x00000000, 0x80000000, 0x00800000, 0x80800000, 0x00008000, 0x80008000,
+ 0x00808000, 0x80808000, 0x00000080, 0x80000080, 0x00800080, 0x80800080,
+ 0x00008080, 0x80008080, 0x00808080, 0x80808080,
+ },
+ {
+ 0x00000000, 0x20000000, 0x00200000, 0x20200000, 0x00002000, 0x20002000,
+ 0x00202000, 0x20202000, 0x00000020, 0x20000020, 0x00200020, 0x20200020,
+ 0x00002020, 0x20002020, 0x00202020, 0x20202020, 0x00000000, 0x20000000,
+ 0x00200000, 0x20200000, 0x00002000, 0x20002000, 0x00202000, 0x20202000,
+ 0x00000020, 0x20000020, 0x00200020, 0x20200020, 0x00002020, 0x20002020,
+ 0x00202020, 0x20202020, 0x00000000, 0x20000000, 0x00200000, 0x20200000,
+ 0x00002000, 0x20002000, 0x00202000, 0x20202000, 0x00000020, 0x20000020,
+ 0x00200020, 0x20200020, 0x00002020, 0x20002020, 0x00202020, 0x20202020,
+ 0x00000000, 0x20000000, 0x00200000, 0x20200000, 0x00002000, 0x20002000,
+ 0x00202000, 0x20202000, 0x00000020, 0x20000020, 0x00200020, 0x20200020,
+ 0x00002020, 0x20002020, 0x00202020, 0x20202020, 0x00000000, 0x20000000,
+ 0x00200000, 0x20200000, 0x00002000, 0x20002000, 0x00202000, 0x20202000,
+ 0x00000020, 0x20000020, 0x00200020, 0x20200020, 0x00002020, 0x20002020,
+ 0x00202020, 0x20202020, 0x00000000, 0x20000000, 0x00200000, 0x20200000,
+ 0x00002000, 0x20002000, 0x00202000, 0x20202000, 0x00000020, 0x20000020,
+ 0x00200020, 0x20200020, 0x00002020, 0x20002020, 0x00202020, 0x20202020,
+ 0x00000000, 0x20000000, 0x00200000, 0x20200000, 0x00002000, 0x20002000,
+ 0x00202000, 0x20202000, 0x00000020, 0x20000020, 0x00200020, 0x20200020,
+ 0x00002020, 0x20002020, 0x00202020, 0x20202020, 0x00000000, 0x20000000,
+ 0x00200000, 0x20200000, 0x00002000, 0x20002000, 0x00202000, 0x20202000,
+ 0x00000020, 0x20000020, 0x00200020, 0x20200020, 0x00002020, 0x20002020,
+ 0x00202020, 0x20202020, 0x00000000, 0x20000000, 0x00200000, 0x20200000,
+ 0x00002000, 0x20002000, 0x00202000, 0x20202000, 0x00000020, 0x20000020,
+ 0x00200020, 0x20200020, 0x00002020, 0x20002020, 0x00202020, 0x20202020,
+ 0x00000000, 0x20000000, 0x00200000, 0x20200000, 0x00002000, 0x20002000,
+ 0x00202000, 0x20202000, 0x00000020, 0x20000020, 0x00200020, 0x20200020,
+ 0x00002020, 0x20002020, 0x00202020, 0x20202020, 0x00000000, 0x20000000,
+ 0x00200000, 0x20200000, 0x00002000, 0x20002000, 0x00202000, 0x20202000,
+ 0x00000020, 0x20000020, 0x00200020, 0x20200020, 0x00002020, 0x20002020,
+ 0x00202020, 0x20202020, 0x00000000, 0x20000000, 0x00200000, 0x20200000,
+ 0x00002000, 0x20002000, 0x00202000, 0x20202000, 0x00000020, 0x20000020,
+ 0x00200020, 0x20200020, 0x00002020, 0x20002020, 0x00202020, 0x20202020,
+ 0x00000000, 0x20000000, 0x00200000, 0x20200000, 0x00002000, 0x20002000,
+ 0x00202000, 0x20202000, 0x00000020, 0x20000020, 0x00200020, 0x20200020,
+ 0x00002020, 0x20002020, 0x00202020, 0x20202020, 0x00000000, 0x20000000,
+ 0x00200000, 0x20200000, 0x00002000, 0x20002000, 0x00202000, 0x20202000,
+ 0x00000020, 0x20000020, 0x00200020, 0x20200020, 0x00002020, 0x20002020,
+ 0x00202020, 0x20202020, 0x00000000, 0x20000000, 0x00200000, 0x20200000,
+ 0x00002000, 0x20002000, 0x00202000, 0x20202000, 0x00000020, 0x20000020,
+ 0x00200020, 0x20200020, 0x00002020, 0x20002020, 0x00202020, 0x20202020,
+ 0x00000000, 0x20000000, 0x00200000, 0x20200000, 0x00002000, 0x20002000,
+ 0x00202000, 0x20202000, 0x00000020, 0x20000020, 0x00200020, 0x20200020,
+ 0x00002020, 0x20002020, 0x00202020, 0x20202020,
+ },
+ {
+ 0x00000000, 0x08000000, 0x00080000, 0x08080000, 0x00000800, 0x08000800,
+ 0x00080800, 0x08080800, 0x00000008, 0x08000008, 0x00080008, 0x08080008,
+ 0x00000808, 0x08000808, 0x00080808, 0x08080808, 0x00000000, 0x08000000,
+ 0x00080000, 0x08080000, 0x00000800, 0x08000800, 0x00080800, 0x08080800,
+ 0x00000008, 0x08000008, 0x00080008, 0x08080008, 0x00000808, 0x08000808,
+ 0x00080808, 0x08080808, 0x00000000, 0x08000000, 0x00080000, 0x08080000,
+ 0x00000800, 0x08000800, 0x00080800, 0x08080800, 0x00000008, 0x08000008,
+ 0x00080008, 0x08080008, 0x00000808, 0x08000808, 0x00080808, 0x08080808,
+ 0x00000000, 0x08000000, 0x00080000, 0x08080000, 0x00000800, 0x08000800,
+ 0x00080800, 0x08080800, 0x00000008, 0x08000008, 0x00080008, 0x08080008,
+ 0x00000808, 0x08000808, 0x00080808, 0x08080808, 0x00000000, 0x08000000,
+ 0x00080000, 0x08080000, 0x00000800, 0x08000800, 0x00080800, 0x08080800,
+ 0x00000008, 0x08000008, 0x00080008, 0x08080008, 0x00000808, 0x08000808,
+ 0x00080808, 0x08080808, 0x00000000, 0x08000000, 0x00080000, 0x08080000,
+ 0x00000800, 0x08000800, 0x00080800, 0x08080800, 0x00000008, 0x08000008,
+ 0x00080008, 0x08080008, 0x00000808, 0x08000808, 0x00080808, 0x08080808,
+ 0x00000000, 0x08000000, 0x00080000, 0x08080000, 0x00000800, 0x08000800,
+ 0x00080800, 0x08080800, 0x00000008, 0x08000008, 0x00080008, 0x08080008,
+ 0x00000808, 0x08000808, 0x00080808, 0x08080808, 0x00000000, 0x08000000,
+ 0x00080000, 0x08080000, 0x00000800, 0x08000800, 0x00080800, 0x08080800,
+ 0x00000008, 0x08000008, 0x00080008, 0x08080008, 0x00000808, 0x08000808,
+ 0x00080808, 0x08080808, 0x00000000, 0x08000000, 0x00080000, 0x08080000,
+ 0x00000800, 0x08000800, 0x00080800, 0x08080800, 0x00000008, 0x08000008,
+ 0x00080008, 0x08080008, 0x00000808, 0x08000808, 0x00080808, 0x08080808,
+ 0x00000000, 0x08000000, 0x00080000, 0x08080000, 0x00000800, 0x08000800,
+ 0x00080800, 0x08080800, 0x00000008, 0x08000008, 0x00080008, 0x08080008,
+ 0x00000808, 0x08000808, 0x00080808, 0x08080808, 0x00000000, 0x08000000,
+ 0x00080000, 0x08080000, 0x00000800, 0x08000800, 0x00080800, 0x08080800,
+ 0x00000008, 0x08000008, 0x00080008, 0x08080008, 0x00000808, 0x08000808,
+ 0x00080808, 0x08080808, 0x00000000, 0x08000000, 0x00080000, 0x08080000,
+ 0x00000800, 0x08000800, 0x00080800, 0x08080800, 0x00000008, 0x08000008,
+ 0x00080008, 0x08080008, 0x00000808, 0x08000808, 0x00080808, 0x08080808,
+ 0x00000000, 0x08000000, 0x00080000, 0x08080000, 0x00000800, 0x08000800,
+ 0x00080800, 0x08080800, 0x00000008, 0x08000008, 0x00080008, 0x08080008,
+ 0x00000808, 0x08000808, 0x00080808, 0x08080808, 0x00000000, 0x08000000,
+ 0x00080000, 0x08080000, 0x00000800, 0x08000800, 0x00080800, 0x08080800,
+ 0x00000008, 0x08000008, 0x00080008, 0x08080008, 0x00000808, 0x08000808,
+ 0x00080808, 0x08080808, 0x00000000, 0x08000000, 0x00080000, 0x08080000,
+ 0x00000800, 0x08000800, 0x00080800, 0x08080800, 0x00000008, 0x08000008,
+ 0x00080008, 0x08080008, 0x00000808, 0x08000808, 0x00080808, 0x08080808,
+ 0x00000000, 0x08000000, 0x00080000, 0x08080000, 0x00000800, 0x08000800,
+ 0x00080800, 0x08080800, 0x00000008, 0x08000008, 0x00080008, 0x08080008,
+ 0x00000808, 0x08000808, 0x00080808, 0x08080808,
+ },
+ {
+ 0x00000000, 0x02000000, 0x00020000, 0x02020000, 0x00000200, 0x02000200,
+ 0x00020200, 0x02020200, 0x00000002, 0x02000002, 0x00020002, 0x02020002,
+ 0x00000202, 0x02000202, 0x00020202, 0x02020202, 0x00000000, 0x02000000,
+ 0x00020000, 0x02020000, 0x00000200, 0x02000200, 0x00020200, 0x02020200,
+ 0x00000002, 0x02000002, 0x00020002, 0x02020002, 0x00000202, 0x02000202,
+ 0x00020202, 0x02020202, 0x00000000, 0x02000000, 0x00020000, 0x02020000,
+ 0x00000200, 0x02000200, 0x00020200, 0x02020200, 0x00000002, 0x02000002,
+ 0x00020002, 0x02020002, 0x00000202, 0x02000202, 0x00020202, 0x02020202,
+ 0x00000000, 0x02000000, 0x00020000, 0x02020000, 0x00000200, 0x02000200,
+ 0x00020200, 0x02020200, 0x00000002, 0x02000002, 0x00020002, 0x02020002,
+ 0x00000202, 0x02000202, 0x00020202, 0x02020202, 0x00000000, 0x02000000,
+ 0x00020000, 0x02020000, 0x00000200, 0x02000200, 0x00020200, 0x02020200,
+ 0x00000002, 0x02000002, 0x00020002, 0x02020002, 0x00000202, 0x02000202,
+ 0x00020202, 0x02020202, 0x00000000, 0x02000000, 0x00020000, 0x02020000,
+ 0x00000200, 0x02000200, 0x00020200, 0x02020200, 0x00000002, 0x02000002,
+ 0x00020002, 0x02020002, 0x00000202, 0x02000202, 0x00020202, 0x02020202,
+ 0x00000000, 0x02000000, 0x00020000, 0x02020000, 0x00000200, 0x02000200,
+ 0x00020200, 0x02020200, 0x00000002, 0x02000002, 0x00020002, 0x02020002,
+ 0x00000202, 0x02000202, 0x00020202, 0x02020202, 0x00000000, 0x02000000,
+ 0x00020000, 0x02020000, 0x00000200, 0x02000200, 0x00020200, 0x02020200,
+ 0x00000002, 0x02000002, 0x00020002, 0x02020002, 0x00000202, 0x02000202,
+ 0x00020202, 0x02020202, 0x00000000, 0x02000000, 0x00020000, 0x02020000,
+ 0x00000200, 0x02000200, 0x00020200, 0x02020200, 0x00000002, 0x02000002,
+ 0x00020002, 0x02020002, 0x00000202, 0x02000202, 0x00020202, 0x02020202,
+ 0x00000000, 0x02000000, 0x00020000, 0x02020000, 0x00000200, 0x02000200,
+ 0x00020200, 0x02020200, 0x00000002, 0x02000002, 0x00020002, 0x02020002,
+ 0x00000202, 0x02000202, 0x00020202, 0x02020202, 0x00000000, 0x02000000,
+ 0x00020000, 0x02020000, 0x00000200, 0x02000200, 0x00020200, 0x02020200,
+ 0x00000002, 0x02000002, 0x00020002, 0x02020002, 0x00000202, 0x02000202,
+ 0x00020202, 0x02020202, 0x00000000, 0x02000000, 0x00020000, 0x02020000,
+ 0x00000200, 0x02000200, 0x00020200, 0x02020200, 0x00000002, 0x02000002,
+ 0x00020002, 0x02020002, 0x00000202, 0x02000202, 0x00020202, 0x02020202,
+ 0x00000000, 0x02000000, 0x00020000, 0x02020000, 0x00000200, 0x02000200,
+ 0x00020200, 0x02020200, 0x00000002, 0x02000002, 0x00020002, 0x02020002,
+ 0x00000202, 0x02000202, 0x00020202, 0x02020202, 0x00000000, 0x02000000,
+ 0x00020000, 0x02020000, 0x00000200, 0x02000200, 0x00020200, 0x02020200,
+ 0x00000002, 0x02000002, 0x00020002, 0x02020002, 0x00000202, 0x02000202,
+ 0x00020202, 0x02020202, 0x00000000, 0x02000000, 0x00020000, 0x02020000,
+ 0x00000200, 0x02000200, 0x00020200, 0x02020200, 0x00000002, 0x02000002,
+ 0x00020002, 0x02020002, 0x00000202, 0x02000202, 0x00020202, 0x02020202,
+ 0x00000000, 0x02000000, 0x00020000, 0x02020000, 0x00000200, 0x02000200,
+ 0x00020200, 0x02020200, 0x00000002, 0x02000002, 0x00020002, 0x02020002,
+ 0x00000202, 0x02000202, 0x00020202, 0x02020202,
+ },
+};
+
+const uint32_t fp_maskr[8][256] =
+{
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x40000000, 0x40000000,
+ 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000,
+ 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000, 0x40000000,
+ 0x40000000, 0x40000000, 0x00400000, 0x00400000, 0x00400000, 0x00400000,
+ 0x00400000, 0x00400000, 0x00400000, 0x00400000, 0x00400000, 0x00400000,
+ 0x00400000, 0x00400000, 0x00400000, 0x00400000, 0x00400000, 0x00400000,
+ 0x40400000, 0x40400000, 0x40400000, 0x40400000, 0x40400000, 0x40400000,
+ 0x40400000, 0x40400000, 0x40400000, 0x40400000, 0x40400000, 0x40400000,
+ 0x40400000, 0x40400000, 0x40400000, 0x40400000, 0x00004000, 0x00004000,
+ 0x00004000, 0x00004000, 0x00004000, 0x00004000, 0x00004000, 0x00004000,
+ 0x00004000, 0x00004000, 0x00004000, 0x00004000, 0x00004000, 0x00004000,
+ 0x00004000, 0x00004000, 0x40004000, 0x40004000, 0x40004000, 0x40004000,
+ 0x40004000, 0x40004000, 0x40004000, 0x40004000, 0x40004000, 0x40004000,
+ 0x40004000, 0x40004000, 0x40004000, 0x40004000, 0x40004000, 0x40004000,
+ 0x00404000, 0x00404000, 0x00404000, 0x00404000, 0x00404000, 0x00404000,
+ 0x00404000, 0x00404000, 0x00404000, 0x00404000, 0x00404000, 0x00404000,
+ 0x00404000, 0x00404000, 0x00404000, 0x00404000, 0x40404000, 0x40404000,
+ 0x40404000, 0x40404000, 0x40404000, 0x40404000, 0x40404000, 0x40404000,
+ 0x40404000, 0x40404000, 0x40404000, 0x40404000, 0x40404000, 0x40404000,
+ 0x40404000, 0x40404000, 0x00000040, 0x00000040, 0x00000040, 0x00000040,
+ 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040,
+ 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040,
+ 0x40000040, 0x40000040, 0x40000040, 0x40000040, 0x40000040, 0x40000040,
+ 0x40000040, 0x40000040, 0x40000040, 0x40000040, 0x40000040, 0x40000040,
+ 0x40000040, 0x40000040, 0x40000040, 0x40000040, 0x00400040, 0x00400040,
+ 0x00400040, 0x00400040, 0x00400040, 0x00400040, 0x00400040, 0x00400040,
+ 0x00400040, 0x00400040, 0x00400040, 0x00400040, 0x00400040, 0x00400040,
+ 0x00400040, 0x00400040, 0x40400040, 0x40400040, 0x40400040, 0x40400040,
+ 0x40400040, 0x40400040, 0x40400040, 0x40400040, 0x40400040, 0x40400040,
+ 0x40400040, 0x40400040, 0x40400040, 0x40400040, 0x40400040, 0x40400040,
+ 0x00004040, 0x00004040, 0x00004040, 0x00004040, 0x00004040, 0x00004040,
+ 0x00004040, 0x00004040, 0x00004040, 0x00004040, 0x00004040, 0x00004040,
+ 0x00004040, 0x00004040, 0x00004040, 0x00004040, 0x40004040, 0x40004040,
+ 0x40004040, 0x40004040, 0x40004040, 0x40004040, 0x40004040, 0x40004040,
+ 0x40004040, 0x40004040, 0x40004040, 0x40004040, 0x40004040, 0x40004040,
+ 0x40004040, 0x40004040, 0x00404040, 0x00404040, 0x00404040, 0x00404040,
+ 0x00404040, 0x00404040, 0x00404040, 0x00404040, 0x00404040, 0x00404040,
+ 0x00404040, 0x00404040, 0x00404040, 0x00404040, 0x00404040, 0x00404040,
+ 0x40404040, 0x40404040, 0x40404040, 0x40404040, 0x40404040, 0x40404040,
+ 0x40404040, 0x40404040, 0x40404040, 0x40404040, 0x40404040, 0x40404040,
+ 0x40404040, 0x40404040, 0x40404040, 0x40404040,
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x10000000, 0x10000000,
+ 0x10000000, 0x10000000, 0x10000000, 0x10000000, 0x10000000, 0x10000000,
+ 0x10000000, 0x10000000, 0x10000000, 0x10000000, 0x10000000, 0x10000000,
+ 0x10000000, 0x10000000, 0x00100000, 0x00100000, 0x00100000, 0x00100000,
+ 0x00100000, 0x00100000, 0x00100000, 0x00100000, 0x00100000, 0x00100000,
+ 0x00100000, 0x00100000, 0x00100000, 0x00100000, 0x00100000, 0x00100000,
+ 0x10100000, 0x10100000, 0x10100000, 0x10100000, 0x10100000, 0x10100000,
+ 0x10100000, 0x10100000, 0x10100000, 0x10100000, 0x10100000, 0x10100000,
+ 0x10100000, 0x10100000, 0x10100000, 0x10100000, 0x00001000, 0x00001000,
+ 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000,
+ 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000,
+ 0x00001000, 0x00001000, 0x10001000, 0x10001000, 0x10001000, 0x10001000,
+ 0x10001000, 0x10001000, 0x10001000, 0x10001000, 0x10001000, 0x10001000,
+ 0x10001000, 0x10001000, 0x10001000, 0x10001000, 0x10001000, 0x10001000,
+ 0x00101000, 0x00101000, 0x00101000, 0x00101000, 0x00101000, 0x00101000,
+ 0x00101000, 0x00101000, 0x00101000, 0x00101000, 0x00101000, 0x00101000,
+ 0x00101000, 0x00101000, 0x00101000, 0x00101000, 0x10101000, 0x10101000,
+ 0x10101000, 0x10101000, 0x10101000, 0x10101000, 0x10101000, 0x10101000,
+ 0x10101000, 0x10101000, 0x10101000, 0x10101000, 0x10101000, 0x10101000,
+ 0x10101000, 0x10101000, 0x00000010, 0x00000010, 0x00000010, 0x00000010,
+ 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000010,
+ 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000010,
+ 0x10000010, 0x10000010, 0x10000010, 0x10000010, 0x10000010, 0x10000010,
+ 0x10000010, 0x10000010, 0x10000010, 0x10000010, 0x10000010, 0x10000010,
+ 0x10000010, 0x10000010, 0x10000010, 0x10000010, 0x00100010, 0x00100010,
+ 0x00100010, 0x00100010, 0x00100010, 0x00100010, 0x00100010, 0x00100010,
+ 0x00100010, 0x00100010, 0x00100010, 0x00100010, 0x00100010, 0x00100010,
+ 0x00100010, 0x00100010, 0x10100010, 0x10100010, 0x10100010, 0x10100010,
+ 0x10100010, 0x10100010, 0x10100010, 0x10100010, 0x10100010, 0x10100010,
+ 0x10100010, 0x10100010, 0x10100010, 0x10100010, 0x10100010, 0x10100010,
+ 0x00001010, 0x00001010, 0x00001010, 0x00001010, 0x00001010, 0x00001010,
+ 0x00001010, 0x00001010, 0x00001010, 0x00001010, 0x00001010, 0x00001010,
+ 0x00001010, 0x00001010, 0x00001010, 0x00001010, 0x10001010, 0x10001010,
+ 0x10001010, 0x10001010, 0x10001010, 0x10001010, 0x10001010, 0x10001010,
+ 0x10001010, 0x10001010, 0x10001010, 0x10001010, 0x10001010, 0x10001010,
+ 0x10001010, 0x10001010, 0x00101010, 0x00101010, 0x00101010, 0x00101010,
+ 0x00101010, 0x00101010, 0x00101010, 0x00101010, 0x00101010, 0x00101010,
+ 0x00101010, 0x00101010, 0x00101010, 0x00101010, 0x00101010, 0x00101010,
+ 0x10101010, 0x10101010, 0x10101010, 0x10101010, 0x10101010, 0x10101010,
+ 0x10101010, 0x10101010, 0x10101010, 0x10101010, 0x10101010, 0x10101010,
+ 0x10101010, 0x10101010, 0x10101010, 0x10101010,
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x04000000, 0x04000000,
+ 0x04000000, 0x04000000, 0x04000000, 0x04000000, 0x04000000, 0x04000000,
+ 0x04000000, 0x04000000, 0x04000000, 0x04000000, 0x04000000, 0x04000000,
+ 0x04000000, 0x04000000, 0x00040000, 0x00040000, 0x00040000, 0x00040000,
+ 0x00040000, 0x00040000, 0x00040000, 0x00040000, 0x00040000, 0x00040000,
+ 0x00040000, 0x00040000, 0x00040000, 0x00040000, 0x00040000, 0x00040000,
+ 0x04040000, 0x04040000, 0x04040000, 0x04040000, 0x04040000, 0x04040000,
+ 0x04040000, 0x04040000, 0x04040000, 0x04040000, 0x04040000, 0x04040000,
+ 0x04040000, 0x04040000, 0x04040000, 0x04040000, 0x00000400, 0x00000400,
+ 0x00000400, 0x00000400, 0x00000400, 0x00000400, 0x00000400, 0x00000400,
+ 0x00000400, 0x00000400, 0x00000400, 0x00000400, 0x00000400, 0x00000400,
+ 0x00000400, 0x00000400, 0x04000400, 0x04000400, 0x04000400, 0x04000400,
+ 0x04000400, 0x04000400, 0x04000400, 0x04000400, 0x04000400, 0x04000400,
+ 0x04000400, 0x04000400, 0x04000400, 0x04000400, 0x04000400, 0x04000400,
+ 0x00040400, 0x00040400, 0x00040400, 0x00040400, 0x00040400, 0x00040400,
+ 0x00040400, 0x00040400, 0x00040400, 0x00040400, 0x00040400, 0x00040400,
+ 0x00040400, 0x00040400, 0x00040400, 0x00040400, 0x04040400, 0x04040400,
+ 0x04040400, 0x04040400, 0x04040400, 0x04040400, 0x04040400, 0x04040400,
+ 0x04040400, 0x04040400, 0x04040400, 0x04040400, 0x04040400, 0x04040400,
+ 0x04040400, 0x04040400, 0x00000004, 0x00000004, 0x00000004, 0x00000004,
+ 0x00000004, 0x00000004, 0x00000004, 0x00000004, 0x00000004, 0x00000004,
+ 0x00000004, 0x00000004, 0x00000004, 0x00000004, 0x00000004, 0x00000004,
+ 0x04000004, 0x04000004, 0x04000004, 0x04000004, 0x04000004, 0x04000004,
+ 0x04000004, 0x04000004, 0x04000004, 0x04000004, 0x04000004, 0x04000004,
+ 0x04000004, 0x04000004, 0x04000004, 0x04000004, 0x00040004, 0x00040004,
+ 0x00040004, 0x00040004, 0x00040004, 0x00040004, 0x00040004, 0x00040004,
+ 0x00040004, 0x00040004, 0x00040004, 0x00040004, 0x00040004, 0x00040004,
+ 0x00040004, 0x00040004, 0x04040004, 0x04040004, 0x04040004, 0x04040004,
+ 0x04040004, 0x04040004, 0x04040004, 0x04040004, 0x04040004, 0x04040004,
+ 0x04040004, 0x04040004, 0x04040004, 0x04040004, 0x04040004, 0x04040004,
+ 0x00000404, 0x00000404, 0x00000404, 0x00000404, 0x00000404, 0x00000404,
+ 0x00000404, 0x00000404, 0x00000404, 0x00000404, 0x00000404, 0x00000404,
+ 0x00000404, 0x00000404, 0x00000404, 0x00000404, 0x04000404, 0x04000404,
+ 0x04000404, 0x04000404, 0x04000404, 0x04000404, 0x04000404, 0x04000404,
+ 0x04000404, 0x04000404, 0x04000404, 0x04000404, 0x04000404, 0x04000404,
+ 0x04000404, 0x04000404, 0x00040404, 0x00040404, 0x00040404, 0x00040404,
+ 0x00040404, 0x00040404, 0x00040404, 0x00040404, 0x00040404, 0x00040404,
+ 0x00040404, 0x00040404, 0x00040404, 0x00040404, 0x00040404, 0x00040404,
+ 0x04040404, 0x04040404, 0x04040404, 0x04040404, 0x04040404, 0x04040404,
+ 0x04040404, 0x04040404, 0x04040404, 0x04040404, 0x04040404, 0x04040404,
+ 0x04040404, 0x04040404, 0x04040404, 0x04040404,
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x01000000, 0x01000000,
+ 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000,
+ 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000,
+ 0x01000000, 0x01000000, 0x00010000, 0x00010000, 0x00010000, 0x00010000,
+ 0x00010000, 0x00010000, 0x00010000, 0x00010000, 0x00010000, 0x00010000,
+ 0x00010000, 0x00010000, 0x00010000, 0x00010000, 0x00010000, 0x00010000,
+ 0x01010000, 0x01010000, 0x01010000, 0x01010000, 0x01010000, 0x01010000,
+ 0x01010000, 0x01010000, 0x01010000, 0x01010000, 0x01010000, 0x01010000,
+ 0x01010000, 0x01010000, 0x01010000, 0x01010000, 0x00000100, 0x00000100,
+ 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100,
+ 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100,
+ 0x00000100, 0x00000100, 0x01000100, 0x01000100, 0x01000100, 0x01000100,
+ 0x01000100, 0x01000100, 0x01000100, 0x01000100, 0x01000100, 0x01000100,
+ 0x01000100, 0x01000100, 0x01000100, 0x01000100, 0x01000100, 0x01000100,
+ 0x00010100, 0x00010100, 0x00010100, 0x00010100, 0x00010100, 0x00010100,
+ 0x00010100, 0x00010100, 0x00010100, 0x00010100, 0x00010100, 0x00010100,
+ 0x00010100, 0x00010100, 0x00010100, 0x00010100, 0x01010100, 0x01010100,
+ 0x01010100, 0x01010100, 0x01010100, 0x01010100, 0x01010100, 0x01010100,
+ 0x01010100, 0x01010100, 0x01010100, 0x01010100, 0x01010100, 0x01010100,
+ 0x01010100, 0x01010100, 0x00000001, 0x00000001, 0x00000001, 0x00000001,
+ 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001,
+ 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000001,
+ 0x01000001, 0x01000001, 0x01000001, 0x01000001, 0x01000001, 0x01000001,
+ 0x01000001, 0x01000001, 0x01000001, 0x01000001, 0x01000001, 0x01000001,
+ 0x01000001, 0x01000001, 0x01000001, 0x01000001, 0x00010001, 0x00010001,
+ 0x00010001, 0x00010001, 0x00010001, 0x00010001, 0x00010001, 0x00010001,
+ 0x00010001, 0x00010001, 0x00010001, 0x00010001, 0x00010001, 0x00010001,
+ 0x00010001, 0x00010001, 0x01010001, 0x01010001, 0x01010001, 0x01010001,
+ 0x01010001, 0x01010001, 0x01010001, 0x01010001, 0x01010001, 0x01010001,
+ 0x01010001, 0x01010001, 0x01010001, 0x01010001, 0x01010001, 0x01010001,
+ 0x00000101, 0x00000101, 0x00000101, 0x00000101, 0x00000101, 0x00000101,
+ 0x00000101, 0x00000101, 0x00000101, 0x00000101, 0x00000101, 0x00000101,
+ 0x00000101, 0x00000101, 0x00000101, 0x00000101, 0x01000101, 0x01000101,
+ 0x01000101, 0x01000101, 0x01000101, 0x01000101, 0x01000101, 0x01000101,
+ 0x01000101, 0x01000101, 0x01000101, 0x01000101, 0x01000101, 0x01000101,
+ 0x01000101, 0x01000101, 0x00010101, 0x00010101, 0x00010101, 0x00010101,
+ 0x00010101, 0x00010101, 0x00010101, 0x00010101, 0x00010101, 0x00010101,
+ 0x00010101, 0x00010101, 0x00010101, 0x00010101, 0x00010101, 0x00010101,
+ 0x01010101, 0x01010101, 0x01010101, 0x01010101, 0x01010101, 0x01010101,
+ 0x01010101, 0x01010101, 0x01010101, 0x01010101, 0x01010101, 0x01010101,
+ 0x01010101, 0x01010101, 0x01010101, 0x01010101,
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x80000000, 0x80000000,
+ 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000,
+ 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000, 0x80000000,
+ 0x80000000, 0x80000000, 0x00800000, 0x00800000, 0x00800000, 0x00800000,
+ 0x00800000, 0x00800000, 0x00800000, 0x00800000, 0x00800000, 0x00800000,
+ 0x00800000, 0x00800000, 0x00800000, 0x00800000, 0x00800000, 0x00800000,
+ 0x80800000, 0x80800000, 0x80800000, 0x80800000, 0x80800000, 0x80800000,
+ 0x80800000, 0x80800000, 0x80800000, 0x80800000, 0x80800000, 0x80800000,
+ 0x80800000, 0x80800000, 0x80800000, 0x80800000, 0x00008000, 0x00008000,
+ 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000,
+ 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000,
+ 0x00008000, 0x00008000, 0x80008000, 0x80008000, 0x80008000, 0x80008000,
+ 0x80008000, 0x80008000, 0x80008000, 0x80008000, 0x80008000, 0x80008000,
+ 0x80008000, 0x80008000, 0x80008000, 0x80008000, 0x80008000, 0x80008000,
+ 0x00808000, 0x00808000, 0x00808000, 0x00808000, 0x00808000, 0x00808000,
+ 0x00808000, 0x00808000, 0x00808000, 0x00808000, 0x00808000, 0x00808000,
+ 0x00808000, 0x00808000, 0x00808000, 0x00808000, 0x80808000, 0x80808000,
+ 0x80808000, 0x80808000, 0x80808000, 0x80808000, 0x80808000, 0x80808000,
+ 0x80808000, 0x80808000, 0x80808000, 0x80808000, 0x80808000, 0x80808000,
+ 0x80808000, 0x80808000, 0x00000080, 0x00000080, 0x00000080, 0x00000080,
+ 0x00000080, 0x00000080, 0x00000080, 0x00000080, 0x00000080, 0x00000080,
+ 0x00000080, 0x00000080, 0x00000080, 0x00000080, 0x00000080, 0x00000080,
+ 0x80000080, 0x80000080, 0x80000080, 0x80000080, 0x80000080, 0x80000080,
+ 0x80000080, 0x80000080, 0x80000080, 0x80000080, 0x80000080, 0x80000080,
+ 0x80000080, 0x80000080, 0x80000080, 0x80000080, 0x00800080, 0x00800080,
+ 0x00800080, 0x00800080, 0x00800080, 0x00800080, 0x00800080, 0x00800080,
+ 0x00800080, 0x00800080, 0x00800080, 0x00800080, 0x00800080, 0x00800080,
+ 0x00800080, 0x00800080, 0x80800080, 0x80800080, 0x80800080, 0x80800080,
+ 0x80800080, 0x80800080, 0x80800080, 0x80800080, 0x80800080, 0x80800080,
+ 0x80800080, 0x80800080, 0x80800080, 0x80800080, 0x80800080, 0x80800080,
+ 0x00008080, 0x00008080, 0x00008080, 0x00008080, 0x00008080, 0x00008080,
+ 0x00008080, 0x00008080, 0x00008080, 0x00008080, 0x00008080, 0x00008080,
+ 0x00008080, 0x00008080, 0x00008080, 0x00008080, 0x80008080, 0x80008080,
+ 0x80008080, 0x80008080, 0x80008080, 0x80008080, 0x80008080, 0x80008080,
+ 0x80008080, 0x80008080, 0x80008080, 0x80008080, 0x80008080, 0x80008080,
+ 0x80008080, 0x80008080, 0x00808080, 0x00808080, 0x00808080, 0x00808080,
+ 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080,
+ 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080,
+ 0x80808080, 0x80808080, 0x80808080, 0x80808080, 0x80808080, 0x80808080,
+ 0x80808080, 0x80808080, 0x80808080, 0x80808080, 0x80808080, 0x80808080,
+ 0x80808080, 0x80808080, 0x80808080, 0x80808080,
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x20000000, 0x20000000,
+ 0x20000000, 0x20000000, 0x20000000, 0x20000000, 0x20000000, 0x20000000,
+ 0x20000000, 0x20000000, 0x20000000, 0x20000000, 0x20000000, 0x20000000,
+ 0x20000000, 0x20000000, 0x00200000, 0x00200000, 0x00200000, 0x00200000,
+ 0x00200000, 0x00200000, 0x00200000, 0x00200000, 0x00200000, 0x00200000,
+ 0x00200000, 0x00200000, 0x00200000, 0x00200000, 0x00200000, 0x00200000,
+ 0x20200000, 0x20200000, 0x20200000, 0x20200000, 0x20200000, 0x20200000,
+ 0x20200000, 0x20200000, 0x20200000, 0x20200000, 0x20200000, 0x20200000,
+ 0x20200000, 0x20200000, 0x20200000, 0x20200000, 0x00002000, 0x00002000,
+ 0x00002000, 0x00002000, 0x00002000, 0x00002000, 0x00002000, 0x00002000,
+ 0x00002000, 0x00002000, 0x00002000, 0x00002000, 0x00002000, 0x00002000,
+ 0x00002000, 0x00002000, 0x20002000, 0x20002000, 0x20002000, 0x20002000,
+ 0x20002000, 0x20002000, 0x20002000, 0x20002000, 0x20002000, 0x20002000,
+ 0x20002000, 0x20002000, 0x20002000, 0x20002000, 0x20002000, 0x20002000,
+ 0x00202000, 0x00202000, 0x00202000, 0x00202000, 0x00202000, 0x00202000,
+ 0x00202000, 0x00202000, 0x00202000, 0x00202000, 0x00202000, 0x00202000,
+ 0x00202000, 0x00202000, 0x00202000, 0x00202000, 0x20202000, 0x20202000,
+ 0x20202000, 0x20202000, 0x20202000, 0x20202000, 0x20202000, 0x20202000,
+ 0x20202000, 0x20202000, 0x20202000, 0x20202000, 0x20202000, 0x20202000,
+ 0x20202000, 0x20202000, 0x00000020, 0x00000020, 0x00000020, 0x00000020,
+ 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020,
+ 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020,
+ 0x20000020, 0x20000020, 0x20000020, 0x20000020, 0x20000020, 0x20000020,
+ 0x20000020, 0x20000020, 0x20000020, 0x20000020, 0x20000020, 0x20000020,
+ 0x20000020, 0x20000020, 0x20000020, 0x20000020, 0x00200020, 0x00200020,
+ 0x00200020, 0x00200020, 0x00200020, 0x00200020, 0x00200020, 0x00200020,
+ 0x00200020, 0x00200020, 0x00200020, 0x00200020, 0x00200020, 0x00200020,
+ 0x00200020, 0x00200020, 0x20200020, 0x20200020, 0x20200020, 0x20200020,
+ 0x20200020, 0x20200020, 0x20200020, 0x20200020, 0x20200020, 0x20200020,
+ 0x20200020, 0x20200020, 0x20200020, 0x20200020, 0x20200020, 0x20200020,
+ 0x00002020, 0x00002020, 0x00002020, 0x00002020, 0x00002020, 0x00002020,
+ 0x00002020, 0x00002020, 0x00002020, 0x00002020, 0x00002020, 0x00002020,
+ 0x00002020, 0x00002020, 0x00002020, 0x00002020, 0x20002020, 0x20002020,
+ 0x20002020, 0x20002020, 0x20002020, 0x20002020, 0x20002020, 0x20002020,
+ 0x20002020, 0x20002020, 0x20002020, 0x20002020, 0x20002020, 0x20002020,
+ 0x20002020, 0x20002020, 0x00202020, 0x00202020, 0x00202020, 0x00202020,
+ 0x00202020, 0x00202020, 0x00202020, 0x00202020, 0x00202020, 0x00202020,
+ 0x00202020, 0x00202020, 0x00202020, 0x00202020, 0x00202020, 0x00202020,
+ 0x20202020, 0x20202020, 0x20202020, 0x20202020, 0x20202020, 0x20202020,
+ 0x20202020, 0x20202020, 0x20202020, 0x20202020, 0x20202020, 0x20202020,
+ 0x20202020, 0x20202020, 0x20202020, 0x20202020,
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x08000000, 0x08000000,
+ 0x08000000, 0x08000000, 0x08000000, 0x08000000, 0x08000000, 0x08000000,
+ 0x08000000, 0x08000000, 0x08000000, 0x08000000, 0x08000000, 0x08000000,
+ 0x08000000, 0x08000000, 0x00080000, 0x00080000, 0x00080000, 0x00080000,
+ 0x00080000, 0x00080000, 0x00080000, 0x00080000, 0x00080000, 0x00080000,
+ 0x00080000, 0x00080000, 0x00080000, 0x00080000, 0x00080000, 0x00080000,
+ 0x08080000, 0x08080000, 0x08080000, 0x08080000, 0x08080000, 0x08080000,
+ 0x08080000, 0x08080000, 0x08080000, 0x08080000, 0x08080000, 0x08080000,
+ 0x08080000, 0x08080000, 0x08080000, 0x08080000, 0x00000800, 0x00000800,
+ 0x00000800, 0x00000800, 0x00000800, 0x00000800, 0x00000800, 0x00000800,
+ 0x00000800, 0x00000800, 0x00000800, 0x00000800, 0x00000800, 0x00000800,
+ 0x00000800, 0x00000800, 0x08000800, 0x08000800, 0x08000800, 0x08000800,
+ 0x08000800, 0x08000800, 0x08000800, 0x08000800, 0x08000800, 0x08000800,
+ 0x08000800, 0x08000800, 0x08000800, 0x08000800, 0x08000800, 0x08000800,
+ 0x00080800, 0x00080800, 0x00080800, 0x00080800, 0x00080800, 0x00080800,
+ 0x00080800, 0x00080800, 0x00080800, 0x00080800, 0x00080800, 0x00080800,
+ 0x00080800, 0x00080800, 0x00080800, 0x00080800, 0x08080800, 0x08080800,
+ 0x08080800, 0x08080800, 0x08080800, 0x08080800, 0x08080800, 0x08080800,
+ 0x08080800, 0x08080800, 0x08080800, 0x08080800, 0x08080800, 0x08080800,
+ 0x08080800, 0x08080800, 0x00000008, 0x00000008, 0x00000008, 0x00000008,
+ 0x00000008, 0x00000008, 0x00000008, 0x00000008, 0x00000008, 0x00000008,
+ 0x00000008, 0x00000008, 0x00000008, 0x00000008, 0x00000008, 0x00000008,
+ 0x08000008, 0x08000008, 0x08000008, 0x08000008, 0x08000008, 0x08000008,
+ 0x08000008, 0x08000008, 0x08000008, 0x08000008, 0x08000008, 0x08000008,
+ 0x08000008, 0x08000008, 0x08000008, 0x08000008, 0x00080008, 0x00080008,
+ 0x00080008, 0x00080008, 0x00080008, 0x00080008, 0x00080008, 0x00080008,
+ 0x00080008, 0x00080008, 0x00080008, 0x00080008, 0x00080008, 0x00080008,
+ 0x00080008, 0x00080008, 0x08080008, 0x08080008, 0x08080008, 0x08080008,
+ 0x08080008, 0x08080008, 0x08080008, 0x08080008, 0x08080008, 0x08080008,
+ 0x08080008, 0x08080008, 0x08080008, 0x08080008, 0x08080008, 0x08080008,
+ 0x00000808, 0x00000808, 0x00000808, 0x00000808, 0x00000808, 0x00000808,
+ 0x00000808, 0x00000808, 0x00000808, 0x00000808, 0x00000808, 0x00000808,
+ 0x00000808, 0x00000808, 0x00000808, 0x00000808, 0x08000808, 0x08000808,
+ 0x08000808, 0x08000808, 0x08000808, 0x08000808, 0x08000808, 0x08000808,
+ 0x08000808, 0x08000808, 0x08000808, 0x08000808, 0x08000808, 0x08000808,
+ 0x08000808, 0x08000808, 0x00080808, 0x00080808, 0x00080808, 0x00080808,
+ 0x00080808, 0x00080808, 0x00080808, 0x00080808, 0x00080808, 0x00080808,
+ 0x00080808, 0x00080808, 0x00080808, 0x00080808, 0x00080808, 0x00080808,
+ 0x08080808, 0x08080808, 0x08080808, 0x08080808, 0x08080808, 0x08080808,
+ 0x08080808, 0x08080808, 0x08080808, 0x08080808, 0x08080808, 0x08080808,
+ 0x08080808, 0x08080808, 0x08080808, 0x08080808,
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x02000000, 0x02000000,
+ 0x02000000, 0x02000000, 0x02000000, 0x02000000, 0x02000000, 0x02000000,
+ 0x02000000, 0x02000000, 0x02000000, 0x02000000, 0x02000000, 0x02000000,
+ 0x02000000, 0x02000000, 0x00020000, 0x00020000, 0x00020000, 0x00020000,
+ 0x00020000, 0x00020000, 0x00020000, 0x00020000, 0x00020000, 0x00020000,
+ 0x00020000, 0x00020000, 0x00020000, 0x00020000, 0x00020000, 0x00020000,
+ 0x02020000, 0x02020000, 0x02020000, 0x02020000, 0x02020000, 0x02020000,
+ 0x02020000, 0x02020000, 0x02020000, 0x02020000, 0x02020000, 0x02020000,
+ 0x02020000, 0x02020000, 0x02020000, 0x02020000, 0x00000200, 0x00000200,
+ 0x00000200, 0x00000200, 0x00000200, 0x00000200, 0x00000200, 0x00000200,
+ 0x00000200, 0x00000200, 0x00000200, 0x00000200, 0x00000200, 0x00000200,
+ 0x00000200, 0x00000200, 0x02000200, 0x02000200, 0x02000200, 0x02000200,
+ 0x02000200, 0x02000200, 0x02000200, 0x02000200, 0x02000200, 0x02000200,
+ 0x02000200, 0x02000200, 0x02000200, 0x02000200, 0x02000200, 0x02000200,
+ 0x00020200, 0x00020200, 0x00020200, 0x00020200, 0x00020200, 0x00020200,
+ 0x00020200, 0x00020200, 0x00020200, 0x00020200, 0x00020200, 0x00020200,
+ 0x00020200, 0x00020200, 0x00020200, 0x00020200, 0x02020200, 0x02020200,
+ 0x02020200, 0x02020200, 0x02020200, 0x02020200, 0x02020200, 0x02020200,
+ 0x02020200, 0x02020200, 0x02020200, 0x02020200, 0x02020200, 0x02020200,
+ 0x02020200, 0x02020200, 0x00000002, 0x00000002, 0x00000002, 0x00000002,
+ 0x00000002, 0x00000002, 0x00000002, 0x00000002, 0x00000002, 0x00000002,
+ 0x00000002, 0x00000002, 0x00000002, 0x00000002, 0x00000002, 0x00000002,
+ 0x02000002, 0x02000002, 0x02000002, 0x02000002, 0x02000002, 0x02000002,
+ 0x02000002, 0x02000002, 0x02000002, 0x02000002, 0x02000002, 0x02000002,
+ 0x02000002, 0x02000002, 0x02000002, 0x02000002, 0x00020002, 0x00020002,
+ 0x00020002, 0x00020002, 0x00020002, 0x00020002, 0x00020002, 0x00020002,
+ 0x00020002, 0x00020002, 0x00020002, 0x00020002, 0x00020002, 0x00020002,
+ 0x00020002, 0x00020002, 0x02020002, 0x02020002, 0x02020002, 0x02020002,
+ 0x02020002, 0x02020002, 0x02020002, 0x02020002, 0x02020002, 0x02020002,
+ 0x02020002, 0x02020002, 0x02020002, 0x02020002, 0x02020002, 0x02020002,
+ 0x00000202, 0x00000202, 0x00000202, 0x00000202, 0x00000202, 0x00000202,
+ 0x00000202, 0x00000202, 0x00000202, 0x00000202, 0x00000202, 0x00000202,
+ 0x00000202, 0x00000202, 0x00000202, 0x00000202, 0x02000202, 0x02000202,
+ 0x02000202, 0x02000202, 0x02000202, 0x02000202, 0x02000202, 0x02000202,
+ 0x02000202, 0x02000202, 0x02000202, 0x02000202, 0x02000202, 0x02000202,
+ 0x02000202, 0x02000202, 0x00020202, 0x00020202, 0x00020202, 0x00020202,
+ 0x00020202, 0x00020202, 0x00020202, 0x00020202, 0x00020202, 0x00020202,
+ 0x00020202, 0x00020202, 0x00020202, 0x00020202, 0x00020202, 0x00020202,
+ 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202,
+ 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202,
+ 0x02020202, 0x02020202, 0x02020202, 0x02020202,
+ },
+};
+
+const uint32_t key_perm_maskl[8][128] =
+{
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000010, 0x00000010,
+ 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000010,
+ 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000010, 0x00000010,
+ 0x00000010, 0x00000010, 0x00001000, 0x00001000, 0x00001000, 0x00001000,
+ 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000,
+ 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000, 0x00001000,
+ 0x00001010, 0x00001010, 0x00001010, 0x00001010, 0x00001010, 0x00001010,
+ 0x00001010, 0x00001010, 0x00001010, 0x00001010, 0x00001010, 0x00001010,
+ 0x00001010, 0x00001010, 0x00001010, 0x00001010, 0x00100000, 0x00100000,
+ 0x00100000, 0x00100000, 0x00100000, 0x00100000, 0x00100000, 0x00100000,
+ 0x00100000, 0x00100000, 0x00100000, 0x00100000, 0x00100000, 0x00100000,
+ 0x00100000, 0x00100000, 0x00100010, 0x00100010, 0x00100010, 0x00100010,
+ 0x00100010, 0x00100010, 0x00100010, 0x00100010, 0x00100010, 0x00100010,
+ 0x00100010, 0x00100010, 0x00100010, 0x00100010, 0x00100010, 0x00100010,
+ 0x00101000, 0x00101000, 0x00101000, 0x00101000, 0x00101000, 0x00101000,
+ 0x00101000, 0x00101000, 0x00101000, 0x00101000, 0x00101000, 0x00101000,
+ 0x00101000, 0x00101000, 0x00101000, 0x00101000, 0x00101010, 0x00101010,
+ 0x00101010, 0x00101010, 0x00101010, 0x00101010, 0x00101010, 0x00101010,
+ 0x00101010, 0x00101010, 0x00101010, 0x00101010, 0x00101010, 0x00101010,
+ 0x00101010, 0x00101010,
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000020, 0x00000020,
+ 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020,
+ 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020, 0x00000020,
+ 0x00000020, 0x00000020, 0x00002000, 0x00002000, 0x00002000, 0x00002000,
+ 0x00002000, 0x00002000, 0x00002000, 0x00002000, 0x00002000, 0x00002000,
+ 0x00002000, 0x00002000, 0x00002000, 0x00002000, 0x00002000, 0x00002000,
+ 0x00002020, 0x00002020, 0x00002020, 0x00002020, 0x00002020, 0x00002020,
+ 0x00002020, 0x00002020, 0x00002020, 0x00002020, 0x00002020, 0x00002020,
+ 0x00002020, 0x00002020, 0x00002020, 0x00002020, 0x00200000, 0x00200000,
+ 0x00200000, 0x00200000, 0x00200000, 0x00200000, 0x00200000, 0x00200000,
+ 0x00200000, 0x00200000, 0x00200000, 0x00200000, 0x00200000, 0x00200000,
+ 0x00200000, 0x00200000, 0x00200020, 0x00200020, 0x00200020, 0x00200020,
+ 0x00200020, 0x00200020, 0x00200020, 0x00200020, 0x00200020, 0x00200020,
+ 0x00200020, 0x00200020, 0x00200020, 0x00200020, 0x00200020, 0x00200020,
+ 0x00202000, 0x00202000, 0x00202000, 0x00202000, 0x00202000, 0x00202000,
+ 0x00202000, 0x00202000, 0x00202000, 0x00202000, 0x00202000, 0x00202000,
+ 0x00202000, 0x00202000, 0x00202000, 0x00202000, 0x00202020, 0x00202020,
+ 0x00202020, 0x00202020, 0x00202020, 0x00202020, 0x00202020, 0x00202020,
+ 0x00202020, 0x00202020, 0x00202020, 0x00202020, 0x00202020, 0x00202020,
+ 0x00202020, 0x00202020,
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000040, 0x00000040,
+ 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040,
+ 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040, 0x00000040,
+ 0x00000040, 0x00000040, 0x00004000, 0x00004000, 0x00004000, 0x00004000,
+ 0x00004000, 0x00004000, 0x00004000, 0x00004000, 0x00004000, 0x00004000,
+ 0x00004000, 0x00004000, 0x00004000, 0x00004000, 0x00004000, 0x00004000,
+ 0x00004040, 0x00004040, 0x00004040, 0x00004040, 0x00004040, 0x00004040,
+ 0x00004040, 0x00004040, 0x00004040, 0x00004040, 0x00004040, 0x00004040,
+ 0x00004040, 0x00004040, 0x00004040, 0x00004040, 0x00400000, 0x00400000,
+ 0x00400000, 0x00400000, 0x00400000, 0x00400000, 0x00400000, 0x00400000,
+ 0x00400000, 0x00400000, 0x00400000, 0x00400000, 0x00400000, 0x00400000,
+ 0x00400000, 0x00400000, 0x00400040, 0x00400040, 0x00400040, 0x00400040,
+ 0x00400040, 0x00400040, 0x00400040, 0x00400040, 0x00400040, 0x00400040,
+ 0x00400040, 0x00400040, 0x00400040, 0x00400040, 0x00400040, 0x00400040,
+ 0x00404000, 0x00404000, 0x00404000, 0x00404000, 0x00404000, 0x00404000,
+ 0x00404000, 0x00404000, 0x00404000, 0x00404000, 0x00404000, 0x00404000,
+ 0x00404000, 0x00404000, 0x00404000, 0x00404000, 0x00404040, 0x00404040,
+ 0x00404040, 0x00404040, 0x00404040, 0x00404040, 0x00404040, 0x00404040,
+ 0x00404040, 0x00404040, 0x00404040, 0x00404040, 0x00404040, 0x00404040,
+ 0x00404040, 0x00404040,
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000080, 0x00000080,
+ 0x00000080, 0x00000080, 0x00000080, 0x00000080, 0x00000080, 0x00000080,
+ 0x00000080, 0x00000080, 0x00000080, 0x00000080, 0x00000080, 0x00000080,
+ 0x00000080, 0x00000080, 0x00008000, 0x00008000, 0x00008000, 0x00008000,
+ 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000,
+ 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000, 0x00008000,
+ 0x00008080, 0x00008080, 0x00008080, 0x00008080, 0x00008080, 0x00008080,
+ 0x00008080, 0x00008080, 0x00008080, 0x00008080, 0x00008080, 0x00008080,
+ 0x00008080, 0x00008080, 0x00008080, 0x00008080, 0x00800000, 0x00800000,
+ 0x00800000, 0x00800000, 0x00800000, 0x00800000, 0x00800000, 0x00800000,
+ 0x00800000, 0x00800000, 0x00800000, 0x00800000, 0x00800000, 0x00800000,
+ 0x00800000, 0x00800000, 0x00800080, 0x00800080, 0x00800080, 0x00800080,
+ 0x00800080, 0x00800080, 0x00800080, 0x00800080, 0x00800080, 0x00800080,
+ 0x00800080, 0x00800080, 0x00800080, 0x00800080, 0x00800080, 0x00800080,
+ 0x00808000, 0x00808000, 0x00808000, 0x00808000, 0x00808000, 0x00808000,
+ 0x00808000, 0x00808000, 0x00808000, 0x00808000, 0x00808000, 0x00808000,
+ 0x00808000, 0x00808000, 0x00808000, 0x00808000, 0x00808080, 0x00808080,
+ 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080,
+ 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080, 0x00808080,
+ 0x00808080, 0x00808080,
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000001, 0x00000001, 0x00000001, 0x00000001,
+ 0x00000001, 0x00000001, 0x00000001, 0x00000001, 0x00000100, 0x00000100,
+ 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100, 0x00000100,
+ 0x00000101, 0x00000101, 0x00000101, 0x00000101, 0x00000101, 0x00000101,
+ 0x00000101, 0x00000101, 0x00010000, 0x00010000, 0x00010000, 0x00010000,
+ 0x00010000, 0x00010000, 0x00010000, 0x00010000, 0x00010001, 0x00010001,
+ 0x00010001, 0x00010001, 0x00010001, 0x00010001, 0x00010001, 0x00010001,
+ 0x00010100, 0x00010100, 0x00010100, 0x00010100, 0x00010100, 0x00010100,
+ 0x00010100, 0x00010100, 0x00010101, 0x00010101, 0x00010101, 0x00010101,
+ 0x00010101, 0x00010101, 0x00010101, 0x00010101, 0x01000000, 0x01000000,
+ 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000, 0x01000000,
+ 0x01000001, 0x01000001, 0x01000001, 0x01000001, 0x01000001, 0x01000001,
+ 0x01000001, 0x01000001, 0x01000100, 0x01000100, 0x01000100, 0x01000100,
+ 0x01000100, 0x01000100, 0x01000100, 0x01000100, 0x01000101, 0x01000101,
+ 0x01000101, 0x01000101, 0x01000101, 0x01000101, 0x01000101, 0x01000101,
+ 0x01010000, 0x01010000, 0x01010000, 0x01010000, 0x01010000, 0x01010000,
+ 0x01010000, 0x01010000, 0x01010001, 0x01010001, 0x01010001, 0x01010001,
+ 0x01010001, 0x01010001, 0x01010001, 0x01010001, 0x01010100, 0x01010100,
+ 0x01010100, 0x01010100, 0x01010100, 0x01010100, 0x01010100, 0x01010100,
+ 0x01010101, 0x01010101, 0x01010101, 0x01010101, 0x01010101, 0x01010101,
+ 0x01010101, 0x01010101,
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000002, 0x00000002, 0x00000002, 0x00000002,
+ 0x00000002, 0x00000002, 0x00000002, 0x00000002, 0x00000200, 0x00000200,
+ 0x00000200, 0x00000200, 0x00000200, 0x00000200, 0x00000200, 0x00000200,
+ 0x00000202, 0x00000202, 0x00000202, 0x00000202, 0x00000202, 0x00000202,
+ 0x00000202, 0x00000202, 0x00020000, 0x00020000, 0x00020000, 0x00020000,
+ 0x00020000, 0x00020000, 0x00020000, 0x00020000, 0x00020002, 0x00020002,
+ 0x00020002, 0x00020002, 0x00020002, 0x00020002, 0x00020002, 0x00020002,
+ 0x00020200, 0x00020200, 0x00020200, 0x00020200, 0x00020200, 0x00020200,
+ 0x00020200, 0x00020200, 0x00020202, 0x00020202, 0x00020202, 0x00020202,
+ 0x00020202, 0x00020202, 0x00020202, 0x00020202, 0x02000000, 0x02000000,
+ 0x02000000, 0x02000000, 0x02000000, 0x02000000, 0x02000000, 0x02000000,
+ 0x02000002, 0x02000002, 0x02000002, 0x02000002, 0x02000002, 0x02000002,
+ 0x02000002, 0x02000002, 0x02000200, 0x02000200, 0x02000200, 0x02000200,
+ 0x02000200, 0x02000200, 0x02000200, 0x02000200, 0x02000202, 0x02000202,
+ 0x02000202, 0x02000202, 0x02000202, 0x02000202, 0x02000202, 0x02000202,
+ 0x02020000, 0x02020000, 0x02020000, 0x02020000, 0x02020000, 0x02020000,
+ 0x02020000, 0x02020000, 0x02020002, 0x02020002, 0x02020002, 0x02020002,
+ 0x02020002, 0x02020002, 0x02020002, 0x02020002, 0x02020200, 0x02020200,
+ 0x02020200, 0x02020200, 0x02020200, 0x02020200, 0x02020200, 0x02020200,
+ 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202, 0x02020202,
+ 0x02020202, 0x02020202,
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000004, 0x00000004, 0x00000004, 0x00000004,
+ 0x00000004, 0x00000004, 0x00000004, 0x00000004, 0x00000400, 0x00000400,
+ 0x00000400, 0x00000400, 0x00000400, 0x00000400, 0x00000400, 0x00000400,
+ 0x00000404, 0x00000404, 0x00000404, 0x00000404, 0x00000404, 0x00000404,
+ 0x00000404, 0x00000404, 0x00040000, 0x00040000, 0x00040000, 0x00040000,
+ 0x00040000, 0x00040000, 0x00040000, 0x00040000, 0x00040004, 0x00040004,
+ 0x00040004, 0x00040004, 0x00040004, 0x00040004, 0x00040004, 0x00040004,
+ 0x00040400, 0x00040400, 0x00040400, 0x00040400, 0x00040400, 0x00040400,
+ 0x00040400, 0x00040400, 0x00040404, 0x00040404, 0x00040404, 0x00040404,
+ 0x00040404, 0x00040404, 0x00040404, 0x00040404, 0x04000000, 0x04000000,
+ 0x04000000, 0x04000000, 0x04000000, 0x04000000, 0x04000000, 0x04000000,
+ 0x04000004, 0x04000004, 0x04000004, 0x04000004, 0x04000004, 0x04000004,
+ 0x04000004, 0x04000004, 0x04000400, 0x04000400, 0x04000400, 0x04000400,
+ 0x04000400, 0x04000400, 0x04000400, 0x04000400, 0x04000404, 0x04000404,
+ 0x04000404, 0x04000404, 0x04000404, 0x04000404, 0x04000404, 0x04000404,
+ 0x04040000, 0x04040000, 0x04040000, 0x04040000, 0x04040000, 0x04040000,
+ 0x04040000, 0x04040000, 0x04040004, 0x04040004, 0x04040004, 0x04040004,
+ 0x04040004, 0x04040004, 0x04040004, 0x04040004, 0x04040400, 0x04040400,
+ 0x04040400, 0x04040400, 0x04040400, 0x04040400, 0x04040400, 0x04040400,
+ 0x04040404, 0x04040404, 0x04040404, 0x04040404, 0x04040404, 0x04040404,
+ 0x04040404, 0x04040404,
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000008, 0x00000008, 0x00000008, 0x00000008,
+ 0x00000008, 0x00000008, 0x00000008, 0x00000008, 0x00000800, 0x00000800,
+ 0x00000800, 0x00000800, 0x00000800, 0x00000800, 0x00000800, 0x00000800,
+ 0x00000808, 0x00000808, 0x00000808, 0x00000808, 0x00000808, 0x00000808,
+ 0x00000808, 0x00000808, 0x00080000, 0x00080000, 0x00080000, 0x00080000,
+ 0x00080000, 0x00080000, 0x00080000, 0x00080000, 0x00080008, 0x00080008,
+ 0x00080008, 0x00080008, 0x00080008, 0x00080008, 0x00080008, 0x00080008,
+ 0x00080800, 0x00080800, 0x00080800, 0x00080800, 0x00080800, 0x00080800,
+ 0x00080800, 0x00080800, 0x00080808, 0x00080808, 0x00080808, 0x00080808,
+ 0x00080808, 0x00080808, 0x00080808, 0x00080808, 0x08000000, 0x08000000,
+ 0x08000000, 0x08000000, 0x08000000, 0x08000000, 0x08000000, 0x08000000,
+ 0x08000008, 0x08000008, 0x08000008, 0x08000008, 0x08000008, 0x08000008,
+ 0x08000008, 0x08000008, 0x08000800, 0x08000800, 0x08000800, 0x08000800,
+ 0x08000800, 0x08000800, 0x08000800, 0x08000800, 0x08000808, 0x08000808,
+ 0x08000808, 0x08000808, 0x08000808, 0x08000808, 0x08000808, 0x08000808,
+ 0x08080000, 0x08080000, 0x08080000, 0x08080000, 0x08080000, 0x08080000,
+ 0x08080000, 0x08080000, 0x08080008, 0x08080008, 0x08080008, 0x08080008,
+ 0x08080008, 0x08080008, 0x08080008, 0x08080008, 0x08080800, 0x08080800,
+ 0x08080800, 0x08080800, 0x08080800, 0x08080800, 0x08080800, 0x08080800,
+ 0x08080808, 0x08080808, 0x08080808, 0x08080808, 0x08080808, 0x08080808,
+ 0x08080808, 0x08080808,
+ },
+};
+
+const uint32_t key_perm_maskr[8][128] =
+{
+ {
+ 0x00000000, 0x00100000, 0x00001000, 0x00101000, 0x00000010, 0x00100010,
+ 0x00001010, 0x00101010, 0x00000001, 0x00100001, 0x00001001, 0x00101001,
+ 0x00000011, 0x00100011, 0x00001011, 0x00101011, 0x00000000, 0x00100000,
+ 0x00001000, 0x00101000, 0x00000010, 0x00100010, 0x00001010, 0x00101010,
+ 0x00000001, 0x00100001, 0x00001001, 0x00101001, 0x00000011, 0x00100011,
+ 0x00001011, 0x00101011, 0x00000000, 0x00100000, 0x00001000, 0x00101000,
+ 0x00000010, 0x00100010, 0x00001010, 0x00101010, 0x00000001, 0x00100001,
+ 0x00001001, 0x00101001, 0x00000011, 0x00100011, 0x00001011, 0x00101011,
+ 0x00000000, 0x00100000, 0x00001000, 0x00101000, 0x00000010, 0x00100010,
+ 0x00001010, 0x00101010, 0x00000001, 0x00100001, 0x00001001, 0x00101001,
+ 0x00000011, 0x00100011, 0x00001011, 0x00101011, 0x00000000, 0x00100000,
+ 0x00001000, 0x00101000, 0x00000010, 0x00100010, 0x00001010, 0x00101010,
+ 0x00000001, 0x00100001, 0x00001001, 0x00101001, 0x00000011, 0x00100011,
+ 0x00001011, 0x00101011, 0x00000000, 0x00100000, 0x00001000, 0x00101000,
+ 0x00000010, 0x00100010, 0x00001010, 0x00101010, 0x00000001, 0x00100001,
+ 0x00001001, 0x00101001, 0x00000011, 0x00100011, 0x00001011, 0x00101011,
+ 0x00000000, 0x00100000, 0x00001000, 0x00101000, 0x00000010, 0x00100010,
+ 0x00001010, 0x00101010, 0x00000001, 0x00100001, 0x00001001, 0x00101001,
+ 0x00000011, 0x00100011, 0x00001011, 0x00101011, 0x00000000, 0x00100000,
+ 0x00001000, 0x00101000, 0x00000010, 0x00100010, 0x00001010, 0x00101010,
+ 0x00000001, 0x00100001, 0x00001001, 0x00101001, 0x00000011, 0x00100011,
+ 0x00001011, 0x00101011,
+ },
+ {
+ 0x00000000, 0x00200000, 0x00002000, 0x00202000, 0x00000020, 0x00200020,
+ 0x00002020, 0x00202020, 0x00000002, 0x00200002, 0x00002002, 0x00202002,
+ 0x00000022, 0x00200022, 0x00002022, 0x00202022, 0x00000000, 0x00200000,
+ 0x00002000, 0x00202000, 0x00000020, 0x00200020, 0x00002020, 0x00202020,
+ 0x00000002, 0x00200002, 0x00002002, 0x00202002, 0x00000022, 0x00200022,
+ 0x00002022, 0x00202022, 0x00000000, 0x00200000, 0x00002000, 0x00202000,
+ 0x00000020, 0x00200020, 0x00002020, 0x00202020, 0x00000002, 0x00200002,
+ 0x00002002, 0x00202002, 0x00000022, 0x00200022, 0x00002022, 0x00202022,
+ 0x00000000, 0x00200000, 0x00002000, 0x00202000, 0x00000020, 0x00200020,
+ 0x00002020, 0x00202020, 0x00000002, 0x00200002, 0x00002002, 0x00202002,
+ 0x00000022, 0x00200022, 0x00002022, 0x00202022, 0x00000000, 0x00200000,
+ 0x00002000, 0x00202000, 0x00000020, 0x00200020, 0x00002020, 0x00202020,
+ 0x00000002, 0x00200002, 0x00002002, 0x00202002, 0x00000022, 0x00200022,
+ 0x00002022, 0x00202022, 0x00000000, 0x00200000, 0x00002000, 0x00202000,
+ 0x00000020, 0x00200020, 0x00002020, 0x00202020, 0x00000002, 0x00200002,
+ 0x00002002, 0x00202002, 0x00000022, 0x00200022, 0x00002022, 0x00202022,
+ 0x00000000, 0x00200000, 0x00002000, 0x00202000, 0x00000020, 0x00200020,
+ 0x00002020, 0x00202020, 0x00000002, 0x00200002, 0x00002002, 0x00202002,
+ 0x00000022, 0x00200022, 0x00002022, 0x00202022, 0x00000000, 0x00200000,
+ 0x00002000, 0x00202000, 0x00000020, 0x00200020, 0x00002020, 0x00202020,
+ 0x00000002, 0x00200002, 0x00002002, 0x00202002, 0x00000022, 0x00200022,
+ 0x00002022, 0x00202022,
+ },
+ {
+ 0x00000000, 0x00400000, 0x00004000, 0x00404000, 0x00000040, 0x00400040,
+ 0x00004040, 0x00404040, 0x00000004, 0x00400004, 0x00004004, 0x00404004,
+ 0x00000044, 0x00400044, 0x00004044, 0x00404044, 0x00000000, 0x00400000,
+ 0x00004000, 0x00404000, 0x00000040, 0x00400040, 0x00004040, 0x00404040,
+ 0x00000004, 0x00400004, 0x00004004, 0x00404004, 0x00000044, 0x00400044,
+ 0x00004044, 0x00404044, 0x00000000, 0x00400000, 0x00004000, 0x00404000,
+ 0x00000040, 0x00400040, 0x00004040, 0x00404040, 0x00000004, 0x00400004,
+ 0x00004004, 0x00404004, 0x00000044, 0x00400044, 0x00004044, 0x00404044,
+ 0x00000000, 0x00400000, 0x00004000, 0x00404000, 0x00000040, 0x00400040,
+ 0x00004040, 0x00404040, 0x00000004, 0x00400004, 0x00004004, 0x00404004,
+ 0x00000044, 0x00400044, 0x00004044, 0x00404044, 0x00000000, 0x00400000,
+ 0x00004000, 0x00404000, 0x00000040, 0x00400040, 0x00004040, 0x00404040,
+ 0x00000004, 0x00400004, 0x00004004, 0x00404004, 0x00000044, 0x00400044,
+ 0x00004044, 0x00404044, 0x00000000, 0x00400000, 0x00004000, 0x00404000,
+ 0x00000040, 0x00400040, 0x00004040, 0x00404040, 0x00000004, 0x00400004,
+ 0x00004004, 0x00404004, 0x00000044, 0x00400044, 0x00004044, 0x00404044,
+ 0x00000000, 0x00400000, 0x00004000, 0x00404000, 0x00000040, 0x00400040,
+ 0x00004040, 0x00404040, 0x00000004, 0x00400004, 0x00004004, 0x00404004,
+ 0x00000044, 0x00400044, 0x00004044, 0x00404044, 0x00000000, 0x00400000,
+ 0x00004000, 0x00404000, 0x00000040, 0x00400040, 0x00004040, 0x00404040,
+ 0x00000004, 0x00400004, 0x00004004, 0x00404004, 0x00000044, 0x00400044,
+ 0x00004044, 0x00404044,
+ },
+ {
+ 0x00000000, 0x00800000, 0x00008000, 0x00808000, 0x00000080, 0x00800080,
+ 0x00008080, 0x00808080, 0x00000008, 0x00800008, 0x00008008, 0x00808008,
+ 0x00000088, 0x00800088, 0x00008088, 0x00808088, 0x00000000, 0x00800000,
+ 0x00008000, 0x00808000, 0x00000080, 0x00800080, 0x00008080, 0x00808080,
+ 0x00000008, 0x00800008, 0x00008008, 0x00808008, 0x00000088, 0x00800088,
+ 0x00008088, 0x00808088, 0x00000000, 0x00800000, 0x00008000, 0x00808000,
+ 0x00000080, 0x00800080, 0x00008080, 0x00808080, 0x00000008, 0x00800008,
+ 0x00008008, 0x00808008, 0x00000088, 0x00800088, 0x00008088, 0x00808088,
+ 0x00000000, 0x00800000, 0x00008000, 0x00808000, 0x00000080, 0x00800080,
+ 0x00008080, 0x00808080, 0x00000008, 0x00800008, 0x00008008, 0x00808008,
+ 0x00000088, 0x00800088, 0x00008088, 0x00808088, 0x00000000, 0x00800000,
+ 0x00008000, 0x00808000, 0x00000080, 0x00800080, 0x00008080, 0x00808080,
+ 0x00000008, 0x00800008, 0x00008008, 0x00808008, 0x00000088, 0x00800088,
+ 0x00008088, 0x00808088, 0x00000000, 0x00800000, 0x00008000, 0x00808000,
+ 0x00000080, 0x00800080, 0x00008080, 0x00808080, 0x00000008, 0x00800008,
+ 0x00008008, 0x00808008, 0x00000088, 0x00800088, 0x00008088, 0x00808088,
+ 0x00000000, 0x00800000, 0x00008000, 0x00808000, 0x00000080, 0x00800080,
+ 0x00008080, 0x00808080, 0x00000008, 0x00800008, 0x00008008, 0x00808008,
+ 0x00000088, 0x00800088, 0x00008088, 0x00808088, 0x00000000, 0x00800000,
+ 0x00008000, 0x00808000, 0x00000080, 0x00800080, 0x00008080, 0x00808080,
+ 0x00000008, 0x00800008, 0x00008008, 0x00808008, 0x00000088, 0x00800088,
+ 0x00008088, 0x00808088,
+ },
+ {
+ 0x00000000, 0x01000000, 0x00010000, 0x01010000, 0x00000100, 0x01000100,
+ 0x00010100, 0x01010100, 0x00000000, 0x01000000, 0x00010000, 0x01010000,
+ 0x00000100, 0x01000100, 0x00010100, 0x01010100, 0x00000000, 0x01000000,
+ 0x00010000, 0x01010000, 0x00000100, 0x01000100, 0x00010100, 0x01010100,
+ 0x00000000, 0x01000000, 0x00010000, 0x01010000, 0x00000100, 0x01000100,
+ 0x00010100, 0x01010100, 0x00000000, 0x01000000, 0x00010000, 0x01010000,
+ 0x00000100, 0x01000100, 0x00010100, 0x01010100, 0x00000000, 0x01000000,
+ 0x00010000, 0x01010000, 0x00000100, 0x01000100, 0x00010100, 0x01010100,
+ 0x00000000, 0x01000000, 0x00010000, 0x01010000, 0x00000100, 0x01000100,
+ 0x00010100, 0x01010100, 0x00000000, 0x01000000, 0x00010000, 0x01010000,
+ 0x00000100, 0x01000100, 0x00010100, 0x01010100, 0x00000000, 0x01000000,
+ 0x00010000, 0x01010000, 0x00000100, 0x01000100, 0x00010100, 0x01010100,
+ 0x00000000, 0x01000000, 0x00010000, 0x01010000, 0x00000100, 0x01000100,
+ 0x00010100, 0x01010100, 0x00000000, 0x01000000, 0x00010000, 0x01010000,
+ 0x00000100, 0x01000100, 0x00010100, 0x01010100, 0x00000000, 0x01000000,
+ 0x00010000, 0x01010000, 0x00000100, 0x01000100, 0x00010100, 0x01010100,
+ 0x00000000, 0x01000000, 0x00010000, 0x01010000, 0x00000100, 0x01000100,
+ 0x00010100, 0x01010100, 0x00000000, 0x01000000, 0x00010000, 0x01010000,
+ 0x00000100, 0x01000100, 0x00010100, 0x01010100, 0x00000000, 0x01000000,
+ 0x00010000, 0x01010000, 0x00000100, 0x01000100, 0x00010100, 0x01010100,
+ 0x00000000, 0x01000000, 0x00010000, 0x01010000, 0x00000100, 0x01000100,
+ 0x00010100, 0x01010100,
+ },
+ {
+ 0x00000000, 0x02000000, 0x00020000, 0x02020000, 0x00000200, 0x02000200,
+ 0x00020200, 0x02020200, 0x00000000, 0x02000000, 0x00020000, 0x02020000,
+ 0x00000200, 0x02000200, 0x00020200, 0x02020200, 0x00000000, 0x02000000,
+ 0x00020000, 0x02020000, 0x00000200, 0x02000200, 0x00020200, 0x02020200,
+ 0x00000000, 0x02000000, 0x00020000, 0x02020000, 0x00000200, 0x02000200,
+ 0x00020200, 0x02020200, 0x00000000, 0x02000000, 0x00020000, 0x02020000,
+ 0x00000200, 0x02000200, 0x00020200, 0x02020200, 0x00000000, 0x02000000,
+ 0x00020000, 0x02020000, 0x00000200, 0x02000200, 0x00020200, 0x02020200,
+ 0x00000000, 0x02000000, 0x00020000, 0x02020000, 0x00000200, 0x02000200,
+ 0x00020200, 0x02020200, 0x00000000, 0x02000000, 0x00020000, 0x02020000,
+ 0x00000200, 0x02000200, 0x00020200, 0x02020200, 0x00000000, 0x02000000,
+ 0x00020000, 0x02020000, 0x00000200, 0x02000200, 0x00020200, 0x02020200,
+ 0x00000000, 0x02000000, 0x00020000, 0x02020000, 0x00000200, 0x02000200,
+ 0x00020200, 0x02020200, 0x00000000, 0x02000000, 0x00020000, 0x02020000,
+ 0x00000200, 0x02000200, 0x00020200, 0x02020200, 0x00000000, 0x02000000,
+ 0x00020000, 0x02020000, 0x00000200, 0x02000200, 0x00020200, 0x02020200,
+ 0x00000000, 0x02000000, 0x00020000, 0x02020000, 0x00000200, 0x02000200,
+ 0x00020200, 0x02020200, 0x00000000, 0x02000000, 0x00020000, 0x02020000,
+ 0x00000200, 0x02000200, 0x00020200, 0x02020200, 0x00000000, 0x02000000,
+ 0x00020000, 0x02020000, 0x00000200, 0x02000200, 0x00020200, 0x02020200,
+ 0x00000000, 0x02000000, 0x00020000, 0x02020000, 0x00000200, 0x02000200,
+ 0x00020200, 0x02020200,
+ },
+ {
+ 0x00000000, 0x04000000, 0x00040000, 0x04040000, 0x00000400, 0x04000400,
+ 0x00040400, 0x04040400, 0x00000000, 0x04000000, 0x00040000, 0x04040000,
+ 0x00000400, 0x04000400, 0x00040400, 0x04040400, 0x00000000, 0x04000000,
+ 0x00040000, 0x04040000, 0x00000400, 0x04000400, 0x00040400, 0x04040400,
+ 0x00000000, 0x04000000, 0x00040000, 0x04040000, 0x00000400, 0x04000400,
+ 0x00040400, 0x04040400, 0x00000000, 0x04000000, 0x00040000, 0x04040000,
+ 0x00000400, 0x04000400, 0x00040400, 0x04040400, 0x00000000, 0x04000000,
+ 0x00040000, 0x04040000, 0x00000400, 0x04000400, 0x00040400, 0x04040400,
+ 0x00000000, 0x04000000, 0x00040000, 0x04040000, 0x00000400, 0x04000400,
+ 0x00040400, 0x04040400, 0x00000000, 0x04000000, 0x00040000, 0x04040000,
+ 0x00000400, 0x04000400, 0x00040400, 0x04040400, 0x00000000, 0x04000000,
+ 0x00040000, 0x04040000, 0x00000400, 0x04000400, 0x00040400, 0x04040400,
+ 0x00000000, 0x04000000, 0x00040000, 0x04040000, 0x00000400, 0x04000400,
+ 0x00040400, 0x04040400, 0x00000000, 0x04000000, 0x00040000, 0x04040000,
+ 0x00000400, 0x04000400, 0x00040400, 0x04040400, 0x00000000, 0x04000000,
+ 0x00040000, 0x04040000, 0x00000400, 0x04000400, 0x00040400, 0x04040400,
+ 0x00000000, 0x04000000, 0x00040000, 0x04040000, 0x00000400, 0x04000400,
+ 0x00040400, 0x04040400, 0x00000000, 0x04000000, 0x00040000, 0x04040000,
+ 0x00000400, 0x04000400, 0x00040400, 0x04040400, 0x00000000, 0x04000000,
+ 0x00040000, 0x04040000, 0x00000400, 0x04000400, 0x00040400, 0x04040400,
+ 0x00000000, 0x04000000, 0x00040000, 0x04040000, 0x00000400, 0x04000400,
+ 0x00040400, 0x04040400,
+ },
+ {
+ 0x00000000, 0x08000000, 0x00080000, 0x08080000, 0x00000800, 0x08000800,
+ 0x00080800, 0x08080800, 0x00000000, 0x08000000, 0x00080000, 0x08080000,
+ 0x00000800, 0x08000800, 0x00080800, 0x08080800, 0x00000000, 0x08000000,
+ 0x00080000, 0x08080000, 0x00000800, 0x08000800, 0x00080800, 0x08080800,
+ 0x00000000, 0x08000000, 0x00080000, 0x08080000, 0x00000800, 0x08000800,
+ 0x00080800, 0x08080800, 0x00000000, 0x08000000, 0x00080000, 0x08080000,
+ 0x00000800, 0x08000800, 0x00080800, 0x08080800, 0x00000000, 0x08000000,
+ 0x00080000, 0x08080000, 0x00000800, 0x08000800, 0x00080800, 0x08080800,
+ 0x00000000, 0x08000000, 0x00080000, 0x08080000, 0x00000800, 0x08000800,
+ 0x00080800, 0x08080800, 0x00000000, 0x08000000, 0x00080000, 0x08080000,
+ 0x00000800, 0x08000800, 0x00080800, 0x08080800, 0x00000000, 0x08000000,
+ 0x00080000, 0x08080000, 0x00000800, 0x08000800, 0x00080800, 0x08080800,
+ 0x00000000, 0x08000000, 0x00080000, 0x08080000, 0x00000800, 0x08000800,
+ 0x00080800, 0x08080800, 0x00000000, 0x08000000, 0x00080000, 0x08080000,
+ 0x00000800, 0x08000800, 0x00080800, 0x08080800, 0x00000000, 0x08000000,
+ 0x00080000, 0x08080000, 0x00000800, 0x08000800, 0x00080800, 0x08080800,
+ 0x00000000, 0x08000000, 0x00080000, 0x08080000, 0x00000800, 0x08000800,
+ 0x00080800, 0x08080800, 0x00000000, 0x08000000, 0x00080000, 0x08080000,
+ 0x00000800, 0x08000800, 0x00080800, 0x08080800, 0x00000000, 0x08000000,
+ 0x00080000, 0x08080000, 0x00000800, 0x08000800, 0x00080800, 0x08080800,
+ 0x00000000, 0x08000000, 0x00080000, 0x08080000, 0x00000800, 0x08000800,
+ 0x00080800, 0x08080800,
+ },
+};
+
+const uint32_t comp_maskl[8][128] =
+{
+ {
+ 0x00000000, 0x00000010, 0x00004000, 0x00004010, 0x00040000, 0x00040010,
+ 0x00044000, 0x00044010, 0x00000100, 0x00000110, 0x00004100, 0x00004110,
+ 0x00040100, 0x00040110, 0x00044100, 0x00044110, 0x00020000, 0x00020010,
+ 0x00024000, 0x00024010, 0x00060000, 0x00060010, 0x00064000, 0x00064010,
+ 0x00020100, 0x00020110, 0x00024100, 0x00024110, 0x00060100, 0x00060110,
+ 0x00064100, 0x00064110, 0x00000001, 0x00000011, 0x00004001, 0x00004011,
+ 0x00040001, 0x00040011, 0x00044001, 0x00044011, 0x00000101, 0x00000111,
+ 0x00004101, 0x00004111, 0x00040101, 0x00040111, 0x00044101, 0x00044111,
+ 0x00020001, 0x00020011, 0x00024001, 0x00024011, 0x00060001, 0x00060011,
+ 0x00064001, 0x00064011, 0x00020101, 0x00020111, 0x00024101, 0x00024111,
+ 0x00060101, 0x00060111, 0x00064101, 0x00064111, 0x00080000, 0x00080010,
+ 0x00084000, 0x00084010, 0x000c0000, 0x000c0010, 0x000c4000, 0x000c4010,
+ 0x00080100, 0x00080110, 0x00084100, 0x00084110, 0x000c0100, 0x000c0110,
+ 0x000c4100, 0x000c4110, 0x000a0000, 0x000a0010, 0x000a4000, 0x000a4010,
+ 0x000e0000, 0x000e0010, 0x000e4000, 0x000e4010, 0x000a0100, 0x000a0110,
+ 0x000a4100, 0x000a4110, 0x000e0100, 0x000e0110, 0x000e4100, 0x000e4110,
+ 0x00080001, 0x00080011, 0x00084001, 0x00084011, 0x000c0001, 0x000c0011,
+ 0x000c4001, 0x000c4011, 0x00080101, 0x00080111, 0x00084101, 0x00084111,
+ 0x000c0101, 0x000c0111, 0x000c4101, 0x000c4111, 0x000a0001, 0x000a0011,
+ 0x000a4001, 0x000a4011, 0x000e0001, 0x000e0011, 0x000e4001, 0x000e4011,
+ 0x000a0101, 0x000a0111, 0x000a4101, 0x000a4111, 0x000e0101, 0x000e0111,
+ 0x000e4101, 0x000e4111,
+ },
+ {
+ 0x00000000, 0x00800000, 0x00000002, 0x00800002, 0x00000200, 0x00800200,
+ 0x00000202, 0x00800202, 0x00200000, 0x00a00000, 0x00200002, 0x00a00002,
+ 0x00200200, 0x00a00200, 0x00200202, 0x00a00202, 0x00001000, 0x00801000,
+ 0x00001002, 0x00801002, 0x00001200, 0x00801200, 0x00001202, 0x00801202,
+ 0x00201000, 0x00a01000, 0x00201002, 0x00a01002, 0x00201200, 0x00a01200,
+ 0x00201202, 0x00a01202, 0x00000000, 0x00800000, 0x00000002, 0x00800002,
+ 0x00000200, 0x00800200, 0x00000202, 0x00800202, 0x00200000, 0x00a00000,
+ 0x00200002, 0x00a00002, 0x00200200, 0x00a00200, 0x00200202, 0x00a00202,
+ 0x00001000, 0x00801000, 0x00001002, 0x00801002, 0x00001200, 0x00801200,
+ 0x00001202, 0x00801202, 0x00201000, 0x00a01000, 0x00201002, 0x00a01002,
+ 0x00201200, 0x00a01200, 0x00201202, 0x00a01202, 0x00000040, 0x00800040,
+ 0x00000042, 0x00800042, 0x00000240, 0x00800240, 0x00000242, 0x00800242,
+ 0x00200040, 0x00a00040, 0x00200042, 0x00a00042, 0x00200240, 0x00a00240,
+ 0x00200242, 0x00a00242, 0x00001040, 0x00801040, 0x00001042, 0x00801042,
+ 0x00001240, 0x00801240, 0x00001242, 0x00801242, 0x00201040, 0x00a01040,
+ 0x00201042, 0x00a01042, 0x00201240, 0x00a01240, 0x00201242, 0x00a01242,
+ 0x00000040, 0x00800040, 0x00000042, 0x00800042, 0x00000240, 0x00800240,
+ 0x00000242, 0x00800242, 0x00200040, 0x00a00040, 0x00200042, 0x00a00042,
+ 0x00200240, 0x00a00240, 0x00200242, 0x00a00242, 0x00001040, 0x00801040,
+ 0x00001042, 0x00801042, 0x00001240, 0x00801240, 0x00001242, 0x00801242,
+ 0x00201040, 0x00a01040, 0x00201042, 0x00a01042, 0x00201240, 0x00a01240,
+ 0x00201242, 0x00a01242,
+ },
+ {
+ 0x00000000, 0x00002000, 0x00000004, 0x00002004, 0x00000400, 0x00002400,
+ 0x00000404, 0x00002404, 0x00000000, 0x00002000, 0x00000004, 0x00002004,
+ 0x00000400, 0x00002400, 0x00000404, 0x00002404, 0x00400000, 0x00402000,
+ 0x00400004, 0x00402004, 0x00400400, 0x00402400, 0x00400404, 0x00402404,
+ 0x00400000, 0x00402000, 0x00400004, 0x00402004, 0x00400400, 0x00402400,
+ 0x00400404, 0x00402404, 0x00000020, 0x00002020, 0x00000024, 0x00002024,
+ 0x00000420, 0x00002420, 0x00000424, 0x00002424, 0x00000020, 0x00002020,
+ 0x00000024, 0x00002024, 0x00000420, 0x00002420, 0x00000424, 0x00002424,
+ 0x00400020, 0x00402020, 0x00400024, 0x00402024, 0x00400420, 0x00402420,
+ 0x00400424, 0x00402424, 0x00400020, 0x00402020, 0x00400024, 0x00402024,
+ 0x00400420, 0x00402420, 0x00400424, 0x00402424, 0x00008000, 0x0000a000,
+ 0x00008004, 0x0000a004, 0x00008400, 0x0000a400, 0x00008404, 0x0000a404,
+ 0x00008000, 0x0000a000, 0x00008004, 0x0000a004, 0x00008400, 0x0000a400,
+ 0x00008404, 0x0000a404, 0x00408000, 0x0040a000, 0x00408004, 0x0040a004,
+ 0x00408400, 0x0040a400, 0x00408404, 0x0040a404, 0x00408000, 0x0040a000,
+ 0x00408004, 0x0040a004, 0x00408400, 0x0040a400, 0x00408404, 0x0040a404,
+ 0x00008020, 0x0000a020, 0x00008024, 0x0000a024, 0x00008420, 0x0000a420,
+ 0x00008424, 0x0000a424, 0x00008020, 0x0000a020, 0x00008024, 0x0000a024,
+ 0x00008420, 0x0000a420, 0x00008424, 0x0000a424, 0x00408020, 0x0040a020,
+ 0x00408024, 0x0040a024, 0x00408420, 0x0040a420, 0x00408424, 0x0040a424,
+ 0x00408020, 0x0040a020, 0x00408024, 0x0040a024, 0x00408420, 0x0040a420,
+ 0x00408424, 0x0040a424,
+ },
+ {
+ 0x00000000, 0x00010000, 0x00000008, 0x00010008, 0x00000080, 0x00010080,
+ 0x00000088, 0x00010088, 0x00000000, 0x00010000, 0x00000008, 0x00010008,
+ 0x00000080, 0x00010080, 0x00000088, 0x00010088, 0x00100000, 0x00110000,
+ 0x00100008, 0x00110008, 0x00100080, 0x00110080, 0x00100088, 0x00110088,
+ 0x00100000, 0x00110000, 0x00100008, 0x00110008, 0x00100080, 0x00110080,
+ 0x00100088, 0x00110088, 0x00000800, 0x00010800, 0x00000808, 0x00010808,
+ 0x00000880, 0x00010880, 0x00000888, 0x00010888, 0x00000800, 0x00010800,
+ 0x00000808, 0x00010808, 0x00000880, 0x00010880, 0x00000888, 0x00010888,
+ 0x00100800, 0x00110800, 0x00100808, 0x00110808, 0x00100880, 0x00110880,
+ 0x00100888, 0x00110888, 0x00100800, 0x00110800, 0x00100808, 0x00110808,
+ 0x00100880, 0x00110880, 0x00100888, 0x00110888, 0x00000000, 0x00010000,
+ 0x00000008, 0x00010008, 0x00000080, 0x00010080, 0x00000088, 0x00010088,
+ 0x00000000, 0x00010000, 0x00000008, 0x00010008, 0x00000080, 0x00010080,
+ 0x00000088, 0x00010088, 0x00100000, 0x00110000, 0x00100008, 0x00110008,
+ 0x00100080, 0x00110080, 0x00100088, 0x00110088, 0x00100000, 0x00110000,
+ 0x00100008, 0x00110008, 0x00100080, 0x00110080, 0x00100088, 0x00110088,
+ 0x00000800, 0x00010800, 0x00000808, 0x00010808, 0x00000880, 0x00010880,
+ 0x00000888, 0x00010888, 0x00000800, 0x00010800, 0x00000808, 0x00010808,
+ 0x00000880, 0x00010880, 0x00000888, 0x00010888, 0x00100800, 0x00110800,
+ 0x00100808, 0x00110808, 0x00100880, 0x00110880, 0x00100888, 0x00110888,
+ 0x00100800, 0x00110800, 0x00100808, 0x00110808, 0x00100880, 0x00110880,
+ 0x00100888, 0x00110888,
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000,
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000,
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000,
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000,
+ },
+};
+
+const uint32_t comp_maskr[8][128] =
+{
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000,
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000,
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000,
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000,
+ },
+ {
+ 0x00000000, 0x00000000, 0x00000080, 0x00000080, 0x00002000, 0x00002000,
+ 0x00002080, 0x00002080, 0x00000001, 0x00000001, 0x00000081, 0x00000081,
+ 0x00002001, 0x00002001, 0x00002081, 0x00002081, 0x00200000, 0x00200000,
+ 0x00200080, 0x00200080, 0x00202000, 0x00202000, 0x00202080, 0x00202080,
+ 0x00200001, 0x00200001, 0x00200081, 0x00200081, 0x00202001, 0x00202001,
+ 0x00202081, 0x00202081, 0x00020000, 0x00020000, 0x00020080, 0x00020080,
+ 0x00022000, 0x00022000, 0x00022080, 0x00022080, 0x00020001, 0x00020001,
+ 0x00020081, 0x00020081, 0x00022001, 0x00022001, 0x00022081, 0x00022081,
+ 0x00220000, 0x00220000, 0x00220080, 0x00220080, 0x00222000, 0x00222000,
+ 0x00222080, 0x00222080, 0x00220001, 0x00220001, 0x00220081, 0x00220081,
+ 0x00222001, 0x00222001, 0x00222081, 0x00222081, 0x00000002, 0x00000002,
+ 0x00000082, 0x00000082, 0x00002002, 0x00002002, 0x00002082, 0x00002082,
+ 0x00000003, 0x00000003, 0x00000083, 0x00000083, 0x00002003, 0x00002003,
+ 0x00002083, 0x00002083, 0x00200002, 0x00200002, 0x00200082, 0x00200082,
+ 0x00202002, 0x00202002, 0x00202082, 0x00202082, 0x00200003, 0x00200003,
+ 0x00200083, 0x00200083, 0x00202003, 0x00202003, 0x00202083, 0x00202083,
+ 0x00020002, 0x00020002, 0x00020082, 0x00020082, 0x00022002, 0x00022002,
+ 0x00022082, 0x00022082, 0x00020003, 0x00020003, 0x00020083, 0x00020083,
+ 0x00022003, 0x00022003, 0x00022083, 0x00022083, 0x00220002, 0x00220002,
+ 0x00220082, 0x00220082, 0x00222002, 0x00222002, 0x00222082, 0x00222082,
+ 0x00220003, 0x00220003, 0x00220083, 0x00220083, 0x00222003, 0x00222003,
+ 0x00222083, 0x00222083,
+ },
+ {
+ 0x00000000, 0x00000010, 0x00800000, 0x00800010, 0x00010000, 0x00010010,
+ 0x00810000, 0x00810010, 0x00000200, 0x00000210, 0x00800200, 0x00800210,
+ 0x00010200, 0x00010210, 0x00810200, 0x00810210, 0x00000000, 0x00000010,
+ 0x00800000, 0x00800010, 0x00010000, 0x00010010, 0x00810000, 0x00810010,
+ 0x00000200, 0x00000210, 0x00800200, 0x00800210, 0x00010200, 0x00010210,
+ 0x00810200, 0x00810210, 0x00100000, 0x00100010, 0x00900000, 0x00900010,
+ 0x00110000, 0x00110010, 0x00910000, 0x00910010, 0x00100200, 0x00100210,
+ 0x00900200, 0x00900210, 0x00110200, 0x00110210, 0x00910200, 0x00910210,
+ 0x00100000, 0x00100010, 0x00900000, 0x00900010, 0x00110000, 0x00110010,
+ 0x00910000, 0x00910010, 0x00100200, 0x00100210, 0x00900200, 0x00900210,
+ 0x00110200, 0x00110210, 0x00910200, 0x00910210, 0x00000004, 0x00000014,
+ 0x00800004, 0x00800014, 0x00010004, 0x00010014, 0x00810004, 0x00810014,
+ 0x00000204, 0x00000214, 0x00800204, 0x00800214, 0x00010204, 0x00010214,
+ 0x00810204, 0x00810214, 0x00000004, 0x00000014, 0x00800004, 0x00800014,
+ 0x00010004, 0x00010014, 0x00810004, 0x00810014, 0x00000204, 0x00000214,
+ 0x00800204, 0x00800214, 0x00010204, 0x00010214, 0x00810204, 0x00810214,
+ 0x00100004, 0x00100014, 0x00900004, 0x00900014, 0x00110004, 0x00110014,
+ 0x00910004, 0x00910014, 0x00100204, 0x00100214, 0x00900204, 0x00900214,
+ 0x00110204, 0x00110214, 0x00910204, 0x00910214, 0x00100004, 0x00100014,
+ 0x00900004, 0x00900014, 0x00110004, 0x00110014, 0x00910004, 0x00910014,
+ 0x00100204, 0x00100214, 0x00900204, 0x00900214, 0x00110204, 0x00110214,
+ 0x00910204, 0x00910214,
+ },
+ {
+ 0x00000000, 0x00000400, 0x00001000, 0x00001400, 0x00080000, 0x00080400,
+ 0x00081000, 0x00081400, 0x00000020, 0x00000420, 0x00001020, 0x00001420,
+ 0x00080020, 0x00080420, 0x00081020, 0x00081420, 0x00004000, 0x00004400,
+ 0x00005000, 0x00005400, 0x00084000, 0x00084400, 0x00085000, 0x00085400,
+ 0x00004020, 0x00004420, 0x00005020, 0x00005420, 0x00084020, 0x00084420,
+ 0x00085020, 0x00085420, 0x00000800, 0x00000c00, 0x00001800, 0x00001c00,
+ 0x00080800, 0x00080c00, 0x00081800, 0x00081c00, 0x00000820, 0x00000c20,
+ 0x00001820, 0x00001c20, 0x00080820, 0x00080c20, 0x00081820, 0x00081c20,
+ 0x00004800, 0x00004c00, 0x00005800, 0x00005c00, 0x00084800, 0x00084c00,
+ 0x00085800, 0x00085c00, 0x00004820, 0x00004c20, 0x00005820, 0x00005c20,
+ 0x00084820, 0x00084c20, 0x00085820, 0x00085c20, 0x00000000, 0x00000400,
+ 0x00001000, 0x00001400, 0x00080000, 0x00080400, 0x00081000, 0x00081400,
+ 0x00000020, 0x00000420, 0x00001020, 0x00001420, 0x00080020, 0x00080420,
+ 0x00081020, 0x00081420, 0x00004000, 0x00004400, 0x00005000, 0x00005400,
+ 0x00084000, 0x00084400, 0x00085000, 0x00085400, 0x00004020, 0x00004420,
+ 0x00005020, 0x00005420, 0x00084020, 0x00084420, 0x00085020, 0x00085420,
+ 0x00000800, 0x00000c00, 0x00001800, 0x00001c00, 0x00080800, 0x00080c00,
+ 0x00081800, 0x00081c00, 0x00000820, 0x00000c20, 0x00001820, 0x00001c20,
+ 0x00080820, 0x00080c20, 0x00081820, 0x00081c20, 0x00004800, 0x00004c00,
+ 0x00005800, 0x00005c00, 0x00084800, 0x00084c00, 0x00085800, 0x00085c00,
+ 0x00004820, 0x00004c20, 0x00005820, 0x00005c20, 0x00084820, 0x00084c20,
+ 0x00085820, 0x00085c20,
+ },
+ {
+ 0x00000000, 0x00000100, 0x00040000, 0x00040100, 0x00000000, 0x00000100,
+ 0x00040000, 0x00040100, 0x00000040, 0x00000140, 0x00040040, 0x00040140,
+ 0x00000040, 0x00000140, 0x00040040, 0x00040140, 0x00400000, 0x00400100,
+ 0x00440000, 0x00440100, 0x00400000, 0x00400100, 0x00440000, 0x00440100,
+ 0x00400040, 0x00400140, 0x00440040, 0x00440140, 0x00400040, 0x00400140,
+ 0x00440040, 0x00440140, 0x00008000, 0x00008100, 0x00048000, 0x00048100,
+ 0x00008000, 0x00008100, 0x00048000, 0x00048100, 0x00008040, 0x00008140,
+ 0x00048040, 0x00048140, 0x00008040, 0x00008140, 0x00048040, 0x00048140,
+ 0x00408000, 0x00408100, 0x00448000, 0x00448100, 0x00408000, 0x00408100,
+ 0x00448000, 0x00448100, 0x00408040, 0x00408140, 0x00448040, 0x00448140,
+ 0x00408040, 0x00408140, 0x00448040, 0x00448140, 0x00000008, 0x00000108,
+ 0x00040008, 0x00040108, 0x00000008, 0x00000108, 0x00040008, 0x00040108,
+ 0x00000048, 0x00000148, 0x00040048, 0x00040148, 0x00000048, 0x00000148,
+ 0x00040048, 0x00040148, 0x00400008, 0x00400108, 0x00440008, 0x00440108,
+ 0x00400008, 0x00400108, 0x00440008, 0x00440108, 0x00400048, 0x00400148,
+ 0x00440048, 0x00440148, 0x00400048, 0x00400148, 0x00440048, 0x00440148,
+ 0x00008008, 0x00008108, 0x00048008, 0x00048108, 0x00008008, 0x00008108,
+ 0x00048008, 0x00048108, 0x00008048, 0x00008148, 0x00048048, 0x00048148,
+ 0x00008048, 0x00008148, 0x00048048, 0x00048148, 0x00408008, 0x00408108,
+ 0x00448008, 0x00448108, 0x00408008, 0x00408108, 0x00448008, 0x00448108,
+ 0x00408048, 0x00408148, 0x00448048, 0x00448148, 0x00408048, 0x00408148,
+ 0x00448048, 0x00448148,
+ },
+};
+
+const uint32_t psbox[4][256] =
+{
+ {
+ 0x00000000, 0x00004000, 0x40000000, 0x40004000, 0x00000010, 0x00004010,
+ 0x40000010, 0x40004010, 0x00080000, 0x00084000, 0x40080000, 0x40084000,
+ 0x00080010, 0x00084010, 0x40080010, 0x40084010, 0x00000002, 0x00004002,
+ 0x40000002, 0x40004002, 0x00000012, 0x00004012, 0x40000012, 0x40004012,
+ 0x00080002, 0x00084002, 0x40080002, 0x40084002, 0x00080012, 0x00084012,
+ 0x40080012, 0x40084012, 0x00000200, 0x00004200, 0x40000200, 0x40004200,
+ 0x00000210, 0x00004210, 0x40000210, 0x40004210, 0x00080200, 0x00084200,
+ 0x40080200, 0x40084200, 0x00080210, 0x00084210, 0x40080210, 0x40084210,
+ 0x00000202, 0x00004202, 0x40000202, 0x40004202, 0x00000212, 0x00004212,
+ 0x40000212, 0x40004212, 0x00080202, 0x00084202, 0x40080202, 0x40084202,
+ 0x00080212, 0x00084212, 0x40080212, 0x40084212, 0x00008000, 0x0000c000,
+ 0x40008000, 0x4000c000, 0x00008010, 0x0000c010, 0x40008010, 0x4000c010,
+ 0x00088000, 0x0008c000, 0x40088000, 0x4008c000, 0x00088010, 0x0008c010,
+ 0x40088010, 0x4008c010, 0x00008002, 0x0000c002, 0x40008002, 0x4000c002,
+ 0x00008012, 0x0000c012, 0x40008012, 0x4000c012, 0x00088002, 0x0008c002,
+ 0x40088002, 0x4008c002, 0x00088012, 0x0008c012, 0x40088012, 0x4008c012,
+ 0x00008200, 0x0000c200, 0x40008200, 0x4000c200, 0x00008210, 0x0000c210,
+ 0x40008210, 0x4000c210, 0x00088200, 0x0008c200, 0x40088200, 0x4008c200,
+ 0x00088210, 0x0008c210, 0x40088210, 0x4008c210, 0x00008202, 0x0000c202,
+ 0x40008202, 0x4000c202, 0x00008212, 0x0000c212, 0x40008212, 0x4000c212,
+ 0x00088202, 0x0008c202, 0x40088202, 0x4008c202, 0x00088212, 0x0008c212,
+ 0x40088212, 0x4008c212, 0x00800000, 0x00804000, 0x40800000, 0x40804000,
+ 0x00800010, 0x00804010, 0x40800010, 0x40804010, 0x00880000, 0x00884000,
+ 0x40880000, 0x40884000, 0x00880010, 0x00884010, 0x40880010, 0x40884010,
+ 0x00800002, 0x00804002, 0x40800002, 0x40804002, 0x00800012, 0x00804012,
+ 0x40800012, 0x40804012, 0x00880002, 0x00884002, 0x40880002, 0x40884002,
+ 0x00880012, 0x00884012, 0x40880012, 0x40884012, 0x00800200, 0x00804200,
+ 0x40800200, 0x40804200, 0x00800210, 0x00804210, 0x40800210, 0x40804210,
+ 0x00880200, 0x00884200, 0x40880200, 0x40884200, 0x00880210, 0x00884210,
+ 0x40880210, 0x40884210, 0x00800202, 0x00804202, 0x40800202, 0x40804202,
+ 0x00800212, 0x00804212, 0x40800212, 0x40804212, 0x00880202, 0x00884202,
+ 0x40880202, 0x40884202, 0x00880212, 0x00884212, 0x40880212, 0x40884212,
+ 0x00808000, 0x0080c000, 0x40808000, 0x4080c000, 0x00808010, 0x0080c010,
+ 0x40808010, 0x4080c010, 0x00888000, 0x0088c000, 0x40888000, 0x4088c000,
+ 0x00888010, 0x0088c010, 0x40888010, 0x4088c010, 0x00808002, 0x0080c002,
+ 0x40808002, 0x4080c002, 0x00808012, 0x0080c012, 0x40808012, 0x4080c012,
+ 0x00888002, 0x0088c002, 0x40888002, 0x4088c002, 0x00888012, 0x0088c012,
+ 0x40888012, 0x4088c012, 0x00808200, 0x0080c200, 0x40808200, 0x4080c200,
+ 0x00808210, 0x0080c210, 0x40808210, 0x4080c210, 0x00888200, 0x0088c200,
+ 0x40888200, 0x4088c200, 0x00888210, 0x0088c210, 0x40888210, 0x4088c210,
+ 0x00808202, 0x0080c202, 0x40808202, 0x4080c202, 0x00808212, 0x0080c212,
+ 0x40808212, 0x4080c212, 0x00888202, 0x0088c202, 0x40888202, 0x4088c202,
+ 0x00888212, 0x0088c212, 0x40888212, 0x4088c212,
+ },
+ {
+ 0x00000000, 0x80000000, 0x00400000, 0x80400000, 0x00001000, 0x80001000,
+ 0x00401000, 0x80401000, 0x00000040, 0x80000040, 0x00400040, 0x80400040,
+ 0x00001040, 0x80001040, 0x00401040, 0x80401040, 0x04000000, 0x84000000,
+ 0x04400000, 0x84400000, 0x04001000, 0x84001000, 0x04401000, 0x84401000,
+ 0x04000040, 0x84000040, 0x04400040, 0x84400040, 0x04001040, 0x84001040,
+ 0x04401040, 0x84401040, 0x00000004, 0x80000004, 0x00400004, 0x80400004,
+ 0x00001004, 0x80001004, 0x00401004, 0x80401004, 0x00000044, 0x80000044,
+ 0x00400044, 0x80400044, 0x00001044, 0x80001044, 0x00401044, 0x80401044,
+ 0x04000004, 0x84000004, 0x04400004, 0x84400004, 0x04001004, 0x84001004,
+ 0x04401004, 0x84401004, 0x04000044, 0x84000044, 0x04400044, 0x84400044,
+ 0x04001044, 0x84001044, 0x04401044, 0x84401044, 0x00010000, 0x80010000,
+ 0x00410000, 0x80410000, 0x00011000, 0x80011000, 0x00411000, 0x80411000,
+ 0x00010040, 0x80010040, 0x00410040, 0x80410040, 0x00011040, 0x80011040,
+ 0x00411040, 0x80411040, 0x04010000, 0x84010000, 0x04410000, 0x84410000,
+ 0x04011000, 0x84011000, 0x04411000, 0x84411000, 0x04010040, 0x84010040,
+ 0x04410040, 0x84410040, 0x04011040, 0x84011040, 0x04411040, 0x84411040,
+ 0x00010004, 0x80010004, 0x00410004, 0x80410004, 0x00011004, 0x80011004,
+ 0x00411004, 0x80411004, 0x00010044, 0x80010044, 0x00410044, 0x80410044,
+ 0x00011044, 0x80011044, 0x00411044, 0x80411044, 0x04010004, 0x84010004,
+ 0x04410004, 0x84410004, 0x04011004, 0x84011004, 0x04411004, 0x84411004,
+ 0x04010044, 0x84010044, 0x04410044, 0x84410044, 0x04011044, 0x84011044,
+ 0x04411044, 0x84411044, 0x00000100, 0x80000100, 0x00400100, 0x80400100,
+ 0x00001100, 0x80001100, 0x00401100, 0x80401100, 0x00000140, 0x80000140,
+ 0x00400140, 0x80400140, 0x00001140, 0x80001140, 0x00401140, 0x80401140,
+ 0x04000100, 0x84000100, 0x04400100, 0x84400100, 0x04001100, 0x84001100,
+ 0x04401100, 0x84401100, 0x04000140, 0x84000140, 0x04400140, 0x84400140,
+ 0x04001140, 0x84001140, 0x04401140, 0x84401140, 0x00000104, 0x80000104,
+ 0x00400104, 0x80400104, 0x00001104, 0x80001104, 0x00401104, 0x80401104,
+ 0x00000144, 0x80000144, 0x00400144, 0x80400144, 0x00001144, 0x80001144,
+ 0x00401144, 0x80401144, 0x04000104, 0x84000104, 0x04400104, 0x84400104,
+ 0x04001104, 0x84001104, 0x04401104, 0x84401104, 0x04000144, 0x84000144,
+ 0x04400144, 0x84400144, 0x04001144, 0x84001144, 0x04401144, 0x84401144,
+ 0x00010100, 0x80010100, 0x00410100, 0x80410100, 0x00011100, 0x80011100,
+ 0x00411100, 0x80411100, 0x00010140, 0x80010140, 0x00410140, 0x80410140,
+ 0x00011140, 0x80011140, 0x00411140, 0x80411140, 0x04010100, 0x84010100,
+ 0x04410100, 0x84410100, 0x04011100, 0x84011100, 0x04411100, 0x84411100,
+ 0x04010140, 0x84010140, 0x04410140, 0x84410140, 0x04011140, 0x84011140,
+ 0x04411140, 0x84411140, 0x00010104, 0x80010104, 0x00410104, 0x80410104,
+ 0x00011104, 0x80011104, 0x00411104, 0x80411104, 0x00010144, 0x80010144,
+ 0x00410144, 0x80410144, 0x00011144, 0x80011144, 0x00411144, 0x80411144,
+ 0x04010104, 0x84010104, 0x04410104, 0x84410104, 0x04011104, 0x84011104,
+ 0x04411104, 0x84411104, 0x04010144, 0x84010144, 0x04410144, 0x84410144,
+ 0x04011144, 0x84011144, 0x04411144, 0x84411144,
+ },
+ {
+ 0x00000000, 0x00002000, 0x00200000, 0x00202000, 0x00000008, 0x00002008,
+ 0x00200008, 0x00202008, 0x10000000, 0x10002000, 0x10200000, 0x10202000,
+ 0x10000008, 0x10002008, 0x10200008, 0x10202008, 0x20000000, 0x20002000,
+ 0x20200000, 0x20202000, 0x20000008, 0x20002008, 0x20200008, 0x20202008,
+ 0x30000000, 0x30002000, 0x30200000, 0x30202000, 0x30000008, 0x30002008,
+ 0x30200008, 0x30202008, 0x00000080, 0x00002080, 0x00200080, 0x00202080,
+ 0x00000088, 0x00002088, 0x00200088, 0x00202088, 0x10000080, 0x10002080,
+ 0x10200080, 0x10202080, 0x10000088, 0x10002088, 0x10200088, 0x10202088,
+ 0x20000080, 0x20002080, 0x20200080, 0x20202080, 0x20000088, 0x20002088,
+ 0x20200088, 0x20202088, 0x30000080, 0x30002080, 0x30200080, 0x30202080,
+ 0x30000088, 0x30002088, 0x30200088, 0x30202088, 0x00040000, 0x00042000,
+ 0x00240000, 0x00242000, 0x00040008, 0x00042008, 0x00240008, 0x00242008,
+ 0x10040000, 0x10042000, 0x10240000, 0x10242000, 0x10040008, 0x10042008,
+ 0x10240008, 0x10242008, 0x20040000, 0x20042000, 0x20240000, 0x20242000,
+ 0x20040008, 0x20042008, 0x20240008, 0x20242008, 0x30040000, 0x30042000,
+ 0x30240000, 0x30242000, 0x30040008, 0x30042008, 0x30240008, 0x30242008,
+ 0x00040080, 0x00042080, 0x00240080, 0x00242080, 0x00040088, 0x00042088,
+ 0x00240088, 0x00242088, 0x10040080, 0x10042080, 0x10240080, 0x10242080,
+ 0x10040088, 0x10042088, 0x10240088, 0x10242088, 0x20040080, 0x20042080,
+ 0x20240080, 0x20242080, 0x20040088, 0x20042088, 0x20240088, 0x20242088,
+ 0x30040080, 0x30042080, 0x30240080, 0x30242080, 0x30040088, 0x30042088,
+ 0x30240088, 0x30242088, 0x01000000, 0x01002000, 0x01200000, 0x01202000,
+ 0x01000008, 0x01002008, 0x01200008, 0x01202008, 0x11000000, 0x11002000,
+ 0x11200000, 0x11202000, 0x11000008, 0x11002008, 0x11200008, 0x11202008,
+ 0x21000000, 0x21002000, 0x21200000, 0x21202000, 0x21000008, 0x21002008,
+ 0x21200008, 0x21202008, 0x31000000, 0x31002000, 0x31200000, 0x31202000,
+ 0x31000008, 0x31002008, 0x31200008, 0x31202008, 0x01000080, 0x01002080,
+ 0x01200080, 0x01202080, 0x01000088, 0x01002088, 0x01200088, 0x01202088,
+ 0x11000080, 0x11002080, 0x11200080, 0x11202080, 0x11000088, 0x11002088,
+ 0x11200088, 0x11202088, 0x21000080, 0x21002080, 0x21200080, 0x21202080,
+ 0x21000088, 0x21002088, 0x21200088, 0x21202088, 0x31000080, 0x31002080,
+ 0x31200080, 0x31202080, 0x31000088, 0x31002088, 0x31200088, 0x31202088,
+ 0x01040000, 0x01042000, 0x01240000, 0x01242000, 0x01040008, 0x01042008,
+ 0x01240008, 0x01242008, 0x11040000, 0x11042000, 0x11240000, 0x11242000,
+ 0x11040008, 0x11042008, 0x11240008, 0x11242008, 0x21040000, 0x21042000,
+ 0x21240000, 0x21242000, 0x21040008, 0x21042008, 0x21240008, 0x21242008,
+ 0x31040000, 0x31042000, 0x31240000, 0x31242000, 0x31040008, 0x31042008,
+ 0x31240008, 0x31242008, 0x01040080, 0x01042080, 0x01240080, 0x01242080,
+ 0x01040088, 0x01042088, 0x01240088, 0x01242088, 0x11040080, 0x11042080,
+ 0x11240080, 0x11242080, 0x11040088, 0x11042088, 0x11240088, 0x11242088,
+ 0x21040080, 0x21042080, 0x21240080, 0x21242080, 0x21040088, 0x21042088,
+ 0x21240088, 0x21242088, 0x31040080, 0x31042080, 0x31240080, 0x31242080,
+ 0x31040088, 0x31042088, 0x31240088, 0x31242088,
+ },
+ {
+ 0x00000000, 0x00000800, 0x00020000, 0x00020800, 0x00000020, 0x00000820,
+ 0x00020020, 0x00020820, 0x08000000, 0x08000800, 0x08020000, 0x08020800,
+ 0x08000020, 0x08000820, 0x08020020, 0x08020820, 0x02000000, 0x02000800,
+ 0x02020000, 0x02020800, 0x02000020, 0x02000820, 0x02020020, 0x02020820,
+ 0x0a000000, 0x0a000800, 0x0a020000, 0x0a020800, 0x0a000020, 0x0a000820,
+ 0x0a020020, 0x0a020820, 0x00000400, 0x00000c00, 0x00020400, 0x00020c00,
+ 0x00000420, 0x00000c20, 0x00020420, 0x00020c20, 0x08000400, 0x08000c00,
+ 0x08020400, 0x08020c00, 0x08000420, 0x08000c20, 0x08020420, 0x08020c20,
+ 0x02000400, 0x02000c00, 0x02020400, 0x02020c00, 0x02000420, 0x02000c20,
+ 0x02020420, 0x02020c20, 0x0a000400, 0x0a000c00, 0x0a020400, 0x0a020c00,
+ 0x0a000420, 0x0a000c20, 0x0a020420, 0x0a020c20, 0x00100000, 0x00100800,
+ 0x00120000, 0x00120800, 0x00100020, 0x00100820, 0x00120020, 0x00120820,
+ 0x08100000, 0x08100800, 0x08120000, 0x08120800, 0x08100020, 0x08100820,
+ 0x08120020, 0x08120820, 0x02100000, 0x02100800, 0x02120000, 0x02120800,
+ 0x02100020, 0x02100820, 0x02120020, 0x02120820, 0x0a100000, 0x0a100800,
+ 0x0a120000, 0x0a120800, 0x0a100020, 0x0a100820, 0x0a120020, 0x0a120820,
+ 0x00100400, 0x00100c00, 0x00120400, 0x00120c00, 0x00100420, 0x00100c20,
+ 0x00120420, 0x00120c20, 0x08100400, 0x08100c00, 0x08120400, 0x08120c00,
+ 0x08100420, 0x08100c20, 0x08120420, 0x08120c20, 0x02100400, 0x02100c00,
+ 0x02120400, 0x02120c00, 0x02100420, 0x02100c20, 0x02120420, 0x02120c20,
+ 0x0a100400, 0x0a100c00, 0x0a120400, 0x0a120c00, 0x0a100420, 0x0a100c20,
+ 0x0a120420, 0x0a120c20, 0x00000001, 0x00000801, 0x00020001, 0x00020801,
+ 0x00000021, 0x00000821, 0x00020021, 0x00020821, 0x08000001, 0x08000801,
+ 0x08020001, 0x08020801, 0x08000021, 0x08000821, 0x08020021, 0x08020821,
+ 0x02000001, 0x02000801, 0x02020001, 0x02020801, 0x02000021, 0x02000821,
+ 0x02020021, 0x02020821, 0x0a000001, 0x0a000801, 0x0a020001, 0x0a020801,
+ 0x0a000021, 0x0a000821, 0x0a020021, 0x0a020821, 0x00000401, 0x00000c01,
+ 0x00020401, 0x00020c01, 0x00000421, 0x00000c21, 0x00020421, 0x00020c21,
+ 0x08000401, 0x08000c01, 0x08020401, 0x08020c01, 0x08000421, 0x08000c21,
+ 0x08020421, 0x08020c21, 0x02000401, 0x02000c01, 0x02020401, 0x02020c01,
+ 0x02000421, 0x02000c21, 0x02020421, 0x02020c21, 0x0a000401, 0x0a000c01,
+ 0x0a020401, 0x0a020c01, 0x0a000421, 0x0a000c21, 0x0a020421, 0x0a020c21,
+ 0x00100001, 0x00100801, 0x00120001, 0x00120801, 0x00100021, 0x00100821,
+ 0x00120021, 0x00120821, 0x08100001, 0x08100801, 0x08120001, 0x08120801,
+ 0x08100021, 0x08100821, 0x08120021, 0x08120821, 0x02100001, 0x02100801,
+ 0x02120001, 0x02120801, 0x02100021, 0x02100821, 0x02120021, 0x02120821,
+ 0x0a100001, 0x0a100801, 0x0a120001, 0x0a120801, 0x0a100021, 0x0a100821,
+ 0x0a120021, 0x0a120821, 0x00100401, 0x00100c01, 0x00120401, 0x00120c01,
+ 0x00100421, 0x00100c21, 0x00120421, 0x00120c21, 0x08100401, 0x08100c01,
+ 0x08120401, 0x08120c01, 0x08100421, 0x08100c21, 0x08120421, 0x08120c21,
+ 0x02100401, 0x02100c01, 0x02120401, 0x02120c01, 0x02100421, 0x02100c21,
+ 0x02120421, 0x02120c21, 0x0a100401, 0x0a100c01, 0x0a120401, 0x0a120c01,
+ 0x0a100421, 0x0a100c21, 0x0a120421, 0x0a120c21,
+ },
+};
diff --git a/des.c b/des.c
new file mode 100644
index 0000000..12ff9ef
--- /dev/null
+++ b/des.c
@@ -0,0 +1,280 @@
+/*
+ * FreeSec: libcrypt for NetBSD
+ *
+ * Copyright (c) 1994 David Burren
+ * All rights reserved.
+ *
+ * Adapted for FreeBSD-2.0 by Geoffrey M. Rehmet
+ * this file should now *only* export crypt(), in order to make
+ * binaries of libcrypt exportable from the USA
+ *
+ * Adapted for FreeBSD-4.0 by Mark R V Murray
+ * this file should now *only* export crypt_des(), in order to make
+ * a module that can be optionally included in libcrypt.
+ *
+ * Adapted for libxcrypt by Zack Weinberg, 2017
+ * writable global data eliminated; type-punning eliminated;
+ * des_init() run at build time (see des-mktables.c);
+ * made into a libxcrypt algorithm module (see des-crypt.c);
+ * functionality required to support the legacy encrypt() and
+ * setkey() primitives re-exposed (see des-obsolete.c).
+ *
+ * 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.
+ * 3. Neither the name of the author nor the names of other contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+ *
+ * This is an original implementation of the DES and the crypt(3) interfaces
+ * by David Burren <davidb@werj.com.au>.
+ *
+ * An excellent reference on the underlying algorithm (and related
+ * algorithms) is:
+ *
+ * B. Schneier, Applied Cryptography: protocols, algorithms,
+ * and source code in C, John Wiley & Sons, 1994.
+ *
+ * Note that in that book's description of DES the lookups for the initial,
+ * pbox, and final permutations are inverted (this has been brought to the
+ * attention of the author). A list of errata for this book has been
+ * posted to the sci.crypt newsgroup by the author and is available for FTP.
+ */
+
+#include "des.h"
+
+static inline uint32_t
+be32_to_cpu (const unsigned char *buf)
+{
+ return ((((uint32_t)buf[0]) << 24) |
+ (((uint32_t)buf[1]) << 16) |
+ (((uint32_t)buf[2]) << 8) |
+ (((uint32_t)buf[3]) << 0) );
+}
+
+static inline void
+cpu_to_be32 (unsigned char *buf, uint32_t n)
+{
+ buf[0] = (unsigned char)((n & 0xFF000000u) >> 24);
+ buf[1] = (unsigned char)((n & 0x00FF0000u) >> 16);
+ buf[2] = (unsigned char)((n & 0x0000FF00u) >> 8);
+ buf[3] = (unsigned char)((n & 0x000000FFu) >> 0);
+}
+
+static const uint8_t key_shifts[16] =
+{
+ 1, 1, 2, 2, 2, 2, 2, 2, 1, 2, 2, 2, 2, 2, 2, 1
+};
+
+void
+des_set_key (struct des_ctx *restrict ctx,
+ const unsigned char key[8])
+{
+ uint32_t rawkey0, rawkey1, k0, k1, t0, t1;
+ int shifts, round;
+
+ rawkey0 = be32_to_cpu (&key[0]);
+ rawkey1 = be32_to_cpu (&key[4]);
+
+ /* Do key permutation and split into two 28-bit subkeys. */
+ k0 = key_perm_maskl[0][(rawkey0 >> 25) & 0x7f]
+ | key_perm_maskl[1][(rawkey0 >> 17) & 0x7f]
+ | key_perm_maskl[2][(rawkey0 >> 9) & 0x7f]
+ | key_perm_maskl[3][(rawkey0 >> 1) & 0x7f]
+ | key_perm_maskl[4][(rawkey1 >> 25) & 0x7f]
+ | key_perm_maskl[5][(rawkey1 >> 17) & 0x7f]
+ | key_perm_maskl[6][(rawkey1 >> 9) & 0x7f]
+ | key_perm_maskl[7][(rawkey1 >> 1) & 0x7f];
+ k1 = key_perm_maskr[0][(rawkey0 >> 25) & 0x7f]
+ | key_perm_maskr[1][(rawkey0 >> 17) & 0x7f]
+ | key_perm_maskr[2][(rawkey0 >> 9) & 0x7f]
+ | key_perm_maskr[3][(rawkey0 >> 1) & 0x7f]
+ | key_perm_maskr[4][(rawkey1 >> 25) & 0x7f]
+ | key_perm_maskr[5][(rawkey1 >> 17) & 0x7f]
+ | key_perm_maskr[6][(rawkey1 >> 9) & 0x7f]
+ | key_perm_maskr[7][(rawkey1 >> 1) & 0x7f];
+
+ /* Rotate subkeys and do compression permutation. */
+ shifts = 0;
+ for (round = 0; round < 16; round++)
+ {
+ shifts += key_shifts[round];
+
+ t0 = (k0 << shifts) | (k0 >> (28 - shifts));
+ t1 = (k1 << shifts) | (k1 >> (28 - shifts));
+
+ ctx->keysl[round] =
+ comp_maskl[0][(t0 >> 21) & 0x7f]
+ | comp_maskl[1][(t0 >> 14) & 0x7f]
+ | comp_maskl[2][(t0 >> 7) & 0x7f]
+ | comp_maskl[3][(t0 >> 0) & 0x7f]
+ | comp_maskl[4][(t1 >> 21) & 0x7f]
+ | comp_maskl[5][(t1 >> 14) & 0x7f]
+ | comp_maskl[6][(t1 >> 7) & 0x7f]
+ | comp_maskl[7][(t1 >> 0) & 0x7f];
+
+ ctx->keysr[round] =
+ comp_maskr[0][(t0 >> 21) & 0x7f]
+ | comp_maskr[1][(t0 >> 14) & 0x7f]
+ | comp_maskr[2][(t0 >> 7) & 0x7f]
+ | comp_maskr[3][(t0 >> 0) & 0x7f]
+ | comp_maskr[4][(t1 >> 21) & 0x7f]
+ | comp_maskr[5][(t1 >> 14) & 0x7f]
+ | comp_maskr[6][(t1 >> 7) & 0x7f]
+ | comp_maskr[7][(t1 >> 0) & 0x7f];
+ }
+}
+
+void
+des_set_salt (struct des_ctx *restrict ctx, uint32_t salt)
+{
+ uint32_t obit, saltbit, saltbits;
+ int i;
+ saltbits = 0L;
+ saltbit = 1;
+ obit = 0x800000;
+ for (i = 0; i < 24; i++)
+ {
+ if (salt & saltbit)
+ saltbits |= obit;
+ saltbit <<= 1;
+ obit >>= 1;
+ }
+ ctx->saltbits = saltbits;
+}
+
+void
+des_crypt_block (struct des_ctx *restrict ctx,
+ unsigned char *out, const unsigned char *in,
+ unsigned int count, bool decrypt)
+{
+ uint32_t l_in, r_in, l_out, r_out;
+ uint32_t l, r, *kl, *kr, *kl1, *kr1;
+ uint32_t f, r48l, r48r;
+ uint32_t saltbits = ctx->saltbits;
+ int round, rk_step;
+
+ /* Zero encryptions/decryptions doesn't make sense. */
+ if (count == 0)
+ count = 1;
+
+ if (decrypt)
+ {
+ kl1 = ctx->keysl + 15;
+ kr1 = ctx->keysr + 15;
+ rk_step = -1;
+ }
+ else
+ {
+ kl1 = ctx->keysl;
+ kr1 = ctx->keysr;
+ rk_step = 1;
+ }
+
+ /* Read the input, which is notionally in "big-endian" format. */
+ l_in = be32_to_cpu (in);
+ r_in = be32_to_cpu (in + 4);
+
+ /* Do initial permutation. */
+ l = ip_maskl[0][(l_in >> 24) & 0xff]
+ | ip_maskl[1][(l_in >> 16) & 0xff]
+ | ip_maskl[2][(l_in >> 8) & 0xff]
+ | ip_maskl[3][(l_in >> 0) & 0xff]
+ | ip_maskl[4][(r_in >> 24) & 0xff]
+ | ip_maskl[5][(r_in >> 16) & 0xff]
+ | ip_maskl[6][(r_in >> 8) & 0xff]
+ | ip_maskl[7][(r_in >> 0) & 0xff];
+ r = ip_maskr[0][(l_in >> 24) & 0xff]
+ | ip_maskr[1][(l_in >> 16) & 0xff]
+ | ip_maskr[2][(l_in >> 8) & 0xff]
+ | ip_maskr[3][(l_in >> 0) & 0xff]
+ | ip_maskr[4][(r_in >> 24) & 0xff]
+ | ip_maskr[5][(r_in >> 16) & 0xff]
+ | ip_maskr[6][(r_in >> 8) & 0xff]
+ | ip_maskr[7][(r_in >> 0) & 0xff];
+
+ do
+ {
+ kl = kl1;
+ kr = kr1;
+ round = 16;
+ do
+ {
+ /* Expand R to 48 bits (simulate the E-box). */
+ r48l = ((r & 0x00000001) << 23)
+ | ((r & 0xf8000000) >> 9)
+ | ((r & 0x1f800000) >> 11)
+ | ((r & 0x01f80000) >> 13)
+ | ((r & 0x001f8000) >> 15);
+ r48r = ((r & 0x0001f800) << 7)
+ | ((r & 0x00001f80) << 5)
+ | ((r & 0x000001f8) << 3)
+ | ((r & 0x0000001f) << 1)
+ | ((r & 0x80000000) >> 31);
+
+ /* Apply salt and permuted round key. */
+ f = (r48l ^ r48r) & saltbits;
+ r48l ^= f ^ *kl;
+ r48r ^= f ^ *kr;
+ kl += rk_step;
+ kr += rk_step;
+
+ /* Do sbox lookups (which shrink it back to 32 bits)
+ and the pbox permutation at the same time. */
+ f = psbox[0][m_sbox[0][r48l >> 12]]
+ | psbox[1][m_sbox[1][r48l & 0xfff]]
+ | psbox[2][m_sbox[2][r48r >> 12]]
+ | psbox[3][m_sbox[3][r48r & 0xfff]];
+
+ /* Now that we've permuted things, complete f(). */
+ f ^= l;
+ l = r;
+ r = f;
+ }
+ while (--round);
+
+ r = l;
+ l = f;
+ }
+ while (--count);
+
+ /* Do final permutation (inverse of IP). */
+ l_out =
+ fp_maskl[0][(l >> 24) & 0xff]
+ | fp_maskl[1][(l >> 16) & 0xff]
+ | fp_maskl[2][(l >> 8) & 0xff]
+ | fp_maskl[3][(l >> 0) & 0xff]
+ | fp_maskl[4][(r >> 24) & 0xff]
+ | fp_maskl[5][(r >> 16) & 0xff]
+ | fp_maskl[6][(r >> 8) & 0xff]
+ | fp_maskl[7][(r >> 0) & 0xff];
+ r_out =
+ fp_maskr[0][(l >> 24) & 0xff]
+ | fp_maskr[1][(l >> 16) & 0xff]
+ | fp_maskr[2][(l >> 8) & 0xff]
+ | fp_maskr[3][(l >> 0) & 0xff]
+ | fp_maskr[4][(r >> 24) & 0xff]
+ | fp_maskr[5][(r >> 16) & 0xff]
+ | fp_maskr[6][(r >> 8) & 0xff]
+ | fp_maskr[7][(r >> 0) & 0xff];
+
+ cpu_to_be32 (out, l_out);
+ cpu_to_be32 (out + 4, r_out);
+}
diff --git a/des.h b/des.h
new file mode 100644
index 0000000..2af1041
--- /dev/null
+++ b/des.h
@@ -0,0 +1,77 @@
+/*
+ * FreeSec: libcrypt for NetBSD
+ *
+ * Copyright (c) 1994 David Burren
+ * All rights reserved.
+ *
+ * Adapted for FreeBSD-2.0 by Geoffrey M. Rehmet
+ * this file should now *only* export crypt(), in order to make
+ * binaries of libcrypt exportable from the USA
+ *
+ * Adapted for FreeBSD-4.0 by Mark R V Murray
+ * this file should now *only* export crypt_des(), in order to make
+ * a module that can be optionally included in libcrypt.
+ *
+ * Adapted for libxcrypt by Zack Weinberg, 2017
+ * see notes in des.c
+ *
+ * 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.
+ * 3. Neither the name of the author nor the names of other contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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.
+ *
+ * This is an original implementation of the DES and the crypt(3) interfaces
+ * by David Burren <davidb@werj.com.au>.
+ */
+
+#ifndef _FREESEC_DES_H
+#define _FREESEC_DES_H 1
+
+#include <stdbool.h>
+#include <stdint.h>
+
+/* des.c */
+
+struct des_ctx
+{
+ uint32_t keysl[16];
+ uint32_t keysr[16];
+ uint32_t saltbits;
+};
+
+extern void des_set_key (struct des_ctx *restrict ctx,
+ const unsigned char key[8]);
+extern void des_set_salt (struct des_ctx *restrict ctx,
+ uint32_t salt);
+extern void des_crypt_block (struct des_ctx *restrict ctx,
+ unsigned char *out, const unsigned char *in,
+ unsigned int count, bool decrypt);
+
+/* des-tables.c (generated by des-mktables) */
+extern const uint8_t m_sbox[4][4096];
+extern const uint32_t ip_maskl[8][256], ip_maskr[8][256];
+extern const uint32_t fp_maskl[8][256], fp_maskr[8][256];
+extern const uint32_t key_perm_maskl[8][128], key_perm_maskr[8][128];
+extern const uint32_t comp_maskl[8][128], comp_maskr[8][128];
+extern const uint32_t psbox[4][256];
+
+#endif /* alg-des.h */
diff --git a/utils.c b/utils.c
index f9aa906..30ed0ae 100644
--- a/utils.c
+++ b/utils.c
@@ -27,13 +27,14 @@
#include <stdarg.h>
#include <string.h>
#include <stdint.h>
-#include <crypt.h>
#include <unistd.h>
#include <ctype.h>
#include <netinet/in.h> /* for ntohs() */
#include <errno.h>
#include <sys/types.h>
+
#include "utils.h"
+#include "des.h"
void lamont_hdump(unsigned char *bp, unsigned int length);
char *printmac(unsigned char *mac);
@@ -134,53 +135,15 @@ void MakeKey(unsigned char *key, unsigned char *des_key)
}
-/* in == 8-byte string (expanded version of the 56-bit key)
- * out == 64-byte string where each byte is either 1 or 0
- * Note that the low-order "bit" is always ignored by by setkey()
- */
-void Expand(unsigned char *in, unsigned char *out)
-{
- int j, c;
- int i;
-
- for (i = 0; i < 64; in++) {
- c = *in;
- for (j = 7; j >= 0; j--)
- *out++ = (c >> j) & 1;
- i += 8;
- }
-}
-
-/* The inverse of Expand
- */
-void Collapse(unsigned char *in, unsigned char *out)
-{
- int j;
- int i;
- unsigned int c;
-
- for (i = 0; i < 64; i += 8, out++) {
- c = 0;
- for (j = 7; j >= 0; j--, in++)
- c |= *in << j;
- *out = c & 0xff;
- }
-}
-
void DesEncrypt(unsigned char *clear, unsigned char *key, unsigned char *cipher)
{
unsigned char des_key[8];
- unsigned char crypt_key[66];
- unsigned char des_input[66];
+ struct des_ctx ctx;
MakeKey(key, des_key);
-
- Expand(des_key, crypt_key);
- setkey((char *)crypt_key);
-
- Expand(clear, des_input);
- encrypt((char *)des_input, 0);
- Collapse(des_input, cipher);
+ des_set_salt(&ctx, 0);
+ des_set_key(&ctx, des_key);
+ des_crypt_block(&ctx, clear, cipher, 1, false);
}
int IsBlank(char *s)
From 2bbb89aa3acf4f1a75b2f3f43898e5bd56afbf2d Mon Sep 17 00:00:00 2001
From: Zack Weinberg <zackw@panix.com>
Date: Sun, 20 Jun 2021 19:54:35 -0400
Subject: [PATCH 3/5] =?UTF-8?q?While=20we=E2=80=99re=20here,=20some=20lint?=
=?UTF-8?q?ing.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
- Crank up the warnings level (-Wextra -Wpedantic -Wstrict-prototypes)
- Explicitly request C2011 with extensions.
- Explicitly request 64-bit off_t.
- Fix all the resulting warnings.
The only code change of note is that I deleted struct dot11_mgmt from
ieee80211.h. This was using the old GNU zero-length array extension
in a way that is not supported for C99 flexible array members, and
its unused in this program, so the easiest fix is to get rid of it.
---
Makefile | 5 +++--
asleap.c | 27 ++++++++++++++-------------
genkeys.c | 11 +++++------
ieee80211.h | 49 -------------------------------------------------
md4.c | 4 +---
5 files changed, 23 insertions(+), 73 deletions(-)
diff --git a/Makefile b/Makefile
index 51552c8..c765cce 100644
--- a/Makefile
+++ b/Makefile
@@ -7,8 +7,9 @@
# <dragorn> i think thats all anyone does
# <dragorn> make is a twisted beast
##################################
-CFLAGS = -g3 -Og -Wall
-CPPFLAGS =
+CFLAGS = -g3 -Og -std=gnu11 \
+ -Wall -Wextra -Wpedantic -Wstrict-prototypes
+CPPFLAGS = -D_FILE_OFFSET_BITS=64
LDLIBS = -lpcap
PROG = asleap genkeys
diff --git a/asleap.c b/asleap.c
index d8d5dd2..dde549d 100644
--- a/asleap.c
+++ b/asleap.c
@@ -72,14 +72,14 @@ unsigned long pcount=0;
/* prototypes */
void usage(char *message);
-void cleanup();
+void cleanup(void);
void print_leapexch(struct asleap_data *asleap_ptr);
void print_hashlast2(struct asleap_data *asleap_ptr);
void print_leappw(struct asleap_data *asleap_ptr);
int gethashlast2(struct asleap_data *asleap_ptr);
int getmschappw(struct asleap_data *asleap_ptr);
int getpacket(pcap_t *p);
-int listdevs();
+int listdevs(void);
int testleapchal(struct asleap_data *asleap_ptr, int plen, int offset);
int testleapsuccess(struct asleap_data *asleap_ptr, int plen, int offset);
int testleapresp(struct asleap_data *asleap_ptr, int plen, int offset);
@@ -235,7 +235,7 @@ void print_leappw(struct asleap_data *asleap_ptr)
}
-void cleanup()
+void cleanup(void)
{
if (p != NULL) {
@@ -352,7 +352,7 @@ int getmschappw(struct asleap_data *asleap_ptr)
struct hashpass_rec rec;
struct hashpassidx_rec idxrec;
char password_buf[MAX_NT_PASSWORD];
- int passlen, recordlength, passwordlen, i;
+ int passlen, recordlength, passwordlen;
FILE *buffp, *idxfp;
/* If the user passed an index file for our reference, fseek to
@@ -449,7 +449,7 @@ int getmschappw(struct asleap_data *asleap_ptr)
return (-1);
}
- for (i = 0; i < idxrec.numrec; i++) {
+ for (size_t i = 0; i < idxrec.numrec; i++) {
memset(&rec, 0, sizeof(rec));
memset(&password_buf, 0, sizeof(password_buf));
@@ -1029,7 +1029,7 @@ int testpptpchal(struct asleap_data *asleap_ptr, int plen, int offset)
int testpptpresp(struct asleap_data *asleap_ptr, int plen, int offset)
{
- int usernamelen;
+ unsigned long usernamelen;
struct pppchaphdr *pppchap;
pppchap = (struct pppchaphdr *)(packet+offset);
@@ -1324,7 +1324,7 @@ char *getdevice(char *optarg)
}
/* List all the available interfaces, adapted from WinDump code */
-int listdevs()
+int listdevs(void)
{
pcap_if_t *devpointer;
@@ -1353,7 +1353,7 @@ int radiotap_offset(pcap_t *p, struct pcap_pkthdr *h)
{
struct ieee80211_radiotap_header *rtaphdr;
- int rtaphdrlen=0;
+ uint32_t rtaphdrlen=0;
/* Grab a packet to examine radiotap header */
if (pcap_next_ex(p, &h, (const u_char **)&packet) > -1) {
@@ -1376,7 +1376,8 @@ int radiotap_offset(pcap_t *p, struct pcap_pkthdr *h)
int main(int argc, char *argv[])
{
- int c, opt_verbose = 0, offset = 0;
+ int c, opt_verbose = 0;
+ size_t offset = 0;
char *device, dictfile[255], dictidx[255], pcapfile[255];
struct asleap_data asleap;
struct stat dictstat, capturedatastat;
@@ -1391,9 +1392,9 @@ int main(int argc, char *argv[])
memset(&asleap, 0, sizeof(asleap));
device = NULL;
- signal(SIGINT, cleanup);
- signal(SIGTERM, cleanup);
- signal(SIGQUIT, cleanup);
+ signal(SIGINT, (void (*)(int))cleanup);
+ signal(SIGTERM, (void (*)(int))cleanup);
+ signal(SIGQUIT, (void (*)(int))cleanup);
printf("asleap %s - actively recover LEAP/PPTP passwords. "
"<jwright@hasborg.com>\n", VER);
@@ -1559,7 +1560,7 @@ int main(int argc, char *argv[])
offset = radiotap_offset(p, &h);
if (offset < sizeof(struct ieee80211_radiotap_header)) {
fprintf(stderr, "Unable to determine offset "
- "from radiotap header (%d).\n", offset);
+ "from radiotap header (%zd).\n", offset);
return(-1);
}
break;
diff --git a/genkeys.c b/genkeys.c
index 545b70e..245c290 100644
--- a/genkeys.c
+++ b/genkeys.c
@@ -37,16 +37,15 @@ unsigned long long sortcount;
int compfunc(const void *x, const void *y)
{
-
- struct hashpass_rec rec1, rec2;
+ const struct hashpass_rec *rec1, *rec2;
sortcount++;
- rec1 = (struct hashpass_rec)(*(struct hashpass_rec *)x);
- rec2 = (struct hashpass_rec)(*(struct hashpass_rec *)y);
+ rec1 = (const struct hashpass_rec *)x;
+ rec2 = (const struct hashpass_rec *)y;
- if (rec1.hash[15] == rec2.hash[15]) {
+ if (rec1->hash[15] == rec2->hash[15]) {
return (0);
- } else if (rec1.hash[15] < rec2.hash[15]) {
+ } else if (rec1->hash[15] < rec2->hash[15]) {
return (-1);
} else {
return (1);
diff --git a/ieee80211.h b/ieee80211.h
index 17dccf9..09bd295 100644
--- a/ieee80211.h
+++ b/ieee80211.h
@@ -185,55 +185,6 @@ struct dot11hdr_a4 {
} __attribute__ ((packed));
-struct dot11_mgmt {
- union {
- struct {
- uint16_t auth_algo;
- uint16_t auth_transaction;
- uint16_t status_code;
- /* possibly followed by Challenge text */
- uint8_t variable[0];
- } __attribute__ ((packed)) auth;
- struct {
- uint16_t reason_code;
- } __attribute__ ((packed)) deauth;
- struct {
- uint16_t capab_info;
- uint16_t listen_interval;
- /* followed by SSID and Supported rates */
- uint8_t variable[0];
- } __attribute__ ((packed)) assoc_req;
- struct {
- uint16_t capab_info;
- uint16_t status_code;
- uint16_t aid;
- /* followed by Supported rates */
- uint8_t variable[0];
- } __attribute__ ((packed)) assoc_resp, reassoc_resp;
- struct {
- uint16_t capab_info;
- uint16_t listen_interval;
- uint8_t current_ap[6];
- /* followed by SSID and Supported rates */
- uint8_t variable[0];
- } __attribute__ ((packed)) reassoc_req;
- struct {
- uint16_t reason_code;
- } __attribute__ ((packed)) disassoc;
- struct {
- uint8_t variable[0];
- } __attribute__ ((packed)) probe_req;
- struct {
- uint8_t timestamp[8];
- uint16_t beacon_int;
- uint16_t capab_info;
- /* followed by some of SSID, Supported rates,
- * FH Params, DS Params, CF Params, IBSS Params, TIM */
- uint8_t variable[0];
- } __attribute__ ((packed)) beacon;
- } u;
-} __attribute__ ((packed));
-
/* IEEE 802.11 fixed parameters */
struct ieee80211_beacon_fixparm {
uint8_t timestamp[8];
diff --git a/md4.c b/md4.c
index 6a0b7ab..10cdbba 100644
--- a/md4.c
+++ b/md4.c
@@ -118,9 +118,7 @@ MD4_CTX *MDp;
** Does not update MDp->count.
** This routine is not user-callable.
*/
-static void MDblock(MDp, Xb)
-MD4_CTX *MDp;
-unsigned char *Xb;
+static void MDblock(MD4_CTX *MDp, unsigned char *Xb)
{
register unsigned int tmp, A, B, C, D;
unsigned int X[16];
From 2f2ddffaaad36b8ad48450cafe925eb845aa29c9 Mon Sep 17 00:00:00 2001
From: Zack Weinberg <zackw@panix.com>
Date: Sun, 20 Jun 2021 20:01:35 -0400
Subject: [PATCH 4/5] Realign the Cygwin makefile with the Unix makefile.
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
The only differences are now:
- use of .obj and .exe extensions instead of .o and null
- -L$(WPDPACK)/lib -lwpcap instead of -lpcap
- no strip target
---
makefile.cygwin | 46 +++++++++++++++++++++++-----------------------
1 file changed, 23 insertions(+), 23 deletions(-)
diff --git a/makefile.cygwin b/makefile.cygwin
index 8f851ac..31a5409 100644
--- a/makefile.cygwin
+++ b/makefile.cygwin
@@ -7,35 +7,35 @@
# <dragorn> i think thats all anyone does
# <dragorn> make is a twisted beast
##################################
-WPDPACK = ../WPdpack
-LDLIBS = -L$(WPDPACK)/Lib -lwpcap -lcrypt -static
-CFLAGS = -g3 -ggdb -pipe -Wall -I./cygwin -D_FILE_OFFSET_BITS=64
-CFLGAS += -D_LARGEFILE_SOURCE
-PROGOBJ = asleap.o genkeys.o utils.o common.o apeek.o sha1.o
-PROG = asleap genkeys
-all: $(PROG) $(PROGOBJ)
+WPDPACK = ../wpdpack
-apeek: apeek.c
- $(CC) $(CFLAGS) apeek.c -c
+CFLAGS = -g3 -Og -std=gnu11 \
+ -Wall -Wextra -Wpedantic -Wstrict-prototypes
+CPPFLAGS = -D_FILE_OFFSET_BITS=64
+LDLIBS = -L$(WPDPACK)/lib -lwpcap
-utils: utils.c utils.h
- $(CC) $(CFLAGS) utils.c -c
+PROG = asleap.exe genkeys.exe
+COMMON_OBJS = common.obj des.obj des-tables.obj md4.obj \
+ sha1.obj utils.obj
-common: common.c common.h
- $(CC) $(CFLAGS) common.c -c
+all: $(PROG)
-sha1: sha1.c sha1.h
- $(CC) $(CFLAGS) sha1.c -c
+asleap.exe: asleap.obj $(COMMON_OBJS)
+ $(CC) $(CFLAGS) -o $@ $^ $(LDLIBS)
-asleap: asleap.c asleap.h sha1.o common.o common.h utils.o apeek.o \
- version.h sha1.c sha1.h apeek.h
- $(CC) $(CFLAGS) asleap.c -o asleap \
- common.o utils.o apeek.o sha1.o $(LDLIBS)
+genkeys.exe: genkeys.obj $(COMMON_OBJS)
+ $(CC) $(CFLAGS) -o $@ $^ $(LDLIBS)
-genkeys: genkeys.c md4.c md4.h common.o utils.o
- $(CC) $(CFLAGS) md4.c genkeys.c -o genkeys \
- common.o utils.o -lcrypt
+asleap.obj: asleap.c asleap.h utils.h common.h version.h sha1.h radiotap.h \
+ byteswap.h ieee80211.h ieee8021x.h ietfproto.h
+common.obj: common.c common.h utils.h md4.h
+des.obj: des.c des.h
+des-tables.obj: des-tables.c des.h
+genkeys.obj: genkeys.c common.h version.h utils.h
+sha1.obj: sha1.c common.h sha1.h
+md4.obj: md4.c md4.h
+utils.obj: utils.c utils.h
clean:
- $(RM) $(PROGOBJ) $(PROG) asleap.exe genkeys.exe *~
+ -$(RM) -f $(PROG) asleap.obj genkeys.obj $(COMMON_OBJS)
From eb3bd42098cba42b65f499c9d8c73d890861b94f Mon Sep 17 00:00:00 2001
From: Zack Weinberg <zackw@panix.com>
Date: Sun, 20 Jun 2021 20:10:53 -0400
Subject: [PATCH 5/5] Update compilation instructions.
---
COMPILING.md | 23 ++++++-----------------
README.md | 7 +++++++
2 files changed, 13 insertions(+), 17 deletions(-)
diff --git a/COMPILING.md b/COMPILING.md
index b9e9ef3..101a465 100644
--- a/COMPILING.md
+++ b/COMPILING.md
@@ -1,24 +1,13 @@
# Compiling the Source
-To compile this source you will need the [libxcrypt](https://github.com/besser82/libxcrypt/)
-library. At the time of this writing, this is `libxcrypt-dev` on Debian-like systems. Check
-your Linux distribution for installation directions. For Debian systems:
+To compile this source you will need libpcap. Check your Linux
+distribution for installation instructions. On Debian-like systems:
```
-$ sudo apt update && sudo apt install libxcrypt-dev -y
+$ sudo apt update && sudo apt install libpcap-dev
```
-To build this tool, change to the `asleap` directory and run `make`:
+No other external libraries are required.
-```
-$ make
-gcc -pipe -Wall -D_LINUX -D_OPENSSL_MD4 -g3 -c -o sha1.o sha1.c
-gcc -pipe -Wall -D_LINUX -D_OPENSSL_MD4 -g3 -c -o common.o common.c
-gcc -pipe -Wall -D_LINUX -D_OPENSSL_MD4 -g3 -c -o utils.o utils.c
-gcc -pipe -Wall -D_LINUX -D_OPENSSL_MD4 -g3 asleap.c -o asleap common.o utils.o sha1.o -lpcap -lxcrypt -lcrypto
-gcc -pipe -Wall -D_LINUX -D_OPENSSL_MD4 -g3 md4.c genkeys.c -o genkeys common.o utils.o -lpcap -lxcrypt -lcrypto
-gcc -pipe -Wall -D_LINUX -D_OPENSSL_MD4 -g3 -c -o asleap.o asleap.c
-gcc -pipe -Wall -D_LINUX -D_OPENSSL_MD4 -g3 -c -o genkeys.o genkeys.c
-```
-
-Optionally you can edit the `Makefile` and change the compiler to clang as desired.
+To build this tool, change to the `asleap` directory and run `make`.
+You can override CC and/or CFLAGS on the `make` command line as usual.
diff --git a/README.md b/README.md
index 4f1a68c..3d2d6a7 100644
--- a/README.md
+++ b/README.md
@@ -3,6 +3,13 @@
Pronounced "asleep". Copyright(c) 2004-2020, [Joshua Wright](https://github.com/joswr1ght)
-------------------------------------------------------------------------------
+## UPDATE - 2021-06-20
+
+Due to setkey and encrypt being slated to be removed from libxcrypt as
+well, bundle our own DES implementation. Also use our existing
+bundled MD4 implementation on all operating systems, rather than
+depending on OpenSSL.
+
## UPDATE - 2020-11-28
Due to GLIBC removal of setkey and crypt functions, link to libxcrypt to