summaryrefslogtreecommitdiffstats
path: root/src/spdk/dpdk/app/test-bbdev
diff options
context:
space:
mode:
Diffstat (limited to 'src/spdk/dpdk/app/test-bbdev')
-rw-r--r--src/spdk/dpdk/app/test-bbdev/Makefile30
l---------src/spdk/dpdk/app/test-bbdev/ldpc_dec_default.data1
l---------src/spdk/dpdk/app/test-bbdev/ldpc_enc_default.data1
-rw-r--r--src/spdk/dpdk/app/test-bbdev/main.c362
-rw-r--r--src/spdk/dpdk/app/test-bbdev/main.h128
-rw-r--r--src/spdk/dpdk/app/test-bbdev/meson.build14
-rwxr-xr-xsrc/spdk/dpdk/app/test-bbdev/test-bbdev.py118
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_bbdev.c1371
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_bbdev_perf.c4933
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_bbdev_vector.c1434
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_bbdev_vector.h79
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_vectors/bbdev_null.data5
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_HARQ_1_0.data353
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_HARQ_1_1.data684
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_HARQ_1_2.data902
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_v11835.data49
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_v2342_drop.data745
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_v7813.data48
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_v8480.data74
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_v8568.data255
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_v9503.data1215
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_enc_v11835.data41
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_enc_v2342.data151
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_enc_v7813.data43
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_enc_v8568.data70
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_enc_v9503.data197
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_dec_c1_k40_r0_e17280_sbd_negllr.data57
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e10376_crc24b_sbd_negllr_high_snr.data643
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e10376_crc24b_sbd_negllr_low_snr.data643
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e34560_posllr.data645
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e34560_sbd_negllr.data1224
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e34560_sbd_posllr.data1225
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_dec_c2_k3136_r0_e4920_sbd_negllr_crc24b.data680
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c1_k40_r0_e1190_rm.data36
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c1_k40_r0_e1194_rm.data36
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c1_k40_r0_e1196_rm.data36
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c1_k40_r0_e272_rm.data33
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c1_k6144_r0_e120_rm_rvidx.data63
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c1_k6144_r0_e18444.data156
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c1_k6144_r0_e18448_crc24a.data159
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c1_k6144_r0_e32256_crc24b_rm.data180
-rw-r--r--src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c3_k4800_r2_e14412_crc24b.data153
l---------src/spdk/dpdk/app/test-bbdev/turbo_dec_default.data1
l---------src/spdk/dpdk/app/test-bbdev/turbo_enc_default.data1
44 files changed, 19274 insertions, 0 deletions
diff --git a/src/spdk/dpdk/app/test-bbdev/Makefile b/src/spdk/dpdk/app/test-bbdev/Makefile
new file mode 100644
index 000000000..dc29557f3
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/Makefile
@@ -0,0 +1,30 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2017 Intel Corporation
+
+include $(RTE_SDK)/mk/rte.vars.mk
+
+#
+# library name
+#
+APP = testbbdev
+
+CFLAGS += -O3
+CFLAGS += $(WERROR_FLAGS)
+
+#
+# all sources are stored in SRCS-y
+#
+SRCS-$(CONFIG_RTE_TEST_BBDEV) += main.c
+SRCS-$(CONFIG_RTE_TEST_BBDEV) += test_bbdev.c
+SRCS-$(CONFIG_RTE_TEST_BBDEV) += test_bbdev_perf.c
+SRCS-$(CONFIG_RTE_TEST_BBDEV) += test_bbdev_vector.c
+
+LDLIBS += -lm
+ifeq ($(CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_LTE_FEC),y)
+LDLIBS += -lrte_pmd_bbdev_fpga_lte_fec
+endif
+ifeq ($(CONFIG_RTE_LIBRTE_PMD_BBDEV_FPGA_5GNR_FEC),y)
+LDLIBS += -lrte_pmd_bbdev_fpga_5gnr_fec
+endif
+
+include $(RTE_SDK)/mk/rte.app.mk
diff --git a/src/spdk/dpdk/app/test-bbdev/ldpc_dec_default.data b/src/spdk/dpdk/app/test-bbdev/ldpc_dec_default.data
new file mode 120000
index 000000000..e53aa1b90
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/ldpc_dec_default.data
@@ -0,0 +1 @@
+test_vectors/ldpc_dec_v2342_drop.data \ No newline at end of file
diff --git a/src/spdk/dpdk/app/test-bbdev/ldpc_enc_default.data b/src/spdk/dpdk/app/test-bbdev/ldpc_enc_default.data
new file mode 120000
index 000000000..371cbc692
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/ldpc_enc_default.data
@@ -0,0 +1 @@
+test_vectors/turbo_dec_c1_k6144_r0_e10376_crc24b_sbd_negllr_high_snr.data \ No newline at end of file
diff --git a/src/spdk/dpdk/app/test-bbdev/main.c b/src/spdk/dpdk/app/test-bbdev/main.c
new file mode 100644
index 000000000..ff65173fd
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/main.c
@@ -0,0 +1,362 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2017 Intel Corporation
+ */
+
+#include <getopt.h>
+#include <inttypes.h>
+#include <stdio.h>
+#include <string.h>
+#include <stdbool.h>
+
+#include <rte_eal.h>
+#include <rte_common.h>
+#include <rte_string_fns.h>
+#include <rte_cycles.h>
+#include <rte_lcore.h>
+
+#include "main.h"
+
+
+/* Defines how many testcases can be specified as cmdline args */
+#define MAX_CMDLINE_TESTCASES 8
+
+static const char tc_sep = ',';
+
+/* Declare structure for command line test parameters and options */
+static struct test_params {
+ struct test_command *test_to_run[MAX_CMDLINE_TESTCASES];
+ unsigned int num_tests;
+ unsigned int num_ops;
+ unsigned int burst_sz;
+ unsigned int num_lcores;
+ double snr;
+ unsigned int iter_max;
+ char test_vector_filename[PATH_MAX];
+ bool init_device;
+} test_params;
+
+static struct test_commands_list commands_list =
+ TAILQ_HEAD_INITIALIZER(commands_list);
+
+void
+add_test_command(struct test_command *t)
+{
+ TAILQ_INSERT_TAIL(&commands_list, t, next);
+}
+
+int
+unit_test_suite_runner(struct unit_test_suite *suite)
+{
+ int test_result = TEST_SUCCESS;
+ unsigned int total = 0, skipped = 0, succeeded = 0, failed = 0;
+ uint64_t start, end;
+
+ printf("\n===========================================================\n");
+ printf("Starting Test Suite : %s\n", suite->suite_name);
+
+ start = rte_rdtsc_precise();
+
+ if (suite->setup) {
+ test_result = suite->setup();
+ if (test_result == TEST_FAILED) {
+ printf(" + Test suite setup %s failed!\n",
+ suite->suite_name);
+ printf(" + ------------------------------------------------------- +\n");
+ return 1;
+ }
+ if (test_result == TEST_SKIPPED) {
+ printf(" + Test suite setup %s skipped!\n",
+ suite->suite_name);
+ printf(" + ------------------------------------------------------- +\n");
+ return 0;
+ }
+ }
+
+ while (suite->unit_test_cases[total].testcase) {
+ if (suite->unit_test_cases[total].setup)
+ test_result = suite->unit_test_cases[total].setup();
+
+ if (test_result == TEST_SUCCESS)
+ test_result = suite->unit_test_cases[total].testcase();
+
+ if (suite->unit_test_cases[total].teardown)
+ suite->unit_test_cases[total].teardown();
+
+ if (test_result == TEST_SUCCESS) {
+ succeeded++;
+ printf("TestCase [%2d] : %s passed\n", total,
+ suite->unit_test_cases[total].name);
+ } else if (test_result == TEST_SKIPPED) {
+ skipped++;
+ printf("TestCase [%2d] : %s skipped\n", total,
+ suite->unit_test_cases[total].name);
+ } else {
+ failed++;
+ printf("TestCase [%2d] : %s failed\n", total,
+ suite->unit_test_cases[total].name);
+ }
+
+ total++;
+ }
+
+ /* Run test suite teardown */
+ if (suite->teardown)
+ suite->teardown();
+
+ end = rte_rdtsc_precise();
+
+ printf(" + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +\n");
+ printf(" + Test Suite Summary : %s\n", suite->suite_name);
+ printf(" + Tests Total : %2d\n", total);
+ printf(" + Tests Skipped : %2d\n", skipped);
+ printf(" + Tests Passed : %2d\n", succeeded);
+ printf(" + Tests Failed : %2d\n", failed);
+ printf(" + Tests Lasted : %lg ms\n",
+ ((end - start) * 1000) / (double)rte_get_tsc_hz());
+ printf(" + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +\n");
+
+ return (failed > 0) ? 1 : 0;
+}
+
+const char *
+get_vector_filename(void)
+{
+ return test_params.test_vector_filename;
+}
+
+unsigned int
+get_num_ops(void)
+{
+ return test_params.num_ops;
+}
+
+unsigned int
+get_burst_sz(void)
+{
+ return test_params.burst_sz;
+}
+
+unsigned int
+get_num_lcores(void)
+{
+ return test_params.num_lcores;
+}
+
+double
+get_snr(void)
+{
+ return test_params.snr;
+}
+
+unsigned int
+get_iter_max(void)
+{
+ return test_params.iter_max;
+}
+
+bool
+get_init_device(void)
+{
+ return test_params.init_device;
+}
+
+static void
+print_usage(const char *prog_name)
+{
+ struct test_command *t;
+
+ printf("***Usage: %s [EAL params] [-- [-n/--num-ops NUM_OPS]\n"
+ "\t[-b/--burst-size BURST_SIZE]\n"
+ "\t[-v/--test-vector VECTOR_FILE]\n"
+ "\t[-c/--test-cases TEST_CASE[,TEST_CASE,...]]]\n",
+ prog_name);
+
+ printf("Available testcases: ");
+ TAILQ_FOREACH(t, &commands_list, next)
+ printf("%s ", t->command);
+ printf("\n");
+}
+
+static int
+parse_args(int argc, char **argv, struct test_params *tp)
+{
+ int opt, option_index;
+ unsigned int num_tests = 0;
+ bool test_cases_present = false;
+ bool test_vector_present = false;
+ struct test_command *t;
+ char *tokens[MAX_CMDLINE_TESTCASES];
+ int tc, ret;
+
+ static struct option lgopts[] = {
+ { "num-ops", 1, 0, 'n' },
+ { "burst-size", 1, 0, 'b' },
+ { "test-cases", 1, 0, 'c' },
+ { "test-vector", 1, 0, 'v' },
+ { "lcores", 1, 0, 'l' },
+ { "snr", 1, 0, 's' },
+ { "iter_max", 6, 0, 't' },
+ { "init-device", 0, 0, 'i'},
+ { "help", 0, 0, 'h' },
+ { NULL, 0, 0, 0 }
+ };
+ tp->iter_max = DEFAULT_ITER;
+
+ while ((opt = getopt_long(argc, argv, "hin:b:c:v:l:s:t:", lgopts,
+ &option_index)) != EOF)
+ switch (opt) {
+ case 'n':
+ TEST_ASSERT(strlen(optarg) > 0,
+ "Num of operations is not provided");
+ tp->num_ops = strtol(optarg, NULL, 10);
+ break;
+ case 'b':
+ TEST_ASSERT(strlen(optarg) > 0,
+ "Burst size is not provided");
+ tp->burst_sz = strtol(optarg, NULL, 10);
+ TEST_ASSERT(tp->burst_sz <= MAX_BURST,
+ "Burst size mustn't be greater than %u",
+ MAX_BURST);
+ break;
+ case 'c':
+ TEST_ASSERT(test_cases_present == false,
+ "Test cases provided more than once");
+ test_cases_present = true;
+
+ ret = rte_strsplit(optarg, strlen(optarg),
+ tokens, MAX_CMDLINE_TESTCASES, tc_sep);
+
+ TEST_ASSERT(ret <= MAX_CMDLINE_TESTCASES,
+ "Too many test cases (max=%d)",
+ MAX_CMDLINE_TESTCASES);
+
+ for (tc = 0; tc < ret; ++tc) {
+ /* Find matching test case */
+ TAILQ_FOREACH(t, &commands_list, next)
+ if (!strcmp(tokens[tc], t->command))
+ tp->test_to_run[num_tests] = t;
+
+ TEST_ASSERT(tp->test_to_run[num_tests] != NULL,
+ "Unknown test case: %s",
+ tokens[tc]);
+ ++num_tests;
+ }
+ break;
+ case 'v':
+ TEST_ASSERT(test_vector_present == false,
+ "Test vector provided more than once");
+ test_vector_present = true;
+
+ TEST_ASSERT(strlen(optarg) > 0,
+ "Config file name is null");
+
+ snprintf(tp->test_vector_filename,
+ sizeof(tp->test_vector_filename),
+ "%s", optarg);
+ break;
+ case 's':
+ TEST_ASSERT(strlen(optarg) > 0,
+ "SNR is not provided");
+ tp->snr = strtod(optarg, NULL);
+ break;
+ case 't':
+ TEST_ASSERT(strlen(optarg) > 0,
+ "Iter_max is not provided");
+ tp->iter_max = strtol(optarg, NULL, 10);
+ break;
+ case 'l':
+ TEST_ASSERT(strlen(optarg) > 0,
+ "Num of lcores is not provided");
+ tp->num_lcores = strtol(optarg, NULL, 10);
+ TEST_ASSERT(tp->num_lcores <= RTE_MAX_LCORE,
+ "Num of lcores mustn't be greater than %u",
+ RTE_MAX_LCORE);
+ break;
+ case 'i':
+ /* indicate fpga fec config required */
+ tp->init_device = true;
+ break;
+ case 'h':
+ print_usage(argv[0]);
+ return 0;
+ default:
+ printf("ERROR: Unknown option: -%c\n", opt);
+ return -1;
+ }
+
+ if (tp->num_ops == 0) {
+ printf(
+ "WARNING: Num of operations was not provided or was set 0. Set to default (%u)\n",
+ DEFAULT_OPS);
+ tp->num_ops = DEFAULT_OPS;
+ }
+ if (tp->burst_sz == 0) {
+ printf(
+ "WARNING: Burst size was not provided or was set 0. Set to default (%u)\n",
+ DEFAULT_BURST);
+ tp->burst_sz = DEFAULT_BURST;
+ }
+ if (tp->num_lcores == 0) {
+ printf(
+ "WARNING: Num of lcores was not provided or was set 0. Set to value from RTE config (%u)\n",
+ rte_lcore_count());
+ tp->num_lcores = rte_lcore_count();
+ }
+
+ TEST_ASSERT(tp->burst_sz <= tp->num_ops,
+ "Burst size (%u) mustn't be greater than num ops (%u)",
+ tp->burst_sz, tp->num_ops);
+
+ tp->num_tests = num_tests;
+ return 0;
+}
+
+static int
+run_all_tests(void)
+{
+ int ret = TEST_SUCCESS;
+ struct test_command *t;
+
+ TAILQ_FOREACH(t, &commands_list, next)
+ ret |= (int) t->callback();
+
+ return ret;
+}
+
+static int
+run_parsed_tests(struct test_params *tp)
+{
+ int ret = TEST_SUCCESS;
+ unsigned int i;
+
+ for (i = 0; i < tp->num_tests; ++i)
+ ret |= (int) tp->test_to_run[i]->callback();
+
+ return ret;
+}
+
+int
+main(int argc, char **argv)
+{
+ int ret;
+
+ /* Init EAL */
+ ret = rte_eal_init(argc, argv);
+ if (ret < 0)
+ return 1;
+ argc -= ret;
+ argv += ret;
+
+ /* Parse application arguments (after the EAL ones) */
+ ret = parse_args(argc, argv, &test_params);
+ if (ret < 0) {
+ print_usage(argv[0]);
+ return 1;
+ }
+
+ /* If no argument provided - run all tests */
+ if (test_params.num_tests == 0)
+ return run_all_tests();
+ else
+ return run_parsed_tests(&test_params);
+}
diff --git a/src/spdk/dpdk/app/test-bbdev/main.h b/src/spdk/dpdk/app/test-bbdev/main.h
new file mode 100644
index 000000000..fb3dec832
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/main.h
@@ -0,0 +1,128 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2017 Intel Corporation
+ */
+
+#ifndef _MAIN_H_
+#define _MAIN_H_
+
+#include <stddef.h>
+#include <sys/queue.h>
+
+#include <rte_common.h>
+#include <rte_hexdump.h>
+#include <rte_log.h>
+
+#define TEST_SUCCESS 0
+#define TEST_FAILED -1
+#define TEST_SKIPPED 1
+
+#define MAX_BURST 512U
+#define DEFAULT_BURST 32U
+#define DEFAULT_OPS 64U
+#define DEFAULT_ITER 6U
+
+
+
+#define TEST_ASSERT(cond, msg, ...) do { \
+ if (!(cond)) { \
+ printf("TestCase %s() line %d failed: " \
+ msg "\n", __func__, __LINE__, ##__VA_ARGS__); \
+ return TEST_FAILED; \
+ } \
+} while (0)
+
+/* Compare two buffers (length in bytes) */
+#define TEST_ASSERT_BUFFERS_ARE_EQUAL(a, b, len, msg, ...) do { \
+ if (memcmp((a), (b), len)) { \
+ printf("TestCase %s() line %d failed: " \
+ msg "\n", __func__, __LINE__, ##__VA_ARGS__); \
+ rte_memdump(stdout, "Buffer A", (a), len); \
+ rte_memdump(stdout, "Buffer B", (b), len); \
+ return TEST_FAILED; \
+ } \
+} while (0)
+
+#define TEST_ASSERT_SUCCESS(val, msg, ...) do { \
+ typeof(val) _val = (val); \
+ if (!(_val == 0)) { \
+ printf("TestCase %s() line %d failed (err %d): " \
+ msg "\n", __func__, __LINE__, _val, \
+ ##__VA_ARGS__); \
+ return TEST_FAILED; \
+ } \
+} while (0)
+
+#define TEST_ASSERT_FAIL(val, msg, ...) \
+ TEST_ASSERT_SUCCESS(!(val), msg, ##__VA_ARGS__)
+
+#define TEST_ASSERT_NOT_NULL(val, msg, ...) do { \
+ if ((val) == NULL) { \
+ printf("TestCase %s() line %d failed (null): " \
+ msg "\n", __func__, __LINE__, ##__VA_ARGS__); \
+ return TEST_FAILED; \
+ } \
+} while (0)
+
+struct unit_test_case {
+ int (*setup)(void);
+ void (*teardown)(void);
+ int (*testcase)(void);
+ const char *name;
+};
+
+#define TEST_CASE(testcase) {NULL, NULL, testcase, #testcase}
+
+#define TEST_CASE_ST(setup, teardown, testcase) \
+ {setup, teardown, testcase, #testcase}
+
+#define TEST_CASES_END() {NULL, NULL, NULL, NULL}
+
+struct unit_test_suite {
+ const char *suite_name;
+ int (*setup)(void);
+ void (*teardown)(void);
+ struct unit_test_case unit_test_cases[];
+};
+
+int unit_test_suite_runner(struct unit_test_suite *suite);
+
+typedef int (test_callback)(void);
+TAILQ_HEAD(test_commands_list, test_command);
+struct test_command {
+ TAILQ_ENTRY(test_command) next;
+ const char *command;
+ test_callback *callback;
+};
+
+void add_test_command(struct test_command *t);
+
+/* Register a test function */
+#define REGISTER_TEST_COMMAND(name, testsuite) \
+ static int test_func_##name(void) \
+ { \
+ return unit_test_suite_runner(&testsuite); \
+ } \
+ static struct test_command test_struct_##name = { \
+ .command = RTE_STR(name), \
+ .callback = test_func_##name, \
+ }; \
+ RTE_INIT(test_register_##name) \
+ { \
+ add_test_command(&test_struct_##name); \
+ }
+
+const char *get_vector_filename(void);
+
+unsigned int get_num_ops(void);
+
+unsigned int get_burst_sz(void);
+
+unsigned int get_num_lcores(void);
+
+double get_snr(void);
+
+unsigned int get_iter_max(void);
+
+bool get_init_device(void);
+
+#endif
diff --git a/src/spdk/dpdk/app/test-bbdev/meson.build b/src/spdk/dpdk/app/test-bbdev/meson.build
new file mode 100644
index 000000000..18ab6a8c6
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/meson.build
@@ -0,0 +1,14 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Intel Corporation
+
+sources = files('main.c',
+ 'test_bbdev.c',
+ 'test_bbdev_perf.c',
+ 'test_bbdev_vector.c')
+deps += ['bbdev', 'bus_vdev']
+if dpdk_conf.has('RTE_LIBRTE_PMD_BBDEV_FPGA_LTE_FEC')
+ deps += ['pmd_bbdev_fpga_lte_fec']
+endif
+if dpdk_conf.has('RTE_LIBRTE_PMD_BBDEV_FPGA_5GNR_FEC')
+ deps += ['pmd_bbdev_fpga_5gnr_fec']
+endif
diff --git a/src/spdk/dpdk/app/test-bbdev/test-bbdev.py b/src/spdk/dpdk/app/test-bbdev/test-bbdev.py
new file mode 100755
index 000000000..0194be046
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test-bbdev.py
@@ -0,0 +1,118 @@
+#!/usr/bin/env python
+
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2017 Intel Corporation
+
+import sys
+import os
+import argparse
+import subprocess
+import shlex
+
+from threading import Timer
+
+def kill(process):
+ print "ERROR: Test app timed out"
+ process.kill()
+
+if "RTE_SDK" in os.environ:
+ dpdk_path = os.environ["RTE_SDK"]
+else:
+ dpdk_path = "../.."
+
+if "RTE_TARGET" in os.environ:
+ dpdk_target = os.environ["RTE_TARGET"]
+else:
+ dpdk_target = "x86_64-native-linux-gcc"
+
+parser = argparse.ArgumentParser(
+ description='BBdev Unit Test Application',
+ formatter_class=argparse.ArgumentDefaultsHelpFormatter)
+parser.add_argument("-p", "--testapp-path",
+ help="specifies path to the bbdev test app",
+ default=dpdk_path + "/" + dpdk_target + "/app/testbbdev")
+parser.add_argument("-e", "--eal-params",
+ help="EAL arguments which are passed to the test app",
+ default="--vdev=baseband_null0")
+parser.add_argument("-t", "--timeout",
+ type=int,
+ help="Timeout in seconds",
+ default=300)
+parser.add_argument("-c", "--test-cases",
+ nargs="+",
+ help="Defines test cases to run. Run all if not specified")
+parser.add_argument("-v", "--test-vector",
+ nargs="+",
+ help="Specifies paths to the test vector files.",
+ default=[dpdk_path +
+ "/app/test-bbdev/test_vectors/bbdev_null.data"])
+parser.add_argument("-n", "--num-ops",
+ type=int,
+ help="Number of operations to process on device.",
+ default=32)
+parser.add_argument("-b", "--burst-size",
+ nargs="+",
+ type=int,
+ help="Operations enqueue/dequeue burst size.",
+ default=[32])
+parser.add_argument("-l", "--num-lcores",
+ type=int,
+ help="Number of lcores to run.",
+ default=16)
+parser.add_argument("-i", "--init-device",
+ action='store_true',
+ help="Initialise PF device with default values.")
+
+args = parser.parse_args()
+
+if not os.path.exists(args.testapp_path):
+ print "No such file: " + args.testapp_path
+ sys.exit(1)
+
+params = [args.testapp_path]
+if args.eal_params:
+ params.extend(shlex.split(args.eal_params))
+
+params.extend(["--"])
+
+if args.num_ops:
+ params.extend(["-n", str(args.num_ops)])
+
+if args.num_lcores:
+ params.extend(["-l", str(args.num_lcores)])
+
+if args.test_cases:
+ params.extend(["-c"])
+ params.extend([",".join(args.test_cases)])
+
+if args.init_device:
+ params.extend(["-i"])
+
+
+exit_status = 0
+for vector in args.test_vector:
+ for burst_size in args.burst_size:
+ call_params = params[:]
+ call_params.extend(["-v", vector])
+ call_params.extend(["-b", str(burst_size)])
+ params_string = " ".join(call_params)
+
+ print("Executing: {}".format(params_string))
+ app_proc = subprocess.Popen(call_params)
+ if args.timeout > 0:
+ timer = Timer(args.timeout, kill, [app_proc])
+ timer.start()
+
+ try:
+ app_proc.communicate()
+ except:
+ print("Error: failed to execute: {}".format(params_string))
+ finally:
+ timer.cancel()
+
+ if app_proc.returncode != 0:
+ exit_status = 1
+ print("ERROR TestCase failed. Failed test for vector {}. Return code: {}".format(
+ vector, app_proc.returncode))
+
+sys.exit(exit_status)
diff --git a/src/spdk/dpdk/app/test-bbdev/test_bbdev.c b/src/spdk/dpdk/app/test-bbdev/test_bbdev.c
new file mode 100644
index 000000000..ac06d7320
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_bbdev.c
@@ -0,0 +1,1371 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2017 Intel Corporation
+ */
+
+#include <rte_common.h>
+#include <rte_hexdump.h>
+#include <rte_mbuf.h>
+#include <rte_malloc.h>
+#include <rte_memcpy.h>
+#include <rte_cycles.h>
+
+#include <rte_bus_vdev.h>
+
+#include <rte_bbdev.h>
+#include <rte_bbdev_op.h>
+#include <rte_bbdev_pmd.h>
+
+#include "main.h"
+
+
+#define BBDEV_NAME_NULL ("bbdev_null")
+
+struct bbdev_testsuite_params {
+ struct rte_bbdev_queue_conf qconf;
+};
+
+static struct bbdev_testsuite_params testsuite_params;
+
+static uint8_t null_dev_id;
+
+static int
+testsuite_setup(void)
+{
+ uint8_t nb_devs;
+ int ret;
+ char buf[RTE_BBDEV_NAME_MAX_LEN];
+
+ /* Create test device */
+ snprintf(buf, sizeof(buf), "%s_unittest", BBDEV_NAME_NULL);
+ ret = rte_vdev_init(buf, NULL);
+ TEST_ASSERT(ret == 0, "Failed to create instance of pmd: %s", buf);
+
+ nb_devs = rte_bbdev_count();
+ TEST_ASSERT(nb_devs != 0, "No devices found");
+
+ /* Most recently created device is our device */
+ null_dev_id = nb_devs - 1;
+
+ return TEST_SUCCESS;
+}
+
+static void
+testsuite_teardown(void)
+{
+ char buf[RTE_BBDEV_NAME_MAX_LEN];
+
+ snprintf(buf, sizeof(buf), "%s_unittest", BBDEV_NAME_NULL);
+ rte_vdev_uninit(buf);
+}
+
+static int
+ut_setup(void)
+{
+ struct bbdev_testsuite_params *ts_params = &testsuite_params;
+ uint8_t num_queues;
+
+ /* Valid queue configuration */
+ ts_params->qconf.priority = 0;
+ ts_params->qconf.socket = SOCKET_ID_ANY;
+ ts_params->qconf.deferred_start = 1;
+
+ num_queues = 1;
+ TEST_ASSERT_SUCCESS(rte_bbdev_setup_queues(null_dev_id, num_queues,
+ SOCKET_ID_ANY), "Failed to setup queues for bbdev %u",
+ 0);
+
+ /* Start the device */
+ TEST_ASSERT_SUCCESS(rte_bbdev_start(null_dev_id),
+ "Failed to start bbdev %u", 0);
+
+ return TEST_SUCCESS;
+}
+
+static void
+ut_teardown(void)
+{
+ rte_bbdev_close(null_dev_id);
+}
+
+static int
+test_bbdev_configure_invalid_dev_id(void)
+{
+ uint8_t dev_id;
+ uint8_t num_queues;
+
+ num_queues = 1;
+ for (dev_id = 0; dev_id < RTE_BBDEV_MAX_DEVS; dev_id++) {
+ if (!rte_bbdev_is_valid(dev_id)) {
+ TEST_ASSERT_FAIL(rte_bbdev_setup_queues(dev_id,
+ num_queues, SOCKET_ID_ANY),
+ "Failed test for rte_bbdev_setup_queues: "
+ "invalid dev_num %u", dev_id);
+ TEST_ASSERT(rte_bbdev_intr_enable(dev_id) == -ENODEV,
+ "Failed test for rte_bbdev_intr_enable: "
+ "invalid dev_num %u", dev_id);
+ break;
+ }
+ }
+
+ return TEST_SUCCESS;
+}
+
+static int
+test_bbdev_configure_invalid_num_queues(void)
+{
+ struct rte_bbdev_info info;
+ uint8_t dev_id, num_devs;
+ uint8_t num_queues;
+ int return_value;
+
+ TEST_ASSERT((num_devs = rte_bbdev_count()) >= 1,
+ "Need at least %d devices for test", 1);
+
+ /* valid num_queues values */
+ num_queues = 8;
+
+ /* valid dev_id values */
+ dev_id = null_dev_id;
+
+ /* Stop the device in case it's started so it can be configured */
+ rte_bbdev_stop(dev_id);
+
+ TEST_ASSERT_FAIL(rte_bbdev_setup_queues(dev_id, 0, SOCKET_ID_ANY),
+ "Failed test for rte_bbdev_setup_queues: "
+ "invalid num_queues %d", 0);
+
+ TEST_ASSERT_SUCCESS(rte_bbdev_setup_queues(dev_id, num_queues,
+ SOCKET_ID_ANY),
+ "Failed test for rte_bbdev_setup_queues: "
+ "invalid dev_num %u", dev_id);
+
+ TEST_ASSERT_FAIL(return_value = rte_bbdev_info_get(dev_id, NULL),
+ "Failed test for rte_bbdev_info_get: "
+ "returned value:%i", return_value);
+
+ TEST_ASSERT_SUCCESS(return_value = rte_bbdev_info_get(dev_id, &info),
+ "Failed test for rte_bbdev_info_get: "
+ "invalid return value:%i", return_value);
+
+ TEST_ASSERT(info.num_queues == num_queues,
+ "Failed test for rte_bbdev_info_get: "
+ "invalid num_queues:%u", info.num_queues);
+
+ num_queues = info.drv.max_num_queues;
+ TEST_ASSERT_SUCCESS(rte_bbdev_setup_queues(dev_id, num_queues,
+ SOCKET_ID_ANY),
+ "Failed test for rte_bbdev_setup_queues: "
+ "invalid num_queues: %u", num_queues);
+
+ num_queues++;
+ TEST_ASSERT_FAIL(rte_bbdev_setup_queues(dev_id, num_queues,
+ SOCKET_ID_ANY),
+ "Failed test for rte_bbdev_setup_queues: "
+ "invalid num_queues: %u", num_queues);
+
+ return TEST_SUCCESS;
+}
+
+static int
+test_bbdev_configure_stop_device(void)
+{
+ struct rte_bbdev_info info;
+ uint8_t dev_id;
+ int return_value;
+
+ /* valid dev_id values */
+ dev_id = null_dev_id;
+
+ /* Stop the device so it can be configured */
+ rte_bbdev_stop(dev_id);
+
+ TEST_ASSERT_SUCCESS(return_value = rte_bbdev_info_get(dev_id, &info),
+ "Failed test for rte_bbdev_info_get: "
+ "invalid return value from "
+ "rte_bbdev_info_get function: %i", return_value);
+
+ TEST_ASSERT_SUCCESS(info.started, "Failed test for rte_bbdev_info_get: "
+ "started value: %u", info.started);
+
+ TEST_ASSERT_SUCCESS(rte_bbdev_setup_queues(dev_id,
+ info.drv.max_num_queues, SOCKET_ID_ANY),
+ "Failed test for rte_bbdev_setup_queues: "
+ "device should be stopped, dev_id: %u", dev_id);
+
+ return_value = rte_bbdev_intr_enable(dev_id);
+ TEST_ASSERT(return_value != -EBUSY,
+ "Failed test for rte_bbdev_intr_enable: device should be stopped, dev_id: %u",
+ dev_id);
+
+ /* Start the device so it cannot be configured */
+ TEST_ASSERT_FAIL(rte_bbdev_start(RTE_BBDEV_MAX_DEVS),
+ "Failed to start bbdev %u", dev_id);
+
+ TEST_ASSERT_SUCCESS(rte_bbdev_start(dev_id),
+ "Failed to start bbdev %u", dev_id);
+
+ TEST_ASSERT_SUCCESS(return_value = rte_bbdev_info_get(dev_id, &info),
+ "Failed test for rte_bbdev_info_get: "
+ "invalid return value from "
+ "rte_bbdev_info_get function: %i", return_value);
+
+ TEST_ASSERT_FAIL(info.started, "Failed test for rte_bbdev_info_get: "
+ "started value: %u", info.started);
+
+ TEST_ASSERT_FAIL(rte_bbdev_setup_queues(dev_id,
+ info.drv.max_num_queues, SOCKET_ID_ANY),
+ "Failed test for rte_bbdev_setup_queues: "
+ "device should be started, dev_id: %u", dev_id);
+
+ return_value = rte_bbdev_intr_enable(dev_id);
+ TEST_ASSERT(return_value == -EBUSY,
+ "Failed test for rte_bbdev_intr_enable: device should be started, dev_id: %u",
+ dev_id);
+
+ /* Stop again the device so it can be once again configured */
+ TEST_ASSERT_FAIL(rte_bbdev_stop(RTE_BBDEV_MAX_DEVS),
+ "Failed to start bbdev %u", dev_id);
+
+ TEST_ASSERT_SUCCESS(rte_bbdev_stop(dev_id), "Failed to stop bbdev %u",
+ dev_id);
+
+ TEST_ASSERT_SUCCESS(return_value = rte_bbdev_info_get(dev_id, &info),
+ "Failed test for rte_bbdev_info_get: "
+ "invalid return value from "
+ "rte_bbdev_info_get function: %i", return_value);
+
+ TEST_ASSERT_SUCCESS(info.started, "Failed test for rte_bbdev_info_get: "
+ "started value: %u", info.started);
+
+ TEST_ASSERT_SUCCESS(rte_bbdev_setup_queues(dev_id,
+ info.drv.max_num_queues, SOCKET_ID_ANY),
+ "Failed test for rte_bbdev_setup_queues: "
+ "device should be stopped, dev_id: %u", dev_id);
+
+ return_value = rte_bbdev_intr_enable(dev_id);
+ TEST_ASSERT(return_value != -EBUSY,
+ "Failed test for rte_bbdev_intr_enable: device should be stopped, dev_id: %u",
+ dev_id);
+
+ return TEST_SUCCESS;
+}
+
+static int
+test_bbdev_configure_stop_queue(void)
+{
+ struct bbdev_testsuite_params *ts_params = &testsuite_params;
+ struct rte_bbdev_info info;
+ struct rte_bbdev_queue_info qinfo;
+ uint8_t dev_id;
+ uint16_t queue_id;
+ int return_value;
+
+ /* Valid dev_id values */
+ dev_id = null_dev_id;
+
+ /* Valid queue_id values */
+ queue_id = 0;
+
+ rte_bbdev_stop(dev_id);
+ TEST_ASSERT_SUCCESS(return_value = rte_bbdev_info_get(dev_id, &info),
+ "Failed test for rte_bbdev_info_get: "
+ "invalid return value:%i", return_value);
+
+ /* Valid queue configuration */
+ ts_params->qconf.queue_size = info.drv.queue_size_lim;
+ ts_params->qconf.priority = info.drv.max_ul_queue_priority;
+
+ /* Device - started; queue - started */
+ rte_bbdev_start(dev_id);
+
+ TEST_ASSERT_FAIL(rte_bbdev_queue_configure(dev_id, queue_id,
+ &ts_params->qconf),
+ "Failed test for rte_bbdev_queue_configure: "
+ "queue:%u on device:%u should be stopped",
+ queue_id, dev_id);
+
+ /* Device - stopped; queue - started */
+ rte_bbdev_stop(dev_id);
+
+ TEST_ASSERT_FAIL(rte_bbdev_queue_configure(dev_id, queue_id,
+ &ts_params->qconf),
+ "Failed test for rte_bbdev_queue_configure: "
+ "queue:%u on device:%u should be stopped",
+ queue_id, dev_id);
+
+ TEST_ASSERT_FAIL(rte_bbdev_queue_stop(RTE_BBDEV_MAX_DEVS, queue_id),
+ "Failed test for rte_bbdev_queue_stop "
+ "invalid dev_id ");
+
+ TEST_ASSERT_FAIL(rte_bbdev_queue_stop(dev_id, RTE_MAX_QUEUES_PER_PORT),
+ "Failed test for rte_bbdev_queue_stop "
+ "invalid queue_id ");
+
+ /* Device - stopped; queue - stopped */
+ rte_bbdev_queue_stop(dev_id, queue_id);
+
+ TEST_ASSERT_SUCCESS(rte_bbdev_queue_configure(dev_id, queue_id,
+ &ts_params->qconf),
+ "Failed test for rte_bbdev_queue_configure: "
+ "queue:%u on device:%u should be stopped", queue_id,
+ dev_id);
+
+ TEST_ASSERT_SUCCESS(return_value = rte_bbdev_queue_info_get(dev_id,
+ queue_id, &qinfo),
+ "Failed test for rte_bbdev_info_get: "
+ "invalid return value from "
+ "rte_bbdev_queue_info_get function: %i", return_value);
+
+ TEST_ASSERT(qinfo.conf.socket == ts_params->qconf.socket,
+ "Failed test for rte_bbdev_queue_info_get: "
+ "invalid queue_size:%u", qinfo.conf.socket);
+
+ TEST_ASSERT(qinfo.conf.queue_size == ts_params->qconf.queue_size,
+ "Failed test for rte_bbdev_queue_info_get: "
+ "invalid queue_size:%u", qinfo.conf.queue_size);
+
+ TEST_ASSERT(qinfo.conf.priority == ts_params->qconf.priority,
+ "Failed test for rte_bbdev_queue_info_get: "
+ "invalid queue_size:%u", qinfo.conf.priority);
+
+ TEST_ASSERT(qinfo.conf.deferred_start ==
+ ts_params->qconf.deferred_start,
+ "Failed test for rte_bbdev_queue_info_get: "
+ "invalid queue_size:%u", qinfo.conf.deferred_start);
+
+ /* Device - started; queue - stopped */
+ rte_bbdev_start(dev_id);
+ rte_bbdev_queue_stop(dev_id, queue_id);
+
+ TEST_ASSERT_FAIL(rte_bbdev_queue_configure(dev_id, queue_id,
+ &ts_params->qconf),
+ "Failed test for rte_bbdev_queue_configure: "
+ "queue:%u on device:%u should be stopped", queue_id,
+ dev_id);
+
+ rte_bbdev_stop(dev_id);
+
+ /* After rte_bbdev_start(dev_id):
+ * - queue should be still stopped if deferred_start ==
+ */
+ rte_bbdev_start(dev_id);
+
+ TEST_ASSERT_SUCCESS(return_value = rte_bbdev_queue_info_get(dev_id,
+ queue_id, &qinfo),
+ "Failed test for rte_bbdev_info_get: "
+ "invalid return value from "
+ "rte_bbdev_queue_info_get function: %i", return_value);
+
+ TEST_ASSERT(qinfo.started == 0,
+ "Failed test for rte_bbdev_queue_info_get: "
+ "invalid value for qinfo.started:%u", qinfo.started);
+
+ rte_bbdev_stop(dev_id);
+
+ /* After rte_bbdev_start(dev_id):
+ * - queue should be started if deferred_start ==
+ */
+ ts_params->qconf.deferred_start = 0;
+ rte_bbdev_queue_configure(dev_id, queue_id, &ts_params->qconf);
+ rte_bbdev_start(dev_id);
+
+ TEST_ASSERT_SUCCESS(return_value = rte_bbdev_queue_info_get(dev_id,
+ queue_id, &qinfo),
+ "Failed test for rte_bbdev_info_get: "
+ "invalid return value from "
+ "rte_bbdev_queue_info_get function: %i", return_value);
+
+ TEST_ASSERT(qinfo.started == 1,
+ "Failed test for rte_bbdev_queue_info_get: "
+ "invalid value for qinfo.started:%u", qinfo.started);
+
+ return TEST_SUCCESS;
+}
+
+static int
+test_bbdev_configure_invalid_queue_configure(void)
+{
+ struct bbdev_testsuite_params *ts_params = &testsuite_params;
+ int return_value;
+ struct rte_bbdev_info info;
+ uint8_t dev_id;
+ uint16_t queue_id;
+
+ /* Valid dev_id values */
+ dev_id = null_dev_id;
+
+ /* Valid queue_id values */
+ queue_id = 0;
+
+ rte_bbdev_stop(dev_id);
+
+ TEST_ASSERT_SUCCESS(return_value = rte_bbdev_info_get(dev_id, &info),
+ "Failed test for rte_bbdev_info_get: "
+ "invalid return value:%i", return_value);
+
+ rte_bbdev_queue_stop(dev_id, queue_id);
+
+ ts_params->qconf.queue_size = info.drv.queue_size_lim + 1;
+ TEST_ASSERT_FAIL(rte_bbdev_queue_configure(dev_id, queue_id,
+ &ts_params->qconf),
+ "Failed test for rte_bbdev_queue_configure: "
+ "invalid value qconf.queue_size: %u",
+ ts_params->qconf.queue_size);
+
+ ts_params->qconf.queue_size = info.drv.queue_size_lim;
+ ts_params->qconf.priority = info.drv.max_ul_queue_priority;
+ queue_id = info.num_queues;
+ TEST_ASSERT_FAIL(rte_bbdev_queue_configure(dev_id, queue_id,
+ &ts_params->qconf),
+ "Failed test for rte_bbdev_queue_configure: "
+ "invalid value queue_id: %u", queue_id);
+
+ queue_id = 0;
+ TEST_ASSERT_SUCCESS(rte_bbdev_queue_configure(dev_id, queue_id, NULL),
+ "Failed test for rte_bbdev_queue_configure: "
+ "NULL qconf structure ");
+
+ ts_params->qconf.socket = RTE_MAX_NUMA_NODES;
+ TEST_ASSERT_FAIL(rte_bbdev_queue_configure(dev_id, queue_id,
+ &ts_params->qconf),
+ "Failed test for rte_bbdev_queue_configure: "
+ "invalid socket number ");
+
+ ts_params->qconf.socket = SOCKET_ID_ANY;
+ TEST_ASSERT_SUCCESS(rte_bbdev_queue_configure(dev_id, queue_id,
+ &ts_params->qconf),
+ "Failed test for rte_bbdev_queue_configure: "
+ "invalid value qconf.queue_size: %u",
+ ts_params->qconf.queue_size);
+
+ TEST_ASSERT_FAIL(rte_bbdev_queue_configure(RTE_BBDEV_MAX_DEVS, queue_id,
+ &ts_params->qconf),
+ "Failed test for rte_bbdev_queue_configure: "
+ "invalid dev_id");
+
+ TEST_ASSERT_SUCCESS(rte_bbdev_queue_configure(dev_id, queue_id, NULL),
+ "Failed test for rte_bbdev_queue_configure: "
+ "invalid value qconf.queue_size: %u",
+ ts_params->qconf.queue_size);
+
+ return TEST_SUCCESS;
+}
+
+static int
+test_bbdev_op_pool(void)
+{
+ struct rte_mempool *mp;
+
+ unsigned int dec_size = sizeof(struct rte_bbdev_dec_op);
+ unsigned int enc_size = sizeof(struct rte_bbdev_enc_op);
+
+ const char *pool_dec = "Test_DEC";
+ const char *pool_enc = "Test_ENC";
+
+ /* Valid pool configuration */
+ uint32_t size = 256;
+ uint32_t cache_size = 128;
+
+ TEST_ASSERT(rte_bbdev_op_pool_create(NULL,
+ RTE_BBDEV_OP_TURBO_DEC, size, cache_size, 0) == NULL,
+ "Failed test for rte_bbdev_op_pool_create: "
+ "NULL name parameter");
+
+ TEST_ASSERT((mp = rte_bbdev_op_pool_create(pool_dec,
+ RTE_BBDEV_OP_TURBO_DEC, size, cache_size, 0)) != NULL,
+ "Failed test for rte_bbdev_op_pool_create: "
+ "returned value is empty");
+
+ TEST_ASSERT(mp->size == size,
+ "Failed test for rte_bbdev_op_pool_create: "
+ "invalid size of the mempool, mp->size: %u", mp->size);
+
+ TEST_ASSERT(mp->cache_size == cache_size,
+ "Failed test for rte_bbdev_op_pool_create: "
+ "invalid size of the mempool, mp->size: %u",
+ mp->cache_size);
+
+ TEST_ASSERT_SUCCESS(strcmp(mp->name, pool_dec),
+ "Failed test for rte_bbdev_op_pool_create: "
+ "invalid name of mempool, mp->name: %s", mp->name);
+
+ TEST_ASSERT(mp->elt_size == dec_size,
+ "Failed test for rte_bbdev_op_pool_create: "
+ "invalid element size for RTE_BBDEV_OP_TURBO_DEC, "
+ "mp->elt_size: %u", mp->elt_size);
+
+ rte_mempool_free(mp);
+
+ TEST_ASSERT((mp = rte_bbdev_op_pool_create(pool_enc,
+ RTE_BBDEV_OP_TURBO_ENC, size, cache_size, 0)) != NULL,
+ "Failed test for rte_bbdev_op_pool_create: "
+ "returned value is empty");
+
+ TEST_ASSERT(mp->elt_size == enc_size,
+ "Failed test for rte_bbdev_op_pool_create: "
+ "invalid element size for RTE_BBDEV_OP_TURBO_ENC, "
+ "mp->elt_size: %u", mp->elt_size);
+
+ rte_mempool_free(mp);
+
+ TEST_ASSERT((mp = rte_bbdev_op_pool_create("Test_NONE",
+ RTE_BBDEV_OP_NONE, size, cache_size, 0)) != NULL,
+ "Failed test for rte_bbdev_op_pool_create: "
+ "returned value is empty for RTE_BBDEV_OP_NONE");
+
+ TEST_ASSERT(mp->elt_size == (enc_size > dec_size ? enc_size : dec_size),
+ "Failed test for rte_bbdev_op_pool_create: "
+ "invalid size for RTE_BBDEV_OP_NONE, mp->elt_size: %u",
+ mp->elt_size);
+
+ rte_mempool_free(mp);
+
+ TEST_ASSERT((mp = rte_bbdev_op_pool_create("Test_INV",
+ RTE_BBDEV_OP_TYPE_COUNT, size, cache_size, 0)) == NULL,
+ "Failed test for rte_bbdev_op_pool_create: "
+ "returned value is not NULL for invalid type");
+
+ /* Invalid pool configuration */
+ size = 128;
+ cache_size = 256;
+
+ TEST_ASSERT((mp = rte_bbdev_op_pool_create("Test_InvSize",
+ RTE_BBDEV_OP_NONE, size, cache_size, 0)) == NULL,
+ "Failed test for rte_bbdev_op_pool_create: "
+ "returned value should be empty "
+ "because size of per-lcore local cache "
+ "is greater than size of the mempool.");
+
+ return TEST_SUCCESS;
+}
+
+/**
+ * Create pool of OP types RTE_BBDEV_OP_NONE, RTE_BBDEV_OP_TURBO_DEC and
+ * RTE_BBDEV_OP_TURBO_ENC and check that only ops of that type can be
+ * allocated
+ */
+static int
+test_bbdev_op_type(void)
+{
+ struct rte_mempool *mp_dec;
+
+ const unsigned int OPS_COUNT = 32;
+ struct rte_bbdev_dec_op *dec_ops_arr[OPS_COUNT];
+ struct rte_bbdev_enc_op *enc_ops_arr[OPS_COUNT];
+
+ const char *pool_dec = "Test_op_dec";
+
+ /* Valid pool configuration */
+ uint32_t num_elements = 256;
+ uint32_t cache_size = 128;
+
+ /* mempool type : RTE_BBDEV_OP_TURBO_DEC */
+ mp_dec = rte_bbdev_op_pool_create(pool_dec,
+ RTE_BBDEV_OP_TURBO_DEC, num_elements, cache_size, 0);
+ TEST_ASSERT(mp_dec != NULL, "Failed to create %s mempool", pool_dec);
+
+ TEST_ASSERT(rte_bbdev_dec_op_alloc_bulk(mp_dec, dec_ops_arr, 1) == 0,
+ "Failed test for rte_bbdev_op_alloc_bulk TURBO_DEC: "
+ "OPs type: RTE_BBDEV_OP_TURBO_DEC");
+
+ TEST_ASSERT(rte_bbdev_enc_op_alloc_bulk(mp_dec, enc_ops_arr, 1) != 0,
+ "Failed test for rte_bbdev_op_alloc_bulk TURBO_DEC: "
+ "OPs type: RTE_BBDEV_OP_TURBO_ENC");
+
+ rte_mempool_free(mp_dec);
+
+ return TEST_SUCCESS;
+}
+
+static int
+test_bbdev_op_pool_size(void)
+{
+ struct rte_mempool *mp_none;
+
+ const unsigned int OPS_COUNT = 128;
+ struct rte_bbdev_enc_op *ops_enc_arr[OPS_COUNT];
+ struct rte_bbdev_enc_op *ops_ext_arr[OPS_COUNT];
+ struct rte_bbdev_enc_op *ops_ext2_arr[OPS_COUNT];
+
+ const char *pool_none = "Test_pool_size";
+
+ /* Valid pool configuration */
+ uint32_t num_elements = 256;
+ uint32_t cache_size = 0;
+
+ /* Create mempool type : RTE_BBDEV_OP_TURBO_ENC, size : 256 */
+ mp_none = rte_bbdev_op_pool_create(pool_none, RTE_BBDEV_OP_TURBO_ENC,
+ num_elements, cache_size, 0);
+ TEST_ASSERT(mp_none != NULL, "Failed to create %s mempool", pool_none);
+
+ /* Add 128 RTE_BBDEV_OP_TURBO_ENC ops */
+ rte_bbdev_enc_op_alloc_bulk(mp_none, ops_enc_arr, OPS_COUNT);
+
+ /* Add 128 RTE_BBDEV_OP_TURBO_ENC ops */
+ TEST_ASSERT(rte_bbdev_enc_op_alloc_bulk(mp_none, ops_ext_arr,
+ OPS_COUNT) == 0,
+ "Failed test for allocating bbdev ops: "
+ "Mempool size: 256, Free : 128, Attempted to add: 128");
+
+ /* Try adding 128 more RTE_BBDEV_OP_TURBO_ENC ops, this should fail */
+ TEST_ASSERT(rte_bbdev_enc_op_alloc_bulk(mp_none, ops_ext2_arr,
+ OPS_COUNT) != 0,
+ "Failed test for allocating bbdev ops: "
+ "Mempool size: 256, Free : 0, Attempted to add: 128");
+
+ /* Free-up 128 RTE_BBDEV_OP_TURBO_ENC ops */
+ rte_bbdev_enc_op_free_bulk(ops_enc_arr, OPS_COUNT);
+
+ /* Try adding 128 RTE_BBDEV_OP_TURBO_DEC ops, this should succeed */
+ /* Cache size > 0 causes reallocation of ops size > 127 fail */
+ TEST_ASSERT(rte_bbdev_enc_op_alloc_bulk(mp_none, ops_ext2_arr,
+ OPS_COUNT) == 0,
+ "Failed test for allocating ops after mempool freed: "
+ "Mempool size: 256, Free : 128, Attempted to add: 128");
+
+ rte_mempool_free(mp_none);
+
+ return TEST_SUCCESS;
+}
+
+static int
+test_bbdev_count(void)
+{
+ uint8_t num_devs, num_valid_devs = 0;
+
+ for (num_devs = 0; num_devs < RTE_BBDEV_MAX_DEVS; num_devs++) {
+ if (rte_bbdev_is_valid(num_devs))
+ num_valid_devs++;
+ }
+
+ num_devs = rte_bbdev_count();
+ TEST_ASSERT(num_valid_devs == num_devs,
+ "Failed test for rte_bbdev_is_valid: "
+ "invalid num_devs %u ", num_devs);
+
+ return TEST_SUCCESS;
+}
+
+static int
+test_bbdev_stats(void)
+{
+ uint8_t dev_id = null_dev_id;
+ uint16_t queue_id = 0;
+ struct rte_bbdev_dec_op *dec_ops[4096] = { 0 };
+ struct rte_bbdev_dec_op *dec_proc_ops[4096] = { 0 };
+ struct rte_bbdev_enc_op *enc_ops[4096] = { 0 };
+ struct rte_bbdev_enc_op *enc_proc_ops[4096] = { 0 };
+ uint16_t num_ops = 236;
+ struct rte_bbdev_stats stats;
+ struct bbdev_testsuite_params *ts_params = &testsuite_params;
+
+ TEST_ASSERT_SUCCESS(rte_bbdev_queue_stop(dev_id, queue_id),
+ "Failed to stop queue %u on device %u ", queue_id,
+ dev_id);
+ TEST_ASSERT_SUCCESS(rte_bbdev_stop(dev_id),
+ "Failed to stop bbdev %u ", dev_id);
+
+ TEST_ASSERT_SUCCESS(rte_bbdev_queue_configure(dev_id, queue_id,
+ &ts_params->qconf),
+ "Failed to configure queue %u on device %u ",
+ queue_id, dev_id);
+
+ TEST_ASSERT_SUCCESS(rte_bbdev_start(dev_id),
+ "Failed to start bbdev %u ", dev_id);
+
+ TEST_ASSERT_SUCCESS(rte_bbdev_queue_start(dev_id, queue_id),
+ "Failed to start queue %u on device %u ", queue_id,
+ dev_id);
+
+ TEST_ASSERT_SUCCESS(rte_bbdev_queue_start(dev_id, queue_id),
+ "Failed to start queue %u on device %u ", queue_id,
+ dev_id);
+
+ /* Tests after enqueue operation */
+ rte_bbdev_enqueue_enc_ops(dev_id, queue_id, enc_ops, num_ops);
+ rte_bbdev_enqueue_dec_ops(dev_id, queue_id, dec_ops, num_ops);
+
+ TEST_ASSERT_FAIL(rte_bbdev_stats_get(RTE_BBDEV_MAX_DEVS, &stats),
+ "Failed test for rte_bbdev_stats_get on device %u ",
+ dev_id);
+
+ TEST_ASSERT_FAIL(rte_bbdev_stats_get(dev_id, NULL),
+ "Failed test for rte_bbdev_stats_get on device %u ",
+ dev_id);
+
+ TEST_ASSERT_SUCCESS(rte_bbdev_stats_get(dev_id, &stats),
+ "Failed test for rte_bbdev_stats_get on device %u ",
+ dev_id);
+
+ TEST_ASSERT(stats.enqueued_count == 2 * num_ops,
+ "Failed test for rte_bbdev_enqueue_ops: "
+ "invalid enqueued_count %" PRIu64 " ",
+ stats.enqueued_count);
+
+ TEST_ASSERT(stats.dequeued_count == 0,
+ "Failed test for rte_bbdev_stats_reset: "
+ "invalid dequeued_count %" PRIu64 " ",
+ stats.dequeued_count);
+
+ /* Tests after dequeue operation */
+ rte_bbdev_dequeue_enc_ops(dev_id, queue_id, enc_proc_ops, num_ops);
+ rte_bbdev_dequeue_dec_ops(dev_id, queue_id, dec_proc_ops, num_ops);
+
+ TEST_ASSERT_SUCCESS(rte_bbdev_stats_get(dev_id, &stats),
+ "Failed test for rte_bbdev_stats_get on device %u ",
+ dev_id);
+
+ TEST_ASSERT(stats.dequeued_count == 2 * num_ops,
+ "Failed test for rte_bbdev_dequeue_ops: "
+ "invalid enqueued_count %" PRIu64 " ",
+ stats.dequeued_count);
+
+ TEST_ASSERT(stats.enqueue_err_count == 0,
+ "Failed test for rte_bbdev_stats_reset: "
+ "invalid enqueue_err_count %" PRIu64 " ",
+ stats.enqueue_err_count);
+
+ TEST_ASSERT(stats.dequeue_err_count == 0,
+ "Failed test for rte_bbdev_stats_reset: "
+ "invalid dequeue_err_count %" PRIu64 " ",
+ stats.dequeue_err_count);
+
+ /* Tests after reset operation */
+ TEST_ASSERT_FAIL(rte_bbdev_stats_reset(RTE_BBDEV_MAX_DEVS),
+ "Failed to reset statistic for device %u ", dev_id);
+
+ TEST_ASSERT_SUCCESS(rte_bbdev_stats_reset(dev_id),
+ "Failed to reset statistic for device %u ", dev_id);
+ TEST_ASSERT_SUCCESS(rte_bbdev_stats_get(dev_id, &stats),
+ "Failed test for rte_bbdev_stats_get on device %u ",
+ dev_id);
+
+ TEST_ASSERT(stats.enqueued_count == 0,
+ "Failed test for rte_bbdev_stats_reset: "
+ "invalid enqueued_count %" PRIu64 " ",
+ stats.enqueued_count);
+
+ TEST_ASSERT(stats.dequeued_count == 0,
+ "Failed test for rte_bbdev_stats_reset: "
+ "invalid dequeued_count %" PRIu64 " ",
+ stats.dequeued_count);
+
+ TEST_ASSERT(stats.enqueue_err_count == 0,
+ "Failed test for rte_bbdev_stats_reset: "
+ "invalid enqueue_err_count %" PRIu64 " ",
+ stats.enqueue_err_count);
+
+ TEST_ASSERT(stats.dequeue_err_count == 0,
+ "Failed test for rte_bbdev_stats_reset: "
+ "invalid dequeue_err_count %" PRIu64 " ",
+ stats.dequeue_err_count);
+
+ return TEST_SUCCESS;
+}
+
+static int
+test_bbdev_driver_init(void)
+{
+ struct rte_bbdev *dev1, *dev2;
+ const char *name = "dev_name";
+ char name_tmp[32];
+ int num_devs, num_devs_tmp;
+
+ dev1 = rte_bbdev_allocate(NULL);
+ TEST_ASSERT(dev1 == NULL,
+ "Failed initialize bbdev driver with NULL name");
+
+ dev1 = rte_bbdev_allocate(name);
+ TEST_ASSERT(dev1 != NULL, "Failed to initialize bbdev driver");
+
+ dev2 = rte_bbdev_allocate(name);
+ TEST_ASSERT(dev2 == NULL,
+ "Failed to initialize bbdev driver: "
+ "driver with the same name has been initialized before");
+
+ num_devs = rte_bbdev_count() - 1;
+ num_devs_tmp = num_devs;
+
+ /* Initialize the maximum amount of devices */
+ do {
+ sprintf(name_tmp, "%s%i", "name_", num_devs);
+ dev2 = rte_bbdev_allocate(name_tmp);
+ TEST_ASSERT(dev2 != NULL,
+ "Failed to initialize bbdev driver");
+ ++num_devs;
+ } while (num_devs < (RTE_BBDEV_MAX_DEVS - 1));
+
+ sprintf(name_tmp, "%s%i", "name_", num_devs);
+ dev2 = rte_bbdev_allocate(name_tmp);
+ TEST_ASSERT(dev2 == NULL, "Failed to initialize bbdev driver number %d "
+ "more drivers than RTE_BBDEV_MAX_DEVS: %d ", num_devs,
+ RTE_BBDEV_MAX_DEVS);
+
+ num_devs--;
+
+ while (num_devs >= num_devs_tmp) {
+ sprintf(name_tmp, "%s%i", "name_", num_devs);
+ dev2 = rte_bbdev_get_named_dev(name_tmp);
+ TEST_ASSERT_SUCCESS(rte_bbdev_release(dev2),
+ "Failed to uninitialize bbdev driver %s ",
+ name_tmp);
+ num_devs--;
+ }
+
+ TEST_ASSERT(dev1->data->dev_id < RTE_BBDEV_MAX_DEVS,
+ "Failed test rte_bbdev_allocate: "
+ "invalid dev_id %" PRIu8 ", max number of devices %d ",
+ dev1->data->dev_id, RTE_BBDEV_MAX_DEVS);
+
+ TEST_ASSERT(dev1->state == RTE_BBDEV_INITIALIZED,
+ "Failed test rte_bbdev_allocate: "
+ "invalid state %d (0 - RTE_BBDEV_UNUSED, 1 - RTE_BBDEV_INITIALIZED",
+ dev1->state);
+
+ TEST_ASSERT_FAIL(rte_bbdev_release(NULL),
+ "Failed to uninitialize bbdev driver with NULL bbdev");
+
+ sprintf(name_tmp, "%s", "invalid_name");
+ dev2 = rte_bbdev_get_named_dev(name_tmp);
+ TEST_ASSERT_FAIL(rte_bbdev_release(dev2),
+ "Failed to uninitialize bbdev driver with invalid name");
+
+ dev2 = rte_bbdev_get_named_dev(name);
+ TEST_ASSERT_SUCCESS(rte_bbdev_release(dev2),
+ "Failed to uninitialize bbdev driver: %s ", name);
+
+ return TEST_SUCCESS;
+}
+
+static void
+event_callback(uint16_t dev_id, enum rte_bbdev_event_type type, void *param,
+ void *ret_param)
+{
+ RTE_SET_USED(dev_id);
+ RTE_SET_USED(ret_param);
+
+ if (param == NULL)
+ return;
+
+ if (type == RTE_BBDEV_EVENT_UNKNOWN ||
+ type == RTE_BBDEV_EVENT_ERROR ||
+ type == RTE_BBDEV_EVENT_MAX)
+ *(int *)param = type;
+}
+
+static int
+test_bbdev_callback(void)
+{
+ struct rte_bbdev *dev1, *dev2;
+ const char *name = "dev_name1";
+ const char *name2 = "dev_name2";
+ int event_status;
+ uint8_t invalid_dev_id = RTE_BBDEV_MAX_DEVS;
+ enum rte_bbdev_event_type invalid_event_type = RTE_BBDEV_EVENT_MAX;
+ uint8_t dev_id;
+
+ dev1 = rte_bbdev_allocate(name);
+ TEST_ASSERT(dev1 != NULL, "Failed to initialize bbdev driver");
+
+ /*
+ * RTE_BBDEV_EVENT_UNKNOWN - unregistered
+ * RTE_BBDEV_EVENT_ERROR - unregistered
+ */
+ event_status = -1;
+ rte_bbdev_pmd_callback_process(dev1, RTE_BBDEV_EVENT_UNKNOWN, NULL);
+ rte_bbdev_pmd_callback_process(dev1, RTE_BBDEV_EVENT_ERROR, NULL);
+ TEST_ASSERT(event_status == -1,
+ "Failed test for rte_bbdev_pmd_callback_process: "
+ "events were not registered ");
+
+ TEST_ASSERT_FAIL(rte_bbdev_callback_register(dev1->data->dev_id,
+ RTE_BBDEV_EVENT_MAX, event_callback, NULL),
+ "Failed to callback register for RTE_BBDEV_EVENT_MAX ");
+
+ TEST_ASSERT_FAIL(rte_bbdev_callback_unregister(dev1->data->dev_id,
+ RTE_BBDEV_EVENT_MAX, event_callback, NULL),
+ "Failed to unregister RTE_BBDEV_EVENT_MAX ");
+
+ /*
+ * RTE_BBDEV_EVENT_UNKNOWN - registered
+ * RTE_BBDEV_EVENT_ERROR - unregistered
+ */
+ TEST_ASSERT_SUCCESS(rte_bbdev_callback_register(dev1->data->dev_id,
+ RTE_BBDEV_EVENT_UNKNOWN, event_callback, &event_status),
+ "Failed to callback rgstr for RTE_BBDEV_EVENT_UNKNOWN");
+
+ rte_bbdev_pmd_callback_process(dev1, RTE_BBDEV_EVENT_UNKNOWN, NULL);
+ TEST_ASSERT(event_status == (int) RTE_BBDEV_EVENT_UNKNOWN,
+ "Failed test for rte_bbdev_pmd_callback_process "
+ "for RTE_BBDEV_EVENT_UNKNOWN ");
+
+ rte_bbdev_pmd_callback_process(dev1, RTE_BBDEV_EVENT_ERROR, NULL);
+ TEST_ASSERT(event_status == (int) RTE_BBDEV_EVENT_UNKNOWN,
+ "Failed test for rte_bbdev_pmd_callback_process: "
+ "event RTE_BBDEV_EVENT_ERROR was not registered ");
+
+ /*
+ * RTE_BBDEV_EVENT_UNKNOWN - registered
+ * RTE_BBDEV_EVENT_ERROR - registered
+ */
+ TEST_ASSERT_SUCCESS(rte_bbdev_callback_register(dev1->data->dev_id,
+ RTE_BBDEV_EVENT_ERROR, event_callback, &event_status),
+ "Failed to callback rgstr for RTE_BBDEV_EVENT_ERROR ");
+
+ TEST_ASSERT_SUCCESS(rte_bbdev_callback_register(dev1->data->dev_id,
+ RTE_BBDEV_EVENT_ERROR, event_callback, &event_status),
+ "Failed to callback register for RTE_BBDEV_EVENT_ERROR"
+ "(re-registration) ");
+
+ event_status = -1;
+ rte_bbdev_pmd_callback_process(dev1, RTE_BBDEV_EVENT_UNKNOWN, NULL);
+ TEST_ASSERT(event_status == (int) RTE_BBDEV_EVENT_UNKNOWN,
+ "Failed test for rte_bbdev_pmd_callback_process "
+ "for RTE_BBDEV_EVENT_UNKNOWN ");
+
+ rte_bbdev_pmd_callback_process(dev1, RTE_BBDEV_EVENT_ERROR, NULL);
+ TEST_ASSERT(event_status == (int) RTE_BBDEV_EVENT_ERROR,
+ "Failed test for rte_bbdev_pmd_callback_process "
+ "for RTE_BBDEV_EVENT_ERROR ");
+
+ /*
+ * RTE_BBDEV_EVENT_UNKNOWN - registered
+ * RTE_BBDEV_EVENT_ERROR - unregistered
+ */
+ TEST_ASSERT_SUCCESS(rte_bbdev_callback_unregister(dev1->data->dev_id,
+ RTE_BBDEV_EVENT_ERROR, event_callback, &event_status),
+ "Failed to unregister RTE_BBDEV_EVENT_ERROR ");
+
+ event_status = -1;
+ rte_bbdev_pmd_callback_process(dev1, RTE_BBDEV_EVENT_UNKNOWN, NULL);
+ TEST_ASSERT(event_status == (int) RTE_BBDEV_EVENT_UNKNOWN,
+ "Failed test for rte_bbdev_pmd_callback_process "
+ "for RTE_BBDEV_EVENT_UNKNOWN ");
+
+ rte_bbdev_pmd_callback_process(dev1, RTE_BBDEV_EVENT_ERROR, NULL);
+ TEST_ASSERT(event_status == (int) RTE_BBDEV_EVENT_UNKNOWN,
+ "Failed test for rte_bbdev_pmd_callback_process: "
+ "event RTE_BBDEV_EVENT_ERROR was unregistered ");
+
+ /* rte_bbdev_callback_register with invalid inputs */
+ TEST_ASSERT_FAIL(rte_bbdev_callback_register(invalid_dev_id,
+ RTE_BBDEV_EVENT_ERROR, event_callback, &event_status),
+ "Failed test for rte_bbdev_callback_register "
+ "for invalid_dev_id ");
+
+ TEST_ASSERT_FAIL(rte_bbdev_callback_register(dev1->data->dev_id,
+ invalid_event_type, event_callback, &event_status),
+ "Failed to callback register for invalid event type ");
+
+ TEST_ASSERT_FAIL(rte_bbdev_callback_register(dev1->data->dev_id,
+ RTE_BBDEV_EVENT_ERROR, NULL, &event_status),
+ "Failed to callback register - no callback function ");
+
+ /* The impact of devices on each other */
+ dev2 = rte_bbdev_allocate(name2);
+ TEST_ASSERT(dev2 != NULL,
+ "Failed to initialize bbdev driver");
+
+ /*
+ * dev2:
+ * RTE_BBDEV_EVENT_UNKNOWN - unregistered
+ * RTE_BBDEV_EVENT_ERROR - unregistered
+ */
+ event_status = -1;
+ rte_bbdev_pmd_callback_process(dev2, RTE_BBDEV_EVENT_UNKNOWN, NULL);
+ rte_bbdev_pmd_callback_process(dev2, RTE_BBDEV_EVENT_ERROR, NULL);
+ TEST_ASSERT(event_status == -1,
+ "Failed test for rte_bbdev_pmd_callback_process: "
+ "events were not registered ");
+
+ /*
+ * dev1: RTE_BBDEV_EVENT_ERROR - unregistered
+ * dev2: RTE_BBDEV_EVENT_ERROR - registered
+ */
+ TEST_ASSERT_SUCCESS(rte_bbdev_callback_register(dev2->data->dev_id,
+ RTE_BBDEV_EVENT_ERROR, event_callback, &event_status),
+ "Failed to callback rgstr for RTE_BBDEV_EVENT_ERROR");
+
+ rte_bbdev_pmd_callback_process(dev1, RTE_BBDEV_EVENT_ERROR, NULL);
+ TEST_ASSERT(event_status == -1,
+ "Failed test for rte_bbdev_pmd_callback_process in dev1 "
+ "for RTE_BBDEV_EVENT_ERROR ");
+
+ rte_bbdev_pmd_callback_process(dev2, RTE_BBDEV_EVENT_ERROR, NULL);
+ TEST_ASSERT(event_status == (int) RTE_BBDEV_EVENT_ERROR,
+ "Failed test for rte_bbdev_pmd_callback_process in dev2 "
+ "for RTE_BBDEV_EVENT_ERROR ");
+
+ /*
+ * dev1: RTE_BBDEV_EVENT_UNKNOWN - registered
+ * dev2: RTE_BBDEV_EVENT_UNKNOWN - unregistered
+ */
+ TEST_ASSERT_SUCCESS(rte_bbdev_callback_register(dev2->data->dev_id,
+ RTE_BBDEV_EVENT_UNKNOWN, event_callback, &event_status),
+ "Failed to callback register for RTE_BBDEV_EVENT_UNKNOWN "
+ "in dev 2 ");
+
+ rte_bbdev_pmd_callback_process(dev2, RTE_BBDEV_EVENT_UNKNOWN, NULL);
+ TEST_ASSERT(event_status == (int) RTE_BBDEV_EVENT_UNKNOWN,
+ "Failed test for rte_bbdev_pmd_callback_process in dev2"
+ " for RTE_BBDEV_EVENT_UNKNOWN ");
+
+ TEST_ASSERT_SUCCESS(rte_bbdev_callback_unregister(dev2->data->dev_id,
+ RTE_BBDEV_EVENT_UNKNOWN, event_callback, &event_status),
+ "Failed to unregister RTE_BBDEV_EVENT_UNKNOWN ");
+
+ TEST_ASSERT_SUCCESS(rte_bbdev_callback_unregister(dev2->data->dev_id,
+ RTE_BBDEV_EVENT_UNKNOWN, event_callback, &event_status),
+ "Failed to unregister RTE_BBDEV_EVENT_UNKNOWN : "
+ "unregister function called once again ");
+
+ event_status = -1;
+ rte_bbdev_pmd_callback_process(dev2, RTE_BBDEV_EVENT_UNKNOWN, NULL);
+ TEST_ASSERT(event_status == -1,
+ "Failed test for rte_bbdev_pmd_callback_process in dev2"
+ " for RTE_BBDEV_EVENT_UNKNOWN ");
+
+ rte_bbdev_pmd_callback_process(dev1, RTE_BBDEV_EVENT_UNKNOWN, NULL);
+ TEST_ASSERT(event_status == (int) RTE_BBDEV_EVENT_UNKNOWN,
+ "Failed test for rte_bbdev_pmd_callback_process in dev2 "
+ "for RTE_BBDEV_EVENT_UNKNOWN ");
+
+ /* rte_bbdev_pmd_callback_process with invalid inputs */
+ rte_bbdev_pmd_callback_process(NULL, RTE_BBDEV_EVENT_UNKNOWN, NULL);
+
+ event_status = -1;
+ rte_bbdev_pmd_callback_process(dev1, invalid_event_type, NULL);
+ TEST_ASSERT(event_status == -1,
+ "Failed test for rte_bbdev_pmd_callback_process: "
+ "for invalid event type ");
+
+ /* rte_dev_callback_unregister with invalid inputs */
+ TEST_ASSERT_FAIL(rte_bbdev_callback_unregister(invalid_dev_id,
+ RTE_BBDEV_EVENT_UNKNOWN, event_callback, &event_status),
+ "Failed test for rte_dev_callback_unregister "
+ "for invalid_dev_id ");
+
+ TEST_ASSERT_FAIL(rte_bbdev_callback_unregister(dev1->data->dev_id,
+ invalid_event_type, event_callback, &event_status),
+ "Failed rte_dev_callback_unregister "
+ "for invalid event type ");
+
+ TEST_ASSERT_FAIL(rte_bbdev_callback_unregister(dev1->data->dev_id,
+ invalid_event_type, NULL, &event_status),
+ "Failed rte_dev_callback_unregister "
+ "when no callback function ");
+
+ dev_id = dev1->data->dev_id;
+
+ rte_bbdev_release(dev1);
+ rte_bbdev_release(dev2);
+
+ TEST_ASSERT_FAIL(rte_bbdev_callback_register(dev_id,
+ RTE_BBDEV_EVENT_ERROR, event_callback, &event_status),
+ "Failed test for rte_bbdev_callback_register: "
+ "function called after rte_bbdev_driver_uninit .");
+
+ TEST_ASSERT_FAIL(rte_bbdev_callback_unregister(dev_id,
+ RTE_BBDEV_EVENT_ERROR, event_callback, &event_status),
+ "Failed test for rte_dev_callback_unregister: "
+ "function called after rte_bbdev_driver_uninit. ");
+
+ event_status = -1;
+ rte_bbdev_pmd_callback_process(dev1, RTE_BBDEV_EVENT_UNKNOWN, NULL);
+ rte_bbdev_pmd_callback_process(dev1, RTE_BBDEV_EVENT_ERROR, NULL);
+ rte_bbdev_pmd_callback_process(dev2, RTE_BBDEV_EVENT_UNKNOWN, NULL);
+ rte_bbdev_pmd_callback_process(dev2, RTE_BBDEV_EVENT_ERROR, NULL);
+ TEST_ASSERT(event_status == -1,
+ "Failed test for rte_bbdev_pmd_callback_process: "
+ "callback function was called after rte_bbdev_driver_uninit");
+
+ return TEST_SUCCESS;
+}
+
+static int
+test_bbdev_invalid_driver(void)
+{
+ struct rte_bbdev dev1, *dev2;
+ uint8_t dev_id = null_dev_id;
+ uint16_t queue_id = 0;
+ struct rte_bbdev_stats stats;
+ struct bbdev_testsuite_params *ts_params = &testsuite_params;
+ struct rte_bbdev_queue_info qinfo;
+ struct rte_bbdev_ops dev_ops_tmp;
+
+ TEST_ASSERT_SUCCESS(rte_bbdev_stop(dev_id), "Failed to stop bbdev %u ",
+ dev_id);
+
+ dev1 = rte_bbdev_devices[dev_id];
+ dev2 = &rte_bbdev_devices[dev_id];
+
+ /* Tests for rte_bbdev_setup_queues */
+ dev2->dev_ops = NULL;
+ TEST_ASSERT_FAIL(rte_bbdev_setup_queues(dev_id, 1, SOCKET_ID_ANY),
+ "Failed test for rte_bbdev_setup_queues: "
+ "NULL dev_ops structure ");
+ dev2->dev_ops = dev1.dev_ops;
+
+ dev_ops_tmp = *dev2->dev_ops;
+ dev_ops_tmp.info_get = NULL;
+ dev2->dev_ops = &dev_ops_tmp;
+ TEST_ASSERT_FAIL(rte_bbdev_setup_queues(dev_id, 1, SOCKET_ID_ANY),
+ "Failed test for rte_bbdev_setup_queues: "
+ "NULL info_get ");
+ dev2->dev_ops = dev1.dev_ops;
+
+ dev_ops_tmp = *dev2->dev_ops;
+ dev_ops_tmp.queue_release = NULL;
+ dev2->dev_ops = &dev_ops_tmp;
+ TEST_ASSERT_FAIL(rte_bbdev_setup_queues(dev_id, 1, SOCKET_ID_ANY),
+ "Failed test for rte_bbdev_setup_queues: "
+ "NULL queue_release ");
+ dev2->dev_ops = dev1.dev_ops;
+
+ dev2->data->socket_id = SOCKET_ID_ANY;
+ TEST_ASSERT_SUCCESS(rte_bbdev_setup_queues(dev_id, 1,
+ SOCKET_ID_ANY), "Failed to configure bbdev %u", dev_id);
+
+ /* Test for rte_bbdev_queue_configure */
+ dev2->dev_ops = NULL;
+ TEST_ASSERT_FAIL(rte_bbdev_queue_configure(dev_id, queue_id,
+ &ts_params->qconf),
+ "Failed to configure queue %u on device %u "
+ "with NULL dev_ops structure ", queue_id, dev_id);
+ dev2->dev_ops = dev1.dev_ops;
+
+ dev_ops_tmp = *dev2->dev_ops;
+ dev_ops_tmp.queue_setup = NULL;
+ dev2->dev_ops = &dev_ops_tmp;
+ TEST_ASSERT_FAIL(rte_bbdev_queue_configure(dev_id, queue_id,
+ &ts_params->qconf),
+ "Failed to configure queue %u on device %u "
+ "with NULL queue_setup ", queue_id, dev_id);
+ dev2->dev_ops = dev1.dev_ops;
+
+ dev_ops_tmp = *dev2->dev_ops;
+ dev_ops_tmp.info_get = NULL;
+ dev2->dev_ops = &dev_ops_tmp;
+ TEST_ASSERT_FAIL(rte_bbdev_queue_configure(dev_id, queue_id,
+ &ts_params->qconf),
+ "Failed to configure queue %u on device %u "
+ "with NULL info_get ", queue_id, dev_id);
+ dev2->dev_ops = dev1.dev_ops;
+
+ TEST_ASSERT_FAIL(rte_bbdev_queue_configure(RTE_BBDEV_MAX_DEVS,
+ queue_id, &ts_params->qconf),
+ "Failed to configure queue %u on device %u ",
+ queue_id, dev_id);
+
+ TEST_ASSERT_SUCCESS(rte_bbdev_queue_configure(dev_id, queue_id,
+ &ts_params->qconf),
+ "Failed to configure queue %u on device %u ",
+ queue_id, dev_id);
+
+ /* Test for rte_bbdev_queue_info_get */
+ dev2->dev_ops = NULL;
+ TEST_ASSERT_SUCCESS(rte_bbdev_queue_info_get(dev_id, queue_id, &qinfo),
+ "Failed test for rte_bbdev_info_get: "
+ "NULL dev_ops structure ");
+ dev2->dev_ops = dev1.dev_ops;
+
+ TEST_ASSERT_FAIL(rte_bbdev_queue_info_get(RTE_BBDEV_MAX_DEVS,
+ queue_id, &qinfo),
+ "Failed test for rte_bbdev_info_get: "
+ "invalid dev_id ");
+
+ TEST_ASSERT_FAIL(rte_bbdev_queue_info_get(dev_id,
+ RTE_MAX_QUEUES_PER_PORT, &qinfo),
+ "Failed test for rte_bbdev_info_get: "
+ "invalid queue_id ");
+
+ TEST_ASSERT_FAIL(rte_bbdev_queue_info_get(dev_id, queue_id, NULL),
+ "Failed test for rte_bbdev_info_get: "
+ "invalid dev_info ");
+
+ /* Test for rte_bbdev_start */
+ dev2->dev_ops = NULL;
+ TEST_ASSERT_FAIL(rte_bbdev_start(dev_id),
+ "Failed to start bbdev %u "
+ "with NULL dev_ops structure ", dev_id);
+ dev2->dev_ops = dev1.dev_ops;
+
+ TEST_ASSERT_SUCCESS(rte_bbdev_start(dev_id),
+ "Failed to start bbdev %u ", dev_id);
+
+ /* Test for rte_bbdev_queue_start */
+ dev2->dev_ops = NULL;
+ TEST_ASSERT_FAIL(rte_bbdev_queue_start(dev_id, queue_id),
+ "Failed to start queue %u on device %u: "
+ "NULL dev_ops structure", queue_id, dev_id);
+ dev2->dev_ops = dev1.dev_ops;
+
+ TEST_ASSERT_SUCCESS(rte_bbdev_queue_start(dev_id, queue_id),
+ "Failed to start queue %u on device %u ", queue_id,
+ dev_id);
+
+ /* Tests for rte_bbdev_stats_get */
+ dev2->dev_ops = NULL;
+ TEST_ASSERT_FAIL(rte_bbdev_stats_get(dev_id, &stats),
+ "Failed test for rte_bbdev_stats_get on device %u ",
+ dev_id);
+ dev2->dev_ops = dev1.dev_ops;
+
+ dev_ops_tmp = *dev2->dev_ops;
+ dev_ops_tmp.stats_reset = NULL;
+ dev2->dev_ops = &dev_ops_tmp;
+ TEST_ASSERT_SUCCESS(rte_bbdev_stats_get(dev_id, &stats),
+ "Failed test for rte_bbdev_stats_get: "
+ "NULL stats_get ");
+ dev2->dev_ops = dev1.dev_ops;
+
+ TEST_ASSERT_SUCCESS(rte_bbdev_stats_get(dev_id, &stats),
+ "Failed test for rte_bbdev_stats_get on device %u ",
+ dev_id);
+
+ /*
+ * Tests for:
+ * rte_bbdev_callback_register,
+ * rte_bbdev_pmd_callback_process,
+ * rte_dev_callback_unregister
+ */
+ dev2->dev_ops = NULL;
+ TEST_ASSERT_SUCCESS(rte_bbdev_callback_register(dev_id,
+ RTE_BBDEV_EVENT_UNKNOWN, event_callback, NULL),
+ "Failed to callback rgstr for RTE_BBDEV_EVENT_UNKNOWN");
+ rte_bbdev_pmd_callback_process(dev2, RTE_BBDEV_EVENT_UNKNOWN, NULL);
+
+ TEST_ASSERT_SUCCESS(rte_bbdev_callback_unregister(dev_id,
+ RTE_BBDEV_EVENT_UNKNOWN, event_callback, NULL),
+ "Failed to unregister RTE_BBDEV_EVENT_ERROR ");
+ dev2->dev_ops = dev1.dev_ops;
+
+ /* Tests for rte_bbdev_stats_reset */
+ dev2->dev_ops = NULL;
+ TEST_ASSERT_FAIL(rte_bbdev_stats_reset(dev_id),
+ "Failed to reset statistic for device %u ", dev_id);
+ dev2->dev_ops = dev1.dev_ops;
+
+ dev_ops_tmp = *dev2->dev_ops;
+ dev_ops_tmp.stats_reset = NULL;
+ dev2->dev_ops = &dev_ops_tmp;
+ TEST_ASSERT_SUCCESS(rte_bbdev_stats_reset(dev_id),
+ "Failed test for rte_bbdev_stats_reset: "
+ "NULL stats_reset ");
+ dev2->dev_ops = dev1.dev_ops;
+
+ TEST_ASSERT_SUCCESS(rte_bbdev_stats_reset(dev_id),
+ "Failed to reset statistic for device %u ", dev_id);
+
+ /* Tests for rte_bbdev_queue_stop */
+ dev2->dev_ops = NULL;
+ TEST_ASSERT_FAIL(rte_bbdev_queue_stop(dev_id, queue_id),
+ "Failed to stop queue %u on device %u: "
+ "NULL dev_ops structure", queue_id, dev_id);
+ dev2->dev_ops = dev1.dev_ops;
+
+ TEST_ASSERT_SUCCESS(rte_bbdev_queue_stop(dev_id, queue_id),
+ "Failed to stop queue %u on device %u ", queue_id,
+ dev_id);
+
+ /* Tests for rte_bbdev_stop */
+ dev2->dev_ops = NULL;
+ TEST_ASSERT_FAIL(rte_bbdev_stop(dev_id),
+ "Failed to stop bbdev %u with NULL dev_ops structure ",
+ dev_id);
+ dev2->dev_ops = dev1.dev_ops;
+
+ TEST_ASSERT_SUCCESS(rte_bbdev_stop(dev_id),
+ "Failed to stop bbdev %u ", dev_id);
+
+ /* Tests for rte_bbdev_close */
+ TEST_ASSERT_FAIL(rte_bbdev_close(RTE_BBDEV_MAX_DEVS),
+ "Failed to close bbdev with invalid dev_id");
+
+ dev2->dev_ops = NULL;
+ TEST_ASSERT_FAIL(rte_bbdev_close(dev_id),
+ "Failed to close bbdev %u with NULL dev_ops structure ",
+ dev_id);
+ dev2->dev_ops = dev1.dev_ops;
+
+ TEST_ASSERT_SUCCESS(rte_bbdev_close(dev_id),
+ "Failed to close bbdev %u ", dev_id);
+
+ return TEST_SUCCESS;
+}
+
+static int
+test_bbdev_get_named_dev(void)
+{
+ struct rte_bbdev *dev, *dev_tmp;
+ const char *name = "name";
+
+ dev = rte_bbdev_allocate(name);
+ TEST_ASSERT(dev != NULL, "Failed to initialize bbdev driver");
+
+ dev_tmp = rte_bbdev_get_named_dev(NULL);
+ TEST_ASSERT(dev_tmp == NULL, "Failed test for rte_bbdev_get_named_dev: "
+ "function called with NULL parameter");
+
+ dev_tmp = rte_bbdev_get_named_dev(name);
+
+ TEST_ASSERT(dev == dev_tmp, "Failed test for rte_bbdev_get_named_dev: "
+ "wrong device was returned ");
+
+ TEST_ASSERT_SUCCESS(rte_bbdev_release(dev),
+ "Failed to uninitialize bbdev driver %s ", name);
+
+ return TEST_SUCCESS;
+}
+
+static struct unit_test_suite bbdev_null_testsuite = {
+ .suite_name = "BBDEV NULL Unit Test Suite",
+ .setup = testsuite_setup,
+ .teardown = testsuite_teardown,
+ .unit_test_cases = {
+
+ TEST_CASE(test_bbdev_configure_invalid_dev_id),
+
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_bbdev_configure_invalid_num_queues),
+
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_bbdev_configure_stop_device),
+
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_bbdev_configure_stop_queue),
+
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_bbdev_configure_invalid_queue_configure),
+
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_bbdev_op_pool),
+
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_bbdev_op_type),
+
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_bbdev_op_pool_size),
+
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_bbdev_stats),
+
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_bbdev_driver_init),
+
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_bbdev_callback),
+
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_bbdev_invalid_driver),
+
+ TEST_CASE_ST(ut_setup, ut_teardown,
+ test_bbdev_get_named_dev),
+
+ TEST_CASE(test_bbdev_count),
+
+ TEST_CASES_END() /**< NULL terminate unit test array */
+ }
+};
+
+REGISTER_TEST_COMMAND(unittest, bbdev_null_testsuite);
diff --git a/src/spdk/dpdk/app/test-bbdev/test_bbdev_perf.c b/src/spdk/dpdk/app/test-bbdev/test_bbdev_perf.c
new file mode 100644
index 000000000..45c0d62ac
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_bbdev_perf.c
@@ -0,0 +1,4933 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2017 Intel Corporation
+ */
+
+#include <stdio.h>
+#include <inttypes.h>
+#include <math.h>
+
+#include <rte_eal.h>
+#include <rte_common.h>
+#include <rte_dev.h>
+#include <rte_launch.h>
+#include <rte_bbdev.h>
+#include <rte_cycles.h>
+#include <rte_lcore.h>
+#include <rte_malloc.h>
+#include <rte_random.h>
+#include <rte_hexdump.h>
+#include <rte_interrupts.h>
+
+#include "main.h"
+#include "test_bbdev_vector.h"
+
+#define GET_SOCKET(socket_id) (((socket_id) == SOCKET_ID_ANY) ? 0 : (socket_id))
+
+#define MAX_QUEUES RTE_MAX_LCORE
+#define TEST_REPETITIONS 1000
+
+#ifdef RTE_LIBRTE_PMD_BBDEV_FPGA_LTE_FEC
+#include <fpga_lte_fec.h>
+#define FPGA_LTE_PF_DRIVER_NAME ("intel_fpga_lte_fec_pf")
+#define FPGA_LTE_VF_DRIVER_NAME ("intel_fpga_lte_fec_vf")
+#define VF_UL_4G_QUEUE_VALUE 4
+#define VF_DL_4G_QUEUE_VALUE 4
+#define UL_4G_BANDWIDTH 3
+#define DL_4G_BANDWIDTH 3
+#define UL_4G_LOAD_BALANCE 128
+#define DL_4G_LOAD_BALANCE 128
+#define FLR_4G_TIMEOUT 610
+#endif
+
+#ifdef RTE_LIBRTE_PMD_BBDEV_FPGA_5GNR_FEC
+#include <rte_pmd_fpga_5gnr_fec.h>
+#define FPGA_5GNR_PF_DRIVER_NAME ("intel_fpga_5gnr_fec_pf")
+#define FPGA_5GNR_VF_DRIVER_NAME ("intel_fpga_5gnr_fec_vf")
+#define VF_UL_5G_QUEUE_VALUE 4
+#define VF_DL_5G_QUEUE_VALUE 4
+#define UL_5G_BANDWIDTH 3
+#define DL_5G_BANDWIDTH 3
+#define UL_5G_LOAD_BALANCE 128
+#define DL_5G_LOAD_BALANCE 128
+#define FLR_5G_TIMEOUT 610
+#endif
+
+#define OPS_CACHE_SIZE 256U
+#define OPS_POOL_SIZE_MIN 511U /* 0.5K per queue */
+
+#define SYNC_WAIT 0
+#define SYNC_START 1
+#define INVALID_OPAQUE -1
+
+#define INVALID_QUEUE_ID -1
+/* Increment for next code block in external HARQ memory */
+#define HARQ_INCR 32768
+/* Headroom for filler LLRs insertion in HARQ buffer */
+#define FILLER_HEADROOM 1024
+/* Constants from K0 computation from 3GPP 38.212 Table 5.4.2.1-2 */
+#define N_ZC_1 66 /* N = 66 Zc for BG 1 */
+#define N_ZC_2 50 /* N = 50 Zc for BG 2 */
+#define K0_1_1 17 /* K0 fraction numerator for rv 1 and BG 1 */
+#define K0_1_2 13 /* K0 fraction numerator for rv 1 and BG 2 */
+#define K0_2_1 33 /* K0 fraction numerator for rv 2 and BG 1 */
+#define K0_2_2 25 /* K0 fraction numerator for rv 2 and BG 2 */
+#define K0_3_1 56 /* K0 fraction numerator for rv 3 and BG 1 */
+#define K0_3_2 43 /* K0 fraction numerator for rv 3 and BG 2 */
+
+static struct test_bbdev_vector test_vector;
+
+/* Switch between PMD and Interrupt for throughput TC */
+static bool intr_enabled;
+
+/* LLR arithmetic representation for numerical conversion */
+static int ldpc_llr_decimals;
+static int ldpc_llr_size;
+/* Keep track of the LDPC decoder device capability flag */
+static uint32_t ldpc_cap_flags;
+
+/* Represents tested active devices */
+static struct active_device {
+ const char *driver_name;
+ uint8_t dev_id;
+ uint16_t supported_ops;
+ uint16_t queue_ids[MAX_QUEUES];
+ uint16_t nb_queues;
+ struct rte_mempool *ops_mempool;
+ struct rte_mempool *in_mbuf_pool;
+ struct rte_mempool *hard_out_mbuf_pool;
+ struct rte_mempool *soft_out_mbuf_pool;
+ struct rte_mempool *harq_in_mbuf_pool;
+ struct rte_mempool *harq_out_mbuf_pool;
+} active_devs[RTE_BBDEV_MAX_DEVS];
+
+static uint8_t nb_active_devs;
+
+/* Data buffers used by BBDEV ops */
+struct test_buffers {
+ struct rte_bbdev_op_data *inputs;
+ struct rte_bbdev_op_data *hard_outputs;
+ struct rte_bbdev_op_data *soft_outputs;
+ struct rte_bbdev_op_data *harq_inputs;
+ struct rte_bbdev_op_data *harq_outputs;
+};
+
+/* Operation parameters specific for given test case */
+struct test_op_params {
+ struct rte_mempool *mp;
+ struct rte_bbdev_dec_op *ref_dec_op;
+ struct rte_bbdev_enc_op *ref_enc_op;
+ uint16_t burst_sz;
+ uint16_t num_to_process;
+ uint16_t num_lcores;
+ int vector_mask;
+ rte_atomic16_t sync;
+ struct test_buffers q_bufs[RTE_MAX_NUMA_NODES][MAX_QUEUES];
+};
+
+/* Contains per lcore params */
+struct thread_params {
+ uint8_t dev_id;
+ uint16_t queue_id;
+ uint32_t lcore_id;
+ uint64_t start_time;
+ double ops_per_sec;
+ double mbps;
+ uint8_t iter_count;
+ double iter_average;
+ double bler;
+ rte_atomic16_t nb_dequeued;
+ rte_atomic16_t processing_status;
+ rte_atomic16_t burst_sz;
+ struct test_op_params *op_params;
+ struct rte_bbdev_dec_op *dec_ops[MAX_BURST];
+ struct rte_bbdev_enc_op *enc_ops[MAX_BURST];
+};
+
+#ifdef RTE_BBDEV_OFFLOAD_COST
+/* Stores time statistics */
+struct test_time_stats {
+ /* Stores software enqueue total working time */
+ uint64_t enq_sw_total_time;
+ /* Stores minimum value of software enqueue working time */
+ uint64_t enq_sw_min_time;
+ /* Stores maximum value of software enqueue working time */
+ uint64_t enq_sw_max_time;
+ /* Stores turbo enqueue total working time */
+ uint64_t enq_acc_total_time;
+ /* Stores minimum value of accelerator enqueue working time */
+ uint64_t enq_acc_min_time;
+ /* Stores maximum value of accelerator enqueue working time */
+ uint64_t enq_acc_max_time;
+ /* Stores dequeue total working time */
+ uint64_t deq_total_time;
+ /* Stores minimum value of dequeue working time */
+ uint64_t deq_min_time;
+ /* Stores maximum value of dequeue working time */
+ uint64_t deq_max_time;
+};
+#endif
+
+typedef int (test_case_function)(struct active_device *ad,
+ struct test_op_params *op_params);
+
+static inline void
+mbuf_reset(struct rte_mbuf *m)
+{
+ m->pkt_len = 0;
+
+ do {
+ m->data_len = 0;
+ m = m->next;
+ } while (m != NULL);
+}
+
+/* Read flag value 0/1 from bitmap */
+static inline bool
+check_bit(uint32_t bitmap, uint32_t bitmask)
+{
+ return bitmap & bitmask;
+}
+
+static inline void
+set_avail_op(struct active_device *ad, enum rte_bbdev_op_type op_type)
+{
+ ad->supported_ops |= (1 << op_type);
+}
+
+static inline bool
+is_avail_op(struct active_device *ad, enum rte_bbdev_op_type op_type)
+{
+ return ad->supported_ops & (1 << op_type);
+}
+
+static inline bool
+flags_match(uint32_t flags_req, uint32_t flags_present)
+{
+ return (flags_req & flags_present) == flags_req;
+}
+
+static void
+clear_soft_out_cap(uint32_t *op_flags)
+{
+ *op_flags &= ~RTE_BBDEV_TURBO_SOFT_OUTPUT;
+ *op_flags &= ~RTE_BBDEV_TURBO_POS_LLR_1_BIT_SOFT_OUT;
+ *op_flags &= ~RTE_BBDEV_TURBO_NEG_LLR_1_BIT_SOFT_OUT;
+}
+
+static int
+check_dev_cap(const struct rte_bbdev_info *dev_info)
+{
+ unsigned int i;
+ unsigned int nb_inputs, nb_soft_outputs, nb_hard_outputs,
+ nb_harq_inputs, nb_harq_outputs;
+ const struct rte_bbdev_op_cap *op_cap = dev_info->drv.capabilities;
+
+ nb_inputs = test_vector.entries[DATA_INPUT].nb_segments;
+ nb_soft_outputs = test_vector.entries[DATA_SOFT_OUTPUT].nb_segments;
+ nb_hard_outputs = test_vector.entries[DATA_HARD_OUTPUT].nb_segments;
+ nb_harq_inputs = test_vector.entries[DATA_HARQ_INPUT].nb_segments;
+ nb_harq_outputs = test_vector.entries[DATA_HARQ_OUTPUT].nb_segments;
+
+ for (i = 0; op_cap->type != RTE_BBDEV_OP_NONE; ++i, ++op_cap) {
+ if (op_cap->type != test_vector.op_type)
+ continue;
+
+ if (op_cap->type == RTE_BBDEV_OP_TURBO_DEC) {
+ const struct rte_bbdev_op_cap_turbo_dec *cap =
+ &op_cap->cap.turbo_dec;
+ /* Ignore lack of soft output capability, just skip
+ * checking if soft output is valid.
+ */
+ if ((test_vector.turbo_dec.op_flags &
+ RTE_BBDEV_TURBO_SOFT_OUTPUT) &&
+ !(cap->capability_flags &
+ RTE_BBDEV_TURBO_SOFT_OUTPUT)) {
+ printf(
+ "INFO: Device \"%s\" does not support soft output - soft output flags will be ignored.\n",
+ dev_info->dev_name);
+ clear_soft_out_cap(
+ &test_vector.turbo_dec.op_flags);
+ }
+
+ if (!flags_match(test_vector.turbo_dec.op_flags,
+ cap->capability_flags))
+ return TEST_FAILED;
+ if (nb_inputs > cap->num_buffers_src) {
+ printf("Too many inputs defined: %u, max: %u\n",
+ nb_inputs, cap->num_buffers_src);
+ return TEST_FAILED;
+ }
+ if (nb_soft_outputs > cap->num_buffers_soft_out &&
+ (test_vector.turbo_dec.op_flags &
+ RTE_BBDEV_TURBO_SOFT_OUTPUT)) {
+ printf(
+ "Too many soft outputs defined: %u, max: %u\n",
+ nb_soft_outputs,
+ cap->num_buffers_soft_out);
+ return TEST_FAILED;
+ }
+ if (nb_hard_outputs > cap->num_buffers_hard_out) {
+ printf(
+ "Too many hard outputs defined: %u, max: %u\n",
+ nb_hard_outputs,
+ cap->num_buffers_hard_out);
+ return TEST_FAILED;
+ }
+ if (intr_enabled && !(cap->capability_flags &
+ RTE_BBDEV_TURBO_DEC_INTERRUPTS)) {
+ printf(
+ "Dequeue interrupts are not supported!\n");
+ return TEST_FAILED;
+ }
+
+ return TEST_SUCCESS;
+ } else if (op_cap->type == RTE_BBDEV_OP_TURBO_ENC) {
+ const struct rte_bbdev_op_cap_turbo_enc *cap =
+ &op_cap->cap.turbo_enc;
+
+ if (!flags_match(test_vector.turbo_enc.op_flags,
+ cap->capability_flags))
+ return TEST_FAILED;
+ if (nb_inputs > cap->num_buffers_src) {
+ printf("Too many inputs defined: %u, max: %u\n",
+ nb_inputs, cap->num_buffers_src);
+ return TEST_FAILED;
+ }
+ if (nb_hard_outputs > cap->num_buffers_dst) {
+ printf(
+ "Too many hard outputs defined: %u, max: %u\n",
+ nb_hard_outputs, cap->num_buffers_dst);
+ return TEST_FAILED;
+ }
+ if (intr_enabled && !(cap->capability_flags &
+ RTE_BBDEV_TURBO_ENC_INTERRUPTS)) {
+ printf(
+ "Dequeue interrupts are not supported!\n");
+ return TEST_FAILED;
+ }
+
+ return TEST_SUCCESS;
+ } else if (op_cap->type == RTE_BBDEV_OP_LDPC_ENC) {
+ const struct rte_bbdev_op_cap_ldpc_enc *cap =
+ &op_cap->cap.ldpc_enc;
+
+ if (!flags_match(test_vector.ldpc_enc.op_flags,
+ cap->capability_flags)){
+ printf("Flag Mismatch\n");
+ return TEST_FAILED;
+ }
+ if (nb_inputs > cap->num_buffers_src) {
+ printf("Too many inputs defined: %u, max: %u\n",
+ nb_inputs, cap->num_buffers_src);
+ return TEST_FAILED;
+ }
+ if (nb_hard_outputs > cap->num_buffers_dst) {
+ printf(
+ "Too many hard outputs defined: %u, max: %u\n",
+ nb_hard_outputs, cap->num_buffers_dst);
+ return TEST_FAILED;
+ }
+ if (intr_enabled && !(cap->capability_flags &
+ RTE_BBDEV_LDPC_ENC_INTERRUPTS)) {
+ printf(
+ "Dequeue interrupts are not supported!\n");
+ return TEST_FAILED;
+ }
+
+ return TEST_SUCCESS;
+ } else if (op_cap->type == RTE_BBDEV_OP_LDPC_DEC) {
+ const struct rte_bbdev_op_cap_ldpc_dec *cap =
+ &op_cap->cap.ldpc_dec;
+
+ if (!flags_match(test_vector.ldpc_dec.op_flags,
+ cap->capability_flags)){
+ printf("Flag Mismatch\n");
+ return TEST_FAILED;
+ }
+ if (nb_inputs > cap->num_buffers_src) {
+ printf("Too many inputs defined: %u, max: %u\n",
+ nb_inputs, cap->num_buffers_src);
+ return TEST_FAILED;
+ }
+ if (nb_hard_outputs > cap->num_buffers_hard_out) {
+ printf(
+ "Too many hard outputs defined: %u, max: %u\n",
+ nb_hard_outputs,
+ cap->num_buffers_hard_out);
+ return TEST_FAILED;
+ }
+ if (nb_harq_inputs > cap->num_buffers_hard_out) {
+ printf(
+ "Too many HARQ inputs defined: %u, max: %u\n",
+ nb_hard_outputs,
+ cap->num_buffers_hard_out);
+ return TEST_FAILED;
+ }
+ if (nb_harq_outputs > cap->num_buffers_hard_out) {
+ printf(
+ "Too many HARQ outputs defined: %u, max: %u\n",
+ nb_hard_outputs,
+ cap->num_buffers_hard_out);
+ return TEST_FAILED;
+ }
+ if (intr_enabled && !(cap->capability_flags &
+ RTE_BBDEV_LDPC_DEC_INTERRUPTS)) {
+ printf(
+ "Dequeue interrupts are not supported!\n");
+ return TEST_FAILED;
+ }
+ if (intr_enabled && (test_vector.ldpc_dec.op_flags &
+ (RTE_BBDEV_LDPC_HQ_COMBINE_IN_ENABLE |
+ RTE_BBDEV_LDPC_HQ_COMBINE_OUT_ENABLE |
+ RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_LOOPBACK
+ ))) {
+ printf("Skip loop-back with interrupt\n");
+ return TEST_FAILED;
+ }
+ return TEST_SUCCESS;
+ }
+ }
+
+ if ((i == 0) && (test_vector.op_type == RTE_BBDEV_OP_NONE))
+ return TEST_SUCCESS; /* Special case for NULL device */
+
+ return TEST_FAILED;
+}
+
+/* calculates optimal mempool size not smaller than the val */
+static unsigned int
+optimal_mempool_size(unsigned int val)
+{
+ return rte_align32pow2(val + 1) - 1;
+}
+
+/* allocates mbuf mempool for inputs and outputs */
+static struct rte_mempool *
+create_mbuf_pool(struct op_data_entries *entries, uint8_t dev_id,
+ int socket_id, unsigned int mbuf_pool_size,
+ const char *op_type_str)
+{
+ unsigned int i;
+ uint32_t max_seg_sz = 0;
+ char pool_name[RTE_MEMPOOL_NAMESIZE];
+
+ /* find max input segment size */
+ for (i = 0; i < entries->nb_segments; ++i)
+ if (entries->segments[i].length > max_seg_sz)
+ max_seg_sz = entries->segments[i].length;
+
+ snprintf(pool_name, sizeof(pool_name), "%s_pool_%u", op_type_str,
+ dev_id);
+ return rte_pktmbuf_pool_create(pool_name, mbuf_pool_size, 0, 0,
+ RTE_MAX(max_seg_sz + RTE_PKTMBUF_HEADROOM
+ + FILLER_HEADROOM,
+ (unsigned int)RTE_MBUF_DEFAULT_BUF_SIZE), socket_id);
+}
+
+static int
+create_mempools(struct active_device *ad, int socket_id,
+ enum rte_bbdev_op_type org_op_type, uint16_t num_ops)
+{
+ struct rte_mempool *mp;
+ unsigned int ops_pool_size, mbuf_pool_size = 0;
+ char pool_name[RTE_MEMPOOL_NAMESIZE];
+ const char *op_type_str;
+ enum rte_bbdev_op_type op_type = org_op_type;
+
+ struct op_data_entries *in = &test_vector.entries[DATA_INPUT];
+ struct op_data_entries *hard_out =
+ &test_vector.entries[DATA_HARD_OUTPUT];
+ struct op_data_entries *soft_out =
+ &test_vector.entries[DATA_SOFT_OUTPUT];
+ struct op_data_entries *harq_in =
+ &test_vector.entries[DATA_HARQ_INPUT];
+ struct op_data_entries *harq_out =
+ &test_vector.entries[DATA_HARQ_OUTPUT];
+
+ /* allocate ops mempool */
+ ops_pool_size = optimal_mempool_size(RTE_MAX(
+ /* Ops used plus 1 reference op */
+ RTE_MAX((unsigned int)(ad->nb_queues * num_ops + 1),
+ /* Minimal cache size plus 1 reference op */
+ (unsigned int)(1.5 * rte_lcore_count() *
+ OPS_CACHE_SIZE + 1)),
+ OPS_POOL_SIZE_MIN));
+
+ if (org_op_type == RTE_BBDEV_OP_NONE)
+ op_type = RTE_BBDEV_OP_TURBO_ENC;
+
+ op_type_str = rte_bbdev_op_type_str(op_type);
+ TEST_ASSERT_NOT_NULL(op_type_str, "Invalid op type: %u", op_type);
+
+ snprintf(pool_name, sizeof(pool_name), "%s_pool_%u", op_type_str,
+ ad->dev_id);
+ mp = rte_bbdev_op_pool_create(pool_name, op_type,
+ ops_pool_size, OPS_CACHE_SIZE, socket_id);
+ TEST_ASSERT_NOT_NULL(mp,
+ "ERROR Failed to create %u items ops pool for dev %u on socket %u.",
+ ops_pool_size,
+ ad->dev_id,
+ socket_id);
+ ad->ops_mempool = mp;
+
+ /* Do not create inputs and outputs mbufs for BaseBand Null Device */
+ if (org_op_type == RTE_BBDEV_OP_NONE)
+ return TEST_SUCCESS;
+
+ /* Inputs */
+ if (in->nb_segments > 0) {
+ mbuf_pool_size = optimal_mempool_size(ops_pool_size *
+ in->nb_segments);
+ mp = create_mbuf_pool(in, ad->dev_id, socket_id,
+ mbuf_pool_size, "in");
+ TEST_ASSERT_NOT_NULL(mp,
+ "ERROR Failed to create %u items input pktmbuf pool for dev %u on socket %u.",
+ mbuf_pool_size,
+ ad->dev_id,
+ socket_id);
+ ad->in_mbuf_pool = mp;
+ }
+
+ /* Hard outputs */
+ if (hard_out->nb_segments > 0) {
+ mbuf_pool_size = optimal_mempool_size(ops_pool_size *
+ hard_out->nb_segments);
+ mp = create_mbuf_pool(hard_out, ad->dev_id, socket_id,
+ mbuf_pool_size,
+ "hard_out");
+ TEST_ASSERT_NOT_NULL(mp,
+ "ERROR Failed to create %u items hard output pktmbuf pool for dev %u on socket %u.",
+ mbuf_pool_size,
+ ad->dev_id,
+ socket_id);
+ ad->hard_out_mbuf_pool = mp;
+ }
+
+ /* Soft outputs */
+ if (soft_out->nb_segments > 0) {
+ mbuf_pool_size = optimal_mempool_size(ops_pool_size *
+ soft_out->nb_segments);
+ mp = create_mbuf_pool(soft_out, ad->dev_id, socket_id,
+ mbuf_pool_size,
+ "soft_out");
+ TEST_ASSERT_NOT_NULL(mp,
+ "ERROR Failed to create %uB soft output pktmbuf pool for dev %u on socket %u.",
+ mbuf_pool_size,
+ ad->dev_id,
+ socket_id);
+ ad->soft_out_mbuf_pool = mp;
+ }
+
+ /* HARQ inputs */
+ if (harq_in->nb_segments > 0) {
+ mbuf_pool_size = optimal_mempool_size(ops_pool_size *
+ harq_in->nb_segments);
+ mp = create_mbuf_pool(harq_in, ad->dev_id, socket_id,
+ mbuf_pool_size,
+ "harq_in");
+ TEST_ASSERT_NOT_NULL(mp,
+ "ERROR Failed to create %uB harq input pktmbuf pool for dev %u on socket %u.",
+ mbuf_pool_size,
+ ad->dev_id,
+ socket_id);
+ ad->harq_in_mbuf_pool = mp;
+ }
+
+ /* HARQ outputs */
+ if (harq_out->nb_segments > 0) {
+ mbuf_pool_size = optimal_mempool_size(ops_pool_size *
+ harq_out->nb_segments);
+ mp = create_mbuf_pool(harq_out, ad->dev_id, socket_id,
+ mbuf_pool_size,
+ "harq_out");
+ TEST_ASSERT_NOT_NULL(mp,
+ "ERROR Failed to create %uB harq output pktmbuf pool for dev %u on socket %u.",
+ mbuf_pool_size,
+ ad->dev_id,
+ socket_id);
+ ad->harq_out_mbuf_pool = mp;
+ }
+
+ return TEST_SUCCESS;
+}
+
+static int
+add_bbdev_dev(uint8_t dev_id, struct rte_bbdev_info *info,
+ struct test_bbdev_vector *vector)
+{
+ int ret;
+ unsigned int queue_id;
+ struct rte_bbdev_queue_conf qconf;
+ struct active_device *ad = &active_devs[nb_active_devs];
+ unsigned int nb_queues;
+ enum rte_bbdev_op_type op_type = vector->op_type;
+
+/* Configure fpga lte fec with PF & VF values
+ * if '-i' flag is set and using fpga device
+ */
+#ifdef RTE_LIBRTE_PMD_BBDEV_FPGA_LTE_FEC
+ if ((get_init_device() == true) &&
+ (!strcmp(info->drv.driver_name, FPGA_LTE_PF_DRIVER_NAME))) {
+ struct fpga_lte_fec_conf conf;
+ unsigned int i;
+
+ printf("Configure FPGA LTE FEC Driver %s with default values\n",
+ info->drv.driver_name);
+
+ /* clear default configuration before initialization */
+ memset(&conf, 0, sizeof(struct fpga_lte_fec_conf));
+
+ /* Set PF mode :
+ * true if PF is used for data plane
+ * false for VFs
+ */
+ conf.pf_mode_en = true;
+
+ for (i = 0; i < FPGA_LTE_FEC_NUM_VFS; ++i) {
+ /* Number of UL queues per VF (fpga supports 8 VFs) */
+ conf.vf_ul_queues_number[i] = VF_UL_4G_QUEUE_VALUE;
+ /* Number of DL queues per VF (fpga supports 8 VFs) */
+ conf.vf_dl_queues_number[i] = VF_DL_4G_QUEUE_VALUE;
+ }
+
+ /* UL bandwidth. Needed for schedule algorithm */
+ conf.ul_bandwidth = UL_4G_BANDWIDTH;
+ /* DL bandwidth */
+ conf.dl_bandwidth = DL_4G_BANDWIDTH;
+
+ /* UL & DL load Balance Factor to 64 */
+ conf.ul_load_balance = UL_4G_LOAD_BALANCE;
+ conf.dl_load_balance = DL_4G_LOAD_BALANCE;
+
+ /**< FLR timeout value */
+ conf.flr_time_out = FLR_4G_TIMEOUT;
+
+ /* setup FPGA PF with configuration information */
+ ret = fpga_lte_fec_configure(info->dev_name, &conf);
+ TEST_ASSERT_SUCCESS(ret,
+ "Failed to configure 4G FPGA PF for bbdev %s",
+ info->dev_name);
+ }
+#endif
+#ifdef RTE_LIBRTE_PMD_BBDEV_FPGA_5GNR_FEC
+ if ((get_init_device() == true) &&
+ (!strcmp(info->drv.driver_name, FPGA_5GNR_PF_DRIVER_NAME))) {
+ struct fpga_5gnr_fec_conf conf;
+ unsigned int i;
+
+ printf("Configure FPGA 5GNR FEC Driver %s with default values\n",
+ info->drv.driver_name);
+
+ /* clear default configuration before initialization */
+ memset(&conf, 0, sizeof(struct fpga_5gnr_fec_conf));
+
+ /* Set PF mode :
+ * true if PF is used for data plane
+ * false for VFs
+ */
+ conf.pf_mode_en = true;
+
+ for (i = 0; i < FPGA_5GNR_FEC_NUM_VFS; ++i) {
+ /* Number of UL queues per VF (fpga supports 8 VFs) */
+ conf.vf_ul_queues_number[i] = VF_UL_5G_QUEUE_VALUE;
+ /* Number of DL queues per VF (fpga supports 8 VFs) */
+ conf.vf_dl_queues_number[i] = VF_DL_5G_QUEUE_VALUE;
+ }
+
+ /* UL bandwidth. Needed for schedule algorithm */
+ conf.ul_bandwidth = UL_5G_BANDWIDTH;
+ /* DL bandwidth */
+ conf.dl_bandwidth = DL_5G_BANDWIDTH;
+
+ /* UL & DL load Balance Factor to 64 */
+ conf.ul_load_balance = UL_5G_LOAD_BALANCE;
+ conf.dl_load_balance = DL_5G_LOAD_BALANCE;
+
+ /**< FLR timeout value */
+ conf.flr_time_out = FLR_5G_TIMEOUT;
+
+ /* setup FPGA PF with configuration information */
+ ret = fpga_5gnr_fec_configure(info->dev_name, &conf);
+ TEST_ASSERT_SUCCESS(ret,
+ "Failed to configure 5G FPGA PF for bbdev %s",
+ info->dev_name);
+ }
+#endif
+ nb_queues = RTE_MIN(rte_lcore_count(), info->drv.max_num_queues);
+ nb_queues = RTE_MIN(nb_queues, (unsigned int) MAX_QUEUES);
+
+ /* setup device */
+ ret = rte_bbdev_setup_queues(dev_id, nb_queues, info->socket_id);
+ if (ret < 0) {
+ printf("rte_bbdev_setup_queues(%u, %u, %d) ret %i\n",
+ dev_id, nb_queues, info->socket_id, ret);
+ return TEST_FAILED;
+ }
+
+ /* configure interrupts if needed */
+ if (intr_enabled) {
+ ret = rte_bbdev_intr_enable(dev_id);
+ if (ret < 0) {
+ printf("rte_bbdev_intr_enable(%u) ret %i\n", dev_id,
+ ret);
+ return TEST_FAILED;
+ }
+ }
+
+ /* setup device queues */
+ qconf.socket = info->socket_id;
+ qconf.queue_size = info->drv.default_queue_conf.queue_size;
+ qconf.priority = 0;
+ qconf.deferred_start = 0;
+ qconf.op_type = op_type;
+
+ for (queue_id = 0; queue_id < nb_queues; ++queue_id) {
+ ret = rte_bbdev_queue_configure(dev_id, queue_id, &qconf);
+ if (ret != 0) {
+ printf(
+ "Allocated all queues (id=%u) at prio%u on dev%u\n",
+ queue_id, qconf.priority, dev_id);
+ qconf.priority++;
+ ret = rte_bbdev_queue_configure(ad->dev_id, queue_id,
+ &qconf);
+ }
+ if (ret != 0) {
+ printf("All queues on dev %u allocated: %u\n",
+ dev_id, queue_id);
+ break;
+ }
+ ad->queue_ids[queue_id] = queue_id;
+ }
+ TEST_ASSERT(queue_id != 0,
+ "ERROR Failed to configure any queues on dev %u",
+ dev_id);
+ ad->nb_queues = queue_id;
+
+ set_avail_op(ad, op_type);
+
+ return TEST_SUCCESS;
+}
+
+static int
+add_active_device(uint8_t dev_id, struct rte_bbdev_info *info,
+ struct test_bbdev_vector *vector)
+{
+ int ret;
+
+ active_devs[nb_active_devs].driver_name = info->drv.driver_name;
+ active_devs[nb_active_devs].dev_id = dev_id;
+
+ ret = add_bbdev_dev(dev_id, info, vector);
+ if (ret == TEST_SUCCESS)
+ ++nb_active_devs;
+ return ret;
+}
+
+static uint8_t
+populate_active_devices(void)
+{
+ int ret;
+ uint8_t dev_id;
+ uint8_t nb_devs_added = 0;
+ struct rte_bbdev_info info;
+
+ RTE_BBDEV_FOREACH(dev_id) {
+ rte_bbdev_info_get(dev_id, &info);
+
+ if (check_dev_cap(&info)) {
+ printf(
+ "Device %d (%s) does not support specified capabilities\n",
+ dev_id, info.dev_name);
+ continue;
+ }
+
+ ret = add_active_device(dev_id, &info, &test_vector);
+ if (ret != 0) {
+ printf("Adding active bbdev %s skipped\n",
+ info.dev_name);
+ continue;
+ }
+ nb_devs_added++;
+ }
+
+ return nb_devs_added;
+}
+
+static int
+read_test_vector(void)
+{
+ int ret;
+
+ memset(&test_vector, 0, sizeof(test_vector));
+ printf("Test vector file = %s\n", get_vector_filename());
+ ret = test_bbdev_vector_read(get_vector_filename(), &test_vector);
+ TEST_ASSERT_SUCCESS(ret, "Failed to parse file %s\n",
+ get_vector_filename());
+
+ return TEST_SUCCESS;
+}
+
+static int
+testsuite_setup(void)
+{
+ TEST_ASSERT_SUCCESS(read_test_vector(), "Test suite setup failed\n");
+
+ if (populate_active_devices() == 0) {
+ printf("No suitable devices found!\n");
+ return TEST_SKIPPED;
+ }
+
+ return TEST_SUCCESS;
+}
+
+static int
+interrupt_testsuite_setup(void)
+{
+ TEST_ASSERT_SUCCESS(read_test_vector(), "Test suite setup failed\n");
+
+ /* Enable interrupts */
+ intr_enabled = true;
+
+ /* Special case for NULL device (RTE_BBDEV_OP_NONE) */
+ if (populate_active_devices() == 0 ||
+ test_vector.op_type == RTE_BBDEV_OP_NONE) {
+ intr_enabled = false;
+ printf("No suitable devices found!\n");
+ return TEST_SKIPPED;
+ }
+
+ return TEST_SUCCESS;
+}
+
+static void
+testsuite_teardown(void)
+{
+ uint8_t dev_id;
+
+ /* Unconfigure devices */
+ RTE_BBDEV_FOREACH(dev_id)
+ rte_bbdev_close(dev_id);
+
+ /* Clear active devices structs. */
+ memset(active_devs, 0, sizeof(active_devs));
+ nb_active_devs = 0;
+
+ /* Disable interrupts */
+ intr_enabled = false;
+}
+
+static int
+ut_setup(void)
+{
+ uint8_t i, dev_id;
+
+ for (i = 0; i < nb_active_devs; i++) {
+ dev_id = active_devs[i].dev_id;
+ /* reset bbdev stats */
+ TEST_ASSERT_SUCCESS(rte_bbdev_stats_reset(dev_id),
+ "Failed to reset stats of bbdev %u", dev_id);
+ /* start the device */
+ TEST_ASSERT_SUCCESS(rte_bbdev_start(dev_id),
+ "Failed to start bbdev %u", dev_id);
+ }
+
+ return TEST_SUCCESS;
+}
+
+static void
+ut_teardown(void)
+{
+ uint8_t i, dev_id;
+ struct rte_bbdev_stats stats;
+
+ for (i = 0; i < nb_active_devs; i++) {
+ dev_id = active_devs[i].dev_id;
+ /* read stats and print */
+ rte_bbdev_stats_get(dev_id, &stats);
+ /* Stop the device */
+ rte_bbdev_stop(dev_id);
+ }
+}
+
+static int
+init_op_data_objs(struct rte_bbdev_op_data *bufs,
+ struct op_data_entries *ref_entries,
+ struct rte_mempool *mbuf_pool, const uint16_t n,
+ enum op_data_type op_type, uint16_t min_alignment)
+{
+ int ret;
+ unsigned int i, j;
+ bool large_input = false;
+
+ for (i = 0; i < n; ++i) {
+ char *data;
+ struct op_data_buf *seg = &ref_entries->segments[0];
+ struct rte_mbuf *m_head = rte_pktmbuf_alloc(mbuf_pool);
+ TEST_ASSERT_NOT_NULL(m_head,
+ "Not enough mbufs in %d data type mbuf pool (needed %u, available %u)",
+ op_type, n * ref_entries->nb_segments,
+ mbuf_pool->size);
+
+ if (seg->length > RTE_BBDEV_LDPC_E_MAX_MBUF) {
+ /*
+ * Special case when DPDK mbuf cannot handle
+ * the required input size
+ */
+ printf("Warning: Larger input size than DPDK mbuf %d\n",
+ seg->length);
+ large_input = true;
+ }
+ bufs[i].data = m_head;
+ bufs[i].offset = 0;
+ bufs[i].length = 0;
+
+ if ((op_type == DATA_INPUT) || (op_type == DATA_HARQ_INPUT)) {
+ if ((op_type == DATA_INPUT) && large_input) {
+ /* Allocate a fake overused mbuf */
+ data = rte_malloc(NULL, seg->length, 0);
+ memcpy(data, seg->addr, seg->length);
+ m_head->buf_addr = data;
+ m_head->buf_iova = rte_malloc_virt2iova(data);
+ m_head->data_off = 0;
+ m_head->data_len = seg->length;
+ } else {
+ data = rte_pktmbuf_append(m_head, seg->length);
+ TEST_ASSERT_NOT_NULL(data,
+ "Couldn't append %u bytes to mbuf from %d data type mbuf pool",
+ seg->length, op_type);
+
+ TEST_ASSERT(data == RTE_PTR_ALIGN(
+ data, min_alignment),
+ "Data addr in mbuf (%p) is not aligned to device min alignment (%u)",
+ data, min_alignment);
+ rte_memcpy(data, seg->addr, seg->length);
+ }
+
+ bufs[i].length += seg->length;
+
+ for (j = 1; j < ref_entries->nb_segments; ++j) {
+ struct rte_mbuf *m_tail =
+ rte_pktmbuf_alloc(mbuf_pool);
+ TEST_ASSERT_NOT_NULL(m_tail,
+ "Not enough mbufs in %d data type mbuf pool (needed %u, available %u)",
+ op_type,
+ n * ref_entries->nb_segments,
+ mbuf_pool->size);
+ seg += 1;
+
+ data = rte_pktmbuf_append(m_tail, seg->length);
+ TEST_ASSERT_NOT_NULL(data,
+ "Couldn't append %u bytes to mbuf from %d data type mbuf pool",
+ seg->length, op_type);
+
+ TEST_ASSERT(data == RTE_PTR_ALIGN(data,
+ min_alignment),
+ "Data addr in mbuf (%p) is not aligned to device min alignment (%u)",
+ data, min_alignment);
+ rte_memcpy(data, seg->addr, seg->length);
+ bufs[i].length += seg->length;
+
+ ret = rte_pktmbuf_chain(m_head, m_tail);
+ TEST_ASSERT_SUCCESS(ret,
+ "Couldn't chain mbufs from %d data type mbuf pool",
+ op_type);
+ }
+ } else {
+
+ /* allocate chained-mbuf for output buffer */
+ for (j = 1; j < ref_entries->nb_segments; ++j) {
+ struct rte_mbuf *m_tail =
+ rte_pktmbuf_alloc(mbuf_pool);
+ TEST_ASSERT_NOT_NULL(m_tail,
+ "Not enough mbufs in %d data type mbuf pool (needed %u, available %u)",
+ op_type,
+ n * ref_entries->nb_segments,
+ mbuf_pool->size);
+
+ ret = rte_pktmbuf_chain(m_head, m_tail);
+ TEST_ASSERT_SUCCESS(ret,
+ "Couldn't chain mbufs from %d data type mbuf pool",
+ op_type);
+ }
+ }
+ }
+
+ return 0;
+}
+
+static int
+allocate_buffers_on_socket(struct rte_bbdev_op_data **buffers, const int len,
+ const int socket)
+{
+ int i;
+
+ *buffers = rte_zmalloc_socket(NULL, len, 0, socket);
+ if (*buffers == NULL) {
+ printf("WARNING: Failed to allocate op_data on socket %d\n",
+ socket);
+ /* try to allocate memory on other detected sockets */
+ for (i = 0; i < socket; i++) {
+ *buffers = rte_zmalloc_socket(NULL, len, 0, i);
+ if (*buffers != NULL)
+ break;
+ }
+ }
+
+ return (*buffers == NULL) ? TEST_FAILED : TEST_SUCCESS;
+}
+
+static void
+limit_input_llr_val_range(struct rte_bbdev_op_data *input_ops,
+ const uint16_t n, const int8_t max_llr_modulus)
+{
+ uint16_t i, byte_idx;
+
+ for (i = 0; i < n; ++i) {
+ struct rte_mbuf *m = input_ops[i].data;
+ while (m != NULL) {
+ int8_t *llr = rte_pktmbuf_mtod_offset(m, int8_t *,
+ input_ops[i].offset);
+ for (byte_idx = 0; byte_idx < rte_pktmbuf_data_len(m);
+ ++byte_idx)
+ llr[byte_idx] = round((double)max_llr_modulus *
+ llr[byte_idx] / INT8_MAX);
+
+ m = m->next;
+ }
+ }
+}
+
+/*
+ * We may have to insert filler bits
+ * when they are required by the HARQ assumption
+ */
+static void
+ldpc_add_filler(struct rte_bbdev_op_data *input_ops,
+ const uint16_t n, struct test_op_params *op_params)
+{
+ struct rte_bbdev_op_ldpc_dec dec = op_params->ref_dec_op->ldpc_dec;
+
+ if (input_ops == NULL)
+ return;
+ /* No need to add filler if not required by device */
+ if (!(ldpc_cap_flags &
+ RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_FILLERS))
+ return;
+ /* No need to add filler for loopback operation */
+ if (dec.op_flags & RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_LOOPBACK)
+ return;
+
+ uint16_t i, j, parity_offset;
+ for (i = 0; i < n; ++i) {
+ struct rte_mbuf *m = input_ops[i].data;
+ int8_t *llr = rte_pktmbuf_mtod_offset(m, int8_t *,
+ input_ops[i].offset);
+ parity_offset = (dec.basegraph == 1 ? 20 : 8)
+ * dec.z_c - dec.n_filler;
+ uint16_t new_hin_size = input_ops[i].length + dec.n_filler;
+ m->data_len = new_hin_size;
+ input_ops[i].length = new_hin_size;
+ for (j = new_hin_size - 1; j >= parity_offset + dec.n_filler;
+ j--)
+ llr[j] = llr[j - dec.n_filler];
+ uint16_t llr_max_pre_scaling = (1 << (ldpc_llr_size - 1)) - 1;
+ for (j = 0; j < dec.n_filler; j++)
+ llr[parity_offset + j] = llr_max_pre_scaling;
+ }
+}
+
+static void
+ldpc_input_llr_scaling(struct rte_bbdev_op_data *input_ops,
+ const uint16_t n, const int8_t llr_size,
+ const int8_t llr_decimals)
+{
+ if (input_ops == NULL)
+ return;
+
+ uint16_t i, byte_idx;
+
+ int16_t llr_max, llr_min, llr_tmp;
+ llr_max = (1 << (llr_size - 1)) - 1;
+ llr_min = -llr_max;
+ for (i = 0; i < n; ++i) {
+ struct rte_mbuf *m = input_ops[i].data;
+ while (m != NULL) {
+ int8_t *llr = rte_pktmbuf_mtod_offset(m, int8_t *,
+ input_ops[i].offset);
+ for (byte_idx = 0; byte_idx < rte_pktmbuf_data_len(m);
+ ++byte_idx) {
+
+ llr_tmp = llr[byte_idx];
+ if (llr_decimals == 4)
+ llr_tmp *= 8;
+ else if (llr_decimals == 2)
+ llr_tmp *= 2;
+ else if (llr_decimals == 0)
+ llr_tmp /= 2;
+ llr_tmp = RTE_MIN(llr_max,
+ RTE_MAX(llr_min, llr_tmp));
+ llr[byte_idx] = (int8_t) llr_tmp;
+ }
+
+ m = m->next;
+ }
+ }
+}
+
+
+
+static int
+fill_queue_buffers(struct test_op_params *op_params,
+ struct rte_mempool *in_mp, struct rte_mempool *hard_out_mp,
+ struct rte_mempool *soft_out_mp,
+ struct rte_mempool *harq_in_mp, struct rte_mempool *harq_out_mp,
+ uint16_t queue_id,
+ const struct rte_bbdev_op_cap *capabilities,
+ uint16_t min_alignment, const int socket_id)
+{
+ int ret;
+ enum op_data_type type;
+ const uint16_t n = op_params->num_to_process;
+
+ struct rte_mempool *mbuf_pools[DATA_NUM_TYPES] = {
+ in_mp,
+ soft_out_mp,
+ hard_out_mp,
+ harq_in_mp,
+ harq_out_mp,
+ };
+
+ struct rte_bbdev_op_data **queue_ops[DATA_NUM_TYPES] = {
+ &op_params->q_bufs[socket_id][queue_id].inputs,
+ &op_params->q_bufs[socket_id][queue_id].soft_outputs,
+ &op_params->q_bufs[socket_id][queue_id].hard_outputs,
+ &op_params->q_bufs[socket_id][queue_id].harq_inputs,
+ &op_params->q_bufs[socket_id][queue_id].harq_outputs,
+ };
+
+ for (type = DATA_INPUT; type < DATA_NUM_TYPES; ++type) {
+ struct op_data_entries *ref_entries =
+ &test_vector.entries[type];
+ if (ref_entries->nb_segments == 0)
+ continue;
+
+ ret = allocate_buffers_on_socket(queue_ops[type],
+ n * sizeof(struct rte_bbdev_op_data),
+ socket_id);
+ TEST_ASSERT_SUCCESS(ret,
+ "Couldn't allocate memory for rte_bbdev_op_data structs");
+
+ ret = init_op_data_objs(*queue_ops[type], ref_entries,
+ mbuf_pools[type], n, type, min_alignment);
+ TEST_ASSERT_SUCCESS(ret,
+ "Couldn't init rte_bbdev_op_data structs");
+ }
+
+ if (test_vector.op_type == RTE_BBDEV_OP_TURBO_DEC)
+ limit_input_llr_val_range(*queue_ops[DATA_INPUT], n,
+ capabilities->cap.turbo_dec.max_llr_modulus);
+
+ if (test_vector.op_type == RTE_BBDEV_OP_LDPC_DEC) {
+ bool loopback = op_params->ref_dec_op->ldpc_dec.op_flags &
+ RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_LOOPBACK;
+ bool llr_comp = op_params->ref_dec_op->ldpc_dec.op_flags &
+ RTE_BBDEV_LDPC_LLR_COMPRESSION;
+ bool harq_comp = op_params->ref_dec_op->ldpc_dec.op_flags &
+ RTE_BBDEV_LDPC_HARQ_6BIT_COMPRESSION;
+ ldpc_llr_decimals = capabilities->cap.ldpc_dec.llr_decimals;
+ ldpc_llr_size = capabilities->cap.ldpc_dec.llr_size;
+ ldpc_cap_flags = capabilities->cap.ldpc_dec.capability_flags;
+ if (!loopback && !llr_comp)
+ ldpc_input_llr_scaling(*queue_ops[DATA_INPUT], n,
+ ldpc_llr_size, ldpc_llr_decimals);
+ if (!loopback && !harq_comp)
+ ldpc_input_llr_scaling(*queue_ops[DATA_HARQ_INPUT], n,
+ ldpc_llr_size, ldpc_llr_decimals);
+ if (!loopback)
+ ldpc_add_filler(*queue_ops[DATA_HARQ_INPUT], n,
+ op_params);
+ }
+
+ return 0;
+}
+
+static void
+free_buffers(struct active_device *ad, struct test_op_params *op_params)
+{
+ unsigned int i, j;
+
+ rte_mempool_free(ad->ops_mempool);
+ rte_mempool_free(ad->in_mbuf_pool);
+ rte_mempool_free(ad->hard_out_mbuf_pool);
+ rte_mempool_free(ad->soft_out_mbuf_pool);
+ rte_mempool_free(ad->harq_in_mbuf_pool);
+ rte_mempool_free(ad->harq_out_mbuf_pool);
+
+ for (i = 0; i < rte_lcore_count(); ++i) {
+ for (j = 0; j < RTE_MAX_NUMA_NODES; ++j) {
+ rte_free(op_params->q_bufs[j][i].inputs);
+ rte_free(op_params->q_bufs[j][i].hard_outputs);
+ rte_free(op_params->q_bufs[j][i].soft_outputs);
+ rte_free(op_params->q_bufs[j][i].harq_inputs);
+ rte_free(op_params->q_bufs[j][i].harq_outputs);
+ }
+ }
+}
+
+static void
+copy_reference_dec_op(struct rte_bbdev_dec_op **ops, unsigned int n,
+ unsigned int start_idx,
+ struct rte_bbdev_op_data *inputs,
+ struct rte_bbdev_op_data *hard_outputs,
+ struct rte_bbdev_op_data *soft_outputs,
+ struct rte_bbdev_dec_op *ref_op)
+{
+ unsigned int i;
+ struct rte_bbdev_op_turbo_dec *turbo_dec = &ref_op->turbo_dec;
+
+ for (i = 0; i < n; ++i) {
+ if (turbo_dec->code_block_mode == 0) {
+ ops[i]->turbo_dec.tb_params.ea =
+ turbo_dec->tb_params.ea;
+ ops[i]->turbo_dec.tb_params.eb =
+ turbo_dec->tb_params.eb;
+ ops[i]->turbo_dec.tb_params.k_pos =
+ turbo_dec->tb_params.k_pos;
+ ops[i]->turbo_dec.tb_params.k_neg =
+ turbo_dec->tb_params.k_neg;
+ ops[i]->turbo_dec.tb_params.c =
+ turbo_dec->tb_params.c;
+ ops[i]->turbo_dec.tb_params.c_neg =
+ turbo_dec->tb_params.c_neg;
+ ops[i]->turbo_dec.tb_params.cab =
+ turbo_dec->tb_params.cab;
+ ops[i]->turbo_dec.tb_params.r =
+ turbo_dec->tb_params.r;
+ } else {
+ ops[i]->turbo_dec.cb_params.e = turbo_dec->cb_params.e;
+ ops[i]->turbo_dec.cb_params.k = turbo_dec->cb_params.k;
+ }
+
+ ops[i]->turbo_dec.ext_scale = turbo_dec->ext_scale;
+ ops[i]->turbo_dec.iter_max = turbo_dec->iter_max;
+ ops[i]->turbo_dec.iter_min = turbo_dec->iter_min;
+ ops[i]->turbo_dec.op_flags = turbo_dec->op_flags;
+ ops[i]->turbo_dec.rv_index = turbo_dec->rv_index;
+ ops[i]->turbo_dec.num_maps = turbo_dec->num_maps;
+ ops[i]->turbo_dec.code_block_mode = turbo_dec->code_block_mode;
+
+ ops[i]->turbo_dec.hard_output = hard_outputs[start_idx + i];
+ ops[i]->turbo_dec.input = inputs[start_idx + i];
+ if (soft_outputs != NULL)
+ ops[i]->turbo_dec.soft_output =
+ soft_outputs[start_idx + i];
+ }
+}
+
+static void
+copy_reference_enc_op(struct rte_bbdev_enc_op **ops, unsigned int n,
+ unsigned int start_idx,
+ struct rte_bbdev_op_data *inputs,
+ struct rte_bbdev_op_data *outputs,
+ struct rte_bbdev_enc_op *ref_op)
+{
+ unsigned int i;
+ struct rte_bbdev_op_turbo_enc *turbo_enc = &ref_op->turbo_enc;
+ for (i = 0; i < n; ++i) {
+ if (turbo_enc->code_block_mode == 0) {
+ ops[i]->turbo_enc.tb_params.ea =
+ turbo_enc->tb_params.ea;
+ ops[i]->turbo_enc.tb_params.eb =
+ turbo_enc->tb_params.eb;
+ ops[i]->turbo_enc.tb_params.k_pos =
+ turbo_enc->tb_params.k_pos;
+ ops[i]->turbo_enc.tb_params.k_neg =
+ turbo_enc->tb_params.k_neg;
+ ops[i]->turbo_enc.tb_params.c =
+ turbo_enc->tb_params.c;
+ ops[i]->turbo_enc.tb_params.c_neg =
+ turbo_enc->tb_params.c_neg;
+ ops[i]->turbo_enc.tb_params.cab =
+ turbo_enc->tb_params.cab;
+ ops[i]->turbo_enc.tb_params.ncb_pos =
+ turbo_enc->tb_params.ncb_pos;
+ ops[i]->turbo_enc.tb_params.ncb_neg =
+ turbo_enc->tb_params.ncb_neg;
+ ops[i]->turbo_enc.tb_params.r = turbo_enc->tb_params.r;
+ } else {
+ ops[i]->turbo_enc.cb_params.e = turbo_enc->cb_params.e;
+ ops[i]->turbo_enc.cb_params.k = turbo_enc->cb_params.k;
+ ops[i]->turbo_enc.cb_params.ncb =
+ turbo_enc->cb_params.ncb;
+ }
+ ops[i]->turbo_enc.rv_index = turbo_enc->rv_index;
+ ops[i]->turbo_enc.op_flags = turbo_enc->op_flags;
+ ops[i]->turbo_enc.code_block_mode = turbo_enc->code_block_mode;
+
+ ops[i]->turbo_enc.output = outputs[start_idx + i];
+ ops[i]->turbo_enc.input = inputs[start_idx + i];
+ }
+}
+
+
+/* Returns a random number drawn from a normal distribution
+ * with mean of 0 and variance of 1
+ * Marsaglia algorithm
+ */
+static double
+randn(int n)
+{
+ double S, Z, U1, U2, u, v, fac;
+
+ do {
+ U1 = (double)rand() / RAND_MAX;
+ U2 = (double)rand() / RAND_MAX;
+ u = 2. * U1 - 1.;
+ v = 2. * U2 - 1.;
+ S = u * u + v * v;
+ } while (S >= 1 || S == 0);
+ fac = sqrt(-2. * log(S) / S);
+ Z = (n % 2) ? u * fac : v * fac;
+ return Z;
+}
+
+static inline double
+maxstar(double A, double B)
+{
+ if (fabs(A - B) > 5)
+ return RTE_MAX(A, B);
+ else
+ return RTE_MAX(A, B) + log1p(exp(-fabs(A - B)));
+}
+
+/*
+ * Generate Qm LLRS for Qm==8
+ * Modulation, AWGN and LLR estimation from max log development
+ */
+static void
+gen_qm8_llr(int8_t *llrs, uint32_t i, double N0, double llr_max)
+{
+ int qm = 8;
+ int qam = 256;
+ int m, k;
+ double I, Q, p0, p1, llr_, b[qm], log_syml_prob[qam];
+ /* 5.1.4 of TS38.211 */
+ const double symbols_I[256] = {
+ 5, 5, 7, 7, 5, 5, 7, 7, 3, 3, 1, 1, 3, 3, 1, 1, 5,
+ 5, 7, 7, 5, 5, 7, 7, 3, 3, 1, 1, 3, 3, 1, 1, 11,
+ 11, 9, 9, 11, 11, 9, 9, 13, 13, 15, 15, 13, 13,
+ 15, 15, 11, 11, 9, 9, 11, 11, 9, 9, 13, 13, 15,
+ 15, 13, 13, 15, 15, 5, 5, 7, 7, 5, 5, 7, 7, 3, 3,
+ 1, 1, 3, 3, 1, 1, 5, 5, 7, 7, 5, 5, 7, 7, 3, 3, 1,
+ 1, 3, 3, 1, 1, 11, 11, 9, 9, 11, 11, 9, 9, 13, 13,
+ 15, 15, 13, 13, 15, 15, 11, 11, 9, 9, 11, 11, 9, 9,
+ 13, 13, 15, 15, 13, 13, 15, 15, -5, -5, -7, -7, -5,
+ -5, -7, -7, -3, -3, -1, -1, -3, -3, -1, -1, -5, -5,
+ -7, -7, -5, -5, -7, -7, -3, -3, -1, -1, -3, -3,
+ -1, -1, -11, -11, -9, -9, -11, -11, -9, -9, -13,
+ -13, -15, -15, -13, -13, -15, -15, -11, -11, -9,
+ -9, -11, -11, -9, -9, -13, -13, -15, -15, -13,
+ -13, -15, -15, -5, -5, -7, -7, -5, -5, -7, -7, -3,
+ -3, -1, -1, -3, -3, -1, -1, -5, -5, -7, -7, -5, -5,
+ -7, -7, -3, -3, -1, -1, -3, -3, -1, -1, -11, -11,
+ -9, -9, -11, -11, -9, -9, -13, -13, -15, -15, -13,
+ -13, -15, -15, -11, -11, -9, -9, -11, -11, -9, -9,
+ -13, -13, -15, -15, -13, -13, -15, -15};
+ const double symbols_Q[256] = {
+ 5, 7, 5, 7, 3, 1, 3, 1, 5, 7, 5, 7, 3, 1, 3, 1, 11,
+ 9, 11, 9, 13, 15, 13, 15, 11, 9, 11, 9, 13, 15, 13,
+ 15, 5, 7, 5, 7, 3, 1, 3, 1, 5, 7, 5, 7, 3, 1, 3, 1,
+ 11, 9, 11, 9, 13, 15, 13, 15, 11, 9, 11, 9, 13,
+ 15, 13, 15, -5, -7, -5, -7, -3, -1, -3, -1, -5,
+ -7, -5, -7, -3, -1, -3, -1, -11, -9, -11, -9, -13,
+ -15, -13, -15, -11, -9, -11, -9, -13, -15, -13,
+ -15, -5, -7, -5, -7, -3, -1, -3, -1, -5, -7, -5,
+ -7, -3, -1, -3, -1, -11, -9, -11, -9, -13, -15,
+ -13, -15, -11, -9, -11, -9, -13, -15, -13, -15, 5,
+ 7, 5, 7, 3, 1, 3, 1, 5, 7, 5, 7, 3, 1, 3, 1, 11,
+ 9, 11, 9, 13, 15, 13, 15, 11, 9, 11, 9, 13, 15,
+ 13, 15, 5, 7, 5, 7, 3, 1, 3, 1, 5, 7, 5, 7, 3, 1,
+ 3, 1, 11, 9, 11, 9, 13, 15, 13, 15, 11, 9, 11, 9,
+ 13, 15, 13, 15, -5, -7, -5, -7, -3, -1, -3, -1,
+ -5, -7, -5, -7, -3, -1, -3, -1, -11, -9, -11, -9,
+ -13, -15, -13, -15, -11, -9, -11, -9, -13, -15,
+ -13, -15, -5, -7, -5, -7, -3, -1, -3, -1, -5, -7,
+ -5, -7, -3, -1, -3, -1, -11, -9, -11, -9, -13, -15,
+ -13, -15, -11, -9, -11, -9, -13, -15, -13, -15};
+ /* Average constellation point energy */
+ N0 *= 170.0;
+ for (k = 0; k < qm; k++)
+ b[k] = llrs[qm * i + k] < 0 ? 1.0 : 0.0;
+ /* 5.1.4 of TS38.211 */
+ I = (1 - 2 * b[0]) * (8 - (1 - 2 * b[2]) *
+ (4 - (1 - 2 * b[4]) * (2 - (1 - 2 * b[6]))));
+ Q = (1 - 2 * b[1]) * (8 - (1 - 2 * b[3]) *
+ (4 - (1 - 2 * b[5]) * (2 - (1 - 2 * b[7]))));
+ /* AWGN channel */
+ I += sqrt(N0 / 2) * randn(0);
+ Q += sqrt(N0 / 2) * randn(1);
+ /*
+ * Calculate the log of the probability that each of
+ * the constellation points was transmitted
+ */
+ for (m = 0; m < qam; m++)
+ log_syml_prob[m] = -(pow(I - symbols_I[m], 2.0)
+ + pow(Q - symbols_Q[m], 2.0)) / N0;
+ /* Calculate an LLR for each of the k_64QAM bits in the set */
+ for (k = 0; k < qm; k++) {
+ p0 = -999999;
+ p1 = -999999;
+ /* For each constellation point */
+ for (m = 0; m < qam; m++) {
+ if ((m >> (qm - k - 1)) & 1)
+ p1 = maxstar(p1, log_syml_prob[m]);
+ else
+ p0 = maxstar(p0, log_syml_prob[m]);
+ }
+ /* Calculate the LLR */
+ llr_ = p0 - p1;
+ llr_ *= (1 << ldpc_llr_decimals);
+ llr_ = round(llr_);
+ if (llr_ > llr_max)
+ llr_ = llr_max;
+ if (llr_ < -llr_max)
+ llr_ = -llr_max;
+ llrs[qm * i + k] = (int8_t) llr_;
+ }
+}
+
+
+/*
+ * Generate Qm LLRS for Qm==6
+ * Modulation, AWGN and LLR estimation from max log development
+ */
+static void
+gen_qm6_llr(int8_t *llrs, uint32_t i, double N0, double llr_max)
+{
+ int qm = 6;
+ int qam = 64;
+ int m, k;
+ double I, Q, p0, p1, llr_, b[qm], log_syml_prob[qam];
+ /* 5.1.4 of TS38.211 */
+ const double symbols_I[64] = {
+ 3, 3, 1, 1, 3, 3, 1, 1, 5, 5, 7, 7, 5, 5, 7, 7,
+ 3, 3, 1, 1, 3, 3, 1, 1, 5, 5, 7, 7, 5, 5, 7, 7,
+ -3, -3, -1, -1, -3, -3, -1, -1, -5, -5, -7, -7,
+ -5, -5, -7, -7, -3, -3, -1, -1, -3, -3, -1, -1,
+ -5, -5, -7, -7, -5, -5, -7, -7};
+ const double symbols_Q[64] = {
+ 3, 1, 3, 1, 5, 7, 5, 7, 3, 1, 3, 1, 5, 7, 5, 7,
+ -3, -1, -3, -1, -5, -7, -5, -7, -3, -1, -3, -1,
+ -5, -7, -5, -7, 3, 1, 3, 1, 5, 7, 5, 7, 3, 1, 3, 1,
+ 5, 7, 5, 7, -3, -1, -3, -1, -5, -7, -5, -7,
+ -3, -1, -3, -1, -5, -7, -5, -7};
+ /* Average constellation point energy */
+ N0 *= 42.0;
+ for (k = 0; k < qm; k++)
+ b[k] = llrs[qm * i + k] < 0 ? 1.0 : 0.0;
+ /* 5.1.4 of TS38.211 */
+ I = (1 - 2 * b[0])*(4 - (1 - 2 * b[2]) * (2 - (1 - 2 * b[4])));
+ Q = (1 - 2 * b[1])*(4 - (1 - 2 * b[3]) * (2 - (1 - 2 * b[5])));
+ /* AWGN channel */
+ I += sqrt(N0 / 2) * randn(0);
+ Q += sqrt(N0 / 2) * randn(1);
+ /*
+ * Calculate the log of the probability that each of
+ * the constellation points was transmitted
+ */
+ for (m = 0; m < qam; m++)
+ log_syml_prob[m] = -(pow(I - symbols_I[m], 2.0)
+ + pow(Q - symbols_Q[m], 2.0)) / N0;
+ /* Calculate an LLR for each of the k_64QAM bits in the set */
+ for (k = 0; k < qm; k++) {
+ p0 = -999999;
+ p1 = -999999;
+ /* For each constellation point */
+ for (m = 0; m < qam; m++) {
+ if ((m >> (qm - k - 1)) & 1)
+ p1 = maxstar(p1, log_syml_prob[m]);
+ else
+ p0 = maxstar(p0, log_syml_prob[m]);
+ }
+ /* Calculate the LLR */
+ llr_ = p0 - p1;
+ llr_ *= (1 << ldpc_llr_decimals);
+ llr_ = round(llr_);
+ if (llr_ > llr_max)
+ llr_ = llr_max;
+ if (llr_ < -llr_max)
+ llr_ = -llr_max;
+ llrs[qm * i + k] = (int8_t) llr_;
+ }
+}
+
+/*
+ * Generate Qm LLRS for Qm==4
+ * Modulation, AWGN and LLR estimation from max log development
+ */
+static void
+gen_qm4_llr(int8_t *llrs, uint32_t i, double N0, double llr_max)
+{
+ int qm = 4;
+ int qam = 16;
+ int m, k;
+ double I, Q, p0, p1, llr_, b[qm], log_syml_prob[qam];
+ /* 5.1.4 of TS38.211 */
+ const double symbols_I[16] = {1, 1, 3, 3, 1, 1, 3, 3,
+ -1, -1, -3, -3, -1, -1, -3, -3};
+ const double symbols_Q[16] = {1, 3, 1, 3, -1, -3, -1, -3,
+ 1, 3, 1, 3, -1, -3, -1, -3};
+ /* Average constellation point energy */
+ N0 *= 10.0;
+ for (k = 0; k < qm; k++)
+ b[k] = llrs[qm * i + k] < 0 ? 1.0 : 0.0;
+ /* 5.1.4 of TS38.211 */
+ I = (1 - 2 * b[0]) * (2 - (1 - 2 * b[2]));
+ Q = (1 - 2 * b[1]) * (2 - (1 - 2 * b[3]));
+ /* AWGN channel */
+ I += sqrt(N0 / 2) * randn(0);
+ Q += sqrt(N0 / 2) * randn(1);
+ /*
+ * Calculate the log of the probability that each of
+ * the constellation points was transmitted
+ */
+ for (m = 0; m < qam; m++)
+ log_syml_prob[m] = -(pow(I - symbols_I[m], 2.0)
+ + pow(Q - symbols_Q[m], 2.0)) / N0;
+ /* Calculate an LLR for each of the k_64QAM bits in the set */
+ for (k = 0; k < qm; k++) {
+ p0 = -999999;
+ p1 = -999999;
+ /* For each constellation point */
+ for (m = 0; m < qam; m++) {
+ if ((m >> (qm - k - 1)) & 1)
+ p1 = maxstar(p1, log_syml_prob[m]);
+ else
+ p0 = maxstar(p0, log_syml_prob[m]);
+ }
+ /* Calculate the LLR */
+ llr_ = p0 - p1;
+ llr_ *= (1 << ldpc_llr_decimals);
+ llr_ = round(llr_);
+ if (llr_ > llr_max)
+ llr_ = llr_max;
+ if (llr_ < -llr_max)
+ llr_ = -llr_max;
+ llrs[qm * i + k] = (int8_t) llr_;
+ }
+}
+
+static void
+gen_qm2_llr(int8_t *llrs, uint32_t j, double N0, double llr_max)
+{
+ double b, b1, n;
+ double coeff = 2.0 * sqrt(N0);
+
+ /* Ignore in vectors rare quasi null LLRs not to be saturated */
+ if (llrs[j] < 8 && llrs[j] > -8)
+ return;
+
+ /* Note don't change sign here */
+ n = randn(j % 2);
+ b1 = ((llrs[j] > 0 ? 2.0 : -2.0)
+ + coeff * n) / N0;
+ b = b1 * (1 << ldpc_llr_decimals);
+ b = round(b);
+ if (b > llr_max)
+ b = llr_max;
+ if (b < -llr_max)
+ b = -llr_max;
+ llrs[j] = (int8_t) b;
+}
+
+/* Generate LLR for a given SNR */
+static void
+generate_llr_input(uint16_t n, struct rte_bbdev_op_data *inputs,
+ struct rte_bbdev_dec_op *ref_op)
+{
+ struct rte_mbuf *m;
+ uint16_t qm;
+ uint32_t i, j, e, range;
+ double N0, llr_max;
+
+ e = ref_op->ldpc_dec.cb_params.e;
+ qm = ref_op->ldpc_dec.q_m;
+ llr_max = (1 << (ldpc_llr_size - 1)) - 1;
+ range = e / qm;
+ N0 = 1.0 / pow(10.0, get_snr() / 10.0);
+
+ for (i = 0; i < n; ++i) {
+ m = inputs[i].data;
+ int8_t *llrs = rte_pktmbuf_mtod_offset(m, int8_t *, 0);
+ if (qm == 8) {
+ for (j = 0; j < range; ++j)
+ gen_qm8_llr(llrs, j, N0, llr_max);
+ } else if (qm == 6) {
+ for (j = 0; j < range; ++j)
+ gen_qm6_llr(llrs, j, N0, llr_max);
+ } else if (qm == 4) {
+ for (j = 0; j < range; ++j)
+ gen_qm4_llr(llrs, j, N0, llr_max);
+ } else {
+ for (j = 0; j < e; ++j)
+ gen_qm2_llr(llrs, j, N0, llr_max);
+ }
+ }
+}
+
+static void
+copy_reference_ldpc_dec_op(struct rte_bbdev_dec_op **ops, unsigned int n,
+ unsigned int start_idx,
+ struct rte_bbdev_op_data *inputs,
+ struct rte_bbdev_op_data *hard_outputs,
+ struct rte_bbdev_op_data *soft_outputs,
+ struct rte_bbdev_op_data *harq_inputs,
+ struct rte_bbdev_op_data *harq_outputs,
+ struct rte_bbdev_dec_op *ref_op)
+{
+ unsigned int i;
+ struct rte_bbdev_op_ldpc_dec *ldpc_dec = &ref_op->ldpc_dec;
+
+ for (i = 0; i < n; ++i) {
+ if (ldpc_dec->code_block_mode == 0) {
+ ops[i]->ldpc_dec.tb_params.ea =
+ ldpc_dec->tb_params.ea;
+ ops[i]->ldpc_dec.tb_params.eb =
+ ldpc_dec->tb_params.eb;
+ ops[i]->ldpc_dec.tb_params.c =
+ ldpc_dec->tb_params.c;
+ ops[i]->ldpc_dec.tb_params.cab =
+ ldpc_dec->tb_params.cab;
+ ops[i]->ldpc_dec.tb_params.r =
+ ldpc_dec->tb_params.r;
+ } else {
+ ops[i]->ldpc_dec.cb_params.e = ldpc_dec->cb_params.e;
+ }
+
+ ops[i]->ldpc_dec.basegraph = ldpc_dec->basegraph;
+ ops[i]->ldpc_dec.z_c = ldpc_dec->z_c;
+ ops[i]->ldpc_dec.q_m = ldpc_dec->q_m;
+ ops[i]->ldpc_dec.n_filler = ldpc_dec->n_filler;
+ ops[i]->ldpc_dec.n_cb = ldpc_dec->n_cb;
+ ops[i]->ldpc_dec.iter_max = ldpc_dec->iter_max;
+ ops[i]->ldpc_dec.rv_index = ldpc_dec->rv_index;
+ ops[i]->ldpc_dec.op_flags = ldpc_dec->op_flags;
+ ops[i]->ldpc_dec.code_block_mode = ldpc_dec->code_block_mode;
+
+ if (hard_outputs != NULL)
+ ops[i]->ldpc_dec.hard_output =
+ hard_outputs[start_idx + i];
+ if (inputs != NULL)
+ ops[i]->ldpc_dec.input =
+ inputs[start_idx + i];
+ if (soft_outputs != NULL)
+ ops[i]->ldpc_dec.soft_output =
+ soft_outputs[start_idx + i];
+ if (harq_inputs != NULL)
+ ops[i]->ldpc_dec.harq_combined_input =
+ harq_inputs[start_idx + i];
+ if (harq_outputs != NULL)
+ ops[i]->ldpc_dec.harq_combined_output =
+ harq_outputs[start_idx + i];
+ }
+}
+
+
+static void
+copy_reference_ldpc_enc_op(struct rte_bbdev_enc_op **ops, unsigned int n,
+ unsigned int start_idx,
+ struct rte_bbdev_op_data *inputs,
+ struct rte_bbdev_op_data *outputs,
+ struct rte_bbdev_enc_op *ref_op)
+{
+ unsigned int i;
+ struct rte_bbdev_op_ldpc_enc *ldpc_enc = &ref_op->ldpc_enc;
+ for (i = 0; i < n; ++i) {
+ if (ldpc_enc->code_block_mode == 0) {
+ ops[i]->ldpc_enc.tb_params.ea = ldpc_enc->tb_params.ea;
+ ops[i]->ldpc_enc.tb_params.eb = ldpc_enc->tb_params.eb;
+ ops[i]->ldpc_enc.tb_params.cab =
+ ldpc_enc->tb_params.cab;
+ ops[i]->ldpc_enc.tb_params.c = ldpc_enc->tb_params.c;
+ ops[i]->ldpc_enc.tb_params.r = ldpc_enc->tb_params.r;
+ } else {
+ ops[i]->ldpc_enc.cb_params.e = ldpc_enc->cb_params.e;
+ }
+ ops[i]->ldpc_enc.basegraph = ldpc_enc->basegraph;
+ ops[i]->ldpc_enc.z_c = ldpc_enc->z_c;
+ ops[i]->ldpc_enc.q_m = ldpc_enc->q_m;
+ ops[i]->ldpc_enc.n_filler = ldpc_enc->n_filler;
+ ops[i]->ldpc_enc.n_cb = ldpc_enc->n_cb;
+ ops[i]->ldpc_enc.rv_index = ldpc_enc->rv_index;
+ ops[i]->ldpc_enc.op_flags = ldpc_enc->op_flags;
+ ops[i]->ldpc_enc.code_block_mode = ldpc_enc->code_block_mode;
+ ops[i]->ldpc_enc.output = outputs[start_idx + i];
+ ops[i]->ldpc_enc.input = inputs[start_idx + i];
+ }
+}
+
+static int
+check_dec_status_and_ordering(struct rte_bbdev_dec_op *op,
+ unsigned int order_idx, const int expected_status)
+{
+ int status = op->status;
+ /* ignore parity mismatch false alarms for long iterations */
+ if (get_iter_max() >= 10) {
+ if (!(expected_status & (1 << RTE_BBDEV_SYNDROME_ERROR)) &&
+ (status & (1 << RTE_BBDEV_SYNDROME_ERROR))) {
+ printf("WARNING: Ignore Syndrome Check mismatch\n");
+ status -= (1 << RTE_BBDEV_SYNDROME_ERROR);
+ }
+ if ((expected_status & (1 << RTE_BBDEV_SYNDROME_ERROR)) &&
+ !(status & (1 << RTE_BBDEV_SYNDROME_ERROR))) {
+ printf("WARNING: Ignore Syndrome Check mismatch\n");
+ status += (1 << RTE_BBDEV_SYNDROME_ERROR);
+ }
+ }
+
+ TEST_ASSERT(status == expected_status,
+ "op_status (%d) != expected_status (%d)",
+ op->status, expected_status);
+
+ TEST_ASSERT((void *)(uintptr_t)order_idx == op->opaque_data,
+ "Ordering error, expected %p, got %p",
+ (void *)(uintptr_t)order_idx, op->opaque_data);
+
+ return TEST_SUCCESS;
+}
+
+static int
+check_enc_status_and_ordering(struct rte_bbdev_enc_op *op,
+ unsigned int order_idx, const int expected_status)
+{
+ TEST_ASSERT(op->status == expected_status,
+ "op_status (%d) != expected_status (%d)",
+ op->status, expected_status);
+
+ if (op->opaque_data != (void *)(uintptr_t)INVALID_OPAQUE)
+ TEST_ASSERT((void *)(uintptr_t)order_idx == op->opaque_data,
+ "Ordering error, expected %p, got %p",
+ (void *)(uintptr_t)order_idx, op->opaque_data);
+
+ return TEST_SUCCESS;
+}
+
+static inline int
+validate_op_chain(struct rte_bbdev_op_data *op,
+ struct op_data_entries *orig_op)
+{
+ uint8_t i;
+ struct rte_mbuf *m = op->data;
+ uint8_t nb_dst_segments = orig_op->nb_segments;
+ uint32_t total_data_size = 0;
+
+ TEST_ASSERT(nb_dst_segments == m->nb_segs,
+ "Number of segments differ in original (%u) and filled (%u) op",
+ nb_dst_segments, m->nb_segs);
+
+ /* Validate each mbuf segment length */
+ for (i = 0; i < nb_dst_segments; ++i) {
+ /* Apply offset to the first mbuf segment */
+ uint16_t offset = (i == 0) ? op->offset : 0;
+ uint16_t data_len = rte_pktmbuf_data_len(m) - offset;
+ total_data_size += orig_op->segments[i].length;
+
+ TEST_ASSERT(orig_op->segments[i].length == data_len,
+ "Length of segment differ in original (%u) and filled (%u) op",
+ orig_op->segments[i].length, data_len);
+ TEST_ASSERT_BUFFERS_ARE_EQUAL(orig_op->segments[i].addr,
+ rte_pktmbuf_mtod_offset(m, uint32_t *, offset),
+ data_len,
+ "Output buffers (CB=%u) are not equal", i);
+ m = m->next;
+ }
+
+ /* Validate total mbuf pkt length */
+ uint32_t pkt_len = rte_pktmbuf_pkt_len(op->data) - op->offset;
+ TEST_ASSERT(total_data_size == pkt_len,
+ "Length of data differ in original (%u) and filled (%u) op",
+ total_data_size, pkt_len);
+
+ return TEST_SUCCESS;
+}
+
+/*
+ * Compute K0 for a given configuration for HARQ output length computation
+ * As per definition in 3GPP 38.212 Table 5.4.2.1-2
+ */
+static inline uint16_t
+get_k0(uint16_t n_cb, uint16_t z_c, uint8_t bg, uint8_t rv_index)
+{
+ if (rv_index == 0)
+ return 0;
+ uint16_t n = (bg == 1 ? N_ZC_1 : N_ZC_2) * z_c;
+ if (n_cb == n) {
+ if (rv_index == 1)
+ return (bg == 1 ? K0_1_1 : K0_1_2) * z_c;
+ else if (rv_index == 2)
+ return (bg == 1 ? K0_2_1 : K0_2_2) * z_c;
+ else
+ return (bg == 1 ? K0_3_1 : K0_3_2) * z_c;
+ }
+ /* LBRM case - includes a division by N */
+ if (rv_index == 1)
+ return (((bg == 1 ? K0_1_1 : K0_1_2) * n_cb)
+ / n) * z_c;
+ else if (rv_index == 2)
+ return (((bg == 1 ? K0_2_1 : K0_2_2) * n_cb)
+ / n) * z_c;
+ else
+ return (((bg == 1 ? K0_3_1 : K0_3_2) * n_cb)
+ / n) * z_c;
+}
+
+/* HARQ output length including the Filler bits */
+static inline uint16_t
+compute_harq_len(struct rte_bbdev_op_ldpc_dec *ops_ld)
+{
+ uint16_t k0 = 0;
+ uint8_t max_rv = (ops_ld->rv_index == 1) ? 3 : ops_ld->rv_index;
+ k0 = get_k0(ops_ld->n_cb, ops_ld->z_c, ops_ld->basegraph, max_rv);
+ /* Compute RM out size and number of rows */
+ uint16_t parity_offset = (ops_ld->basegraph == 1 ? 20 : 8)
+ * ops_ld->z_c - ops_ld->n_filler;
+ uint16_t deRmOutSize = RTE_MIN(
+ k0 + ops_ld->cb_params.e +
+ ((k0 > parity_offset) ?
+ 0 : ops_ld->n_filler),
+ ops_ld->n_cb);
+ uint16_t numRows = ((deRmOutSize + ops_ld->z_c - 1)
+ / ops_ld->z_c);
+ uint16_t harq_output_len = numRows * ops_ld->z_c;
+ return harq_output_len;
+}
+
+static inline int
+validate_op_harq_chain(struct rte_bbdev_op_data *op,
+ struct op_data_entries *orig_op,
+ struct rte_bbdev_op_ldpc_dec *ops_ld)
+{
+ uint8_t i;
+ uint32_t j, jj, k;
+ struct rte_mbuf *m = op->data;
+ uint8_t nb_dst_segments = orig_op->nb_segments;
+ uint32_t total_data_size = 0;
+ int8_t *harq_orig, *harq_out, abs_harq_origin;
+ uint32_t byte_error = 0, cum_error = 0, error;
+ int16_t llr_max = (1 << (ldpc_llr_size - ldpc_llr_decimals)) - 1;
+ int16_t llr_max_pre_scaling = (1 << (ldpc_llr_size - 1)) - 1;
+ uint16_t parity_offset;
+
+ TEST_ASSERT(nb_dst_segments == m->nb_segs,
+ "Number of segments differ in original (%u) and filled (%u) op",
+ nb_dst_segments, m->nb_segs);
+
+ /* Validate each mbuf segment length */
+ for (i = 0; i < nb_dst_segments; ++i) {
+ /* Apply offset to the first mbuf segment */
+ uint16_t offset = (i == 0) ? op->offset : 0;
+ uint16_t data_len = rte_pktmbuf_data_len(m) - offset;
+ total_data_size += orig_op->segments[i].length;
+
+ TEST_ASSERT(orig_op->segments[i].length <
+ (uint32_t)(data_len + 64),
+ "Length of segment differ in original (%u) and filled (%u) op",
+ orig_op->segments[i].length, data_len);
+ harq_orig = (int8_t *) orig_op->segments[i].addr;
+ harq_out = rte_pktmbuf_mtod_offset(m, int8_t *, offset);
+
+ if (!(ldpc_cap_flags &
+ RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_FILLERS
+ ) || (ops_ld->op_flags &
+ RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_LOOPBACK)) {
+ data_len -= ops_ld->z_c;
+ parity_offset = data_len;
+ } else {
+ /* Compute RM out size and number of rows */
+ parity_offset = (ops_ld->basegraph == 1 ? 20 : 8)
+ * ops_ld->z_c - ops_ld->n_filler;
+ uint16_t deRmOutSize = compute_harq_len(ops_ld) -
+ ops_ld->n_filler;
+ if (data_len > deRmOutSize)
+ data_len = deRmOutSize;
+ if (data_len > orig_op->segments[i].length)
+ data_len = orig_op->segments[i].length;
+ }
+ /*
+ * HARQ output can have minor differences
+ * due to integer representation and related scaling
+ */
+ for (j = 0, jj = 0; j < data_len; j++, jj++) {
+ if (j == parity_offset) {
+ /* Special Handling of the filler bits */
+ for (k = 0; k < ops_ld->n_filler; k++) {
+ if (harq_out[jj] !=
+ llr_max_pre_scaling) {
+ printf("HARQ Filler issue %d: %d %d\n",
+ jj, harq_out[jj],
+ llr_max);
+ byte_error++;
+ }
+ jj++;
+ }
+ }
+ if (!(ops_ld->op_flags &
+ RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_LOOPBACK)) {
+ if (ldpc_llr_decimals > 1)
+ harq_out[jj] = (harq_out[jj] + 1)
+ >> (ldpc_llr_decimals - 1);
+ /* Saturated to S7 */
+ if (harq_orig[j] > llr_max)
+ harq_orig[j] = llr_max;
+ if (harq_orig[j] < -llr_max)
+ harq_orig[j] = -llr_max;
+ }
+ if (harq_orig[j] != harq_out[jj]) {
+ error = (harq_orig[j] > harq_out[jj]) ?
+ harq_orig[j] - harq_out[jj] :
+ harq_out[jj] - harq_orig[j];
+ abs_harq_origin = harq_orig[j] > 0 ?
+ harq_orig[j] :
+ -harq_orig[j];
+ /* Residual quantization error */
+ if ((error > 8 && (abs_harq_origin <
+ (llr_max - 16))) ||
+ (error > 16)) {
+ printf("HARQ mismatch %d: exp %d act %d => %d\n",
+ j, harq_orig[j],
+ harq_out[jj], error);
+ byte_error++;
+ cum_error += error;
+ }
+ }
+ }
+ m = m->next;
+ }
+
+ if (byte_error)
+ TEST_ASSERT(byte_error <= 1,
+ "HARQ output mismatch (%d) %d",
+ byte_error, cum_error);
+
+ /* Validate total mbuf pkt length */
+ uint32_t pkt_len = rte_pktmbuf_pkt_len(op->data) - op->offset;
+ TEST_ASSERT(total_data_size < pkt_len + 64,
+ "Length of data differ in original (%u) and filled (%u) op",
+ total_data_size, pkt_len);
+
+ return TEST_SUCCESS;
+}
+
+static int
+validate_dec_op(struct rte_bbdev_dec_op **ops, const uint16_t n,
+ struct rte_bbdev_dec_op *ref_op, const int vector_mask)
+{
+ unsigned int i;
+ int ret;
+ struct op_data_entries *hard_data_orig =
+ &test_vector.entries[DATA_HARD_OUTPUT];
+ struct op_data_entries *soft_data_orig =
+ &test_vector.entries[DATA_SOFT_OUTPUT];
+ struct rte_bbdev_op_turbo_dec *ops_td;
+ struct rte_bbdev_op_data *hard_output;
+ struct rte_bbdev_op_data *soft_output;
+ struct rte_bbdev_op_turbo_dec *ref_td = &ref_op->turbo_dec;
+
+ for (i = 0; i < n; ++i) {
+ ops_td = &ops[i]->turbo_dec;
+ hard_output = &ops_td->hard_output;
+ soft_output = &ops_td->soft_output;
+
+ if (vector_mask & TEST_BBDEV_VF_EXPECTED_ITER_COUNT)
+ TEST_ASSERT(ops_td->iter_count <= ref_td->iter_count,
+ "Returned iter_count (%d) > expected iter_count (%d)",
+ ops_td->iter_count, ref_td->iter_count);
+ ret = check_dec_status_and_ordering(ops[i], i, ref_op->status);
+ TEST_ASSERT_SUCCESS(ret,
+ "Checking status and ordering for decoder failed");
+
+ TEST_ASSERT_SUCCESS(validate_op_chain(hard_output,
+ hard_data_orig),
+ "Hard output buffers (CB=%u) are not equal",
+ i);
+
+ if (ref_op->turbo_dec.op_flags & RTE_BBDEV_TURBO_SOFT_OUTPUT)
+ TEST_ASSERT_SUCCESS(validate_op_chain(soft_output,
+ soft_data_orig),
+ "Soft output buffers (CB=%u) are not equal",
+ i);
+ }
+
+ return TEST_SUCCESS;
+}
+
+/* Check Number of code blocks errors */
+static int
+validate_ldpc_bler(struct rte_bbdev_dec_op **ops, const uint16_t n)
+{
+ unsigned int i;
+ struct op_data_entries *hard_data_orig =
+ &test_vector.entries[DATA_HARD_OUTPUT];
+ struct rte_bbdev_op_ldpc_dec *ops_td;
+ struct rte_bbdev_op_data *hard_output;
+ int errors = 0;
+ struct rte_mbuf *m;
+
+ for (i = 0; i < n; ++i) {
+ ops_td = &ops[i]->ldpc_dec;
+ hard_output = &ops_td->hard_output;
+ m = hard_output->data;
+ if (memcmp(rte_pktmbuf_mtod_offset(m, uint32_t *, 0),
+ hard_data_orig->segments[0].addr,
+ hard_data_orig->segments[0].length))
+ errors++;
+ }
+ return errors;
+}
+
+static int
+validate_ldpc_dec_op(struct rte_bbdev_dec_op **ops, const uint16_t n,
+ struct rte_bbdev_dec_op *ref_op, const int vector_mask)
+{
+ unsigned int i;
+ int ret;
+ struct op_data_entries *hard_data_orig =
+ &test_vector.entries[DATA_HARD_OUTPUT];
+ struct op_data_entries *soft_data_orig =
+ &test_vector.entries[DATA_SOFT_OUTPUT];
+ struct op_data_entries *harq_data_orig =
+ &test_vector.entries[DATA_HARQ_OUTPUT];
+ struct rte_bbdev_op_ldpc_dec *ops_td;
+ struct rte_bbdev_op_data *hard_output;
+ struct rte_bbdev_op_data *harq_output;
+ struct rte_bbdev_op_data *soft_output;
+ struct rte_bbdev_op_ldpc_dec *ref_td = &ref_op->ldpc_dec;
+
+ for (i = 0; i < n; ++i) {
+ ops_td = &ops[i]->ldpc_dec;
+ hard_output = &ops_td->hard_output;
+ harq_output = &ops_td->harq_combined_output;
+ soft_output = &ops_td->soft_output;
+
+ ret = check_dec_status_and_ordering(ops[i], i, ref_op->status);
+ TEST_ASSERT_SUCCESS(ret,
+ "Checking status and ordering for decoder failed");
+ if (vector_mask & TEST_BBDEV_VF_EXPECTED_ITER_COUNT)
+ TEST_ASSERT(ops_td->iter_count <= ref_td->iter_count,
+ "Returned iter_count (%d) > expected iter_count (%d)",
+ ops_td->iter_count, ref_td->iter_count);
+ /*
+ * We can ignore output data when the decoding failed to
+ * converge or for loop-back cases
+ */
+ if (!check_bit(ops[i]->ldpc_dec.op_flags,
+ RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_LOOPBACK
+ ) && (
+ ops[i]->status & (1 << RTE_BBDEV_SYNDROME_ERROR
+ )) == 0)
+ TEST_ASSERT_SUCCESS(validate_op_chain(hard_output,
+ hard_data_orig),
+ "Hard output buffers (CB=%u) are not equal",
+ i);
+
+ if (ref_op->ldpc_dec.op_flags & RTE_BBDEV_LDPC_SOFT_OUT_ENABLE)
+ TEST_ASSERT_SUCCESS(validate_op_chain(soft_output,
+ soft_data_orig),
+ "Soft output buffers (CB=%u) are not equal",
+ i);
+ if (ref_op->ldpc_dec.op_flags &
+ RTE_BBDEV_LDPC_HQ_COMBINE_OUT_ENABLE) {
+ TEST_ASSERT_SUCCESS(validate_op_harq_chain(harq_output,
+ harq_data_orig, ops_td),
+ "HARQ output buffers (CB=%u) are not equal",
+ i);
+ }
+ if (ref_op->ldpc_dec.op_flags &
+ RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_LOOPBACK)
+ TEST_ASSERT_SUCCESS(validate_op_harq_chain(harq_output,
+ harq_data_orig, ops_td),
+ "HARQ output buffers (CB=%u) are not equal",
+ i);
+
+ }
+
+ return TEST_SUCCESS;
+}
+
+
+static int
+validate_enc_op(struct rte_bbdev_enc_op **ops, const uint16_t n,
+ struct rte_bbdev_enc_op *ref_op)
+{
+ unsigned int i;
+ int ret;
+ struct op_data_entries *hard_data_orig =
+ &test_vector.entries[DATA_HARD_OUTPUT];
+
+ for (i = 0; i < n; ++i) {
+ ret = check_enc_status_and_ordering(ops[i], i, ref_op->status);
+ TEST_ASSERT_SUCCESS(ret,
+ "Checking status and ordering for encoder failed");
+ TEST_ASSERT_SUCCESS(validate_op_chain(
+ &ops[i]->turbo_enc.output,
+ hard_data_orig),
+ "Output buffers (CB=%u) are not equal",
+ i);
+ }
+
+ return TEST_SUCCESS;
+}
+
+static int
+validate_ldpc_enc_op(struct rte_bbdev_enc_op **ops, const uint16_t n,
+ struct rte_bbdev_enc_op *ref_op)
+{
+ unsigned int i;
+ int ret;
+ struct op_data_entries *hard_data_orig =
+ &test_vector.entries[DATA_HARD_OUTPUT];
+
+ for (i = 0; i < n; ++i) {
+ ret = check_enc_status_and_ordering(ops[i], i, ref_op->status);
+ TEST_ASSERT_SUCCESS(ret,
+ "Checking status and ordering for encoder failed");
+ TEST_ASSERT_SUCCESS(validate_op_chain(
+ &ops[i]->ldpc_enc.output,
+ hard_data_orig),
+ "Output buffers (CB=%u) are not equal",
+ i);
+ }
+
+ return TEST_SUCCESS;
+}
+
+static void
+create_reference_dec_op(struct rte_bbdev_dec_op *op)
+{
+ unsigned int i;
+ struct op_data_entries *entry;
+
+ op->turbo_dec = test_vector.turbo_dec;
+ entry = &test_vector.entries[DATA_INPUT];
+ for (i = 0; i < entry->nb_segments; ++i)
+ op->turbo_dec.input.length +=
+ entry->segments[i].length;
+}
+
+static void
+create_reference_ldpc_dec_op(struct rte_bbdev_dec_op *op)
+{
+ unsigned int i;
+ struct op_data_entries *entry;
+
+ op->ldpc_dec = test_vector.ldpc_dec;
+ entry = &test_vector.entries[DATA_INPUT];
+ for (i = 0; i < entry->nb_segments; ++i)
+ op->ldpc_dec.input.length +=
+ entry->segments[i].length;
+ if (test_vector.ldpc_dec.op_flags &
+ RTE_BBDEV_LDPC_HQ_COMBINE_IN_ENABLE) {
+ entry = &test_vector.entries[DATA_HARQ_INPUT];
+ for (i = 0; i < entry->nb_segments; ++i)
+ op->ldpc_dec.harq_combined_input.length +=
+ entry->segments[i].length;
+ }
+}
+
+
+static void
+create_reference_enc_op(struct rte_bbdev_enc_op *op)
+{
+ unsigned int i;
+ struct op_data_entries *entry;
+
+ op->turbo_enc = test_vector.turbo_enc;
+ entry = &test_vector.entries[DATA_INPUT];
+ for (i = 0; i < entry->nb_segments; ++i)
+ op->turbo_enc.input.length +=
+ entry->segments[i].length;
+}
+
+static void
+create_reference_ldpc_enc_op(struct rte_bbdev_enc_op *op)
+{
+ unsigned int i;
+ struct op_data_entries *entry;
+
+ op->ldpc_enc = test_vector.ldpc_enc;
+ entry = &test_vector.entries[DATA_INPUT];
+ for (i = 0; i < entry->nb_segments; ++i)
+ op->ldpc_enc.input.length +=
+ entry->segments[i].length;
+}
+
+static uint32_t
+calc_dec_TB_size(struct rte_bbdev_dec_op *op)
+{
+ uint8_t i;
+ uint32_t c, r, tb_size = 0;
+
+ if (op->turbo_dec.code_block_mode) {
+ tb_size = op->turbo_dec.tb_params.k_neg;
+ } else {
+ c = op->turbo_dec.tb_params.c;
+ r = op->turbo_dec.tb_params.r;
+ for (i = 0; i < c-r; i++)
+ tb_size += (r < op->turbo_dec.tb_params.c_neg) ?
+ op->turbo_dec.tb_params.k_neg :
+ op->turbo_dec.tb_params.k_pos;
+ }
+ return tb_size;
+}
+
+static uint32_t
+calc_ldpc_dec_TB_size(struct rte_bbdev_dec_op *op)
+{
+ uint8_t i;
+ uint32_t c, r, tb_size = 0;
+ uint16_t sys_cols = (op->ldpc_dec.basegraph == 1) ? 22 : 10;
+
+ if (op->ldpc_dec.code_block_mode) {
+ tb_size = sys_cols * op->ldpc_dec.z_c - op->ldpc_dec.n_filler;
+ } else {
+ c = op->ldpc_dec.tb_params.c;
+ r = op->ldpc_dec.tb_params.r;
+ for (i = 0; i < c-r; i++)
+ tb_size += sys_cols * op->ldpc_dec.z_c
+ - op->ldpc_dec.n_filler;
+ }
+ return tb_size;
+}
+
+static uint32_t
+calc_enc_TB_size(struct rte_bbdev_enc_op *op)
+{
+ uint8_t i;
+ uint32_t c, r, tb_size = 0;
+
+ if (op->turbo_enc.code_block_mode) {
+ tb_size = op->turbo_enc.tb_params.k_neg;
+ } else {
+ c = op->turbo_enc.tb_params.c;
+ r = op->turbo_enc.tb_params.r;
+ for (i = 0; i < c-r; i++)
+ tb_size += (r < op->turbo_enc.tb_params.c_neg) ?
+ op->turbo_enc.tb_params.k_neg :
+ op->turbo_enc.tb_params.k_pos;
+ }
+ return tb_size;
+}
+
+static uint32_t
+calc_ldpc_enc_TB_size(struct rte_bbdev_enc_op *op)
+{
+ uint8_t i;
+ uint32_t c, r, tb_size = 0;
+ uint16_t sys_cols = (op->ldpc_enc.basegraph == 1) ? 22 : 10;
+
+ if (op->turbo_enc.code_block_mode) {
+ tb_size = sys_cols * op->ldpc_enc.z_c - op->ldpc_enc.n_filler;
+ } else {
+ c = op->turbo_enc.tb_params.c;
+ r = op->turbo_enc.tb_params.r;
+ for (i = 0; i < c-r; i++)
+ tb_size += sys_cols * op->ldpc_enc.z_c
+ - op->ldpc_enc.n_filler;
+ }
+ return tb_size;
+}
+
+
+static int
+init_test_op_params(struct test_op_params *op_params,
+ enum rte_bbdev_op_type op_type, const int expected_status,
+ const int vector_mask, struct rte_mempool *ops_mp,
+ uint16_t burst_sz, uint16_t num_to_process, uint16_t num_lcores)
+{
+ int ret = 0;
+ if (op_type == RTE_BBDEV_OP_TURBO_DEC ||
+ op_type == RTE_BBDEV_OP_LDPC_DEC)
+ ret = rte_bbdev_dec_op_alloc_bulk(ops_mp,
+ &op_params->ref_dec_op, 1);
+ else
+ ret = rte_bbdev_enc_op_alloc_bulk(ops_mp,
+ &op_params->ref_enc_op, 1);
+
+ TEST_ASSERT_SUCCESS(ret, "rte_bbdev_op_alloc_bulk() failed");
+
+ op_params->mp = ops_mp;
+ op_params->burst_sz = burst_sz;
+ op_params->num_to_process = num_to_process;
+ op_params->num_lcores = num_lcores;
+ op_params->vector_mask = vector_mask;
+ if (op_type == RTE_BBDEV_OP_TURBO_DEC ||
+ op_type == RTE_BBDEV_OP_LDPC_DEC)
+ op_params->ref_dec_op->status = expected_status;
+ else if (op_type == RTE_BBDEV_OP_TURBO_ENC
+ || op_type == RTE_BBDEV_OP_LDPC_ENC)
+ op_params->ref_enc_op->status = expected_status;
+ return 0;
+}
+
+static int
+run_test_case_on_device(test_case_function *test_case_func, uint8_t dev_id,
+ struct test_op_params *op_params)
+{
+ int t_ret, f_ret, socket_id = SOCKET_ID_ANY;
+ unsigned int i;
+ struct active_device *ad;
+ unsigned int burst_sz = get_burst_sz();
+ enum rte_bbdev_op_type op_type = test_vector.op_type;
+ const struct rte_bbdev_op_cap *capabilities = NULL;
+
+ ad = &active_devs[dev_id];
+
+ /* Check if device supports op_type */
+ if (!is_avail_op(ad, test_vector.op_type))
+ return TEST_SUCCESS;
+
+ struct rte_bbdev_info info;
+ rte_bbdev_info_get(ad->dev_id, &info);
+ socket_id = GET_SOCKET(info.socket_id);
+
+ f_ret = create_mempools(ad, socket_id, op_type,
+ get_num_ops());
+ if (f_ret != TEST_SUCCESS) {
+ printf("Couldn't create mempools");
+ goto fail;
+ }
+ if (op_type == RTE_BBDEV_OP_NONE)
+ op_type = RTE_BBDEV_OP_TURBO_ENC;
+
+ f_ret = init_test_op_params(op_params, test_vector.op_type,
+ test_vector.expected_status,
+ test_vector.mask,
+ ad->ops_mempool,
+ burst_sz,
+ get_num_ops(),
+ get_num_lcores());
+ if (f_ret != TEST_SUCCESS) {
+ printf("Couldn't init test op params");
+ goto fail;
+ }
+
+
+ /* Find capabilities */
+ const struct rte_bbdev_op_cap *cap = info.drv.capabilities;
+ for (i = 0; i < RTE_BBDEV_OP_TYPE_COUNT; i++) {
+ if (cap->type == test_vector.op_type) {
+ capabilities = cap;
+ break;
+ }
+ cap++;
+ }
+ TEST_ASSERT_NOT_NULL(capabilities,
+ "Couldn't find capabilities");
+
+ if (test_vector.op_type == RTE_BBDEV_OP_TURBO_DEC) {
+ create_reference_dec_op(op_params->ref_dec_op);
+ } else if (test_vector.op_type == RTE_BBDEV_OP_TURBO_ENC)
+ create_reference_enc_op(op_params->ref_enc_op);
+ else if (test_vector.op_type == RTE_BBDEV_OP_LDPC_ENC)
+ create_reference_ldpc_enc_op(op_params->ref_enc_op);
+ else if (test_vector.op_type == RTE_BBDEV_OP_LDPC_DEC)
+ create_reference_ldpc_dec_op(op_params->ref_dec_op);
+
+ for (i = 0; i < ad->nb_queues; ++i) {
+ f_ret = fill_queue_buffers(op_params,
+ ad->in_mbuf_pool,
+ ad->hard_out_mbuf_pool,
+ ad->soft_out_mbuf_pool,
+ ad->harq_in_mbuf_pool,
+ ad->harq_out_mbuf_pool,
+ ad->queue_ids[i],
+ capabilities,
+ info.drv.min_alignment,
+ socket_id);
+ if (f_ret != TEST_SUCCESS) {
+ printf("Couldn't init queue buffers");
+ goto fail;
+ }
+ }
+
+ /* Run test case function */
+ t_ret = test_case_func(ad, op_params);
+
+ /* Free active device resources and return */
+ free_buffers(ad, op_params);
+ return t_ret;
+
+fail:
+ free_buffers(ad, op_params);
+ return TEST_FAILED;
+}
+
+/* Run given test function per active device per supported op type
+ * per burst size.
+ */
+static int
+run_test_case(test_case_function *test_case_func)
+{
+ int ret = 0;
+ uint8_t dev;
+
+ /* Alloc op_params */
+ struct test_op_params *op_params = rte_zmalloc(NULL,
+ sizeof(struct test_op_params), RTE_CACHE_LINE_SIZE);
+ TEST_ASSERT_NOT_NULL(op_params, "Failed to alloc %zuB for op_params",
+ RTE_ALIGN(sizeof(struct test_op_params),
+ RTE_CACHE_LINE_SIZE));
+
+ /* For each device run test case function */
+ for (dev = 0; dev < nb_active_devs; ++dev)
+ ret |= run_test_case_on_device(test_case_func, dev, op_params);
+
+ rte_free(op_params);
+
+ return ret;
+}
+
+
+/* Push back the HARQ output from DDR to host */
+static void
+retrieve_harq_ddr(uint16_t dev_id, uint16_t queue_id,
+ struct rte_bbdev_dec_op **ops,
+ const uint16_t n)
+{
+ uint16_t j;
+ int save_status, ret;
+ uint32_t harq_offset = (uint32_t) queue_id * HARQ_INCR * 1024;
+ struct rte_bbdev_dec_op *ops_deq[MAX_BURST];
+ uint32_t flags = ops[0]->ldpc_dec.op_flags;
+ bool loopback = flags & RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_LOOPBACK;
+ bool mem_out = flags & RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_OUT_ENABLE;
+ bool hc_out = flags & RTE_BBDEV_LDPC_HQ_COMBINE_OUT_ENABLE;
+ bool h_comp = flags & RTE_BBDEV_LDPC_HARQ_6BIT_COMPRESSION;
+ for (j = 0; j < n; ++j) {
+ if ((loopback && mem_out) || hc_out) {
+ save_status = ops[j]->status;
+ ops[j]->ldpc_dec.op_flags =
+ RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_LOOPBACK +
+ RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_IN_ENABLE;
+ if (h_comp)
+ ops[j]->ldpc_dec.op_flags +=
+ RTE_BBDEV_LDPC_HARQ_6BIT_COMPRESSION;
+ ops[j]->ldpc_dec.harq_combined_input.offset =
+ harq_offset;
+ ops[j]->ldpc_dec.harq_combined_output.offset = 0;
+ harq_offset += HARQ_INCR;
+ if (!loopback)
+ ops[j]->ldpc_dec.harq_combined_input.length =
+ ops[j]->ldpc_dec.harq_combined_output.length;
+ rte_bbdev_enqueue_ldpc_dec_ops(dev_id, queue_id,
+ &ops[j], 1);
+ ret = 0;
+ while (ret == 0)
+ ret = rte_bbdev_dequeue_ldpc_dec_ops(
+ dev_id, queue_id,
+ &ops_deq[j], 1);
+ ops[j]->ldpc_dec.op_flags = flags;
+ ops[j]->status = save_status;
+ }
+ }
+}
+
+/*
+ * Push back the HARQ output from HW DDR to Host
+ * Preload HARQ memory input and adjust HARQ offset
+ */
+static void
+preload_harq_ddr(uint16_t dev_id, uint16_t queue_id,
+ struct rte_bbdev_dec_op **ops, const uint16_t n,
+ bool preload)
+{
+ uint16_t j;
+ int ret;
+ uint32_t harq_offset = (uint32_t) queue_id * HARQ_INCR * 1024;
+ struct rte_bbdev_op_data save_hc_in, save_hc_out;
+ struct rte_bbdev_dec_op *ops_deq[MAX_BURST];
+ uint32_t flags = ops[0]->ldpc_dec.op_flags;
+ bool mem_in = flags & RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_IN_ENABLE;
+ bool hc_in = flags & RTE_BBDEV_LDPC_HQ_COMBINE_IN_ENABLE;
+ bool mem_out = flags & RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_OUT_ENABLE;
+ bool hc_out = flags & RTE_BBDEV_LDPC_HQ_COMBINE_OUT_ENABLE;
+ bool h_comp = flags & RTE_BBDEV_LDPC_HARQ_6BIT_COMPRESSION;
+ for (j = 0; j < n; ++j) {
+ if ((mem_in || hc_in) && preload) {
+ save_hc_in = ops[j]->ldpc_dec.harq_combined_input;
+ save_hc_out = ops[j]->ldpc_dec.harq_combined_output;
+ ops[j]->ldpc_dec.op_flags =
+ RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_LOOPBACK +
+ RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_OUT_ENABLE;
+ if (h_comp)
+ ops[j]->ldpc_dec.op_flags +=
+ RTE_BBDEV_LDPC_HARQ_6BIT_COMPRESSION;
+ ops[j]->ldpc_dec.harq_combined_output.offset =
+ harq_offset;
+ ops[j]->ldpc_dec.harq_combined_input.offset = 0;
+ rte_bbdev_enqueue_ldpc_dec_ops(dev_id, queue_id,
+ &ops[j], 1);
+ ret = 0;
+ while (ret == 0)
+ ret = rte_bbdev_dequeue_ldpc_dec_ops(
+ dev_id, queue_id, &ops_deq[j], 1);
+ ops[j]->ldpc_dec.op_flags = flags;
+ ops[j]->ldpc_dec.harq_combined_input = save_hc_in;
+ ops[j]->ldpc_dec.harq_combined_output = save_hc_out;
+ }
+ /* Adjust HARQ offset when we reach external DDR */
+ if (mem_in || hc_in)
+ ops[j]->ldpc_dec.harq_combined_input.offset
+ = harq_offset;
+ if (mem_out || hc_out)
+ ops[j]->ldpc_dec.harq_combined_output.offset
+ = harq_offset;
+ harq_offset += HARQ_INCR;
+ }
+}
+
+static void
+dequeue_event_callback(uint16_t dev_id,
+ enum rte_bbdev_event_type event, void *cb_arg,
+ void *ret_param)
+{
+ int ret;
+ uint16_t i;
+ uint64_t total_time;
+ uint16_t deq, burst_sz, num_ops;
+ uint16_t queue_id = *(uint16_t *) ret_param;
+ struct rte_bbdev_info info;
+ double tb_len_bits;
+ struct thread_params *tp = cb_arg;
+
+ /* Find matching thread params using queue_id */
+ for (i = 0; i < MAX_QUEUES; ++i, ++tp)
+ if (tp->queue_id == queue_id)
+ break;
+
+ if (i == MAX_QUEUES) {
+ printf("%s: Queue_id from interrupt details was not found!\n",
+ __func__);
+ return;
+ }
+
+ if (unlikely(event != RTE_BBDEV_EVENT_DEQUEUE)) {
+ rte_atomic16_set(&tp->processing_status, TEST_FAILED);
+ printf(
+ "Dequeue interrupt handler called for incorrect event!\n");
+ return;
+ }
+
+ burst_sz = rte_atomic16_read(&tp->burst_sz);
+ num_ops = tp->op_params->num_to_process;
+
+ if (test_vector.op_type == RTE_BBDEV_OP_TURBO_DEC)
+ deq = rte_bbdev_dequeue_dec_ops(dev_id, queue_id,
+ &tp->dec_ops[
+ rte_atomic16_read(&tp->nb_dequeued)],
+ burst_sz);
+ else if (test_vector.op_type == RTE_BBDEV_OP_LDPC_DEC)
+ deq = rte_bbdev_dequeue_ldpc_dec_ops(dev_id, queue_id,
+ &tp->dec_ops[
+ rte_atomic16_read(&tp->nb_dequeued)],
+ burst_sz);
+ else if (test_vector.op_type == RTE_BBDEV_OP_LDPC_ENC)
+ deq = rte_bbdev_dequeue_ldpc_enc_ops(dev_id, queue_id,
+ &tp->enc_ops[
+ rte_atomic16_read(&tp->nb_dequeued)],
+ burst_sz);
+ else /*RTE_BBDEV_OP_TURBO_ENC*/
+ deq = rte_bbdev_dequeue_enc_ops(dev_id, queue_id,
+ &tp->enc_ops[
+ rte_atomic16_read(&tp->nb_dequeued)],
+ burst_sz);
+
+ if (deq < burst_sz) {
+ printf(
+ "After receiving the interrupt all operations should be dequeued. Expected: %u, got: %u\n",
+ burst_sz, deq);
+ rte_atomic16_set(&tp->processing_status, TEST_FAILED);
+ return;
+ }
+
+ if (rte_atomic16_read(&tp->nb_dequeued) + deq < num_ops) {
+ rte_atomic16_add(&tp->nb_dequeued, deq);
+ return;
+ }
+
+ total_time = rte_rdtsc_precise() - tp->start_time;
+
+ rte_bbdev_info_get(dev_id, &info);
+
+ ret = TEST_SUCCESS;
+
+ if (test_vector.op_type == RTE_BBDEV_OP_TURBO_DEC) {
+ struct rte_bbdev_dec_op *ref_op = tp->op_params->ref_dec_op;
+ ret = validate_dec_op(tp->dec_ops, num_ops, ref_op,
+ tp->op_params->vector_mask);
+ /* get the max of iter_count for all dequeued ops */
+ for (i = 0; i < num_ops; ++i)
+ tp->iter_count = RTE_MAX(
+ tp->dec_ops[i]->turbo_dec.iter_count,
+ tp->iter_count);
+ rte_bbdev_dec_op_free_bulk(tp->dec_ops, deq);
+ } else if (test_vector.op_type == RTE_BBDEV_OP_TURBO_ENC) {
+ struct rte_bbdev_enc_op *ref_op = tp->op_params->ref_enc_op;
+ ret = validate_enc_op(tp->enc_ops, num_ops, ref_op);
+ rte_bbdev_enc_op_free_bulk(tp->enc_ops, deq);
+ } else if (test_vector.op_type == RTE_BBDEV_OP_LDPC_ENC) {
+ struct rte_bbdev_enc_op *ref_op = tp->op_params->ref_enc_op;
+ ret = validate_ldpc_enc_op(tp->enc_ops, num_ops, ref_op);
+ rte_bbdev_enc_op_free_bulk(tp->enc_ops, deq);
+ } else if (test_vector.op_type == RTE_BBDEV_OP_LDPC_DEC) {
+ struct rte_bbdev_dec_op *ref_op = tp->op_params->ref_dec_op;
+ ret = validate_ldpc_dec_op(tp->dec_ops, num_ops, ref_op,
+ tp->op_params->vector_mask);
+ rte_bbdev_dec_op_free_bulk(tp->dec_ops, deq);
+ }
+
+ if (ret) {
+ printf("Buffers validation failed\n");
+ rte_atomic16_set(&tp->processing_status, TEST_FAILED);
+ }
+
+ switch (test_vector.op_type) {
+ case RTE_BBDEV_OP_TURBO_DEC:
+ tb_len_bits = calc_dec_TB_size(tp->op_params->ref_dec_op);
+ break;
+ case RTE_BBDEV_OP_TURBO_ENC:
+ tb_len_bits = calc_enc_TB_size(tp->op_params->ref_enc_op);
+ break;
+ case RTE_BBDEV_OP_LDPC_DEC:
+ tb_len_bits = calc_ldpc_dec_TB_size(tp->op_params->ref_dec_op);
+ break;
+ case RTE_BBDEV_OP_LDPC_ENC:
+ tb_len_bits = calc_ldpc_enc_TB_size(tp->op_params->ref_enc_op);
+ break;
+ case RTE_BBDEV_OP_NONE:
+ tb_len_bits = 0.0;
+ break;
+ default:
+ printf("Unknown op type: %d\n", test_vector.op_type);
+ rte_atomic16_set(&tp->processing_status, TEST_FAILED);
+ return;
+ }
+
+ tp->ops_per_sec += ((double)num_ops) /
+ ((double)total_time / (double)rte_get_tsc_hz());
+ tp->mbps += (((double)(num_ops * tb_len_bits)) / 1000000.0) /
+ ((double)total_time / (double)rte_get_tsc_hz());
+
+ rte_atomic16_add(&tp->nb_dequeued, deq);
+}
+
+static int
+throughput_intr_lcore_ldpc_dec(void *arg)
+{
+ struct thread_params *tp = arg;
+ unsigned int enqueued;
+ const uint16_t queue_id = tp->queue_id;
+ const uint16_t burst_sz = tp->op_params->burst_sz;
+ const uint16_t num_to_process = tp->op_params->num_to_process;
+ struct rte_bbdev_dec_op *ops[num_to_process];
+ struct test_buffers *bufs = NULL;
+ struct rte_bbdev_info info;
+ int ret, i, j;
+ struct rte_bbdev_dec_op *ref_op = tp->op_params->ref_dec_op;
+ uint16_t num_to_enq, enq;
+
+ bool loopback = check_bit(ref_op->ldpc_dec.op_flags,
+ RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_LOOPBACK);
+ bool hc_out = check_bit(ref_op->ldpc_dec.op_flags,
+ RTE_BBDEV_LDPC_HQ_COMBINE_OUT_ENABLE);
+
+ TEST_ASSERT_SUCCESS((burst_sz > MAX_BURST),
+ "BURST_SIZE should be <= %u", MAX_BURST);
+
+ TEST_ASSERT_SUCCESS(rte_bbdev_queue_intr_enable(tp->dev_id, queue_id),
+ "Failed to enable interrupts for dev: %u, queue_id: %u",
+ tp->dev_id, queue_id);
+
+ rte_bbdev_info_get(tp->dev_id, &info);
+
+ TEST_ASSERT_SUCCESS((num_to_process > info.drv.queue_size_lim),
+ "NUM_OPS cannot exceed %u for this device",
+ info.drv.queue_size_lim);
+
+ bufs = &tp->op_params->q_bufs[GET_SOCKET(info.socket_id)][queue_id];
+
+ rte_atomic16_clear(&tp->processing_status);
+ rte_atomic16_clear(&tp->nb_dequeued);
+
+ while (rte_atomic16_read(&tp->op_params->sync) == SYNC_WAIT)
+ rte_pause();
+
+ ret = rte_bbdev_dec_op_alloc_bulk(tp->op_params->mp, ops,
+ num_to_process);
+ TEST_ASSERT_SUCCESS(ret, "Allocation failed for %d ops",
+ num_to_process);
+ if (test_vector.op_type != RTE_BBDEV_OP_NONE)
+ copy_reference_ldpc_dec_op(ops, num_to_process, 0, bufs->inputs,
+ bufs->hard_outputs, bufs->soft_outputs,
+ bufs->harq_inputs, bufs->harq_outputs, ref_op);
+
+ /* Set counter to validate the ordering */
+ for (j = 0; j < num_to_process; ++j)
+ ops[j]->opaque_data = (void *)(uintptr_t)j;
+
+ for (j = 0; j < TEST_REPETITIONS; ++j) {
+ for (i = 0; i < num_to_process; ++i) {
+ if (!loopback)
+ rte_pktmbuf_reset(
+ ops[i]->ldpc_dec.hard_output.data);
+ if (hc_out || loopback)
+ mbuf_reset(
+ ops[i]->ldpc_dec.harq_combined_output.data);
+ }
+
+ tp->start_time = rte_rdtsc_precise();
+ for (enqueued = 0; enqueued < num_to_process;) {
+ num_to_enq = burst_sz;
+
+ if (unlikely(num_to_process - enqueued < num_to_enq))
+ num_to_enq = num_to_process - enqueued;
+
+ enq = 0;
+ do {
+ enq += rte_bbdev_enqueue_ldpc_dec_ops(
+ tp->dev_id,
+ queue_id, &ops[enqueued],
+ num_to_enq);
+ } while (unlikely(num_to_enq != enq));
+ enqueued += enq;
+
+ /* Write to thread burst_sz current number of enqueued
+ * descriptors. It ensures that proper number of
+ * descriptors will be dequeued in callback
+ * function - needed for last batch in case where
+ * the number of operations is not a multiple of
+ * burst size.
+ */
+ rte_atomic16_set(&tp->burst_sz, num_to_enq);
+
+ /* Wait until processing of previous batch is
+ * completed
+ */
+ while (rte_atomic16_read(&tp->nb_dequeued) !=
+ (int16_t) enqueued)
+ rte_pause();
+ }
+ if (j != TEST_REPETITIONS - 1)
+ rte_atomic16_clear(&tp->nb_dequeued);
+ }
+
+ return TEST_SUCCESS;
+}
+
+static int
+throughput_intr_lcore_dec(void *arg)
+{
+ struct thread_params *tp = arg;
+ unsigned int enqueued;
+ const uint16_t queue_id = tp->queue_id;
+ const uint16_t burst_sz = tp->op_params->burst_sz;
+ const uint16_t num_to_process = tp->op_params->num_to_process;
+ struct rte_bbdev_dec_op *ops[num_to_process];
+ struct test_buffers *bufs = NULL;
+ struct rte_bbdev_info info;
+ int ret, i, j;
+ uint16_t num_to_enq, enq;
+
+ TEST_ASSERT_SUCCESS((burst_sz > MAX_BURST),
+ "BURST_SIZE should be <= %u", MAX_BURST);
+
+ TEST_ASSERT_SUCCESS(rte_bbdev_queue_intr_enable(tp->dev_id, queue_id),
+ "Failed to enable interrupts for dev: %u, queue_id: %u",
+ tp->dev_id, queue_id);
+
+ rte_bbdev_info_get(tp->dev_id, &info);
+
+ TEST_ASSERT_SUCCESS((num_to_process > info.drv.queue_size_lim),
+ "NUM_OPS cannot exceed %u for this device",
+ info.drv.queue_size_lim);
+
+ bufs = &tp->op_params->q_bufs[GET_SOCKET(info.socket_id)][queue_id];
+
+ rte_atomic16_clear(&tp->processing_status);
+ rte_atomic16_clear(&tp->nb_dequeued);
+
+ while (rte_atomic16_read(&tp->op_params->sync) == SYNC_WAIT)
+ rte_pause();
+
+ ret = rte_bbdev_dec_op_alloc_bulk(tp->op_params->mp, ops,
+ num_to_process);
+ TEST_ASSERT_SUCCESS(ret, "Allocation failed for %d ops",
+ num_to_process);
+ if (test_vector.op_type != RTE_BBDEV_OP_NONE)
+ copy_reference_dec_op(ops, num_to_process, 0, bufs->inputs,
+ bufs->hard_outputs, bufs->soft_outputs,
+ tp->op_params->ref_dec_op);
+
+ /* Set counter to validate the ordering */
+ for (j = 0; j < num_to_process; ++j)
+ ops[j]->opaque_data = (void *)(uintptr_t)j;
+
+ for (j = 0; j < TEST_REPETITIONS; ++j) {
+ for (i = 0; i < num_to_process; ++i)
+ rte_pktmbuf_reset(ops[i]->turbo_dec.hard_output.data);
+
+ tp->start_time = rte_rdtsc_precise();
+ for (enqueued = 0; enqueued < num_to_process;) {
+ num_to_enq = burst_sz;
+
+ if (unlikely(num_to_process - enqueued < num_to_enq))
+ num_to_enq = num_to_process - enqueued;
+
+ enq = 0;
+ do {
+ enq += rte_bbdev_enqueue_dec_ops(tp->dev_id,
+ queue_id, &ops[enqueued],
+ num_to_enq);
+ } while (unlikely(num_to_enq != enq));
+ enqueued += enq;
+
+ /* Write to thread burst_sz current number of enqueued
+ * descriptors. It ensures that proper number of
+ * descriptors will be dequeued in callback
+ * function - needed for last batch in case where
+ * the number of operations is not a multiple of
+ * burst size.
+ */
+ rte_atomic16_set(&tp->burst_sz, num_to_enq);
+
+ /* Wait until processing of previous batch is
+ * completed
+ */
+ while (rte_atomic16_read(&tp->nb_dequeued) !=
+ (int16_t) enqueued)
+ rte_pause();
+ }
+ if (j != TEST_REPETITIONS - 1)
+ rte_atomic16_clear(&tp->nb_dequeued);
+ }
+
+ return TEST_SUCCESS;
+}
+
+static int
+throughput_intr_lcore_enc(void *arg)
+{
+ struct thread_params *tp = arg;
+ unsigned int enqueued;
+ const uint16_t queue_id = tp->queue_id;
+ const uint16_t burst_sz = tp->op_params->burst_sz;
+ const uint16_t num_to_process = tp->op_params->num_to_process;
+ struct rte_bbdev_enc_op *ops[num_to_process];
+ struct test_buffers *bufs = NULL;
+ struct rte_bbdev_info info;
+ int ret, i, j;
+ uint16_t num_to_enq, enq;
+
+ TEST_ASSERT_SUCCESS((burst_sz > MAX_BURST),
+ "BURST_SIZE should be <= %u", MAX_BURST);
+
+ TEST_ASSERT_SUCCESS(rte_bbdev_queue_intr_enable(tp->dev_id, queue_id),
+ "Failed to enable interrupts for dev: %u, queue_id: %u",
+ tp->dev_id, queue_id);
+
+ rte_bbdev_info_get(tp->dev_id, &info);
+
+ TEST_ASSERT_SUCCESS((num_to_process > info.drv.queue_size_lim),
+ "NUM_OPS cannot exceed %u for this device",
+ info.drv.queue_size_lim);
+
+ bufs = &tp->op_params->q_bufs[GET_SOCKET(info.socket_id)][queue_id];
+
+ rte_atomic16_clear(&tp->processing_status);
+ rte_atomic16_clear(&tp->nb_dequeued);
+
+ while (rte_atomic16_read(&tp->op_params->sync) == SYNC_WAIT)
+ rte_pause();
+
+ ret = rte_bbdev_enc_op_alloc_bulk(tp->op_params->mp, ops,
+ num_to_process);
+ TEST_ASSERT_SUCCESS(ret, "Allocation failed for %d ops",
+ num_to_process);
+ if (test_vector.op_type != RTE_BBDEV_OP_NONE)
+ copy_reference_enc_op(ops, num_to_process, 0, bufs->inputs,
+ bufs->hard_outputs, tp->op_params->ref_enc_op);
+
+ /* Set counter to validate the ordering */
+ for (j = 0; j < num_to_process; ++j)
+ ops[j]->opaque_data = (void *)(uintptr_t)j;
+
+ for (j = 0; j < TEST_REPETITIONS; ++j) {
+ for (i = 0; i < num_to_process; ++i)
+ rte_pktmbuf_reset(ops[i]->turbo_enc.output.data);
+
+ tp->start_time = rte_rdtsc_precise();
+ for (enqueued = 0; enqueued < num_to_process;) {
+ num_to_enq = burst_sz;
+
+ if (unlikely(num_to_process - enqueued < num_to_enq))
+ num_to_enq = num_to_process - enqueued;
+
+ enq = 0;
+ do {
+ enq += rte_bbdev_enqueue_enc_ops(tp->dev_id,
+ queue_id, &ops[enqueued],
+ num_to_enq);
+ } while (unlikely(enq != num_to_enq));
+ enqueued += enq;
+
+ /* Write to thread burst_sz current number of enqueued
+ * descriptors. It ensures that proper number of
+ * descriptors will be dequeued in callback
+ * function - needed for last batch in case where
+ * the number of operations is not a multiple of
+ * burst size.
+ */
+ rte_atomic16_set(&tp->burst_sz, num_to_enq);
+
+ /* Wait until processing of previous batch is
+ * completed
+ */
+ while (rte_atomic16_read(&tp->nb_dequeued) !=
+ (int16_t) enqueued)
+ rte_pause();
+ }
+ if (j != TEST_REPETITIONS - 1)
+ rte_atomic16_clear(&tp->nb_dequeued);
+ }
+
+ return TEST_SUCCESS;
+}
+
+
+static int
+throughput_intr_lcore_ldpc_enc(void *arg)
+{
+ struct thread_params *tp = arg;
+ unsigned int enqueued;
+ const uint16_t queue_id = tp->queue_id;
+ const uint16_t burst_sz = tp->op_params->burst_sz;
+ const uint16_t num_to_process = tp->op_params->num_to_process;
+ struct rte_bbdev_enc_op *ops[num_to_process];
+ struct test_buffers *bufs = NULL;
+ struct rte_bbdev_info info;
+ int ret, i, j;
+ uint16_t num_to_enq, enq;
+
+ TEST_ASSERT_SUCCESS((burst_sz > MAX_BURST),
+ "BURST_SIZE should be <= %u", MAX_BURST);
+
+ TEST_ASSERT_SUCCESS(rte_bbdev_queue_intr_enable(tp->dev_id, queue_id),
+ "Failed to enable interrupts for dev: %u, queue_id: %u",
+ tp->dev_id, queue_id);
+
+ rte_bbdev_info_get(tp->dev_id, &info);
+
+ TEST_ASSERT_SUCCESS((num_to_process > info.drv.queue_size_lim),
+ "NUM_OPS cannot exceed %u for this device",
+ info.drv.queue_size_lim);
+
+ bufs = &tp->op_params->q_bufs[GET_SOCKET(info.socket_id)][queue_id];
+
+ rte_atomic16_clear(&tp->processing_status);
+ rte_atomic16_clear(&tp->nb_dequeued);
+
+ while (rte_atomic16_read(&tp->op_params->sync) == SYNC_WAIT)
+ rte_pause();
+
+ ret = rte_bbdev_enc_op_alloc_bulk(tp->op_params->mp, ops,
+ num_to_process);
+ TEST_ASSERT_SUCCESS(ret, "Allocation failed for %d ops",
+ num_to_process);
+ if (test_vector.op_type != RTE_BBDEV_OP_NONE)
+ copy_reference_ldpc_enc_op(ops, num_to_process, 0,
+ bufs->inputs, bufs->hard_outputs,
+ tp->op_params->ref_enc_op);
+
+ /* Set counter to validate the ordering */
+ for (j = 0; j < num_to_process; ++j)
+ ops[j]->opaque_data = (void *)(uintptr_t)j;
+
+ for (j = 0; j < TEST_REPETITIONS; ++j) {
+ for (i = 0; i < num_to_process; ++i)
+ rte_pktmbuf_reset(ops[i]->turbo_enc.output.data);
+
+ tp->start_time = rte_rdtsc_precise();
+ for (enqueued = 0; enqueued < num_to_process;) {
+ num_to_enq = burst_sz;
+
+ if (unlikely(num_to_process - enqueued < num_to_enq))
+ num_to_enq = num_to_process - enqueued;
+
+ enq = 0;
+ do {
+ enq += rte_bbdev_enqueue_ldpc_enc_ops(
+ tp->dev_id,
+ queue_id, &ops[enqueued],
+ num_to_enq);
+ } while (unlikely(enq != num_to_enq));
+ enqueued += enq;
+
+ /* Write to thread burst_sz current number of enqueued
+ * descriptors. It ensures that proper number of
+ * descriptors will be dequeued in callback
+ * function - needed for last batch in case where
+ * the number of operations is not a multiple of
+ * burst size.
+ */
+ rte_atomic16_set(&tp->burst_sz, num_to_enq);
+
+ /* Wait until processing of previous batch is
+ * completed
+ */
+ while (rte_atomic16_read(&tp->nb_dequeued) !=
+ (int16_t) enqueued)
+ rte_pause();
+ }
+ if (j != TEST_REPETITIONS - 1)
+ rte_atomic16_clear(&tp->nb_dequeued);
+ }
+
+ return TEST_SUCCESS;
+}
+
+static int
+throughput_pmd_lcore_dec(void *arg)
+{
+ struct thread_params *tp = arg;
+ uint16_t enq, deq;
+ uint64_t total_time = 0, start_time;
+ const uint16_t queue_id = tp->queue_id;
+ const uint16_t burst_sz = tp->op_params->burst_sz;
+ const uint16_t num_ops = tp->op_params->num_to_process;
+ struct rte_bbdev_dec_op *ops_enq[num_ops];
+ struct rte_bbdev_dec_op *ops_deq[num_ops];
+ struct rte_bbdev_dec_op *ref_op = tp->op_params->ref_dec_op;
+ struct test_buffers *bufs = NULL;
+ int i, j, ret;
+ struct rte_bbdev_info info;
+ uint16_t num_to_enq;
+
+ TEST_ASSERT_SUCCESS((burst_sz > MAX_BURST),
+ "BURST_SIZE should be <= %u", MAX_BURST);
+
+ rte_bbdev_info_get(tp->dev_id, &info);
+
+ TEST_ASSERT_SUCCESS((num_ops > info.drv.queue_size_lim),
+ "NUM_OPS cannot exceed %u for this device",
+ info.drv.queue_size_lim);
+
+ bufs = &tp->op_params->q_bufs[GET_SOCKET(info.socket_id)][queue_id];
+
+ while (rte_atomic16_read(&tp->op_params->sync) == SYNC_WAIT)
+ rte_pause();
+
+ ret = rte_bbdev_dec_op_alloc_bulk(tp->op_params->mp, ops_enq, num_ops);
+ TEST_ASSERT_SUCCESS(ret, "Allocation failed for %d ops", num_ops);
+
+ if (test_vector.op_type != RTE_BBDEV_OP_NONE)
+ copy_reference_dec_op(ops_enq, num_ops, 0, bufs->inputs,
+ bufs->hard_outputs, bufs->soft_outputs, ref_op);
+
+ /* Set counter to validate the ordering */
+ for (j = 0; j < num_ops; ++j)
+ ops_enq[j]->opaque_data = (void *)(uintptr_t)j;
+
+ for (i = 0; i < TEST_REPETITIONS; ++i) {
+
+ for (j = 0; j < num_ops; ++j)
+ mbuf_reset(ops_enq[j]->turbo_dec.hard_output.data);
+
+ start_time = rte_rdtsc_precise();
+
+ for (enq = 0, deq = 0; enq < num_ops;) {
+ num_to_enq = burst_sz;
+
+ if (unlikely(num_ops - enq < num_to_enq))
+ num_to_enq = num_ops - enq;
+
+ enq += rte_bbdev_enqueue_dec_ops(tp->dev_id,
+ queue_id, &ops_enq[enq], num_to_enq);
+
+ deq += rte_bbdev_dequeue_dec_ops(tp->dev_id,
+ queue_id, &ops_deq[deq], enq - deq);
+ }
+
+ /* dequeue the remaining */
+ while (deq < enq) {
+ deq += rte_bbdev_dequeue_dec_ops(tp->dev_id,
+ queue_id, &ops_deq[deq], enq - deq);
+ }
+
+ total_time += rte_rdtsc_precise() - start_time;
+ }
+
+ tp->iter_count = 0;
+ /* get the max of iter_count for all dequeued ops */
+ for (i = 0; i < num_ops; ++i) {
+ tp->iter_count = RTE_MAX(ops_enq[i]->turbo_dec.iter_count,
+ tp->iter_count);
+ }
+
+ if (test_vector.op_type != RTE_BBDEV_OP_NONE) {
+ ret = validate_dec_op(ops_deq, num_ops, ref_op,
+ tp->op_params->vector_mask);
+ TEST_ASSERT_SUCCESS(ret, "Validation failed!");
+ }
+
+ rte_bbdev_dec_op_free_bulk(ops_enq, num_ops);
+
+ double tb_len_bits = calc_dec_TB_size(ref_op);
+
+ tp->ops_per_sec = ((double)num_ops * TEST_REPETITIONS) /
+ ((double)total_time / (double)rte_get_tsc_hz());
+ tp->mbps = (((double)(num_ops * TEST_REPETITIONS * tb_len_bits)) /
+ 1000000.0) / ((double)total_time /
+ (double)rte_get_tsc_hz());
+
+ return TEST_SUCCESS;
+}
+
+static int
+bler_pmd_lcore_ldpc_dec(void *arg)
+{
+ struct thread_params *tp = arg;
+ uint16_t enq, deq;
+ uint64_t total_time = 0, start_time;
+ const uint16_t queue_id = tp->queue_id;
+ const uint16_t burst_sz = tp->op_params->burst_sz;
+ const uint16_t num_ops = tp->op_params->num_to_process;
+ struct rte_bbdev_dec_op *ops_enq[num_ops];
+ struct rte_bbdev_dec_op *ops_deq[num_ops];
+ struct rte_bbdev_dec_op *ref_op = tp->op_params->ref_dec_op;
+ struct test_buffers *bufs = NULL;
+ int i, j, ret;
+ float parity_bler = 0;
+ struct rte_bbdev_info info;
+ uint16_t num_to_enq;
+ bool extDdr = check_bit(ldpc_cap_flags,
+ RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_OUT_ENABLE);
+ bool loopback = check_bit(ref_op->ldpc_dec.op_flags,
+ RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_LOOPBACK);
+ bool hc_out = check_bit(ref_op->ldpc_dec.op_flags,
+ RTE_BBDEV_LDPC_HQ_COMBINE_OUT_ENABLE);
+
+ TEST_ASSERT_SUCCESS((burst_sz > MAX_BURST),
+ "BURST_SIZE should be <= %u", MAX_BURST);
+
+ rte_bbdev_info_get(tp->dev_id, &info);
+
+ TEST_ASSERT_SUCCESS((num_ops > info.drv.queue_size_lim),
+ "NUM_OPS cannot exceed %u for this device",
+ info.drv.queue_size_lim);
+
+ bufs = &tp->op_params->q_bufs[GET_SOCKET(info.socket_id)][queue_id];
+
+ while (rte_atomic16_read(&tp->op_params->sync) == SYNC_WAIT)
+ rte_pause();
+
+ ret = rte_bbdev_dec_op_alloc_bulk(tp->op_params->mp, ops_enq, num_ops);
+ TEST_ASSERT_SUCCESS(ret, "Allocation failed for %d ops", num_ops);
+
+ /* For BLER tests we need to enable early termination */
+ if (!check_bit(ref_op->ldpc_dec.op_flags,
+ RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE))
+ ref_op->ldpc_dec.op_flags +=
+ RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE;
+ ref_op->ldpc_dec.iter_max = get_iter_max();
+ ref_op->ldpc_dec.iter_count = ref_op->ldpc_dec.iter_max;
+
+ if (test_vector.op_type != RTE_BBDEV_OP_NONE)
+ copy_reference_ldpc_dec_op(ops_enq, num_ops, 0, bufs->inputs,
+ bufs->hard_outputs, bufs->soft_outputs,
+ bufs->harq_inputs, bufs->harq_outputs, ref_op);
+ generate_llr_input(num_ops, bufs->inputs, ref_op);
+
+ /* Set counter to validate the ordering */
+ for (j = 0; j < num_ops; ++j)
+ ops_enq[j]->opaque_data = (void *)(uintptr_t)j;
+
+ for (i = 0; i < 1; ++i) { /* Could add more iterations */
+ for (j = 0; j < num_ops; ++j) {
+ if (!loopback)
+ mbuf_reset(
+ ops_enq[j]->ldpc_dec.hard_output.data);
+ if (hc_out || loopback)
+ mbuf_reset(
+ ops_enq[j]->ldpc_dec.harq_combined_output.data);
+ }
+ if (extDdr) {
+ bool preload = i == (TEST_REPETITIONS - 1);
+ preload_harq_ddr(tp->dev_id, queue_id, ops_enq,
+ num_ops, preload);
+ }
+ start_time = rte_rdtsc_precise();
+
+ for (enq = 0, deq = 0; enq < num_ops;) {
+ num_to_enq = burst_sz;
+
+ if (unlikely(num_ops - enq < num_to_enq))
+ num_to_enq = num_ops - enq;
+
+ enq += rte_bbdev_enqueue_ldpc_dec_ops(tp->dev_id,
+ queue_id, &ops_enq[enq], num_to_enq);
+
+ deq += rte_bbdev_dequeue_ldpc_dec_ops(tp->dev_id,
+ queue_id, &ops_deq[deq], enq - deq);
+ }
+
+ /* dequeue the remaining */
+ while (deq < enq) {
+ deq += rte_bbdev_dequeue_ldpc_dec_ops(tp->dev_id,
+ queue_id, &ops_deq[deq], enq - deq);
+ }
+
+ total_time += rte_rdtsc_precise() - start_time;
+ }
+
+ tp->iter_count = 0;
+ tp->iter_average = 0;
+ /* get the max of iter_count for all dequeued ops */
+ for (i = 0; i < num_ops; ++i) {
+ tp->iter_count = RTE_MAX(ops_enq[i]->ldpc_dec.iter_count,
+ tp->iter_count);
+ tp->iter_average += (double) ops_enq[i]->ldpc_dec.iter_count;
+ if (ops_enq[i]->status & (1 << RTE_BBDEV_SYNDROME_ERROR))
+ parity_bler += 1.0;
+ }
+
+ parity_bler /= num_ops; /* This one is based on SYND */
+ tp->iter_average /= num_ops;
+ tp->bler = (double) validate_ldpc_bler(ops_deq, num_ops) / num_ops;
+
+ if (test_vector.op_type != RTE_BBDEV_OP_NONE
+ && tp->bler == 0
+ && parity_bler == 0
+ && !hc_out) {
+ ret = validate_ldpc_dec_op(ops_deq, num_ops, ref_op,
+ tp->op_params->vector_mask);
+ TEST_ASSERT_SUCCESS(ret, "Validation failed!");
+ }
+
+ rte_bbdev_dec_op_free_bulk(ops_enq, num_ops);
+
+ double tb_len_bits = calc_ldpc_dec_TB_size(ref_op);
+ tp->ops_per_sec = ((double)num_ops * 1) /
+ ((double)total_time / (double)rte_get_tsc_hz());
+ tp->mbps = (((double)(num_ops * 1 * tb_len_bits)) /
+ 1000000.0) / ((double)total_time /
+ (double)rte_get_tsc_hz());
+
+ return TEST_SUCCESS;
+}
+
+static int
+throughput_pmd_lcore_ldpc_dec(void *arg)
+{
+ struct thread_params *tp = arg;
+ uint16_t enq, deq;
+ uint64_t total_time = 0, start_time;
+ const uint16_t queue_id = tp->queue_id;
+ const uint16_t burst_sz = tp->op_params->burst_sz;
+ const uint16_t num_ops = tp->op_params->num_to_process;
+ struct rte_bbdev_dec_op *ops_enq[num_ops];
+ struct rte_bbdev_dec_op *ops_deq[num_ops];
+ struct rte_bbdev_dec_op *ref_op = tp->op_params->ref_dec_op;
+ struct test_buffers *bufs = NULL;
+ int i, j, ret;
+ struct rte_bbdev_info info;
+ uint16_t num_to_enq;
+ bool extDdr = check_bit(ldpc_cap_flags,
+ RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_OUT_ENABLE);
+ bool loopback = check_bit(ref_op->ldpc_dec.op_flags,
+ RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_LOOPBACK);
+ bool hc_out = check_bit(ref_op->ldpc_dec.op_flags,
+ RTE_BBDEV_LDPC_HQ_COMBINE_OUT_ENABLE);
+
+ TEST_ASSERT_SUCCESS((burst_sz > MAX_BURST),
+ "BURST_SIZE should be <= %u", MAX_BURST);
+
+ rte_bbdev_info_get(tp->dev_id, &info);
+
+ TEST_ASSERT_SUCCESS((num_ops > info.drv.queue_size_lim),
+ "NUM_OPS cannot exceed %u for this device",
+ info.drv.queue_size_lim);
+
+ bufs = &tp->op_params->q_bufs[GET_SOCKET(info.socket_id)][queue_id];
+
+ while (rte_atomic16_read(&tp->op_params->sync) == SYNC_WAIT)
+ rte_pause();
+
+ ret = rte_bbdev_dec_op_alloc_bulk(tp->op_params->mp, ops_enq, num_ops);
+ TEST_ASSERT_SUCCESS(ret, "Allocation failed for %d ops", num_ops);
+
+ /* For throughput tests we need to disable early termination */
+ if (check_bit(ref_op->ldpc_dec.op_flags,
+ RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE))
+ ref_op->ldpc_dec.op_flags -=
+ RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE;
+ ref_op->ldpc_dec.iter_max = get_iter_max();
+ ref_op->ldpc_dec.iter_count = ref_op->ldpc_dec.iter_max;
+
+ if (test_vector.op_type != RTE_BBDEV_OP_NONE)
+ copy_reference_ldpc_dec_op(ops_enq, num_ops, 0, bufs->inputs,
+ bufs->hard_outputs, bufs->soft_outputs,
+ bufs->harq_inputs, bufs->harq_outputs, ref_op);
+
+ /* Set counter to validate the ordering */
+ for (j = 0; j < num_ops; ++j)
+ ops_enq[j]->opaque_data = (void *)(uintptr_t)j;
+
+ for (i = 0; i < TEST_REPETITIONS; ++i) {
+ for (j = 0; j < num_ops; ++j) {
+ if (!loopback)
+ mbuf_reset(
+ ops_enq[j]->ldpc_dec.hard_output.data);
+ if (hc_out || loopback)
+ mbuf_reset(
+ ops_enq[j]->ldpc_dec.harq_combined_output.data);
+ }
+ if (extDdr) {
+ bool preload = i == (TEST_REPETITIONS - 1);
+ preload_harq_ddr(tp->dev_id, queue_id, ops_enq,
+ num_ops, preload);
+ }
+ start_time = rte_rdtsc_precise();
+
+ for (enq = 0, deq = 0; enq < num_ops;) {
+ num_to_enq = burst_sz;
+
+ if (unlikely(num_ops - enq < num_to_enq))
+ num_to_enq = num_ops - enq;
+
+ enq += rte_bbdev_enqueue_ldpc_dec_ops(tp->dev_id,
+ queue_id, &ops_enq[enq], num_to_enq);
+
+ deq += rte_bbdev_dequeue_ldpc_dec_ops(tp->dev_id,
+ queue_id, &ops_deq[deq], enq - deq);
+ }
+
+ /* dequeue the remaining */
+ while (deq < enq) {
+ deq += rte_bbdev_dequeue_ldpc_dec_ops(tp->dev_id,
+ queue_id, &ops_deq[deq], enq - deq);
+ }
+
+ total_time += rte_rdtsc_precise() - start_time;
+ }
+
+ tp->iter_count = 0;
+ /* get the max of iter_count for all dequeued ops */
+ for (i = 0; i < num_ops; ++i) {
+ tp->iter_count = RTE_MAX(ops_enq[i]->ldpc_dec.iter_count,
+ tp->iter_count);
+ }
+ if (extDdr) {
+ /* Read loopback is not thread safe */
+ retrieve_harq_ddr(tp->dev_id, queue_id, ops_enq, num_ops);
+ }
+
+ if (test_vector.op_type != RTE_BBDEV_OP_NONE) {
+ ret = validate_ldpc_dec_op(ops_deq, num_ops, ref_op,
+ tp->op_params->vector_mask);
+ TEST_ASSERT_SUCCESS(ret, "Validation failed!");
+ }
+
+ rte_bbdev_dec_op_free_bulk(ops_enq, num_ops);
+
+ double tb_len_bits = calc_ldpc_dec_TB_size(ref_op);
+
+ tp->ops_per_sec = ((double)num_ops * TEST_REPETITIONS) /
+ ((double)total_time / (double)rte_get_tsc_hz());
+ tp->mbps = (((double)(num_ops * TEST_REPETITIONS * tb_len_bits)) /
+ 1000000.0) / ((double)total_time /
+ (double)rte_get_tsc_hz());
+
+ return TEST_SUCCESS;
+}
+
+static int
+throughput_pmd_lcore_enc(void *arg)
+{
+ struct thread_params *tp = arg;
+ uint16_t enq, deq;
+ uint64_t total_time = 0, start_time;
+ const uint16_t queue_id = tp->queue_id;
+ const uint16_t burst_sz = tp->op_params->burst_sz;
+ const uint16_t num_ops = tp->op_params->num_to_process;
+ struct rte_bbdev_enc_op *ops_enq[num_ops];
+ struct rte_bbdev_enc_op *ops_deq[num_ops];
+ struct rte_bbdev_enc_op *ref_op = tp->op_params->ref_enc_op;
+ struct test_buffers *bufs = NULL;
+ int i, j, ret;
+ struct rte_bbdev_info info;
+ uint16_t num_to_enq;
+
+ TEST_ASSERT_SUCCESS((burst_sz > MAX_BURST),
+ "BURST_SIZE should be <= %u", MAX_BURST);
+
+ rte_bbdev_info_get(tp->dev_id, &info);
+
+ TEST_ASSERT_SUCCESS((num_ops > info.drv.queue_size_lim),
+ "NUM_OPS cannot exceed %u for this device",
+ info.drv.queue_size_lim);
+
+ bufs = &tp->op_params->q_bufs[GET_SOCKET(info.socket_id)][queue_id];
+
+ while (rte_atomic16_read(&tp->op_params->sync) == SYNC_WAIT)
+ rte_pause();
+
+ ret = rte_bbdev_enc_op_alloc_bulk(tp->op_params->mp, ops_enq,
+ num_ops);
+ TEST_ASSERT_SUCCESS(ret, "Allocation failed for %d ops",
+ num_ops);
+ if (test_vector.op_type != RTE_BBDEV_OP_NONE)
+ copy_reference_enc_op(ops_enq, num_ops, 0, bufs->inputs,
+ bufs->hard_outputs, ref_op);
+
+ /* Set counter to validate the ordering */
+ for (j = 0; j < num_ops; ++j)
+ ops_enq[j]->opaque_data = (void *)(uintptr_t)j;
+
+ for (i = 0; i < TEST_REPETITIONS; ++i) {
+
+ if (test_vector.op_type != RTE_BBDEV_OP_NONE)
+ for (j = 0; j < num_ops; ++j)
+ mbuf_reset(ops_enq[j]->turbo_enc.output.data);
+
+ start_time = rte_rdtsc_precise();
+
+ for (enq = 0, deq = 0; enq < num_ops;) {
+ num_to_enq = burst_sz;
+
+ if (unlikely(num_ops - enq < num_to_enq))
+ num_to_enq = num_ops - enq;
+
+ enq += rte_bbdev_enqueue_enc_ops(tp->dev_id,
+ queue_id, &ops_enq[enq], num_to_enq);
+
+ deq += rte_bbdev_dequeue_enc_ops(tp->dev_id,
+ queue_id, &ops_deq[deq], enq - deq);
+ }
+
+ /* dequeue the remaining */
+ while (deq < enq) {
+ deq += rte_bbdev_dequeue_enc_ops(tp->dev_id,
+ queue_id, &ops_deq[deq], enq - deq);
+ }
+
+ total_time += rte_rdtsc_precise() - start_time;
+ }
+
+ if (test_vector.op_type != RTE_BBDEV_OP_NONE) {
+ ret = validate_enc_op(ops_deq, num_ops, ref_op);
+ TEST_ASSERT_SUCCESS(ret, "Validation failed!");
+ }
+
+ rte_bbdev_enc_op_free_bulk(ops_enq, num_ops);
+
+ double tb_len_bits = calc_enc_TB_size(ref_op);
+
+ tp->ops_per_sec = ((double)num_ops * TEST_REPETITIONS) /
+ ((double)total_time / (double)rte_get_tsc_hz());
+ tp->mbps = (((double)(num_ops * TEST_REPETITIONS * tb_len_bits))
+ / 1000000.0) / ((double)total_time /
+ (double)rte_get_tsc_hz());
+
+ return TEST_SUCCESS;
+}
+
+static int
+throughput_pmd_lcore_ldpc_enc(void *arg)
+{
+ struct thread_params *tp = arg;
+ uint16_t enq, deq;
+ uint64_t total_time = 0, start_time;
+ const uint16_t queue_id = tp->queue_id;
+ const uint16_t burst_sz = tp->op_params->burst_sz;
+ const uint16_t num_ops = tp->op_params->num_to_process;
+ struct rte_bbdev_enc_op *ops_enq[num_ops];
+ struct rte_bbdev_enc_op *ops_deq[num_ops];
+ struct rte_bbdev_enc_op *ref_op = tp->op_params->ref_enc_op;
+ struct test_buffers *bufs = NULL;
+ int i, j, ret;
+ struct rte_bbdev_info info;
+ uint16_t num_to_enq;
+
+ TEST_ASSERT_SUCCESS((burst_sz > MAX_BURST),
+ "BURST_SIZE should be <= %u", MAX_BURST);
+
+ rte_bbdev_info_get(tp->dev_id, &info);
+
+ TEST_ASSERT_SUCCESS((num_ops > info.drv.queue_size_lim),
+ "NUM_OPS cannot exceed %u for this device",
+ info.drv.queue_size_lim);
+
+ bufs = &tp->op_params->q_bufs[GET_SOCKET(info.socket_id)][queue_id];
+
+ while (rte_atomic16_read(&tp->op_params->sync) == SYNC_WAIT)
+ rte_pause();
+
+ ret = rte_bbdev_enc_op_alloc_bulk(tp->op_params->mp, ops_enq,
+ num_ops);
+ TEST_ASSERT_SUCCESS(ret, "Allocation failed for %d ops",
+ num_ops);
+ if (test_vector.op_type != RTE_BBDEV_OP_NONE)
+ copy_reference_ldpc_enc_op(ops_enq, num_ops, 0, bufs->inputs,
+ bufs->hard_outputs, ref_op);
+
+ /* Set counter to validate the ordering */
+ for (j = 0; j < num_ops; ++j)
+ ops_enq[j]->opaque_data = (void *)(uintptr_t)j;
+
+ for (i = 0; i < TEST_REPETITIONS; ++i) {
+
+ if (test_vector.op_type != RTE_BBDEV_OP_NONE)
+ for (j = 0; j < num_ops; ++j)
+ mbuf_reset(ops_enq[j]->turbo_enc.output.data);
+
+ start_time = rte_rdtsc_precise();
+
+ for (enq = 0, deq = 0; enq < num_ops;) {
+ num_to_enq = burst_sz;
+
+ if (unlikely(num_ops - enq < num_to_enq))
+ num_to_enq = num_ops - enq;
+
+ enq += rte_bbdev_enqueue_ldpc_enc_ops(tp->dev_id,
+ queue_id, &ops_enq[enq], num_to_enq);
+
+ deq += rte_bbdev_dequeue_ldpc_enc_ops(tp->dev_id,
+ queue_id, &ops_deq[deq], enq - deq);
+ }
+
+ /* dequeue the remaining */
+ while (deq < enq) {
+ deq += rte_bbdev_dequeue_ldpc_enc_ops(tp->dev_id,
+ queue_id, &ops_deq[deq], enq - deq);
+ }
+
+ total_time += rte_rdtsc_precise() - start_time;
+ }
+
+ if (test_vector.op_type != RTE_BBDEV_OP_NONE) {
+ ret = validate_ldpc_enc_op(ops_deq, num_ops, ref_op);
+ TEST_ASSERT_SUCCESS(ret, "Validation failed!");
+ }
+
+ rte_bbdev_enc_op_free_bulk(ops_enq, num_ops);
+
+ double tb_len_bits = calc_ldpc_enc_TB_size(ref_op);
+
+ tp->ops_per_sec = ((double)num_ops * TEST_REPETITIONS) /
+ ((double)total_time / (double)rte_get_tsc_hz());
+ tp->mbps = (((double)(num_ops * TEST_REPETITIONS * tb_len_bits))
+ / 1000000.0) / ((double)total_time /
+ (double)rte_get_tsc_hz());
+
+ return TEST_SUCCESS;
+}
+
+static void
+print_enc_throughput(struct thread_params *t_params, unsigned int used_cores)
+{
+ unsigned int iter = 0;
+ double total_mops = 0, total_mbps = 0;
+
+ for (iter = 0; iter < used_cores; iter++) {
+ printf(
+ "Throughput for core (%u): %.8lg Ops/s, %.8lg Mbps\n",
+ t_params[iter].lcore_id, t_params[iter].ops_per_sec,
+ t_params[iter].mbps);
+ total_mops += t_params[iter].ops_per_sec;
+ total_mbps += t_params[iter].mbps;
+ }
+ printf(
+ "\nTotal throughput for %u cores: %.8lg MOPS, %.8lg Mbps\n",
+ used_cores, total_mops, total_mbps);
+}
+
+/* Aggregate the performance results over the number of cores used */
+static void
+print_dec_throughput(struct thread_params *t_params, unsigned int used_cores)
+{
+ unsigned int core_idx = 0;
+ double total_mops = 0, total_mbps = 0;
+ uint8_t iter_count = 0;
+
+ for (core_idx = 0; core_idx < used_cores; core_idx++) {
+ printf(
+ "Throughput for core (%u): %.8lg Ops/s, %.8lg Mbps @ max %u iterations\n",
+ t_params[core_idx].lcore_id,
+ t_params[core_idx].ops_per_sec,
+ t_params[core_idx].mbps,
+ t_params[core_idx].iter_count);
+ total_mops += t_params[core_idx].ops_per_sec;
+ total_mbps += t_params[core_idx].mbps;
+ iter_count = RTE_MAX(iter_count,
+ t_params[core_idx].iter_count);
+ }
+ printf(
+ "\nTotal throughput for %u cores: %.8lg MOPS, %.8lg Mbps @ max %u iterations\n",
+ used_cores, total_mops, total_mbps, iter_count);
+}
+
+/* Aggregate the performance results over the number of cores used */
+static void
+print_dec_bler(struct thread_params *t_params, unsigned int used_cores)
+{
+ unsigned int core_idx = 0;
+ double total_mbps = 0, total_bler = 0, total_iter = 0;
+ double snr = get_snr();
+
+ for (core_idx = 0; core_idx < used_cores; core_idx++) {
+ printf("Core%u BLER %.1f %% - Iters %.1f - Tp %.1f Mbps %s\n",
+ t_params[core_idx].lcore_id,
+ t_params[core_idx].bler * 100,
+ t_params[core_idx].iter_average,
+ t_params[core_idx].mbps,
+ get_vector_filename());
+ total_mbps += t_params[core_idx].mbps;
+ total_bler += t_params[core_idx].bler;
+ total_iter += t_params[core_idx].iter_average;
+ }
+ total_bler /= used_cores;
+ total_iter /= used_cores;
+
+ printf("SNR %.2f BLER %.1f %% - Iterations %.1f %d - Tp %.1f Mbps %s\n",
+ snr, total_bler * 100, total_iter, get_iter_max(),
+ total_mbps, get_vector_filename());
+}
+
+/*
+ * Test function that determines BLER wireless performance
+ */
+static int
+bler_test(struct active_device *ad,
+ struct test_op_params *op_params)
+{
+ int ret;
+ unsigned int lcore_id, used_cores = 0;
+ struct thread_params *t_params;
+ struct rte_bbdev_info info;
+ lcore_function_t *bler_function;
+ uint16_t num_lcores;
+ const char *op_type_str;
+
+ rte_bbdev_info_get(ad->dev_id, &info);
+
+ op_type_str = rte_bbdev_op_type_str(test_vector.op_type);
+ TEST_ASSERT_NOT_NULL(op_type_str, "Invalid op type: %u",
+ test_vector.op_type);
+
+ printf("+ ------------------------------------------------------- +\n");
+ printf("== test: bler\ndev: %s, nb_queues: %u, burst size: %u, num ops: %u, num_lcores: %u, op type: %s, itr mode: %s, GHz: %lg\n",
+ info.dev_name, ad->nb_queues, op_params->burst_sz,
+ op_params->num_to_process, op_params->num_lcores,
+ op_type_str,
+ intr_enabled ? "Interrupt mode" : "PMD mode",
+ (double)rte_get_tsc_hz() / 1000000000.0);
+
+ /* Set number of lcores */
+ num_lcores = (ad->nb_queues < (op_params->num_lcores))
+ ? ad->nb_queues
+ : op_params->num_lcores;
+
+ /* Allocate memory for thread parameters structure */
+ t_params = rte_zmalloc(NULL, num_lcores * sizeof(struct thread_params),
+ RTE_CACHE_LINE_SIZE);
+ TEST_ASSERT_NOT_NULL(t_params, "Failed to alloc %zuB for t_params",
+ RTE_ALIGN(sizeof(struct thread_params) * num_lcores,
+ RTE_CACHE_LINE_SIZE));
+
+ if (test_vector.op_type == RTE_BBDEV_OP_LDPC_DEC)
+ bler_function = bler_pmd_lcore_ldpc_dec;
+ else
+ return TEST_SKIPPED;
+
+ rte_atomic16_set(&op_params->sync, SYNC_WAIT);
+
+ /* Master core is set at first entry */
+ t_params[0].dev_id = ad->dev_id;
+ t_params[0].lcore_id = rte_lcore_id();
+ t_params[0].op_params = op_params;
+ t_params[0].queue_id = ad->queue_ids[used_cores++];
+ t_params[0].iter_count = 0;
+
+ RTE_LCORE_FOREACH_SLAVE(lcore_id) {
+ if (used_cores >= num_lcores)
+ break;
+
+ t_params[used_cores].dev_id = ad->dev_id;
+ t_params[used_cores].lcore_id = lcore_id;
+ t_params[used_cores].op_params = op_params;
+ t_params[used_cores].queue_id = ad->queue_ids[used_cores];
+ t_params[used_cores].iter_count = 0;
+
+ rte_eal_remote_launch(bler_function,
+ &t_params[used_cores++], lcore_id);
+ }
+
+ rte_atomic16_set(&op_params->sync, SYNC_START);
+ ret = bler_function(&t_params[0]);
+
+ /* Master core is always used */
+ for (used_cores = 1; used_cores < num_lcores; used_cores++)
+ ret |= rte_eal_wait_lcore(t_params[used_cores].lcore_id);
+
+ print_dec_bler(t_params, num_lcores);
+
+ /* Return if test failed */
+ if (ret) {
+ rte_free(t_params);
+ return ret;
+ }
+
+ /* Function to print something here*/
+ rte_free(t_params);
+ return ret;
+}
+
+/*
+ * Test function that determines how long an enqueue + dequeue of a burst
+ * takes on available lcores.
+ */
+static int
+throughput_test(struct active_device *ad,
+ struct test_op_params *op_params)
+{
+ int ret;
+ unsigned int lcore_id, used_cores = 0;
+ struct thread_params *t_params, *tp;
+ struct rte_bbdev_info info;
+ lcore_function_t *throughput_function;
+ uint16_t num_lcores;
+ const char *op_type_str;
+
+ rte_bbdev_info_get(ad->dev_id, &info);
+
+ op_type_str = rte_bbdev_op_type_str(test_vector.op_type);
+ TEST_ASSERT_NOT_NULL(op_type_str, "Invalid op type: %u",
+ test_vector.op_type);
+
+ printf("+ ------------------------------------------------------- +\n");
+ printf("== test: throughput\ndev: %s, nb_queues: %u, burst size: %u, num ops: %u, num_lcores: %u, op type: %s, itr mode: %s, GHz: %lg\n",
+ info.dev_name, ad->nb_queues, op_params->burst_sz,
+ op_params->num_to_process, op_params->num_lcores,
+ op_type_str,
+ intr_enabled ? "Interrupt mode" : "PMD mode",
+ (double)rte_get_tsc_hz() / 1000000000.0);
+
+ /* Set number of lcores */
+ num_lcores = (ad->nb_queues < (op_params->num_lcores))
+ ? ad->nb_queues
+ : op_params->num_lcores;
+
+ /* Allocate memory for thread parameters structure */
+ t_params = rte_zmalloc(NULL, num_lcores * sizeof(struct thread_params),
+ RTE_CACHE_LINE_SIZE);
+ TEST_ASSERT_NOT_NULL(t_params, "Failed to alloc %zuB for t_params",
+ RTE_ALIGN(sizeof(struct thread_params) * num_lcores,
+ RTE_CACHE_LINE_SIZE));
+
+ if (intr_enabled) {
+ if (test_vector.op_type == RTE_BBDEV_OP_TURBO_DEC)
+ throughput_function = throughput_intr_lcore_dec;
+ else if (test_vector.op_type == RTE_BBDEV_OP_LDPC_DEC)
+ throughput_function = throughput_intr_lcore_ldpc_dec;
+ else if (test_vector.op_type == RTE_BBDEV_OP_TURBO_ENC)
+ throughput_function = throughput_intr_lcore_enc;
+ else if (test_vector.op_type == RTE_BBDEV_OP_LDPC_ENC)
+ throughput_function = throughput_intr_lcore_ldpc_enc;
+ else
+ throughput_function = throughput_intr_lcore_enc;
+
+ /* Dequeue interrupt callback registration */
+ ret = rte_bbdev_callback_register(ad->dev_id,
+ RTE_BBDEV_EVENT_DEQUEUE, dequeue_event_callback,
+ t_params);
+ if (ret < 0) {
+ rte_free(t_params);
+ return ret;
+ }
+ } else {
+ if (test_vector.op_type == RTE_BBDEV_OP_TURBO_DEC)
+ throughput_function = throughput_pmd_lcore_dec;
+ else if (test_vector.op_type == RTE_BBDEV_OP_LDPC_DEC)
+ throughput_function = throughput_pmd_lcore_ldpc_dec;
+ else if (test_vector.op_type == RTE_BBDEV_OP_TURBO_ENC)
+ throughput_function = throughput_pmd_lcore_enc;
+ else if (test_vector.op_type == RTE_BBDEV_OP_LDPC_ENC)
+ throughput_function = throughput_pmd_lcore_ldpc_enc;
+ else
+ throughput_function = throughput_pmd_lcore_enc;
+ }
+
+ rte_atomic16_set(&op_params->sync, SYNC_WAIT);
+
+ /* Master core is set at first entry */
+ t_params[0].dev_id = ad->dev_id;
+ t_params[0].lcore_id = rte_lcore_id();
+ t_params[0].op_params = op_params;
+ t_params[0].queue_id = ad->queue_ids[used_cores++];
+ t_params[0].iter_count = 0;
+
+ RTE_LCORE_FOREACH_SLAVE(lcore_id) {
+ if (used_cores >= num_lcores)
+ break;
+
+ t_params[used_cores].dev_id = ad->dev_id;
+ t_params[used_cores].lcore_id = lcore_id;
+ t_params[used_cores].op_params = op_params;
+ t_params[used_cores].queue_id = ad->queue_ids[used_cores];
+ t_params[used_cores].iter_count = 0;
+
+ rte_eal_remote_launch(throughput_function,
+ &t_params[used_cores++], lcore_id);
+ }
+
+ rte_atomic16_set(&op_params->sync, SYNC_START);
+ ret = throughput_function(&t_params[0]);
+
+ /* Master core is always used */
+ for (used_cores = 1; used_cores < num_lcores; used_cores++)
+ ret |= rte_eal_wait_lcore(t_params[used_cores].lcore_id);
+
+ /* Return if test failed */
+ if (ret) {
+ rte_free(t_params);
+ return ret;
+ }
+
+ /* Print throughput if interrupts are disabled and test passed */
+ if (!intr_enabled) {
+ if (test_vector.op_type == RTE_BBDEV_OP_TURBO_DEC ||
+ test_vector.op_type == RTE_BBDEV_OP_LDPC_DEC)
+ print_dec_throughput(t_params, num_lcores);
+ else
+ print_enc_throughput(t_params, num_lcores);
+ rte_free(t_params);
+ return ret;
+ }
+
+ /* In interrupt TC we need to wait for the interrupt callback to deqeue
+ * all pending operations. Skip waiting for queues which reported an
+ * error using processing_status variable.
+ * Wait for master lcore operations.
+ */
+ tp = &t_params[0];
+ while ((rte_atomic16_read(&tp->nb_dequeued) <
+ op_params->num_to_process) &&
+ (rte_atomic16_read(&tp->processing_status) !=
+ TEST_FAILED))
+ rte_pause();
+
+ tp->ops_per_sec /= TEST_REPETITIONS;
+ tp->mbps /= TEST_REPETITIONS;
+ ret |= (int)rte_atomic16_read(&tp->processing_status);
+
+ /* Wait for slave lcores operations */
+ for (used_cores = 1; used_cores < num_lcores; used_cores++) {
+ tp = &t_params[used_cores];
+
+ while ((rte_atomic16_read(&tp->nb_dequeued) <
+ op_params->num_to_process) &&
+ (rte_atomic16_read(&tp->processing_status) !=
+ TEST_FAILED))
+ rte_pause();
+
+ tp->ops_per_sec /= TEST_REPETITIONS;
+ tp->mbps /= TEST_REPETITIONS;
+ ret |= (int)rte_atomic16_read(&tp->processing_status);
+ }
+
+ /* Print throughput if test passed */
+ if (!ret) {
+ if (test_vector.op_type == RTE_BBDEV_OP_TURBO_DEC ||
+ test_vector.op_type == RTE_BBDEV_OP_LDPC_DEC)
+ print_dec_throughput(t_params, num_lcores);
+ else if (test_vector.op_type == RTE_BBDEV_OP_TURBO_ENC ||
+ test_vector.op_type == RTE_BBDEV_OP_LDPC_ENC)
+ print_enc_throughput(t_params, num_lcores);
+ }
+
+ rte_free(t_params);
+ return ret;
+}
+
+static int
+latency_test_dec(struct rte_mempool *mempool,
+ struct test_buffers *bufs, struct rte_bbdev_dec_op *ref_op,
+ int vector_mask, uint16_t dev_id, uint16_t queue_id,
+ const uint16_t num_to_process, uint16_t burst_sz,
+ uint64_t *total_time, uint64_t *min_time, uint64_t *max_time)
+{
+ int ret = TEST_SUCCESS;
+ uint16_t i, j, dequeued;
+ struct rte_bbdev_dec_op *ops_enq[MAX_BURST], *ops_deq[MAX_BURST];
+ uint64_t start_time = 0, last_time = 0;
+
+ for (i = 0, dequeued = 0; dequeued < num_to_process; ++i) {
+ uint16_t enq = 0, deq = 0;
+ bool first_time = true;
+ last_time = 0;
+
+ if (unlikely(num_to_process - dequeued < burst_sz))
+ burst_sz = num_to_process - dequeued;
+
+ ret = rte_bbdev_dec_op_alloc_bulk(mempool, ops_enq, burst_sz);
+ TEST_ASSERT_SUCCESS(ret,
+ "rte_bbdev_dec_op_alloc_bulk() failed");
+ if (test_vector.op_type != RTE_BBDEV_OP_NONE)
+ copy_reference_dec_op(ops_enq, burst_sz, dequeued,
+ bufs->inputs,
+ bufs->hard_outputs,
+ bufs->soft_outputs,
+ ref_op);
+
+ /* Set counter to validate the ordering */
+ for (j = 0; j < burst_sz; ++j)
+ ops_enq[j]->opaque_data = (void *)(uintptr_t)j;
+
+ start_time = rte_rdtsc_precise();
+
+ enq = rte_bbdev_enqueue_dec_ops(dev_id, queue_id, &ops_enq[enq],
+ burst_sz);
+ TEST_ASSERT(enq == burst_sz,
+ "Error enqueueing burst, expected %u, got %u",
+ burst_sz, enq);
+
+ /* Dequeue */
+ do {
+ deq += rte_bbdev_dequeue_dec_ops(dev_id, queue_id,
+ &ops_deq[deq], burst_sz - deq);
+ if (likely(first_time && (deq > 0))) {
+ last_time = rte_rdtsc_precise() - start_time;
+ first_time = false;
+ }
+ } while (unlikely(burst_sz != deq));
+
+ *max_time = RTE_MAX(*max_time, last_time);
+ *min_time = RTE_MIN(*min_time, last_time);
+ *total_time += last_time;
+
+ if (test_vector.op_type != RTE_BBDEV_OP_NONE) {
+ ret = validate_dec_op(ops_deq, burst_sz, ref_op,
+ vector_mask);
+ TEST_ASSERT_SUCCESS(ret, "Validation failed!");
+ }
+
+ rte_bbdev_dec_op_free_bulk(ops_enq, deq);
+ dequeued += deq;
+ }
+
+ return i;
+}
+
+static int
+latency_test_ldpc_dec(struct rte_mempool *mempool,
+ struct test_buffers *bufs, struct rte_bbdev_dec_op *ref_op,
+ int vector_mask, uint16_t dev_id, uint16_t queue_id,
+ const uint16_t num_to_process, uint16_t burst_sz,
+ uint64_t *total_time, uint64_t *min_time, uint64_t *max_time)
+{
+ int ret = TEST_SUCCESS;
+ uint16_t i, j, dequeued;
+ struct rte_bbdev_dec_op *ops_enq[MAX_BURST], *ops_deq[MAX_BURST];
+ uint64_t start_time = 0, last_time = 0;
+ bool extDdr = ldpc_cap_flags &
+ RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_OUT_ENABLE;
+
+ for (i = 0, dequeued = 0; dequeued < num_to_process; ++i) {
+ uint16_t enq = 0, deq = 0;
+ bool first_time = true;
+ last_time = 0;
+
+ if (unlikely(num_to_process - dequeued < burst_sz))
+ burst_sz = num_to_process - dequeued;
+
+ ret = rte_bbdev_dec_op_alloc_bulk(mempool, ops_enq, burst_sz);
+ TEST_ASSERT_SUCCESS(ret,
+ "rte_bbdev_dec_op_alloc_bulk() failed");
+
+ /* For latency tests we need to disable early termination */
+ if (check_bit(ref_op->ldpc_dec.op_flags,
+ RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE))
+ ref_op->ldpc_dec.op_flags -=
+ RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE;
+ ref_op->ldpc_dec.iter_max = get_iter_max();
+ ref_op->ldpc_dec.iter_count = ref_op->ldpc_dec.iter_max;
+
+ if (test_vector.op_type != RTE_BBDEV_OP_NONE)
+ copy_reference_ldpc_dec_op(ops_enq, burst_sz, dequeued,
+ bufs->inputs,
+ bufs->hard_outputs,
+ bufs->soft_outputs,
+ bufs->harq_inputs,
+ bufs->harq_outputs,
+ ref_op);
+
+ if (extDdr)
+ preload_harq_ddr(dev_id, queue_id, ops_enq,
+ burst_sz, true);
+
+ /* Set counter to validate the ordering */
+ for (j = 0; j < burst_sz; ++j)
+ ops_enq[j]->opaque_data = (void *)(uintptr_t)j;
+
+ start_time = rte_rdtsc_precise();
+
+ enq = rte_bbdev_enqueue_ldpc_dec_ops(dev_id, queue_id,
+ &ops_enq[enq], burst_sz);
+ TEST_ASSERT(enq == burst_sz,
+ "Error enqueueing burst, expected %u, got %u",
+ burst_sz, enq);
+
+ /* Dequeue */
+ do {
+ deq += rte_bbdev_dequeue_ldpc_dec_ops(dev_id, queue_id,
+ &ops_deq[deq], burst_sz - deq);
+ if (likely(first_time && (deq > 0))) {
+ last_time = rte_rdtsc_precise() - start_time;
+ first_time = false;
+ }
+ } while (unlikely(burst_sz != deq));
+
+ *max_time = RTE_MAX(*max_time, last_time);
+ *min_time = RTE_MIN(*min_time, last_time);
+ *total_time += last_time;
+
+ if (extDdr)
+ retrieve_harq_ddr(dev_id, queue_id, ops_enq, burst_sz);
+
+ if (test_vector.op_type != RTE_BBDEV_OP_NONE) {
+ ret = validate_ldpc_dec_op(ops_deq, burst_sz, ref_op,
+ vector_mask);
+ TEST_ASSERT_SUCCESS(ret, "Validation failed!");
+ }
+
+ rte_bbdev_dec_op_free_bulk(ops_enq, deq);
+ dequeued += deq;
+ }
+ return i;
+}
+
+static int
+latency_test_enc(struct rte_mempool *mempool,
+ struct test_buffers *bufs, struct rte_bbdev_enc_op *ref_op,
+ uint16_t dev_id, uint16_t queue_id,
+ const uint16_t num_to_process, uint16_t burst_sz,
+ uint64_t *total_time, uint64_t *min_time, uint64_t *max_time)
+{
+ int ret = TEST_SUCCESS;
+ uint16_t i, j, dequeued;
+ struct rte_bbdev_enc_op *ops_enq[MAX_BURST], *ops_deq[MAX_BURST];
+ uint64_t start_time = 0, last_time = 0;
+
+ for (i = 0, dequeued = 0; dequeued < num_to_process; ++i) {
+ uint16_t enq = 0, deq = 0;
+ bool first_time = true;
+ last_time = 0;
+
+ if (unlikely(num_to_process - dequeued < burst_sz))
+ burst_sz = num_to_process - dequeued;
+
+ ret = rte_bbdev_enc_op_alloc_bulk(mempool, ops_enq, burst_sz);
+ TEST_ASSERT_SUCCESS(ret,
+ "rte_bbdev_enc_op_alloc_bulk() failed");
+ if (test_vector.op_type != RTE_BBDEV_OP_NONE)
+ copy_reference_enc_op(ops_enq, burst_sz, dequeued,
+ bufs->inputs,
+ bufs->hard_outputs,
+ ref_op);
+
+ /* Set counter to validate the ordering */
+ for (j = 0; j < burst_sz; ++j)
+ ops_enq[j]->opaque_data = (void *)(uintptr_t)j;
+
+ start_time = rte_rdtsc_precise();
+
+ enq = rte_bbdev_enqueue_enc_ops(dev_id, queue_id, &ops_enq[enq],
+ burst_sz);
+ TEST_ASSERT(enq == burst_sz,
+ "Error enqueueing burst, expected %u, got %u",
+ burst_sz, enq);
+
+ /* Dequeue */
+ do {
+ deq += rte_bbdev_dequeue_enc_ops(dev_id, queue_id,
+ &ops_deq[deq], burst_sz - deq);
+ if (likely(first_time && (deq > 0))) {
+ last_time += rte_rdtsc_precise() - start_time;
+ first_time = false;
+ }
+ } while (unlikely(burst_sz != deq));
+
+ *max_time = RTE_MAX(*max_time, last_time);
+ *min_time = RTE_MIN(*min_time, last_time);
+ *total_time += last_time;
+
+ if (test_vector.op_type != RTE_BBDEV_OP_NONE) {
+ ret = validate_enc_op(ops_deq, burst_sz, ref_op);
+ TEST_ASSERT_SUCCESS(ret, "Validation failed!");
+ }
+
+ rte_bbdev_enc_op_free_bulk(ops_enq, deq);
+ dequeued += deq;
+ }
+
+ return i;
+}
+
+static int
+latency_test_ldpc_enc(struct rte_mempool *mempool,
+ struct test_buffers *bufs, struct rte_bbdev_enc_op *ref_op,
+ uint16_t dev_id, uint16_t queue_id,
+ const uint16_t num_to_process, uint16_t burst_sz,
+ uint64_t *total_time, uint64_t *min_time, uint64_t *max_time)
+{
+ int ret = TEST_SUCCESS;
+ uint16_t i, j, dequeued;
+ struct rte_bbdev_enc_op *ops_enq[MAX_BURST], *ops_deq[MAX_BURST];
+ uint64_t start_time = 0, last_time = 0;
+
+ for (i = 0, dequeued = 0; dequeued < num_to_process; ++i) {
+ uint16_t enq = 0, deq = 0;
+ bool first_time = true;
+ last_time = 0;
+
+ if (unlikely(num_to_process - dequeued < burst_sz))
+ burst_sz = num_to_process - dequeued;
+
+ ret = rte_bbdev_enc_op_alloc_bulk(mempool, ops_enq, burst_sz);
+ TEST_ASSERT_SUCCESS(ret,
+ "rte_bbdev_enc_op_alloc_bulk() failed");
+ if (test_vector.op_type != RTE_BBDEV_OP_NONE)
+ copy_reference_ldpc_enc_op(ops_enq, burst_sz, dequeued,
+ bufs->inputs,
+ bufs->hard_outputs,
+ ref_op);
+
+ /* Set counter to validate the ordering */
+ for (j = 0; j < burst_sz; ++j)
+ ops_enq[j]->opaque_data = (void *)(uintptr_t)j;
+
+ start_time = rte_rdtsc_precise();
+
+ enq = rte_bbdev_enqueue_ldpc_enc_ops(dev_id, queue_id,
+ &ops_enq[enq], burst_sz);
+ TEST_ASSERT(enq == burst_sz,
+ "Error enqueueing burst, expected %u, got %u",
+ burst_sz, enq);
+
+ /* Dequeue */
+ do {
+ deq += rte_bbdev_dequeue_ldpc_enc_ops(dev_id, queue_id,
+ &ops_deq[deq], burst_sz - deq);
+ if (likely(first_time && (deq > 0))) {
+ last_time += rte_rdtsc_precise() - start_time;
+ first_time = false;
+ }
+ } while (unlikely(burst_sz != deq));
+
+ *max_time = RTE_MAX(*max_time, last_time);
+ *min_time = RTE_MIN(*min_time, last_time);
+ *total_time += last_time;
+
+ if (test_vector.op_type != RTE_BBDEV_OP_NONE) {
+ ret = validate_enc_op(ops_deq, burst_sz, ref_op);
+ TEST_ASSERT_SUCCESS(ret, "Validation failed!");
+ }
+
+ rte_bbdev_enc_op_free_bulk(ops_enq, deq);
+ dequeued += deq;
+ }
+
+ return i;
+}
+
+static int
+latency_test(struct active_device *ad,
+ struct test_op_params *op_params)
+{
+ int iter;
+ uint16_t burst_sz = op_params->burst_sz;
+ const uint16_t num_to_process = op_params->num_to_process;
+ const enum rte_bbdev_op_type op_type = test_vector.op_type;
+ const uint16_t queue_id = ad->queue_ids[0];
+ struct test_buffers *bufs = NULL;
+ struct rte_bbdev_info info;
+ uint64_t total_time, min_time, max_time;
+ const char *op_type_str;
+
+ total_time = max_time = 0;
+ min_time = UINT64_MAX;
+
+ TEST_ASSERT_SUCCESS((burst_sz > MAX_BURST),
+ "BURST_SIZE should be <= %u", MAX_BURST);
+
+ rte_bbdev_info_get(ad->dev_id, &info);
+ bufs = &op_params->q_bufs[GET_SOCKET(info.socket_id)][queue_id];
+
+ op_type_str = rte_bbdev_op_type_str(op_type);
+ TEST_ASSERT_NOT_NULL(op_type_str, "Invalid op type: %u", op_type);
+
+ printf("+ ------------------------------------------------------- +\n");
+ printf("== test: validation/latency\ndev: %s, burst size: %u, num ops: %u, op type: %s\n",
+ info.dev_name, burst_sz, num_to_process, op_type_str);
+
+ if (op_type == RTE_BBDEV_OP_TURBO_DEC)
+ iter = latency_test_dec(op_params->mp, bufs,
+ op_params->ref_dec_op, op_params->vector_mask,
+ ad->dev_id, queue_id, num_to_process,
+ burst_sz, &total_time, &min_time, &max_time);
+ else if (op_type == RTE_BBDEV_OP_TURBO_ENC)
+ iter = latency_test_enc(op_params->mp, bufs,
+ op_params->ref_enc_op, ad->dev_id, queue_id,
+ num_to_process, burst_sz, &total_time,
+ &min_time, &max_time);
+ else if (op_type == RTE_BBDEV_OP_LDPC_ENC)
+ iter = latency_test_ldpc_enc(op_params->mp, bufs,
+ op_params->ref_enc_op, ad->dev_id, queue_id,
+ num_to_process, burst_sz, &total_time,
+ &min_time, &max_time);
+ else if (op_type == RTE_BBDEV_OP_LDPC_DEC)
+ iter = latency_test_ldpc_dec(op_params->mp, bufs,
+ op_params->ref_dec_op, op_params->vector_mask,
+ ad->dev_id, queue_id, num_to_process,
+ burst_sz, &total_time, &min_time, &max_time);
+ else
+ iter = latency_test_enc(op_params->mp, bufs,
+ op_params->ref_enc_op,
+ ad->dev_id, queue_id,
+ num_to_process, burst_sz, &total_time,
+ &min_time, &max_time);
+
+ if (iter <= 0)
+ return TEST_FAILED;
+
+ printf("Operation latency:\n"
+ "\tavg: %lg cycles, %lg us\n"
+ "\tmin: %lg cycles, %lg us\n"
+ "\tmax: %lg cycles, %lg us\n",
+ (double)total_time / (double)iter,
+ (double)(total_time * 1000000) / (double)iter /
+ (double)rte_get_tsc_hz(), (double)min_time,
+ (double)(min_time * 1000000) / (double)rte_get_tsc_hz(),
+ (double)max_time, (double)(max_time * 1000000) /
+ (double)rte_get_tsc_hz());
+
+ return TEST_SUCCESS;
+}
+
+#ifdef RTE_BBDEV_OFFLOAD_COST
+static int
+get_bbdev_queue_stats(uint16_t dev_id, uint16_t queue_id,
+ struct rte_bbdev_stats *stats)
+{
+ struct rte_bbdev *dev = &rte_bbdev_devices[dev_id];
+ struct rte_bbdev_stats *q_stats;
+
+ if (queue_id >= dev->data->num_queues)
+ return -1;
+
+ q_stats = &dev->data->queues[queue_id].queue_stats;
+
+ stats->enqueued_count = q_stats->enqueued_count;
+ stats->dequeued_count = q_stats->dequeued_count;
+ stats->enqueue_err_count = q_stats->enqueue_err_count;
+ stats->dequeue_err_count = q_stats->dequeue_err_count;
+ stats->acc_offload_cycles = q_stats->acc_offload_cycles;
+
+ return 0;
+}
+
+static int
+offload_latency_test_dec(struct rte_mempool *mempool, struct test_buffers *bufs,
+ struct rte_bbdev_dec_op *ref_op, uint16_t dev_id,
+ uint16_t queue_id, const uint16_t num_to_process,
+ uint16_t burst_sz, struct test_time_stats *time_st)
+{
+ int i, dequeued, ret;
+ struct rte_bbdev_dec_op *ops_enq[MAX_BURST], *ops_deq[MAX_BURST];
+ uint64_t enq_start_time, deq_start_time;
+ uint64_t enq_sw_last_time, deq_last_time;
+ struct rte_bbdev_stats stats;
+
+ for (i = 0, dequeued = 0; dequeued < num_to_process; ++i) {
+ uint16_t enq = 0, deq = 0;
+
+ if (unlikely(num_to_process - dequeued < burst_sz))
+ burst_sz = num_to_process - dequeued;
+
+ rte_bbdev_dec_op_alloc_bulk(mempool, ops_enq, burst_sz);
+ if (test_vector.op_type != RTE_BBDEV_OP_NONE)
+ copy_reference_dec_op(ops_enq, burst_sz, dequeued,
+ bufs->inputs,
+ bufs->hard_outputs,
+ bufs->soft_outputs,
+ ref_op);
+
+ /* Start time meas for enqueue function offload latency */
+ enq_start_time = rte_rdtsc_precise();
+ do {
+ enq += rte_bbdev_enqueue_dec_ops(dev_id, queue_id,
+ &ops_enq[enq], burst_sz - enq);
+ } while (unlikely(burst_sz != enq));
+
+ ret = get_bbdev_queue_stats(dev_id, queue_id, &stats);
+ TEST_ASSERT_SUCCESS(ret,
+ "Failed to get stats for queue (%u) of device (%u)",
+ queue_id, dev_id);
+
+ enq_sw_last_time = rte_rdtsc_precise() - enq_start_time -
+ stats.acc_offload_cycles;
+ time_st->enq_sw_max_time = RTE_MAX(time_st->enq_sw_max_time,
+ enq_sw_last_time);
+ time_st->enq_sw_min_time = RTE_MIN(time_st->enq_sw_min_time,
+ enq_sw_last_time);
+ time_st->enq_sw_total_time += enq_sw_last_time;
+
+ time_st->enq_acc_max_time = RTE_MAX(time_st->enq_acc_max_time,
+ stats.acc_offload_cycles);
+ time_st->enq_acc_min_time = RTE_MIN(time_st->enq_acc_min_time,
+ stats.acc_offload_cycles);
+ time_st->enq_acc_total_time += stats.acc_offload_cycles;
+
+ /* give time for device to process ops */
+ rte_delay_us(200);
+
+ /* Start time meas for dequeue function offload latency */
+ deq_start_time = rte_rdtsc_precise();
+ /* Dequeue one operation */
+ do {
+ deq += rte_bbdev_dequeue_dec_ops(dev_id, queue_id,
+ &ops_deq[deq], 1);
+ } while (unlikely(deq != 1));
+
+ deq_last_time = rte_rdtsc_precise() - deq_start_time;
+ time_st->deq_max_time = RTE_MAX(time_st->deq_max_time,
+ deq_last_time);
+ time_st->deq_min_time = RTE_MIN(time_st->deq_min_time,
+ deq_last_time);
+ time_st->deq_total_time += deq_last_time;
+
+ /* Dequeue remaining operations if needed*/
+ while (burst_sz != deq)
+ deq += rte_bbdev_dequeue_dec_ops(dev_id, queue_id,
+ &ops_deq[deq], burst_sz - deq);
+
+ rte_bbdev_dec_op_free_bulk(ops_enq, deq);
+ dequeued += deq;
+ }
+
+ return i;
+}
+
+static int
+offload_latency_test_ldpc_dec(struct rte_mempool *mempool,
+ struct test_buffers *bufs,
+ struct rte_bbdev_dec_op *ref_op, uint16_t dev_id,
+ uint16_t queue_id, const uint16_t num_to_process,
+ uint16_t burst_sz, struct test_time_stats *time_st)
+{
+ int i, dequeued, ret;
+ struct rte_bbdev_dec_op *ops_enq[MAX_BURST], *ops_deq[MAX_BURST];
+ uint64_t enq_start_time, deq_start_time;
+ uint64_t enq_sw_last_time, deq_last_time;
+ struct rte_bbdev_stats stats;
+ bool extDdr = ldpc_cap_flags &
+ RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_OUT_ENABLE;
+
+ for (i = 0, dequeued = 0; dequeued < num_to_process; ++i) {
+ uint16_t enq = 0, deq = 0;
+
+ if (unlikely(num_to_process - dequeued < burst_sz))
+ burst_sz = num_to_process - dequeued;
+
+ rte_bbdev_dec_op_alloc_bulk(mempool, ops_enq, burst_sz);
+ if (test_vector.op_type != RTE_BBDEV_OP_NONE)
+ copy_reference_ldpc_dec_op(ops_enq, burst_sz, dequeued,
+ bufs->inputs,
+ bufs->hard_outputs,
+ bufs->soft_outputs,
+ bufs->harq_inputs,
+ bufs->harq_outputs,
+ ref_op);
+
+ if (extDdr)
+ preload_harq_ddr(dev_id, queue_id, ops_enq,
+ burst_sz, true);
+
+ /* Start time meas for enqueue function offload latency */
+ enq_start_time = rte_rdtsc_precise();
+ do {
+ enq += rte_bbdev_enqueue_ldpc_dec_ops(dev_id, queue_id,
+ &ops_enq[enq], burst_sz - enq);
+ } while (unlikely(burst_sz != enq));
+
+ enq_sw_last_time = rte_rdtsc_precise() - enq_start_time;
+ ret = get_bbdev_queue_stats(dev_id, queue_id, &stats);
+ TEST_ASSERT_SUCCESS(ret,
+ "Failed to get stats for queue (%u) of device (%u)",
+ queue_id, dev_id);
+
+ enq_sw_last_time -= stats.acc_offload_cycles;
+ time_st->enq_sw_max_time = RTE_MAX(time_st->enq_sw_max_time,
+ enq_sw_last_time);
+ time_st->enq_sw_min_time = RTE_MIN(time_st->enq_sw_min_time,
+ enq_sw_last_time);
+ time_st->enq_sw_total_time += enq_sw_last_time;
+
+ time_st->enq_acc_max_time = RTE_MAX(time_st->enq_acc_max_time,
+ stats.acc_offload_cycles);
+ time_st->enq_acc_min_time = RTE_MIN(time_st->enq_acc_min_time,
+ stats.acc_offload_cycles);
+ time_st->enq_acc_total_time += stats.acc_offload_cycles;
+
+ /* give time for device to process ops */
+ rte_delay_us(200);
+
+ /* Start time meas for dequeue function offload latency */
+ deq_start_time = rte_rdtsc_precise();
+ /* Dequeue one operation */
+ do {
+ deq += rte_bbdev_dequeue_ldpc_dec_ops(dev_id, queue_id,
+ &ops_deq[deq], 1);
+ } while (unlikely(deq != 1));
+
+ deq_last_time = rte_rdtsc_precise() - deq_start_time;
+ time_st->deq_max_time = RTE_MAX(time_st->deq_max_time,
+ deq_last_time);
+ time_st->deq_min_time = RTE_MIN(time_st->deq_min_time,
+ deq_last_time);
+ time_st->deq_total_time += deq_last_time;
+
+ /* Dequeue remaining operations if needed*/
+ while (burst_sz != deq)
+ deq += rte_bbdev_dequeue_ldpc_dec_ops(dev_id, queue_id,
+ &ops_deq[deq], burst_sz - deq);
+
+ if (extDdr) {
+ /* Read loopback is not thread safe */
+ retrieve_harq_ddr(dev_id, queue_id, ops_enq, burst_sz);
+ }
+
+ rte_bbdev_dec_op_free_bulk(ops_enq, deq);
+ dequeued += deq;
+ }
+
+ return i;
+}
+
+static int
+offload_latency_test_enc(struct rte_mempool *mempool, struct test_buffers *bufs,
+ struct rte_bbdev_enc_op *ref_op, uint16_t dev_id,
+ uint16_t queue_id, const uint16_t num_to_process,
+ uint16_t burst_sz, struct test_time_stats *time_st)
+{
+ int i, dequeued, ret;
+ struct rte_bbdev_enc_op *ops_enq[MAX_BURST], *ops_deq[MAX_BURST];
+ uint64_t enq_start_time, deq_start_time;
+ uint64_t enq_sw_last_time, deq_last_time;
+ struct rte_bbdev_stats stats;
+
+ for (i = 0, dequeued = 0; dequeued < num_to_process; ++i) {
+ uint16_t enq = 0, deq = 0;
+
+ if (unlikely(num_to_process - dequeued < burst_sz))
+ burst_sz = num_to_process - dequeued;
+
+ ret = rte_bbdev_enc_op_alloc_bulk(mempool, ops_enq, burst_sz);
+ TEST_ASSERT_SUCCESS(ret,
+ "rte_bbdev_enc_op_alloc_bulk() failed");
+ if (test_vector.op_type != RTE_BBDEV_OP_NONE)
+ copy_reference_enc_op(ops_enq, burst_sz, dequeued,
+ bufs->inputs,
+ bufs->hard_outputs,
+ ref_op);
+
+ /* Start time meas for enqueue function offload latency */
+ enq_start_time = rte_rdtsc_precise();
+ do {
+ enq += rte_bbdev_enqueue_enc_ops(dev_id, queue_id,
+ &ops_enq[enq], burst_sz - enq);
+ } while (unlikely(burst_sz != enq));
+
+ enq_sw_last_time = rte_rdtsc_precise() - enq_start_time;
+
+ ret = get_bbdev_queue_stats(dev_id, queue_id, &stats);
+ TEST_ASSERT_SUCCESS(ret,
+ "Failed to get stats for queue (%u) of device (%u)",
+ queue_id, dev_id);
+ enq_sw_last_time -= stats.acc_offload_cycles;
+ time_st->enq_sw_max_time = RTE_MAX(time_st->enq_sw_max_time,
+ enq_sw_last_time);
+ time_st->enq_sw_min_time = RTE_MIN(time_st->enq_sw_min_time,
+ enq_sw_last_time);
+ time_st->enq_sw_total_time += enq_sw_last_time;
+
+ time_st->enq_acc_max_time = RTE_MAX(time_st->enq_acc_max_time,
+ stats.acc_offload_cycles);
+ time_st->enq_acc_min_time = RTE_MIN(time_st->enq_acc_min_time,
+ stats.acc_offload_cycles);
+ time_st->enq_acc_total_time += stats.acc_offload_cycles;
+
+ /* give time for device to process ops */
+ rte_delay_us(200);
+
+ /* Start time meas for dequeue function offload latency */
+ deq_start_time = rte_rdtsc_precise();
+ /* Dequeue one operation */
+ do {
+ deq += rte_bbdev_dequeue_enc_ops(dev_id, queue_id,
+ &ops_deq[deq], 1);
+ } while (unlikely(deq != 1));
+
+ deq_last_time = rte_rdtsc_precise() - deq_start_time;
+ time_st->deq_max_time = RTE_MAX(time_st->deq_max_time,
+ deq_last_time);
+ time_st->deq_min_time = RTE_MIN(time_st->deq_min_time,
+ deq_last_time);
+ time_st->deq_total_time += deq_last_time;
+
+ while (burst_sz != deq)
+ deq += rte_bbdev_dequeue_enc_ops(dev_id, queue_id,
+ &ops_deq[deq], burst_sz - deq);
+
+ rte_bbdev_enc_op_free_bulk(ops_enq, deq);
+ dequeued += deq;
+ }
+
+ return i;
+}
+
+static int
+offload_latency_test_ldpc_enc(struct rte_mempool *mempool,
+ struct test_buffers *bufs,
+ struct rte_bbdev_enc_op *ref_op, uint16_t dev_id,
+ uint16_t queue_id, const uint16_t num_to_process,
+ uint16_t burst_sz, struct test_time_stats *time_st)
+{
+ int i, dequeued, ret;
+ struct rte_bbdev_enc_op *ops_enq[MAX_BURST], *ops_deq[MAX_BURST];
+ uint64_t enq_start_time, deq_start_time;
+ uint64_t enq_sw_last_time, deq_last_time;
+ struct rte_bbdev_stats stats;
+
+ for (i = 0, dequeued = 0; dequeued < num_to_process; ++i) {
+ uint16_t enq = 0, deq = 0;
+
+ if (unlikely(num_to_process - dequeued < burst_sz))
+ burst_sz = num_to_process - dequeued;
+
+ ret = rte_bbdev_enc_op_alloc_bulk(mempool, ops_enq, burst_sz);
+ TEST_ASSERT_SUCCESS(ret,
+ "rte_bbdev_enc_op_alloc_bulk() failed");
+ if (test_vector.op_type != RTE_BBDEV_OP_NONE)
+ copy_reference_ldpc_enc_op(ops_enq, burst_sz, dequeued,
+ bufs->inputs,
+ bufs->hard_outputs,
+ ref_op);
+
+ /* Start time meas for enqueue function offload latency */
+ enq_start_time = rte_rdtsc_precise();
+ do {
+ enq += rte_bbdev_enqueue_ldpc_enc_ops(dev_id, queue_id,
+ &ops_enq[enq], burst_sz - enq);
+ } while (unlikely(burst_sz != enq));
+
+ enq_sw_last_time = rte_rdtsc_precise() - enq_start_time;
+ ret = get_bbdev_queue_stats(dev_id, queue_id, &stats);
+ TEST_ASSERT_SUCCESS(ret,
+ "Failed to get stats for queue (%u) of device (%u)",
+ queue_id, dev_id);
+
+ enq_sw_last_time -= stats.acc_offload_cycles;
+ time_st->enq_sw_max_time = RTE_MAX(time_st->enq_sw_max_time,
+ enq_sw_last_time);
+ time_st->enq_sw_min_time = RTE_MIN(time_st->enq_sw_min_time,
+ enq_sw_last_time);
+ time_st->enq_sw_total_time += enq_sw_last_time;
+
+ time_st->enq_acc_max_time = RTE_MAX(time_st->enq_acc_max_time,
+ stats.acc_offload_cycles);
+ time_st->enq_acc_min_time = RTE_MIN(time_st->enq_acc_min_time,
+ stats.acc_offload_cycles);
+ time_st->enq_acc_total_time += stats.acc_offload_cycles;
+
+ /* give time for device to process ops */
+ rte_delay_us(200);
+
+ /* Start time meas for dequeue function offload latency */
+ deq_start_time = rte_rdtsc_precise();
+ /* Dequeue one operation */
+ do {
+ deq += rte_bbdev_dequeue_ldpc_enc_ops(dev_id, queue_id,
+ &ops_deq[deq], 1);
+ } while (unlikely(deq != 1));
+
+ deq_last_time = rte_rdtsc_precise() - deq_start_time;
+ time_st->deq_max_time = RTE_MAX(time_st->deq_max_time,
+ deq_last_time);
+ time_st->deq_min_time = RTE_MIN(time_st->deq_min_time,
+ deq_last_time);
+ time_st->deq_total_time += deq_last_time;
+
+ while (burst_sz != deq)
+ deq += rte_bbdev_dequeue_ldpc_enc_ops(dev_id, queue_id,
+ &ops_deq[deq], burst_sz - deq);
+
+ rte_bbdev_enc_op_free_bulk(ops_enq, deq);
+ dequeued += deq;
+ }
+
+ return i;
+}
+#endif
+
+static int
+offload_cost_test(struct active_device *ad,
+ struct test_op_params *op_params)
+{
+#ifndef RTE_BBDEV_OFFLOAD_COST
+ RTE_SET_USED(ad);
+ RTE_SET_USED(op_params);
+ printf("Offload latency test is disabled.\n");
+ printf("Set RTE_BBDEV_OFFLOAD_COST to 'y' to turn the test on.\n");
+ return TEST_SKIPPED;
+#else
+ int iter;
+ uint16_t burst_sz = op_params->burst_sz;
+ const uint16_t num_to_process = op_params->num_to_process;
+ const enum rte_bbdev_op_type op_type = test_vector.op_type;
+ const uint16_t queue_id = ad->queue_ids[0];
+ struct test_buffers *bufs = NULL;
+ struct rte_bbdev_info info;
+ const char *op_type_str;
+ struct test_time_stats time_st;
+
+ memset(&time_st, 0, sizeof(struct test_time_stats));
+ time_st.enq_sw_min_time = UINT64_MAX;
+ time_st.enq_acc_min_time = UINT64_MAX;
+ time_st.deq_min_time = UINT64_MAX;
+
+ TEST_ASSERT_SUCCESS((burst_sz > MAX_BURST),
+ "BURST_SIZE should be <= %u", MAX_BURST);
+
+ rte_bbdev_info_get(ad->dev_id, &info);
+ bufs = &op_params->q_bufs[GET_SOCKET(info.socket_id)][queue_id];
+
+ op_type_str = rte_bbdev_op_type_str(op_type);
+ TEST_ASSERT_NOT_NULL(op_type_str, "Invalid op type: %u", op_type);
+
+ printf("+ ------------------------------------------------------- +\n");
+ printf("== test: offload latency test\ndev: %s, burst size: %u, num ops: %u, op type: %s\n",
+ info.dev_name, burst_sz, num_to_process, op_type_str);
+
+ if (op_type == RTE_BBDEV_OP_TURBO_DEC)
+ iter = offload_latency_test_dec(op_params->mp, bufs,
+ op_params->ref_dec_op, ad->dev_id, queue_id,
+ num_to_process, burst_sz, &time_st);
+ else if (op_type == RTE_BBDEV_OP_TURBO_ENC)
+ iter = offload_latency_test_enc(op_params->mp, bufs,
+ op_params->ref_enc_op, ad->dev_id, queue_id,
+ num_to_process, burst_sz, &time_st);
+ else if (op_type == RTE_BBDEV_OP_LDPC_ENC)
+ iter = offload_latency_test_ldpc_enc(op_params->mp, bufs,
+ op_params->ref_enc_op, ad->dev_id, queue_id,
+ num_to_process, burst_sz, &time_st);
+ else if (op_type == RTE_BBDEV_OP_LDPC_DEC)
+ iter = offload_latency_test_ldpc_dec(op_params->mp, bufs,
+ op_params->ref_dec_op, ad->dev_id, queue_id,
+ num_to_process, burst_sz, &time_st);
+ else
+ iter = offload_latency_test_enc(op_params->mp, bufs,
+ op_params->ref_enc_op, ad->dev_id, queue_id,
+ num_to_process, burst_sz, &time_st);
+
+ if (iter <= 0)
+ return TEST_FAILED;
+
+ printf("Enqueue driver offload cost latency:\n"
+ "\tavg: %lg cycles, %lg us\n"
+ "\tmin: %lg cycles, %lg us\n"
+ "\tmax: %lg cycles, %lg us\n"
+ "Enqueue accelerator offload cost latency:\n"
+ "\tavg: %lg cycles, %lg us\n"
+ "\tmin: %lg cycles, %lg us\n"
+ "\tmax: %lg cycles, %lg us\n",
+ (double)time_st.enq_sw_total_time / (double)iter,
+ (double)(time_st.enq_sw_total_time * 1000000) /
+ (double)iter / (double)rte_get_tsc_hz(),
+ (double)time_st.enq_sw_min_time,
+ (double)(time_st.enq_sw_min_time * 1000000) /
+ rte_get_tsc_hz(), (double)time_st.enq_sw_max_time,
+ (double)(time_st.enq_sw_max_time * 1000000) /
+ rte_get_tsc_hz(), (double)time_st.enq_acc_total_time /
+ (double)iter,
+ (double)(time_st.enq_acc_total_time * 1000000) /
+ (double)iter / (double)rte_get_tsc_hz(),
+ (double)time_st.enq_acc_min_time,
+ (double)(time_st.enq_acc_min_time * 1000000) /
+ rte_get_tsc_hz(), (double)time_st.enq_acc_max_time,
+ (double)(time_st.enq_acc_max_time * 1000000) /
+ rte_get_tsc_hz());
+
+ printf("Dequeue offload cost latency - one op:\n"
+ "\tavg: %lg cycles, %lg us\n"
+ "\tmin: %lg cycles, %lg us\n"
+ "\tmax: %lg cycles, %lg us\n",
+ (double)time_st.deq_total_time / (double)iter,
+ (double)(time_st.deq_total_time * 1000000) /
+ (double)iter / (double)rte_get_tsc_hz(),
+ (double)time_st.deq_min_time,
+ (double)(time_st.deq_min_time * 1000000) /
+ rte_get_tsc_hz(), (double)time_st.deq_max_time,
+ (double)(time_st.deq_max_time * 1000000) /
+ rte_get_tsc_hz());
+
+ return TEST_SUCCESS;
+#endif
+}
+
+#ifdef RTE_BBDEV_OFFLOAD_COST
+static int
+offload_latency_empty_q_test_dec(uint16_t dev_id, uint16_t queue_id,
+ const uint16_t num_to_process, uint16_t burst_sz,
+ uint64_t *deq_total_time, uint64_t *deq_min_time,
+ uint64_t *deq_max_time, const enum rte_bbdev_op_type op_type)
+{
+ int i, deq_total;
+ struct rte_bbdev_dec_op *ops[MAX_BURST];
+ uint64_t deq_start_time, deq_last_time;
+
+ /* Test deq offload latency from an empty queue */
+
+ for (i = 0, deq_total = 0; deq_total < num_to_process;
+ ++i, deq_total += burst_sz) {
+ deq_start_time = rte_rdtsc_precise();
+
+ if (unlikely(num_to_process - deq_total < burst_sz))
+ burst_sz = num_to_process - deq_total;
+ if (op_type == RTE_BBDEV_OP_LDPC_DEC)
+ rte_bbdev_dequeue_ldpc_dec_ops(dev_id, queue_id, ops,
+ burst_sz);
+ else
+ rte_bbdev_dequeue_dec_ops(dev_id, queue_id, ops,
+ burst_sz);
+
+ deq_last_time = rte_rdtsc_precise() - deq_start_time;
+ *deq_max_time = RTE_MAX(*deq_max_time, deq_last_time);
+ *deq_min_time = RTE_MIN(*deq_min_time, deq_last_time);
+ *deq_total_time += deq_last_time;
+ }
+
+ return i;
+}
+
+static int
+offload_latency_empty_q_test_enc(uint16_t dev_id, uint16_t queue_id,
+ const uint16_t num_to_process, uint16_t burst_sz,
+ uint64_t *deq_total_time, uint64_t *deq_min_time,
+ uint64_t *deq_max_time, const enum rte_bbdev_op_type op_type)
+{
+ int i, deq_total;
+ struct rte_bbdev_enc_op *ops[MAX_BURST];
+ uint64_t deq_start_time, deq_last_time;
+
+ /* Test deq offload latency from an empty queue */
+ for (i = 0, deq_total = 0; deq_total < num_to_process;
+ ++i, deq_total += burst_sz) {
+ deq_start_time = rte_rdtsc_precise();
+
+ if (unlikely(num_to_process - deq_total < burst_sz))
+ burst_sz = num_to_process - deq_total;
+ if (op_type == RTE_BBDEV_OP_LDPC_ENC)
+ rte_bbdev_dequeue_ldpc_enc_ops(dev_id, queue_id, ops,
+ burst_sz);
+ else
+ rte_bbdev_dequeue_enc_ops(dev_id, queue_id, ops,
+ burst_sz);
+
+ deq_last_time = rte_rdtsc_precise() - deq_start_time;
+ *deq_max_time = RTE_MAX(*deq_max_time, deq_last_time);
+ *deq_min_time = RTE_MIN(*deq_min_time, deq_last_time);
+ *deq_total_time += deq_last_time;
+ }
+
+ return i;
+}
+
+#endif
+
+static int
+offload_latency_empty_q_test(struct active_device *ad,
+ struct test_op_params *op_params)
+{
+#ifndef RTE_BBDEV_OFFLOAD_COST
+ RTE_SET_USED(ad);
+ RTE_SET_USED(op_params);
+ printf("Offload latency empty dequeue test is disabled.\n");
+ printf("Set RTE_BBDEV_OFFLOAD_COST to 'y' to turn the test on.\n");
+ return TEST_SKIPPED;
+#else
+ int iter;
+ uint64_t deq_total_time, deq_min_time, deq_max_time;
+ uint16_t burst_sz = op_params->burst_sz;
+ const uint16_t num_to_process = op_params->num_to_process;
+ const enum rte_bbdev_op_type op_type = test_vector.op_type;
+ const uint16_t queue_id = ad->queue_ids[0];
+ struct rte_bbdev_info info;
+ const char *op_type_str;
+
+ deq_total_time = deq_max_time = 0;
+ deq_min_time = UINT64_MAX;
+
+ TEST_ASSERT_SUCCESS((burst_sz > MAX_BURST),
+ "BURST_SIZE should be <= %u", MAX_BURST);
+
+ rte_bbdev_info_get(ad->dev_id, &info);
+
+ op_type_str = rte_bbdev_op_type_str(op_type);
+ TEST_ASSERT_NOT_NULL(op_type_str, "Invalid op type: %u", op_type);
+
+ printf("+ ------------------------------------------------------- +\n");
+ printf("== test: offload latency empty dequeue\ndev: %s, burst size: %u, num ops: %u, op type: %s\n",
+ info.dev_name, burst_sz, num_to_process, op_type_str);
+
+ if (op_type == RTE_BBDEV_OP_TURBO_DEC ||
+ op_type == RTE_BBDEV_OP_LDPC_DEC)
+ iter = offload_latency_empty_q_test_dec(ad->dev_id, queue_id,
+ num_to_process, burst_sz, &deq_total_time,
+ &deq_min_time, &deq_max_time, op_type);
+ else
+ iter = offload_latency_empty_q_test_enc(ad->dev_id, queue_id,
+ num_to_process, burst_sz, &deq_total_time,
+ &deq_min_time, &deq_max_time, op_type);
+
+ if (iter <= 0)
+ return TEST_FAILED;
+
+ printf("Empty dequeue offload:\n"
+ "\tavg: %lg cycles, %lg us\n"
+ "\tmin: %lg cycles, %lg us\n"
+ "\tmax: %lg cycles, %lg us\n",
+ (double)deq_total_time / (double)iter,
+ (double)(deq_total_time * 1000000) / (double)iter /
+ (double)rte_get_tsc_hz(), (double)deq_min_time,
+ (double)(deq_min_time * 1000000) / rte_get_tsc_hz(),
+ (double)deq_max_time, (double)(deq_max_time * 1000000) /
+ rte_get_tsc_hz());
+
+ return TEST_SUCCESS;
+#endif
+}
+
+static int
+bler_tc(void)
+{
+ return run_test_case(bler_test);
+}
+
+static int
+throughput_tc(void)
+{
+ return run_test_case(throughput_test);
+}
+
+static int
+offload_cost_tc(void)
+{
+ return run_test_case(offload_cost_test);
+}
+
+static int
+offload_latency_empty_q_tc(void)
+{
+ return run_test_case(offload_latency_empty_q_test);
+}
+
+static int
+latency_tc(void)
+{
+ return run_test_case(latency_test);
+}
+
+static int
+interrupt_tc(void)
+{
+ return run_test_case(throughput_test);
+}
+
+static struct unit_test_suite bbdev_bler_testsuite = {
+ .suite_name = "BBdev BLER Tests",
+ .setup = testsuite_setup,
+ .teardown = testsuite_teardown,
+ .unit_test_cases = {
+ TEST_CASE_ST(ut_setup, ut_teardown, bler_tc),
+ TEST_CASES_END() /**< NULL terminate unit test array */
+ }
+};
+
+static struct unit_test_suite bbdev_throughput_testsuite = {
+ .suite_name = "BBdev Throughput Tests",
+ .setup = testsuite_setup,
+ .teardown = testsuite_teardown,
+ .unit_test_cases = {
+ TEST_CASE_ST(ut_setup, ut_teardown, throughput_tc),
+ TEST_CASES_END() /**< NULL terminate unit test array */
+ }
+};
+
+static struct unit_test_suite bbdev_validation_testsuite = {
+ .suite_name = "BBdev Validation Tests",
+ .setup = testsuite_setup,
+ .teardown = testsuite_teardown,
+ .unit_test_cases = {
+ TEST_CASE_ST(ut_setup, ut_teardown, latency_tc),
+ TEST_CASES_END() /**< NULL terminate unit test array */
+ }
+};
+
+static struct unit_test_suite bbdev_latency_testsuite = {
+ .suite_name = "BBdev Latency Tests",
+ .setup = testsuite_setup,
+ .teardown = testsuite_teardown,
+ .unit_test_cases = {
+ TEST_CASE_ST(ut_setup, ut_teardown, latency_tc),
+ TEST_CASES_END() /**< NULL terminate unit test array */
+ }
+};
+
+static struct unit_test_suite bbdev_offload_cost_testsuite = {
+ .suite_name = "BBdev Offload Cost Tests",
+ .setup = testsuite_setup,
+ .teardown = testsuite_teardown,
+ .unit_test_cases = {
+ TEST_CASE_ST(ut_setup, ut_teardown, offload_cost_tc),
+ TEST_CASE_ST(ut_setup, ut_teardown, offload_latency_empty_q_tc),
+ TEST_CASES_END() /**< NULL terminate unit test array */
+ }
+};
+
+static struct unit_test_suite bbdev_interrupt_testsuite = {
+ .suite_name = "BBdev Interrupt Tests",
+ .setup = interrupt_testsuite_setup,
+ .teardown = testsuite_teardown,
+ .unit_test_cases = {
+ TEST_CASE_ST(ut_setup, ut_teardown, interrupt_tc),
+ TEST_CASES_END() /**< NULL terminate unit test array */
+ }
+};
+
+REGISTER_TEST_COMMAND(bler, bbdev_bler_testsuite);
+REGISTER_TEST_COMMAND(throughput, bbdev_throughput_testsuite);
+REGISTER_TEST_COMMAND(validation, bbdev_validation_testsuite);
+REGISTER_TEST_COMMAND(latency, bbdev_latency_testsuite);
+REGISTER_TEST_COMMAND(offload, bbdev_offload_cost_testsuite);
+REGISTER_TEST_COMMAND(interrupt, bbdev_interrupt_testsuite);
diff --git a/src/spdk/dpdk/app/test-bbdev/test_bbdev_vector.c b/src/spdk/dpdk/app/test-bbdev/test_bbdev_vector.c
new file mode 100644
index 000000000..50d1da00f
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_bbdev_vector.c
@@ -0,0 +1,1434 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2017 Intel Corporation
+ */
+
+#ifdef RTE_EXEC_ENV_FREEBSD
+ #define _WITH_GETLINE
+#endif
+#include <stdio.h>
+#include <stdbool.h>
+#include <rte_malloc.h>
+
+#include "test_bbdev_vector.h"
+
+#define VALUE_DELIMITER ","
+#define ENTRY_DELIMITER "="
+
+const char *op_data_prefixes[] = {
+ "input",
+ "soft_output",
+ "hard_output",
+ "harq_input",
+ "harq_output",
+};
+
+/* trim leading and trailing spaces */
+static void
+trim_space(char *str)
+{
+ char *start, *end;
+
+ for (start = str; *start; start++) {
+ if (!isspace((unsigned char) start[0]))
+ break;
+ }
+
+ for (end = start + strlen(start); end > start + 1; end--) {
+ if (!isspace((unsigned char) end[-1]))
+ break;
+ }
+
+ *end = 0;
+
+ /* Shift from "start" to the beginning of the string */
+ if (start > str)
+ memmove(str, start, (end - start) + 1);
+}
+
+static bool
+starts_with(const char *str, const char *pre)
+{
+ return strncmp(pre, str, strlen(pre)) == 0;
+}
+
+/* tokenization test values separated by a comma */
+static int
+parse_values(char *tokens, uint32_t **data, uint32_t *data_length)
+{
+ uint32_t n_tokens = 0;
+ uint32_t data_size = 32;
+
+ uint32_t *values, *values_resized;
+ char *tok, *error = NULL;
+
+ tok = strtok(tokens, VALUE_DELIMITER);
+ if (tok == NULL)
+ return -1;
+
+ values = (uint32_t *)
+ rte_zmalloc(NULL, sizeof(uint32_t) * data_size, 0);
+ if (values == NULL)
+ return -1;
+
+ while (tok != NULL) {
+ values_resized = NULL;
+
+ if (n_tokens >= data_size) {
+ data_size *= 2;
+
+ values_resized = (uint32_t *) rte_realloc(values,
+ sizeof(uint32_t) * data_size, 0);
+ if (values_resized == NULL) {
+ rte_free(values);
+ return -1;
+ }
+ values = values_resized;
+ }
+
+ values[n_tokens] = (uint32_t) strtoul(tok, &error, 0);
+
+ if ((error == NULL) || (*error != '\0')) {
+ printf("Failed with convert '%s'\n", tok);
+ rte_free(values);
+ return -1;
+ }
+
+ *data_length = *data_length + (strlen(tok) - strlen("0x"))/2;
+
+ tok = strtok(NULL, VALUE_DELIMITER);
+ if (tok == NULL)
+ break;
+
+ n_tokens++;
+ }
+
+ values_resized = (uint32_t *) rte_realloc(values,
+ sizeof(uint32_t) * (n_tokens + 1), 0);
+
+ if (values_resized == NULL) {
+ rte_free(values);
+ return -1;
+ }
+
+ *data = values_resized;
+
+ return 0;
+}
+
+/* convert turbo decoder flag from string to unsigned long int*/
+static int
+op_decoder_flag_strtoul(char *token, uint32_t *op_flag_value)
+{
+ if (!strcmp(token, "RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE"))
+ *op_flag_value = RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE;
+ else if (!strcmp(token, "RTE_BBDEV_TURBO_CRC_TYPE_24B"))
+ *op_flag_value = RTE_BBDEV_TURBO_CRC_TYPE_24B;
+ else if (!strcmp(token, "RTE_BBDEV_TURBO_EQUALIZER"))
+ *op_flag_value = RTE_BBDEV_TURBO_EQUALIZER;
+ else if (!strcmp(token, "RTE_BBDEV_TURBO_SOFT_OUT_SATURATE"))
+ *op_flag_value = RTE_BBDEV_TURBO_SOFT_OUT_SATURATE;
+ else if (!strcmp(token, "RTE_BBDEV_TURBO_HALF_ITERATION_EVEN"))
+ *op_flag_value = RTE_BBDEV_TURBO_HALF_ITERATION_EVEN;
+ else if (!strcmp(token, "RTE_BBDEV_TURBO_CONTINUE_CRC_MATCH"))
+ *op_flag_value = RTE_BBDEV_TURBO_CONTINUE_CRC_MATCH;
+ else if (!strcmp(token, "RTE_BBDEV_TURBO_SOFT_OUTPUT"))
+ *op_flag_value = RTE_BBDEV_TURBO_SOFT_OUTPUT;
+ else if (!strcmp(token, "RTE_BBDEV_TURBO_EARLY_TERMINATION"))
+ *op_flag_value = RTE_BBDEV_TURBO_EARLY_TERMINATION;
+ else if (!strcmp(token, "RTE_BBDEV_TURBO_POS_LLR_1_BIT_IN"))
+ *op_flag_value = RTE_BBDEV_TURBO_POS_LLR_1_BIT_IN;
+ else if (!strcmp(token, "RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN"))
+ *op_flag_value = RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN;
+ else if (!strcmp(token, "RTE_BBDEV_TURBO_POS_LLR_1_BIT_SOFT_OUT"))
+ *op_flag_value = RTE_BBDEV_TURBO_POS_LLR_1_BIT_SOFT_OUT;
+ else if (!strcmp(token, "RTE_BBDEV_TURBO_NEG_LLR_1_BIT_SOFT_OUT"))
+ *op_flag_value = RTE_BBDEV_TURBO_NEG_LLR_1_BIT_SOFT_OUT;
+ else if (!strcmp(token, "RTE_BBDEV_TURBO_MAP_DEC"))
+ *op_flag_value = RTE_BBDEV_TURBO_MAP_DEC;
+ else if (!strcmp(token, "RTE_BBDEV_TURBO_DEC_SCATTER_GATHER"))
+ *op_flag_value = RTE_BBDEV_TURBO_DEC_SCATTER_GATHER;
+ else if (!strcmp(token, "RTE_BBDEV_TURBO_DEC_TB_CRC_24B_KEEP"))
+ *op_flag_value = RTE_BBDEV_TURBO_DEC_TB_CRC_24B_KEEP;
+ else {
+ printf("The given value is not a turbo decoder flag\n");
+ return -1;
+ }
+
+ return 0;
+}
+
+/* convert LDPC flag from string to unsigned long int*/
+static int
+op_ldpc_decoder_flag_strtoul(char *token, uint32_t *op_flag_value)
+{
+ if (!strcmp(token, "RTE_BBDEV_LDPC_CRC_TYPE_24A_CHECK"))
+ *op_flag_value = RTE_BBDEV_LDPC_CRC_TYPE_24A_CHECK;
+ else if (!strcmp(token, "RTE_BBDEV_LDPC_CRC_TYPE_24B_CHECK"))
+ *op_flag_value = RTE_BBDEV_LDPC_CRC_TYPE_24B_CHECK;
+ else if (!strcmp(token, "RTE_BBDEV_LDPC_CRC_TYPE_24B_DROP"))
+ *op_flag_value = RTE_BBDEV_LDPC_CRC_TYPE_24B_DROP;
+ else if (!strcmp(token, "RTE_BBDEV_LDPC_DEINTERLEAVER_BYPASS"))
+ *op_flag_value = RTE_BBDEV_LDPC_DEINTERLEAVER_BYPASS;
+ else if (!strcmp(token, "RTE_BBDEV_LDPC_HQ_COMBINE_IN_ENABLE"))
+ *op_flag_value = RTE_BBDEV_LDPC_HQ_COMBINE_IN_ENABLE;
+ else if (!strcmp(token, "RTE_BBDEV_LDPC_HQ_COMBINE_OUT_ENABLE"))
+ *op_flag_value = RTE_BBDEV_LDPC_HQ_COMBINE_OUT_ENABLE;
+ else if (!strcmp(token, "RTE_BBDEV_LDPC_DECODE_BYPASS"))
+ *op_flag_value = RTE_BBDEV_LDPC_DECODE_BYPASS;
+ else if (!strcmp(token, "RTE_BBDEV_LDPC_SOFT_OUT_ENABLE"))
+ *op_flag_value = RTE_BBDEV_LDPC_SOFT_OUT_ENABLE;
+ else if (!strcmp(token, "RTE_BBDEV_LDPC_SOFT_OUT_RM_BYPASS"))
+ *op_flag_value = RTE_BBDEV_LDPC_SOFT_OUT_RM_BYPASS;
+ else if (!strcmp(token, "RTE_BBDEV_LDPC_SOFT_OUT_DEINTERLEAVER_BYPASS"))
+ *op_flag_value = RTE_BBDEV_LDPC_SOFT_OUT_DEINTERLEAVER_BYPASS;
+ else if (!strcmp(token, "RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE"))
+ *op_flag_value = RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE;
+ else if (!strcmp(token, "RTE_BBDEV_LDPC_DEC_INTERRUPTS"))
+ *op_flag_value = RTE_BBDEV_LDPC_DEC_INTERRUPTS;
+ else if (!strcmp(token, "RTE_BBDEV_LDPC_DEC_SCATTER_GATHER"))
+ *op_flag_value = RTE_BBDEV_LDPC_DEC_SCATTER_GATHER;
+ else if (!strcmp(token, "RTE_BBDEV_LDPC_HARQ_6BIT_COMPRESSION"))
+ *op_flag_value = RTE_BBDEV_LDPC_HARQ_6BIT_COMPRESSION;
+ else if (!strcmp(token, "RTE_BBDEV_LDPC_LLR_COMPRESSION"))
+ *op_flag_value = RTE_BBDEV_LDPC_LLR_COMPRESSION;
+ else if (!strcmp(token,
+ "RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_IN_ENABLE"))
+ *op_flag_value = RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_IN_ENABLE;
+ else if (!strcmp(token,
+ "RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_OUT_ENABLE"))
+ *op_flag_value = RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_OUT_ENABLE;
+ else if (!strcmp(token,
+ "RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_LOOPBACK"))
+ *op_flag_value = RTE_BBDEV_LDPC_INTERNAL_HARQ_MEMORY_LOOPBACK;
+ else {
+ printf("The given value is not a LDPC decoder flag\n");
+ return -1;
+ }
+
+ return 0;
+}
+
+/* convert turbo encoder flag from string to unsigned long int*/
+static int
+op_encoder_flag_strtoul(char *token, uint32_t *op_flag_value)
+{
+ if (!strcmp(token, "RTE_BBDEV_TURBO_RV_INDEX_BYPASS"))
+ *op_flag_value = RTE_BBDEV_TURBO_RV_INDEX_BYPASS;
+ else if (!strcmp(token, "RTE_BBDEV_TURBO_RATE_MATCH"))
+ *op_flag_value = RTE_BBDEV_TURBO_RATE_MATCH;
+ else if (!strcmp(token, "RTE_BBDEV_TURBO_CRC_24B_ATTACH"))
+ *op_flag_value = RTE_BBDEV_TURBO_CRC_24B_ATTACH;
+ else if (!strcmp(token, "RTE_BBDEV_TURBO_CRC_24A_ATTACH"))
+ *op_flag_value = RTE_BBDEV_TURBO_CRC_24A_ATTACH;
+ else if (!strcmp(token, "RTE_BBDEV_TURBO_ENC_SCATTER_GATHER"))
+ *op_flag_value = RTE_BBDEV_TURBO_ENC_SCATTER_GATHER;
+ else {
+ printf("The given value is not a turbo encoder flag\n");
+ return -1;
+ }
+
+ return 0;
+}
+
+/* convert LDPC encoder flag from string to unsigned long int*/
+static int
+op_ldpc_encoder_flag_strtoul(char *token, uint32_t *op_flag_value)
+{
+ if (!strcmp(token, "RTE_BBDEV_LDPC_INTERLEAVER_BYPASS"))
+ *op_flag_value = RTE_BBDEV_LDPC_INTERLEAVER_BYPASS;
+ else if (!strcmp(token, "RTE_BBDEV_LDPC_RATE_MATCH"))
+ *op_flag_value = RTE_BBDEV_LDPC_RATE_MATCH;
+ else if (!strcmp(token, "RTE_BBDEV_LDPC_CRC_24A_ATTACH"))
+ *op_flag_value = RTE_BBDEV_LDPC_CRC_24A_ATTACH;
+ else if (!strcmp(token, "RTE_BBDEV_LDPC_CRC_24B_ATTACH"))
+ *op_flag_value = RTE_BBDEV_LDPC_CRC_24B_ATTACH;
+ else if (!strcmp(token, "RTE_BBDEV_LDPC_CRC_16_ATTACH"))
+ *op_flag_value = RTE_BBDEV_LDPC_CRC_16_ATTACH;
+ else if (!strcmp(token, "RTE_BBDEV_LDPC_ENC_INTERRUPTS"))
+ *op_flag_value = RTE_BBDEV_LDPC_ENC_INTERRUPTS;
+ else if (!strcmp(token, "RTE_BBDEV_LDPC_ENC_SCATTER_GATHER"))
+ *op_flag_value = RTE_BBDEV_LDPC_ENC_SCATTER_GATHER;
+ else {
+ printf("The given value is not a turbo encoder flag\n");
+ return -1;
+ }
+
+ return 0;
+}
+
+/* tokenization turbo decoder/encoder flags values separated by a comma */
+static int
+parse_turbo_flags(char *tokens, uint32_t *op_flags,
+ enum rte_bbdev_op_type op_type)
+{
+ char *tok = NULL;
+ uint32_t op_flag_value = 0;
+
+ tok = strtok(tokens, VALUE_DELIMITER);
+ if (tok == NULL)
+ return -1;
+
+ while (tok != NULL) {
+ trim_space(tok);
+ if (op_type == RTE_BBDEV_OP_TURBO_DEC) {
+ if (op_decoder_flag_strtoul(tok, &op_flag_value) == -1)
+ return -1;
+ } else if (op_type == RTE_BBDEV_OP_TURBO_ENC) {
+ if (op_encoder_flag_strtoul(tok, &op_flag_value) == -1)
+ return -1;
+ } else if (op_type == RTE_BBDEV_OP_LDPC_ENC) {
+ if (op_ldpc_encoder_flag_strtoul(tok, &op_flag_value)
+ == -1)
+ return -1;
+ } else if (op_type == RTE_BBDEV_OP_LDPC_DEC) {
+ if (op_ldpc_decoder_flag_strtoul(tok, &op_flag_value)
+ == -1)
+ return -1;
+ } else {
+ return -1;
+ }
+
+ *op_flags = *op_flags | op_flag_value;
+
+ tok = strtok(NULL, VALUE_DELIMITER);
+ if (tok == NULL)
+ break;
+ }
+
+ return 0;
+}
+
+/* convert turbo encoder/decoder op_type from string to enum*/
+static int
+op_turbo_type_strtol(char *token, enum rte_bbdev_op_type *op_type)
+{
+ trim_space(token);
+ if (!strcmp(token, "RTE_BBDEV_OP_TURBO_DEC"))
+ *op_type = RTE_BBDEV_OP_TURBO_DEC;
+ else if (!strcmp(token, "RTE_BBDEV_OP_TURBO_ENC"))
+ *op_type = RTE_BBDEV_OP_TURBO_ENC;
+ else if (!strcmp(token, "RTE_BBDEV_OP_LDPC_ENC"))
+ *op_type = RTE_BBDEV_OP_LDPC_ENC;
+ else if (!strcmp(token, "RTE_BBDEV_OP_LDPC_DEC"))
+ *op_type = RTE_BBDEV_OP_LDPC_DEC;
+ else if (!strcmp(token, "RTE_BBDEV_OP_NONE"))
+ *op_type = RTE_BBDEV_OP_NONE;
+ else {
+ printf("Not valid turbo op_type: '%s'\n", token);
+ return -1;
+ }
+
+ return 0;
+}
+
+/* tokenization expected status values separated by a comma */
+static int
+parse_expected_status(char *tokens, int *status, enum rte_bbdev_op_type op_type)
+{
+ char *tok = NULL;
+ bool status_ok = false;
+
+ tok = strtok(tokens, VALUE_DELIMITER);
+ if (tok == NULL)
+ return -1;
+
+ while (tok != NULL) {
+ trim_space(tok);
+ if (!strcmp(tok, "OK"))
+ status_ok = true;
+ else if (!strcmp(tok, "DMA"))
+ *status = *status | (1 << RTE_BBDEV_DRV_ERROR);
+ else if (!strcmp(tok, "FCW"))
+ *status = *status | (1 << RTE_BBDEV_DATA_ERROR);
+ else if (!strcmp(tok, "SYNCRC")) {
+ *status = *status | (1 << RTE_BBDEV_SYNDROME_ERROR);
+ *status = *status | (1 << RTE_BBDEV_CRC_ERROR);
+ } else if (!strcmp(tok, "SYN"))
+ *status = *status | (1 << RTE_BBDEV_SYNDROME_ERROR);
+ else if (!strcmp(tok, "CRC")) {
+ if ((op_type == RTE_BBDEV_OP_TURBO_DEC) ||
+ (op_type == RTE_BBDEV_OP_LDPC_DEC))
+ *status = *status | (1 << RTE_BBDEV_CRC_ERROR);
+ else {
+ printf(
+ "CRC is only a valid value for decoder\n");
+ return -1;
+ }
+ } else {
+ printf("Not valid status: '%s'\n", tok);
+ return -1;
+ }
+
+ tok = strtok(NULL, VALUE_DELIMITER);
+ if (tok == NULL)
+ break;
+ }
+
+ if (status_ok && *status != 0) {
+ printf(
+ "Not valid status values. Cannot be OK and ERROR at the same time.\n");
+ return -1;
+ }
+
+ return 0;
+}
+
+/* parse ops data entry (there can be more than 1 input entry, each will be
+ * contained in a separate op_data_buf struct)
+ */
+static int
+parse_data_entry(const char *key_token, char *token,
+ struct test_bbdev_vector *vector, enum op_data_type type,
+ const char *prefix)
+{
+ int ret;
+ uint32_t data_length = 0;
+ uint32_t *data = NULL;
+ unsigned int id;
+ struct op_data_buf *op_data;
+ unsigned int *nb_ops;
+
+ if (type >= DATA_NUM_TYPES) {
+ printf("Unknown op type: %d!\n", type);
+ return -1;
+ }
+
+ op_data = vector->entries[type].segments;
+ nb_ops = &vector->entries[type].nb_segments;
+
+ if (*nb_ops >= RTE_BBDEV_TURBO_MAX_CODE_BLOCKS) {
+ printf("Too many segments (code blocks defined): %u, max %d!\n",
+ *nb_ops, RTE_BBDEV_TURBO_MAX_CODE_BLOCKS);
+ return -1;
+ }
+
+ if (sscanf(key_token + strlen(prefix), "%u", &id) != 1) {
+ printf("Missing ID of %s\n", prefix);
+ return -1;
+ }
+ if (id != *nb_ops) {
+ printf(
+ "Please order data entries sequentially, i.e. %s0, %s1, ...\n",
+ prefix, prefix);
+ return -1;
+ }
+
+ /* Clear new op data struct */
+ memset(op_data + *nb_ops, 0, sizeof(struct op_data_buf));
+
+ ret = parse_values(token, &data, &data_length);
+ if (!ret) {
+ op_data[*nb_ops].addr = data;
+ op_data[*nb_ops].length = data_length;
+ ++(*nb_ops);
+ }
+
+ return ret;
+}
+
+/* parses turbo decoder parameters and assigns to global variable */
+static int
+parse_decoder_params(const char *key_token, char *token,
+ struct test_bbdev_vector *vector)
+{
+ int ret = 0, status = 0;
+ uint32_t op_flags = 0;
+ char *err = NULL;
+
+ struct rte_bbdev_op_turbo_dec *turbo_dec = &vector->turbo_dec;
+
+ /* compare keys */
+ if (starts_with(key_token, op_data_prefixes[DATA_INPUT]))
+ ret = parse_data_entry(key_token, token, vector,
+ DATA_INPUT, op_data_prefixes[DATA_INPUT]);
+
+ else if (starts_with(key_token, op_data_prefixes[DATA_SOFT_OUTPUT]))
+ ret = parse_data_entry(key_token, token, vector,
+ DATA_SOFT_OUTPUT,
+ op_data_prefixes[DATA_SOFT_OUTPUT]);
+
+ else if (starts_with(key_token, op_data_prefixes[DATA_HARD_OUTPUT]))
+ ret = parse_data_entry(key_token, token, vector,
+ DATA_HARD_OUTPUT,
+ op_data_prefixes[DATA_HARD_OUTPUT]);
+ else if (!strcmp(key_token, "e")) {
+ vector->mask |= TEST_BBDEV_VF_E;
+ turbo_dec->cb_params.e = (uint32_t) strtoul(token, &err, 0);
+ } else if (!strcmp(key_token, "ea")) {
+ vector->mask |= TEST_BBDEV_VF_EA;
+ turbo_dec->tb_params.ea = (uint32_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "eb")) {
+ vector->mask |= TEST_BBDEV_VF_EB;
+ turbo_dec->tb_params.eb = (uint32_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "k")) {
+ vector->mask |= TEST_BBDEV_VF_K;
+ turbo_dec->cb_params.k = (uint16_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "k_pos")) {
+ vector->mask |= TEST_BBDEV_VF_K_POS;
+ turbo_dec->tb_params.k_pos = (uint16_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "k_neg")) {
+ vector->mask |= TEST_BBDEV_VF_K_NEG;
+ turbo_dec->tb_params.k_neg = (uint16_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "c")) {
+ vector->mask |= TEST_BBDEV_VF_C;
+ turbo_dec->tb_params.c = (uint16_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "c_neg")) {
+ vector->mask |= TEST_BBDEV_VF_C_NEG;
+ turbo_dec->tb_params.c_neg = (uint16_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "cab")) {
+ vector->mask |= TEST_BBDEV_VF_CAB;
+ turbo_dec->tb_params.cab = (uint8_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "rv_index")) {
+ vector->mask |= TEST_BBDEV_VF_RV_INDEX;
+ turbo_dec->rv_index = (uint8_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "iter_max")) {
+ vector->mask |= TEST_BBDEV_VF_ITER_MAX;
+ turbo_dec->iter_max = (uint8_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "iter_min")) {
+ vector->mask |= TEST_BBDEV_VF_ITER_MIN;
+ turbo_dec->iter_min = (uint8_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "expected_iter_count")) {
+ vector->mask |= TEST_BBDEV_VF_EXPECTED_ITER_COUNT;
+ turbo_dec->iter_count = (uint8_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "ext_scale")) {
+ vector->mask |= TEST_BBDEV_VF_EXT_SCALE;
+ turbo_dec->ext_scale = (uint8_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "num_maps")) {
+ vector->mask |= TEST_BBDEV_VF_NUM_MAPS;
+ turbo_dec->num_maps = (uint8_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "r")) {
+ vector->mask |= TEST_BBDEV_VF_R;
+ turbo_dec->tb_params.r = (uint8_t)strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "code_block_mode")) {
+ vector->mask |= TEST_BBDEV_VF_CODE_BLOCK_MODE;
+ turbo_dec->code_block_mode = (uint8_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "op_flags")) {
+ vector->mask |= TEST_BBDEV_VF_OP_FLAGS;
+ ret = parse_turbo_flags(token, &op_flags,
+ vector->op_type);
+ if (!ret)
+ turbo_dec->op_flags = op_flags;
+ } else if (!strcmp(key_token, "expected_status")) {
+ vector->mask |= TEST_BBDEV_VF_EXPECTED_STATUS;
+ ret = parse_expected_status(token, &status, vector->op_type);
+ if (!ret)
+ vector->expected_status = status;
+ } else {
+ printf("Not valid dec key: '%s'\n", key_token);
+ return -1;
+ }
+
+ if (ret != 0) {
+ printf("Failed with convert '%s\t%s'\n", key_token, token);
+ return -1;
+ }
+
+ return 0;
+}
+
+/* parses turbo encoder parameters and assigns to global variable */
+static int
+parse_encoder_params(const char *key_token, char *token,
+ struct test_bbdev_vector *vector)
+{
+ int ret = 0, status = 0;
+ uint32_t op_flags = 0;
+ char *err = NULL;
+
+
+ struct rte_bbdev_op_turbo_enc *turbo_enc = &vector->turbo_enc;
+
+ if (starts_with(key_token, op_data_prefixes[DATA_INPUT]))
+ ret = parse_data_entry(key_token, token, vector,
+ DATA_INPUT, op_data_prefixes[DATA_INPUT]);
+ else if (starts_with(key_token, "output"))
+ ret = parse_data_entry(key_token, token, vector,
+ DATA_HARD_OUTPUT, "output");
+ else if (!strcmp(key_token, "e")) {
+ vector->mask |= TEST_BBDEV_VF_E;
+ turbo_enc->cb_params.e = (uint32_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "ea")) {
+ vector->mask |= TEST_BBDEV_VF_EA;
+ turbo_enc->tb_params.ea = (uint32_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "eb")) {
+ vector->mask |= TEST_BBDEV_VF_EB;
+ turbo_enc->tb_params.eb = (uint32_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "k")) {
+ vector->mask |= TEST_BBDEV_VF_K;
+ turbo_enc->cb_params.k = (uint16_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "k_neg")) {
+ vector->mask |= TEST_BBDEV_VF_K_NEG;
+ turbo_enc->tb_params.k_neg = (uint16_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "k_pos")) {
+ vector->mask |= TEST_BBDEV_VF_K_POS;
+ turbo_enc->tb_params.k_pos = (uint16_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "c_neg")) {
+ vector->mask |= TEST_BBDEV_VF_C_NEG;
+ turbo_enc->tb_params.c_neg = (uint8_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "c")) {
+ vector->mask |= TEST_BBDEV_VF_C;
+ turbo_enc->tb_params.c = (uint8_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "cab")) {
+ vector->mask |= TEST_BBDEV_VF_CAB;
+ turbo_enc->tb_params.cab = (uint8_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "rv_index")) {
+ vector->mask |= TEST_BBDEV_VF_RV_INDEX;
+ turbo_enc->rv_index = (uint8_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "ncb")) {
+ vector->mask |= TEST_BBDEV_VF_NCB;
+ turbo_enc->cb_params.ncb = (uint16_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "ncb_neg")) {
+ vector->mask |= TEST_BBDEV_VF_NCB_NEG;
+ turbo_enc->tb_params.ncb_neg =
+ (uint16_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "ncb_pos")) {
+ vector->mask |= TEST_BBDEV_VF_NCB_POS;
+ turbo_enc->tb_params.ncb_pos =
+ (uint16_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "r")) {
+ vector->mask |= TEST_BBDEV_VF_R;
+ turbo_enc->tb_params.r = (uint8_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "code_block_mode")) {
+ vector->mask |= TEST_BBDEV_VF_CODE_BLOCK_MODE;
+ turbo_enc->code_block_mode = (uint8_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "op_flags")) {
+ vector->mask |= TEST_BBDEV_VF_OP_FLAGS;
+ ret = parse_turbo_flags(token, &op_flags,
+ vector->op_type);
+ if (!ret)
+ turbo_enc->op_flags = op_flags;
+ } else if (!strcmp(key_token, "expected_status")) {
+ vector->mask |= TEST_BBDEV_VF_EXPECTED_STATUS;
+ ret = parse_expected_status(token, &status, vector->op_type);
+ if (!ret)
+ vector->expected_status = status;
+ } else {
+ printf("Not valid enc key: '%s'\n", key_token);
+ return -1;
+ }
+
+ if (ret != 0) {
+ printf("Failed with convert '%s\t%s'\n", key_token, token);
+ return -1;
+ }
+
+ return 0;
+}
+
+
+/* parses LDPC encoder parameters and assigns to global variable */
+static int
+parse_ldpc_encoder_params(const char *key_token, char *token,
+ struct test_bbdev_vector *vector)
+{
+ int ret = 0, status = 0;
+ uint32_t op_flags = 0;
+ char *err = NULL;
+
+ struct rte_bbdev_op_ldpc_enc *ldpc_enc = &vector->ldpc_enc;
+
+ if (starts_with(key_token, op_data_prefixes[DATA_INPUT]))
+ ret = parse_data_entry(key_token, token, vector,
+ DATA_INPUT,
+ op_data_prefixes[DATA_INPUT]);
+ else if (starts_with(key_token, "output"))
+ ret = parse_data_entry(key_token, token, vector,
+ DATA_HARD_OUTPUT,
+ "output");
+ else if (!strcmp(key_token, "e")) {
+ vector->mask |= TEST_BBDEV_VF_E;
+ ldpc_enc->cb_params.e = (uint32_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "ea")) {
+ vector->mask |= TEST_BBDEV_VF_EA;
+ ldpc_enc->tb_params.ea = (uint32_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "eb")) {
+ vector->mask |= TEST_BBDEV_VF_EB;
+ ldpc_enc->tb_params.eb = (uint32_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "c")) {
+ vector->mask |= TEST_BBDEV_VF_C;
+ ldpc_enc->tb_params.c = (uint8_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "cab")) {
+ vector->mask |= TEST_BBDEV_VF_CAB;
+ ldpc_enc->tb_params.cab = (uint8_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "rv_index")) {
+ vector->mask |= TEST_BBDEV_VF_RV_INDEX;
+ ldpc_enc->rv_index = (uint8_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "n_cb")) {
+ vector->mask |= TEST_BBDEV_VF_NCB;
+ ldpc_enc->n_cb = (uint16_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "r")) {
+ vector->mask |= TEST_BBDEV_VF_R;
+ ldpc_enc->tb_params.r = (uint8_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "q_m")) {
+ vector->mask |= TEST_BBDEV_VF_QM;
+ ldpc_enc->q_m = (uint8_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "basegraph")) {
+ vector->mask |= TEST_BBDEV_VF_BG;
+ ldpc_enc->basegraph = (uint8_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "z_c")) {
+ vector->mask |= TEST_BBDEV_VF_ZC;
+ ldpc_enc->z_c = (uint16_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "n_filler")) {
+ vector->mask |= TEST_BBDEV_VF_F;
+ ldpc_enc->n_filler = (uint16_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "code_block_mode")) {
+ vector->mask |= TEST_BBDEV_VF_CODE_BLOCK_MODE;
+ ldpc_enc->code_block_mode = (uint8_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "op_flags")) {
+ vector->mask |= TEST_BBDEV_VF_OP_FLAGS;
+ ret = parse_turbo_flags(token, &op_flags, vector->op_type);
+ if (!ret)
+ ldpc_enc->op_flags = op_flags;
+ } else if (!strcmp(key_token, "expected_status")) {
+ vector->mask |= TEST_BBDEV_VF_EXPECTED_STATUS;
+ ret = parse_expected_status(token, &status, vector->op_type);
+ if (!ret)
+ vector->expected_status = status;
+ } else {
+ printf("Not valid ldpc enc key: '%s'\n", key_token);
+ return -1;
+ }
+
+ if (ret != 0) {
+ printf("Failed with convert '%s\t%s'\n", key_token, token);
+ return -1;
+ }
+
+ return 0;
+}
+
+/* parses LDPC decoder parameters and assigns to global variable */
+static int
+parse_ldpc_decoder_params(const char *key_token, char *token,
+ struct test_bbdev_vector *vector)
+{
+ int ret = 0, status = 0;
+ uint32_t op_flags = 0;
+ char *err = NULL;
+
+ struct rte_bbdev_op_ldpc_dec *ldpc_dec = &vector->ldpc_dec;
+
+ if (starts_with(key_token, op_data_prefixes[DATA_INPUT]))
+ ret = parse_data_entry(key_token, token, vector,
+ DATA_INPUT,
+ op_data_prefixes[DATA_INPUT]);
+ else if (starts_with(key_token, "output"))
+ ret = parse_data_entry(key_token, token, vector,
+ DATA_HARD_OUTPUT,
+ "output");
+ else if (starts_with(key_token, op_data_prefixes[DATA_HARQ_INPUT]))
+ ret = parse_data_entry(key_token, token, vector,
+ DATA_HARQ_INPUT,
+ op_data_prefixes[DATA_HARQ_INPUT]);
+ else if (starts_with(key_token, op_data_prefixes[DATA_HARQ_OUTPUT]))
+ ret = parse_data_entry(key_token, token, vector,
+ DATA_HARQ_OUTPUT,
+ op_data_prefixes[DATA_HARQ_OUTPUT]);
+ else if (!strcmp(key_token, "e")) {
+ vector->mask |= TEST_BBDEV_VF_E;
+ ldpc_dec->cb_params.e = (uint32_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "ea")) {
+ vector->mask |= TEST_BBDEV_VF_EA;
+ ldpc_dec->tb_params.ea = (uint32_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "eb")) {
+ vector->mask |= TEST_BBDEV_VF_EB;
+ ldpc_dec->tb_params.eb = (uint32_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "c")) {
+ vector->mask |= TEST_BBDEV_VF_C;
+ ldpc_dec->tb_params.c = (uint8_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "cab")) {
+ vector->mask |= TEST_BBDEV_VF_CAB;
+ ldpc_dec->tb_params.cab = (uint8_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "rv_index")) {
+ vector->mask |= TEST_BBDEV_VF_RV_INDEX;
+ ldpc_dec->rv_index = (uint8_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "n_cb")) {
+ vector->mask |= TEST_BBDEV_VF_NCB;
+ ldpc_dec->n_cb = (uint16_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "r")) {
+ vector->mask |= TEST_BBDEV_VF_R;
+ ldpc_dec->tb_params.r = (uint8_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "q_m")) {
+ vector->mask |= TEST_BBDEV_VF_QM;
+ ldpc_dec->q_m = (uint8_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "basegraph")) {
+ vector->mask |= TEST_BBDEV_VF_BG;
+ ldpc_dec->basegraph = (uint8_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "z_c")) {
+ vector->mask |= TEST_BBDEV_VF_ZC;
+ ldpc_dec->z_c = (uint16_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "n_filler")) {
+ vector->mask |= TEST_BBDEV_VF_F;
+ ldpc_dec->n_filler = (uint16_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "expected_iter_count")) {
+ vector->mask |= TEST_BBDEV_VF_EXPECTED_ITER_COUNT;
+ ldpc_dec->iter_count = (uint8_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "iter_max")) {
+ vector->mask |= TEST_BBDEV_VF_ITER_MAX;
+ ldpc_dec->iter_max = (uint8_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "code_block_mode")) {
+ vector->mask |= TEST_BBDEV_VF_CODE_BLOCK_MODE;
+ ldpc_dec->code_block_mode = (uint8_t) strtoul(token, &err, 0);
+ ret = ((err == NULL) || (*err != '\0')) ? -1 : 0;
+ } else if (!strcmp(key_token, "op_flags")) {
+ vector->mask |= TEST_BBDEV_VF_OP_FLAGS;
+ ret = parse_turbo_flags(token, &op_flags, vector->op_type);
+ if (!ret)
+ ldpc_dec->op_flags = op_flags;
+ } else if (!strcmp(key_token, "expected_status")) {
+ vector->mask |= TEST_BBDEV_VF_EXPECTED_STATUS;
+ ret = parse_expected_status(token, &status, vector->op_type);
+ if (!ret)
+ vector->expected_status = status;
+ } else {
+ printf("Not valid ldpc dec key: '%s'\n", key_token);
+ return -1;
+ }
+
+ if (ret != 0) {
+ printf("Failed with convert '%s\t%s'\n", key_token, token);
+ return -1;
+ }
+
+ return 0;
+}
+
+/* checks the type of key and assigns data */
+static int
+parse_entry(char *entry, struct test_bbdev_vector *vector)
+{
+ int ret = 0;
+ char *token, *key_token;
+ enum rte_bbdev_op_type op_type = RTE_BBDEV_OP_NONE;
+
+ if (entry == NULL) {
+ printf("Expected entry value\n");
+ return -1;
+ }
+
+ /* get key */
+ token = strtok(entry, ENTRY_DELIMITER);
+ key_token = token;
+ /* get values for key */
+ token = strtok(NULL, ENTRY_DELIMITER);
+
+ if (key_token == NULL || token == NULL) {
+ printf("Expected 'key = values' but was '%.40s'..\n", entry);
+ return -1;
+ }
+ trim_space(key_token);
+
+ /* first key_token has to specify type of operation */
+ if (vector->op_type == RTE_BBDEV_OP_NONE) {
+ if (!strcmp(key_token, "op_type")) {
+ ret = op_turbo_type_strtol(token, &op_type);
+ if (!ret)
+ vector->op_type = op_type;
+ return (!ret) ? 0 : -1;
+ }
+ printf("First key_token (%s) does not specify op_type\n",
+ key_token);
+ return -1;
+ }
+
+ /* compare keys */
+ if (vector->op_type == RTE_BBDEV_OP_TURBO_DEC) {
+ if (parse_decoder_params(key_token, token, vector) == -1)
+ return -1;
+ } else if (vector->op_type == RTE_BBDEV_OP_TURBO_ENC) {
+ if (parse_encoder_params(key_token, token, vector) == -1)
+ return -1;
+ } else if (vector->op_type == RTE_BBDEV_OP_LDPC_ENC) {
+ if (parse_ldpc_encoder_params(key_token, token, vector) == -1)
+ return -1;
+ } else if (vector->op_type == RTE_BBDEV_OP_LDPC_DEC) {
+ if (parse_ldpc_decoder_params(key_token, token, vector) == -1)
+ return -1;
+ }
+
+ return 0;
+}
+
+static int
+check_decoder_segments(struct test_bbdev_vector *vector)
+{
+ unsigned char i;
+ struct rte_bbdev_op_turbo_dec *turbo_dec = &vector->turbo_dec;
+
+ if (vector->entries[DATA_INPUT].nb_segments == 0)
+ return -1;
+
+ for (i = 0; i < vector->entries[DATA_INPUT].nb_segments; i++)
+ if (vector->entries[DATA_INPUT].segments[i].addr == NULL)
+ return -1;
+
+ if (vector->entries[DATA_HARD_OUTPUT].nb_segments == 0)
+ return -1;
+
+ for (i = 0; i < vector->entries[DATA_HARD_OUTPUT].nb_segments;
+ i++)
+ if (vector->entries[DATA_HARD_OUTPUT].segments[i].addr == NULL)
+ return -1;
+
+ if ((turbo_dec->op_flags & RTE_BBDEV_TURBO_SOFT_OUTPUT) &&
+ (vector->entries[DATA_SOFT_OUTPUT].nb_segments == 0))
+ return -1;
+
+ for (i = 0; i < vector->entries[DATA_SOFT_OUTPUT].nb_segments;
+ i++)
+ if (vector->entries[DATA_SOFT_OUTPUT].segments[i].addr == NULL)
+ return -1;
+
+ return 0;
+}
+
+static int
+check_ldpc_decoder_segments(struct test_bbdev_vector *vector)
+{
+ unsigned char i;
+ struct rte_bbdev_op_ldpc_dec *ldpc_dec = &vector->ldpc_dec;
+
+ for (i = 0; i < vector->entries[DATA_INPUT].nb_segments; i++)
+ if (vector->entries[DATA_INPUT].segments[i].addr == NULL)
+ return -1;
+
+ for (i = 0; i < vector->entries[DATA_HARD_OUTPUT].nb_segments; i++)
+ if (vector->entries[DATA_HARD_OUTPUT].segments[i].addr == NULL)
+ return -1;
+
+ if ((ldpc_dec->op_flags & RTE_BBDEV_LDPC_SOFT_OUT_ENABLE) &&
+ (vector->entries[DATA_SOFT_OUTPUT].nb_segments == 0))
+ return -1;
+
+ for (i = 0; i < vector->entries[DATA_SOFT_OUTPUT].nb_segments; i++)
+ if (vector->entries[DATA_SOFT_OUTPUT].segments[i].addr == NULL)
+ return -1;
+
+ if ((ldpc_dec->op_flags & RTE_BBDEV_LDPC_HQ_COMBINE_OUT_ENABLE) &&
+ (vector->entries[DATA_HARQ_OUTPUT].nb_segments == 0))
+ return -1;
+
+ for (i = 0; i < vector->entries[DATA_HARQ_OUTPUT].nb_segments; i++)
+ if (vector->entries[DATA_HARQ_OUTPUT].segments[i].addr == NULL)
+ return -1;
+
+ return 0;
+}
+
+static int
+check_decoder_llr_spec(struct test_bbdev_vector *vector)
+{
+ struct rte_bbdev_op_turbo_dec *turbo_dec = &vector->turbo_dec;
+
+ /* Check input LLR sign formalism specification */
+ if ((turbo_dec->op_flags & RTE_BBDEV_TURBO_POS_LLR_1_BIT_IN) &&
+ (turbo_dec->op_flags &
+ RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN)) {
+ printf(
+ "Both positive and negative LLR input flags were set!\n");
+ return -1;
+ }
+ if (!(turbo_dec->op_flags & RTE_BBDEV_TURBO_POS_LLR_1_BIT_IN) &&
+ !(turbo_dec->op_flags &
+ RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN)) {
+ printf(
+ "INFO: input LLR sign formalism was not specified and will be set to negative LLR for '1' bit\n");
+ turbo_dec->op_flags |= RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN;
+ }
+
+ if (!(turbo_dec->op_flags & RTE_BBDEV_TURBO_SOFT_OUTPUT))
+ return 0;
+
+ /* Check output LLR sign formalism specification */
+ if ((turbo_dec->op_flags & RTE_BBDEV_TURBO_POS_LLR_1_BIT_SOFT_OUT) &&
+ (turbo_dec->op_flags &
+ RTE_BBDEV_TURBO_NEG_LLR_1_BIT_SOFT_OUT)) {
+ printf(
+ "Both positive and negative LLR output flags were set!\n");
+ return -1;
+ }
+ if (!(turbo_dec->op_flags & RTE_BBDEV_TURBO_POS_LLR_1_BIT_SOFT_OUT) &&
+ !(turbo_dec->op_flags &
+ RTE_BBDEV_TURBO_NEG_LLR_1_BIT_SOFT_OUT)) {
+ printf(
+ "INFO: soft output LLR sign formalism was not specified and will be set to negative LLR for '1' bit\n");
+ turbo_dec->op_flags |=
+ RTE_BBDEV_TURBO_NEG_LLR_1_BIT_SOFT_OUT;
+ }
+
+ return 0;
+}
+
+static int
+check_decoder_op_flags(struct test_bbdev_vector *vector)
+{
+ struct rte_bbdev_op_turbo_dec *turbo_dec = &vector->turbo_dec;
+
+ if ((turbo_dec->op_flags & RTE_BBDEV_TURBO_DEC_TB_CRC_24B_KEEP) &&
+ !(turbo_dec->op_flags & RTE_BBDEV_TURBO_CRC_TYPE_24B)) {
+ printf(
+ "WARNING: RTE_BBDEV_TURBO_DEC_TB_CRC_24B_KEEP flag is missing RTE_BBDEV_TURBO_CRC_TYPE_24B\n");
+ return -1;
+ }
+
+ return 0;
+}
+
+/* checks decoder parameters */
+static int
+check_decoder(struct test_bbdev_vector *vector)
+{
+ struct rte_bbdev_op_turbo_dec *turbo_dec = &vector->turbo_dec;
+ const int mask = vector->mask;
+
+ if (check_decoder_segments(vector) < 0)
+ return -1;
+
+ if (check_decoder_llr_spec(vector) < 0)
+ return -1;
+
+ if (check_decoder_op_flags(vector) < 0)
+ return -1;
+
+ /* Check which params were set */
+ if (!(mask & TEST_BBDEV_VF_CODE_BLOCK_MODE)) {
+ printf(
+ "WARNING: code_block_mode was not specified in vector file and will be set to 1 (0 - TB Mode, 1 - CB mode)\n");
+ turbo_dec->code_block_mode = 1;
+ }
+ if (turbo_dec->code_block_mode == 0) {
+ if (!(mask & TEST_BBDEV_VF_EA))
+ printf(
+ "WARNING: ea was not specified in vector file and will be set to 0\n");
+ if (!(mask & TEST_BBDEV_VF_EB))
+ printf(
+ "WARNING: eb was not specified in vector file and will be set to 0\n");
+ if (!(mask & TEST_BBDEV_VF_K_NEG))
+ printf(
+ "WARNING: k_neg was not specified in vector file and will be set to 0\n");
+ if (!(mask & TEST_BBDEV_VF_K_POS))
+ printf(
+ "WARNING: k_pos was not specified in vector file and will be set to 0\n");
+ if (!(mask & TEST_BBDEV_VF_C_NEG))
+ printf(
+ "WARNING: c_neg was not specified in vector file and will be set to 0\n");
+ if (!(mask & TEST_BBDEV_VF_C)) {
+ printf(
+ "WARNING: c was not specified in vector file and will be set to 1\n");
+ turbo_dec->tb_params.c = 1;
+ }
+ if (!(mask & TEST_BBDEV_VF_CAB))
+ printf(
+ "WARNING: cab was not specified in vector file and will be set to 0\n");
+ if (!(mask & TEST_BBDEV_VF_R))
+ printf(
+ "WARNING: r was not specified in vector file and will be set to 0\n");
+ } else {
+ if (!(mask & TEST_BBDEV_VF_E))
+ printf(
+ "WARNING: e was not specified in vector file and will be set to 0\n");
+ if (!(mask & TEST_BBDEV_VF_K))
+ printf(
+ "WARNING: k was not specified in vector file and will be set to 0\n");
+ }
+ if (!(mask & TEST_BBDEV_VF_RV_INDEX))
+ printf(
+ "INFO: rv_index was not specified in vector file and will be set to 0\n");
+ if (!(mask & TEST_BBDEV_VF_ITER_MIN))
+ printf(
+ "WARNING: iter_min was not specified in vector file and will be set to 0\n");
+ if (!(mask & TEST_BBDEV_VF_ITER_MAX))
+ printf(
+ "WARNING: iter_max was not specified in vector file and will be set to 0\n");
+ if (!(mask & TEST_BBDEV_VF_EXPECTED_ITER_COUNT))
+ printf(
+ "WARNING: expected_iter_count was not specified in vector file and iter_count will not be validated\n");
+ if (!(mask & TEST_BBDEV_VF_EXT_SCALE))
+ printf(
+ "WARNING: ext_scale was not specified in vector file and will be set to 0\n");
+ if (!(mask & TEST_BBDEV_VF_OP_FLAGS)) {
+ printf(
+ "WARNING: op_flags was not specified in vector file and capabilities will not be validated\n");
+ turbo_dec->num_maps = 0;
+ } else if (!(turbo_dec->op_flags & RTE_BBDEV_TURBO_MAP_DEC) &&
+ mask & TEST_BBDEV_VF_NUM_MAPS) {
+ printf(
+ "INFO: RTE_BBDEV_TURBO_MAP_DEC was not set in vector file and num_maps will be set to 0\n");
+ turbo_dec->num_maps = 0;
+ }
+ if (!(mask & TEST_BBDEV_VF_EXPECTED_STATUS))
+ printf(
+ "WARNING: expected_status was not specified in vector file and will be set to 0\n");
+ return 0;
+}
+
+/* checks LDPC decoder parameters */
+static int
+check_ldpc_decoder(struct test_bbdev_vector *vector)
+{
+ struct rte_bbdev_op_ldpc_dec *ldpc_dec = &vector->ldpc_dec;
+ const int mask = vector->mask;
+
+ if (check_ldpc_decoder_segments(vector) < 0)
+ return -1;
+
+ /*
+ * if (check_ldpc_decoder_llr_spec(vector) < 0)
+ * return -1;
+ *
+ * if (check_ldpc_decoder_op_flags(vector) < 0)
+ * return -1;
+ */
+
+ /* Check which params were set */
+ if (!(mask & TEST_BBDEV_VF_CODE_BLOCK_MODE)) {
+ printf(
+ "WARNING: code_block_mode was not specified in vector file and will be set to 1 (0 - TB Mode, 1 - CB mode)\n");
+ ldpc_dec->code_block_mode = 1;
+ }
+ if (ldpc_dec->code_block_mode == 0) {
+ if (!(mask & TEST_BBDEV_VF_EA))
+ printf(
+ "WARNING: ea was not specified in vector file and will be set to 0\n");
+ if (!(mask & TEST_BBDEV_VF_EB))
+ printf(
+ "WARNING: eb was not specified in vector file and will be set to 0\n");
+ if (!(mask & TEST_BBDEV_VF_C)) {
+ printf(
+ "WARNING: c was not specified in vector file and will be set to 1\n");
+ ldpc_dec->tb_params.c = 1;
+ }
+ if (!(mask & TEST_BBDEV_VF_CAB))
+ printf(
+ "WARNING: cab was not specified in vector file and will be set to 0\n");
+ if (!(mask & TEST_BBDEV_VF_R))
+ printf(
+ "WARNING: r was not specified in vector file and will be set to 0\n");
+ } else {
+ if (!(mask & TEST_BBDEV_VF_E))
+ printf(
+ "WARNING: e was not specified in vector file and will be set to 0\n");
+ }
+ if (!(mask & TEST_BBDEV_VF_RV_INDEX))
+ printf(
+ "INFO: rv_index was not specified in vector file and will be set to 0\n");
+ if (!(mask & TEST_BBDEV_VF_ITER_MAX))
+ printf(
+ "WARNING: iter_max was not specified in vector file and will be set to 0\n");
+ if (!(mask & TEST_BBDEV_VF_EXPECTED_ITER_COUNT))
+ printf(
+ "WARNING: expected_iter_count was not specified in vector file and iter_count will not be validated\n");
+ if (!(mask & TEST_BBDEV_VF_OP_FLAGS)) {
+ printf(
+ "WARNING: op_flags was not specified in vector file and capabilities will not be validated\n");
+ }
+ if (!(mask & TEST_BBDEV_VF_EXPECTED_STATUS))
+ printf(
+ "WARNING: expected_status was not specified in vector file and will be set to 0\n");
+ return 0;
+}
+
+/* checks encoder parameters */
+static int
+check_encoder(struct test_bbdev_vector *vector)
+{
+ unsigned char i;
+ const int mask = vector->mask;
+
+ if (vector->entries[DATA_INPUT].nb_segments == 0)
+ return -1;
+
+ for (i = 0; i < vector->entries[DATA_INPUT].nb_segments; i++)
+ if (vector->entries[DATA_INPUT].segments[i].addr == NULL)
+ return -1;
+
+ if (vector->entries[DATA_HARD_OUTPUT].nb_segments == 0)
+ return -1;
+
+ for (i = 0; i < vector->entries[DATA_HARD_OUTPUT].nb_segments; i++)
+ if (vector->entries[DATA_HARD_OUTPUT].segments[i].addr == NULL)
+ return -1;
+
+ if (!(mask & TEST_BBDEV_VF_CODE_BLOCK_MODE)) {
+ printf(
+ "WARNING: code_block_mode was not specified in vector file and will be set to 1\n");
+ vector->turbo_enc.code_block_mode = 1;
+ }
+ if (vector->turbo_enc.code_block_mode == 0) {
+ if (!(mask & TEST_BBDEV_VF_EA) && (vector->turbo_enc.op_flags &
+ RTE_BBDEV_TURBO_RATE_MATCH))
+ printf(
+ "WARNING: ea was not specified in vector file and will be set to 0\n");
+ if (!(mask & TEST_BBDEV_VF_EB) && (vector->turbo_enc.op_flags &
+ RTE_BBDEV_TURBO_RATE_MATCH))
+ printf(
+ "WARNING: eb was not specified in vector file and will be set to 0\n");
+ if (!(mask & TEST_BBDEV_VF_K_NEG))
+ printf(
+ "WARNING: k_neg was not specified in vector file and will be set to 0\n");
+ if (!(mask & TEST_BBDEV_VF_K_POS))
+ printf(
+ "WARNING: k_pos was not specified in vector file and will be set to 0\n");
+ if (!(mask & TEST_BBDEV_VF_C_NEG))
+ printf(
+ "WARNING: c_neg was not specified in vector file and will be set to 0\n");
+ if (!(mask & TEST_BBDEV_VF_C)) {
+ printf(
+ "WARNING: c was not specified in vector file and will be set to 1\n");
+ vector->turbo_enc.tb_params.c = 1;
+ }
+ if (!(mask & TEST_BBDEV_VF_CAB) && (vector->turbo_enc.op_flags &
+ RTE_BBDEV_TURBO_RATE_MATCH))
+ printf(
+ "WARNING: cab was not specified in vector file and will be set to 0\n");
+ if (!(mask & TEST_BBDEV_VF_NCB_NEG))
+ printf(
+ "WARNING: ncb_neg was not specified in vector file and will be set to 0\n");
+ if (!(mask & TEST_BBDEV_VF_NCB_POS))
+ printf(
+ "WARNING: ncb_pos was not specified in vector file and will be set to 0\n");
+ if (!(mask & TEST_BBDEV_VF_R))
+ printf(
+ "WARNING: r was not specified in vector file and will be set to 0\n");
+ } else {
+ if (!(mask & TEST_BBDEV_VF_E) && (vector->turbo_enc.op_flags &
+ RTE_BBDEV_TURBO_RATE_MATCH))
+ printf(
+ "WARNING: e was not specified in vector file and will be set to 0\n");
+ if (!(mask & TEST_BBDEV_VF_K))
+ printf(
+ "WARNING: k was not specified in vector file and will be set to 0\n");
+ if (!(mask & TEST_BBDEV_VF_NCB))
+ printf(
+ "WARNING: ncb was not specified in vector file and will be set to 0\n");
+ }
+ if (!(mask & TEST_BBDEV_VF_RV_INDEX))
+ printf(
+ "INFO: rv_index was not specified in vector file and will be set to 0\n");
+ if (!(mask & TEST_BBDEV_VF_OP_FLAGS))
+ printf(
+ "INFO: op_flags was not specified in vector file and capabilities will not be validated\n");
+ if (!(mask & TEST_BBDEV_VF_EXPECTED_STATUS))
+ printf(
+ "WARNING: expected_status was not specified in vector file and will be set to 0\n");
+
+ return 0;
+}
+
+
+/* checks encoder parameters */
+static int
+check_ldpc_encoder(struct test_bbdev_vector *vector)
+{
+ unsigned char i;
+ const int mask = vector->mask;
+
+ if (vector->entries[DATA_INPUT].nb_segments == 0)
+ return -1;
+
+ for (i = 0; i < vector->entries[DATA_INPUT].nb_segments; i++)
+ if (vector->entries[DATA_INPUT].segments[i].addr == NULL)
+ return -1;
+
+ if (vector->entries[DATA_HARD_OUTPUT].nb_segments == 0)
+ return -1;
+
+ for (i = 0; i < vector->entries[DATA_HARD_OUTPUT].nb_segments; i++)
+ if (vector->entries[DATA_HARD_OUTPUT].segments[i].addr == NULL)
+ return -1;
+
+ if (!(mask & TEST_BBDEV_VF_CODE_BLOCK_MODE)) {
+ printf(
+ "WARNING: code_block_mode was not specified in vector file and will be set to 1\n");
+ vector->turbo_enc.code_block_mode = 1;
+ }
+ if (vector->turbo_enc.code_block_mode == 0) {
+ } else {
+ if (!(mask & TEST_BBDEV_VF_E) && (vector->turbo_enc.op_flags &
+ RTE_BBDEV_TURBO_RATE_MATCH))
+ printf(
+ "WARNING: e was not specified in vector file and will be set to 0\n");
+ if (!(mask & TEST_BBDEV_VF_NCB))
+ printf(
+ "WARNING: ncb was not specified in vector file and will be set to 0\n");
+ }
+ if (!(mask & TEST_BBDEV_VF_BG))
+ printf(
+ "WARNING: BG was not specified in vector file and will be set to 0\n");
+ if (!(mask & TEST_BBDEV_VF_ZC))
+ printf(
+ "WARNING: Zc was not specified in vector file and will be set to 0\n");
+ if (!(mask & TEST_BBDEV_VF_RV_INDEX))
+ printf(
+ "INFO: rv_index was not specified in vector file and will be set to 0\n");
+ if (!(mask & TEST_BBDEV_VF_OP_FLAGS))
+ printf(
+ "INFO: op_flags was not specified in vector file and capabilities will not be validated\n");
+ if (!(mask & TEST_BBDEV_VF_EXPECTED_STATUS))
+ printf(
+ "WARNING: expected_status was not specified in vector file and will be set to 0\n");
+
+ return 0;
+}
+
+static int
+bbdev_check_vector(struct test_bbdev_vector *vector)
+{
+ if (vector->op_type == RTE_BBDEV_OP_TURBO_DEC) {
+ if (check_decoder(vector) == -1)
+ return -1;
+ } else if (vector->op_type == RTE_BBDEV_OP_TURBO_ENC) {
+ if (check_encoder(vector) == -1)
+ return -1;
+ } else if (vector->op_type == RTE_BBDEV_OP_LDPC_ENC) {
+ if (check_ldpc_encoder(vector) == -1)
+ return -1;
+ } else if (vector->op_type == RTE_BBDEV_OP_LDPC_DEC) {
+ if (check_ldpc_decoder(vector) == -1)
+ return -1;
+ } else if (vector->op_type != RTE_BBDEV_OP_NONE) {
+ printf("Vector was not filled\n");
+ return -1;
+ }
+
+ return 0;
+}
+
+int
+test_bbdev_vector_read(const char *filename,
+ struct test_bbdev_vector *vector)
+{
+ int ret = 0;
+ size_t len = 0;
+
+ FILE *fp = NULL;
+ char *line = NULL;
+ char *entry = NULL;
+
+ fp = fopen(filename, "r");
+ if (fp == NULL) {
+ printf("File %s does not exist\n", filename);
+ return -1;
+ }
+
+ while (getline(&line, &len, fp) != -1) {
+
+ /* ignore comments and new lines */
+ if (line[0] == '#' || line[0] == '/' || line[0] == '\n'
+ || line[0] == '\r')
+ continue;
+
+ trim_space(line);
+
+ /* buffer for multiline */
+ entry = realloc(entry, strlen(line) + 1);
+ if (entry == NULL) {
+ printf("Fail to realloc %zu bytes\n", strlen(line) + 1);
+ ret = -ENOMEM;
+ goto exit;
+ }
+
+ strcpy(entry, line);
+
+ /* check if entry ends with , or = */
+ if (entry[strlen(entry) - 1] == ','
+ || entry[strlen(entry) - 1] == '=') {
+ while (getline(&line, &len, fp) != -1) {
+ trim_space(line);
+
+ /* extend entry about length of new line */
+ char *entry_extended = realloc(entry,
+ strlen(line) +
+ strlen(entry) + 1);
+
+ if (entry_extended == NULL) {
+ printf("Fail to allocate %zu bytes\n",
+ strlen(line) +
+ strlen(entry) + 1);
+ ret = -ENOMEM;
+ goto exit;
+ }
+
+ entry = entry_extended;
+ /* entry has been allocated accordingly */
+ strcpy(&entry[strlen(entry)], line);
+
+ if (entry[strlen(entry) - 1] != ',')
+ break;
+ }
+ }
+ ret = parse_entry(entry, vector);
+ if (ret != 0) {
+ printf("An error occurred while parsing!\n");
+ goto exit;
+ }
+ }
+ ret = bbdev_check_vector(vector);
+ if (ret != 0)
+ printf("An error occurred while checking!\n");
+
+exit:
+ fclose(fp);
+ free(line);
+ free(entry);
+
+ return ret;
+}
diff --git a/src/spdk/dpdk/app/test-bbdev/test_bbdev_vector.h b/src/spdk/dpdk/app/test-bbdev/test_bbdev_vector.h
new file mode 100644
index 000000000..4e5dbf5d5
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_bbdev_vector.h
@@ -0,0 +1,79 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright(c) 2017 Intel Corporation
+ */
+
+#ifndef TEST_BBDEV_VECTOR_H_
+#define TEST_BBDEV_VECTOR_H_
+
+#include <rte_bbdev_op.h>
+
+/* Flags which are set when specific parameter is define in vector file */
+enum {
+ TEST_BBDEV_VF_E = (1ULL << 0),
+ TEST_BBDEV_VF_EA = (1ULL << 1),
+ TEST_BBDEV_VF_EB = (1ULL << 2),
+ TEST_BBDEV_VF_K = (1ULL << 3),
+ TEST_BBDEV_VF_K_NEG = (1ULL << 4),
+ TEST_BBDEV_VF_K_POS = (1ULL << 5),
+ TEST_BBDEV_VF_C_NEG = (1ULL << 6),
+ TEST_BBDEV_VF_C = (1ULL << 7),
+ TEST_BBDEV_VF_CAB = (1ULL << 8),
+ TEST_BBDEV_VF_RV_INDEX = (1ULL << 9),
+ TEST_BBDEV_VF_ITER_MAX = (1ULL << 10),
+ TEST_BBDEV_VF_ITER_MIN = (1ULL << 11),
+ TEST_BBDEV_VF_EXPECTED_ITER_COUNT = (1ULL << 12),
+ TEST_BBDEV_VF_EXT_SCALE = (1ULL << 13),
+ TEST_BBDEV_VF_NUM_MAPS = (1ULL << 14),
+ TEST_BBDEV_VF_NCB = (1ULL << 15),
+ TEST_BBDEV_VF_NCB_NEG = (1ULL << 16),
+ TEST_BBDEV_VF_NCB_POS = (1ULL << 17),
+ TEST_BBDEV_VF_R = (1ULL << 18),
+ TEST_BBDEV_VF_BG = (1ULL << 19),
+ TEST_BBDEV_VF_ZC = (1ULL << 20),
+ TEST_BBDEV_VF_F = (1ULL << 21),
+ TEST_BBDEV_VF_QM = (1ULL << 22),
+ TEST_BBDEV_VF_CODE_BLOCK_MODE = (1ULL << 23),
+ TEST_BBDEV_VF_OP_FLAGS = (1ULL << 24),
+ TEST_BBDEV_VF_EXPECTED_STATUS = (1ULL << 25),
+};
+
+enum op_data_type {
+ DATA_INPUT = 0,
+ DATA_SOFT_OUTPUT,
+ DATA_HARD_OUTPUT,
+ DATA_HARQ_INPUT,
+ DATA_HARQ_OUTPUT,
+ DATA_NUM_TYPES,
+};
+
+struct op_data_buf {
+ uint32_t *addr;
+ uint32_t length;
+};
+
+struct op_data_entries {
+ struct op_data_buf segments[RTE_BBDEV_TURBO_MAX_CODE_BLOCKS];
+ unsigned int nb_segments;
+};
+
+struct test_bbdev_vector {
+ enum rte_bbdev_op_type op_type;
+ int expected_status;
+ int mask;
+ union {
+ struct rte_bbdev_op_turbo_dec turbo_dec;
+ struct rte_bbdev_op_turbo_enc turbo_enc;
+ struct rte_bbdev_op_ldpc_dec ldpc_dec;
+ struct rte_bbdev_op_ldpc_enc ldpc_enc;
+ };
+ /* Additional storage for op data entries */
+ struct op_data_entries entries[DATA_NUM_TYPES];
+};
+
+/* fills test vector parameters based on test file */
+int
+test_bbdev_vector_read(const char *filename,
+ struct test_bbdev_vector *vector);
+
+
+#endif /* TEST_BBDEV_VECTOR_H_ */
diff --git a/src/spdk/dpdk/app/test-bbdev/test_vectors/bbdev_null.data b/src/spdk/dpdk/app/test-bbdev/test_vectors/bbdev_null.data
new file mode 100644
index 000000000..c9a9abe9e
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_vectors/bbdev_null.data
@@ -0,0 +1,5 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2017 Intel Corporation
+
+op_type =
+RTE_BBDEV_OP_NONE \ No newline at end of file
diff --git a/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_HARQ_1_0.data b/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_HARQ_1_0.data
new file mode 100644
index 000000000..5d4d27d60
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_HARQ_1_0.data
@@ -0,0 +1,353 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2019 Intel Corporation
+
+op_type =
+RTE_BBDEV_OP_LDPC_DEC
+
+input0 =
+0xF301FC03, 0xF50F0EFA, 0xE70BF902, 0x1013060C, 0xF7F6FCE7, 0x04F3F709, 0x0C07FBF1, 0xFCF7070F,
+0xEA0FFAF8, 0x0FF71209, 0x070906F2, 0xF705F004, 0x15FA05F7, 0xF4F8010A, 0x0B0E09F5, 0xF70014F6,
+0xF106F80D, 0x0A06F9FC, 0x0DFBF803, 0x0308060D, 0x0CF9F8F9, 0xF2F409ED, 0x12FEF3EA, 0xF2FC07F9,
+0xEF12EEF8, 0xF90F030C, 0xEC171408, 0x11F902F3, 0xF102F6FF, 0x0AF6090C, 0x0103FA10, 0xF9FFF011,
+0x010FFB0F, 0xF80BFEF8, 0x10F2F1EE, 0x140204F6, 0x020AF206, 0x0BED04F2, 0x06FEF5F2, 0x0F070009,
+0xECF0F9F0, 0x081405F5, 0xF1000E18, 0xF4F7090C, 0xFD0F01EF, 0x0D12E702, 0x07EF1008, 0xEF06FD02,
+0x0302FD00, 0xF2F4040A, 0xF60BF9FC, 0x0BEEF20C, 0xF9ED0901, 0x00060406, 0xFF09F6F3, 0x0FF209F7,
+0x0D0EF210, 0xF3150611, 0x06060EF8, 0x0E06EFEC, 0x070C05F8, 0x0CFBF4F1, 0xFBFE0CF6, 0xFD03F714,
+0x03FCE40C, 0xF4F5F2F4, 0xF400F6FF, 0x0EF0090C, 0x04F9F9F6, 0xF5F6FEFD, 0xFE08FE01, 0x0607F3F3,
+0x11F4020C, 0xFD0FFB04, 0xEEF30D05, 0xFD040406, 0xFCF8F108, 0x0DFAFBF9, 0xE9F10B09, 0xEEF2140D,
+0xEE0A09F8, 0xFB010C0A, 0xF1FC0803, 0x0C07130A, 0x0312FD0A, 0xF6F10708, 0xFCF1FAEC, 0x0BF8F4F9,
+0xF009FBFF, 0x14EEF2EB, 0xEF0DF701, 0xFA14F90C, 0x08EF0110, 0xF50401E5, 0xEE13F30C, 0xF1F60916,
+0x05F414EC, 0xFF030A14, 0x0409FFF2, 0x0C0906FA, 0xF7F70414, 0xFBFA0EFA, 0xFD010BFD, 0xF5FA0EF1,
+0xF40FFAF4, 0xFF060503, 0x0BEF0BFA, 0x0717E7F3, 0xF4F1FD09, 0xEF09FEFE, 0x07F9F3FB, 0x0DFD08FE,
+0x0D0BF602, 0x05F21008, 0x1A0B0807, 0xEF0CFAF9, 0x090D0A06, 0x02EB0D0F, 0xF709FDFE, 0xFFF7F510,
+0xF10A0AF8, 0x15EF1311, 0xF20BEDF9, 0xF10A0BF7, 0x15150B08, 0x0B170F0A, 0x06FAFAF1, 0xF1F803FD,
+0x11F3EEEB, 0x0902FB04, 0x0703F215, 0x06EF10FE, 0xFB00140B, 0xF70CF806, 0x040AEE0E, 0xF9F1070C,
+0xEAF9F6FC, 0x0AECF80E, 0x09F2F9F3, 0xF708E8F0, 0x0902E9F7, 0x0209F6FD, 0x02F6EE10, 0x090BE811,
+0x0BF8E8F7, 0x03F8F5F1, 0x040AF109, 0x04F80CFB, 0x100A0913, 0x0CFBF403, 0xEE04FAF0, 0xFB040008,
+0x16081113, 0xFCE80708, 0xF2FF03F3, 0xF9F1F1F4, 0xF4ED09F7, 0x0BEBF0FC, 0xF80A01E8, 0x02F714F0,
+0xF516040E, 0x0A000AF1, 0xF5F3F101, 0x05F00807, 0xE9F20011, 0xE90E1613, 0xF6150AF4, 0x0707F4F8,
+0x10F7F20B, 0xF9F9F0EE, 0xF5FE0715, 0xF90E06F7, 0x0AE8F40C, 0x0B07FB06, 0xF0F6F10E, 0xF4060811,
+0x0A0C06F5, 0x0EFBFD0B, 0x0A0EF611, 0x03F4F8F5, 0xFDF10CEB, 0x13140CFD, 0xF712F80A, 0xF1F4E903,
+0xF5030203, 0xF80900F8, 0xFDF8F40B, 0xFEFBFD0A, 0x070813F5, 0xF9FA0B14, 0xFAF7FD17, 0xF5F50603,
+0xF916F210, 0x070F12FB, 0x0DF3F5FC, 0xEA11F207, 0x0DF70DF7, 0x10F1F4F4, 0x0BF409E8, 0x0606050E,
+0x09F50EFF, 0xF70406F8, 0xED0C11FA, 0x0F0400F3, 0x0208F4F8, 0xF9100EF0, 0xFCEEEDF3, 0xF1F5FE14,
+0xE0E80DFE, 0x0A0EF5ED, 0xF3E7F90B, 0x06E7F7FE, 0x12FE06F9, 0x0804F804, 0xF409F5F9, 0xF3F80EF5,
+0x02F6EFF2, 0x120AFF0E, 0x0D0EF4F8, 0xF7F80408, 0x0400F0F3, 0x150112F2, 0x0719ECF2, 0x0403EDFC,
+0xFBF205F8, 0xF00DF30F, 0xFC0CF413, 0x08F9F2FD, 0x1107FA03, 0xEC11EDFE, 0x0DF1F810, 0xFC0B11F9,
+0xF9FE0AFD, 0x0B0EF4F3, 0xF9F1050C, 0xFC0EF9F8, 0x000F14EA, 0xF00A0107, 0xF903F810, 0x0A040EFA,
+0x0C000203, 0xF40C02FE, 0xFA06130D, 0x100CFDF3, 0x0BF505FA, 0xF5FB00FC, 0xF8110808, 0x05ECEA0D,
+0x04F7F30A, 0xFE090FEC, 0xF9FBEE08, 0xFD0CEF0E, 0x09F80B0A, 0xF90BF9F4, 0x0EFB0C0C, 0x10EFF2F0,
+0x09F8F0FA, 0x060B0909, 0xF4FF0F13, 0x06FA0E16, 0x0515F512, 0x0E0B0708, 0xF6FBF9F7, 0xFBF405F2,
+0x050A1207, 0xFA001C0C, 0xFB0FEBEE, 0x0B13100C, 0x0D08F6FB, 0x16FEF2F9, 0x12F9F412, 0x09F600F5,
+0x02040B09, 0x0AF11310, 0x0C160A06, 0x0E09FF0E, 0xEF0B0CF3, 0x13F40DF5, 0x0BF704F9, 0x07EE0A00,
+0xF0F504F6, 0x0BFAFCFB, 0x0B0BF70A, 0x0207FF08, 0xF20B09E7, 0xF9F1F115, 0xF0090812, 0xFF0DF5F8,
+0x0C080709, 0x0512F3EF, 0xEE110708, 0x03EBFCFF, 0xEE0D08FE, 0x110BFCF6, 0x15F61408, 0xF413F30D,
+0x06F2F2F1, 0x04120BEF, 0xF90CF30B, 0xE40400FB, 0x0BFC1A09, 0x130109FD, 0xFF08E7F9, 0xF2FAF4F8,
+0x060BF901, 0xF112EE02, 0xFF060D0F, 0xFAFC0DED, 0x09FFF6FF, 0xF304ED0D, 0x050AF8F3, 0xF40403F8,
+0xF5F6070B, 0xF8F7FF00, 0x170E0708, 0xF808FFF4, 0x03F80C0F, 0x0A06FCF7, 0xF3EFF404, 0xF10D09FD,
+0xFDF9F016, 0x04FD06EF, 0xF5070EEF, 0xEFF20411, 0xF310FDF1, 0xF50AFB11, 0x040DF4F3, 0xF30307F7,
+0xFC031C00, 0xF008ECF5, 0xF011F5F9, 0xFCF1ECF7, 0x16FF0F0C, 0xF9F611FC, 0x0CF70D04, 0x020C0BFF,
+0x06FE0B09, 0xF9080C0C, 0x080DE706, 0x030FFAF8, 0xFF0C0D08, 0x03051108, 0xF402FA10, 0xF4FE0502,
+0xF7F6F2E9, 0x0DFBEB11, 0xFAF2F2F1, 0x0E06F60B, 0xEDEA0EF9, 0x09EDF30B, 0xEF0CF202, 0xFE0208F3,
+0x000D08FB, 0x0FF817F4, 0x0F0DFC01, 0x0D02FF0D, 0xED060EF1, 0x0B0CF0F4, 0x0EF80712, 0x0DF31402,
+0x110EF3F2, 0xF208F60C, 0x02000B06, 0x1106E901, 0xF309F708, 0xEEF003FA, 0x00F9EF05, 0xFC08FDF9,
+0x09050B08, 0xF5FB180A, 0x10F7EEF4, 0xF10F15F0, 0x0712FF10, 0xF5FFFB08, 0x11F6F0F1, 0xFEEEFC18,
+0xF0E806F2, 0x10F90DF9, 0xF30900FD, 0x0A06F40B, 0x12EE0004, 0xED0A0AFE, 0xED04F5F8, 0xFE09F7F3,
+0x01F601F8, 0xF7EA0405, 0x04080EF5, 0x0F1CF201, 0x0712F70F, 0xF0F21205, 0xFF0A1004, 0x0AF4F30D,
+0x0DF3000D, 0xF6000B01, 0xEF0DEDFA, 0x0700F8FF, 0x03F7FBF7, 0x06020D0B, 0xFCF7F6F0, 0xFA0208F2,
+0xFA0B04F1, 0xEE04F6F9, 0xFFEEF907, 0x080106EF, 0x0FF8F007, 0xFFEB0BE4, 0xF10FF8EF, 0x080AF3F9,
+0xEF0BF311, 0xF00FF504, 0x0D100100, 0xF10BEEF9, 0xF3F8F612, 0xFB00FE0C, 0x06F30BF0, 0xF2030D11,
+0x0002EB18, 0xEFF8FE07, 0x03F6EE14, 0x08ED08FF, 0x12150AF1, 0x06F0170C, 0x050F0C16, 0x1200100D,
+0xFAF70707, 0xF0FA100E, 0xEF090D01, 0x09EE0808, 0x0809F2F5, 0x03FF090C, 0x060410F1, 0x01EE16F7,
+0xF41015F9, 0x12F10B0C, 0x0FEBF1F7, 0xF906F40B, 0x0CFD02F6, 0x0FFAF00E, 0x0D030BF2, 0x0BF711F4,
+0xF1F30A06, 0x0CF5F9F0, 0x031A0D0F, 0x0CEC0608, 0x08EEF5F5, 0xF202020A, 0xFAF7F1FB, 0x0FFB07F9,
+0xF5010C0A, 0xF0F6FA0C, 0xF70FF0FF, 0x08ECF80E, 0x0EFBEC10, 0x01F0EF14, 0xE9030C08, 0x0A0EEFFD,
+0xF7001415, 0xEF04FCF3, 0xFF0C13EE, 0x05F4F2FC, 0xF9F3E7F7, 0xEC0CF6FE, 0xFDF70702, 0xFE12EFF0,
+0x0FFB0D07, 0xF6E8ED03, 0xF40607F5, 0x06040F0D, 0xF60700F1, 0x080503FA, 0xEE0B06F8, 0x0114050A,
+0x0DFF0B11, 0xF5EFF7ED, 0x11EE0F13, 0x0201EAEF, 0xF80BF80F, 0x070D0F0C, 0x090502F0, 0x0BE70401,
+0x0A0CF0F4, 0xF601F3F7, 0x1AEEF912, 0x11060C03, 0x09EDF7F9, 0xF6ED1708, 0xF0FA0E02, 0x0DF20FFC,
+0xEFFCF7F3, 0x090EF50C, 0xFAF8FDF9, 0x0F0E1304, 0xF117F3F9, 0x0CF3020D, 0xF8FBF705, 0xFBFEF0ED,
+0xF5F1EB14, 0x0D07F81B, 0xF9F704F4, 0xF1F3FE09, 0x03030DF6, 0xFA02F1F5, 0x11F4F600, 0x16081215,
+0xF5090B0A, 0xFA0C0AF0, 0xF60F0E02, 0xF3E8160D, 0x08FDEEF8, 0x10F907FC, 0x0AFE00F5, 0x0AF0F00F,
+0xF4F7EE0B, 0xFFF3F4F5, 0xFDF718EF, 0x0CFC0B10, 0xF70AFEFE, 0xFCF2EDFB, 0x08EC0F15, 0xFBEE11EC,
+0x0BF6080E, 0x0D02F702, 0xF3FE09F9, 0xF9F30A10, 0x0FF20809, 0xF910FDF8, 0xFA060EEE, 0x10FBFE06,
+0x150C0810, 0xEE0D160B, 0xFF08FB0C, 0x0411FC10, 0x09F8FEF6, 0x0BFC10F2, 0x0DEE0D07, 0x0C03F40D,
+0xF1F5FC11, 0xF80C0011, 0x06EF0208, 0x070C08F6, 0xF807F80C, 0x10090000, 0x050EFD0F, 0xF80CF216,
+0xF9FFF2F9, 0x08EE09F8, 0x09EEFFF5, 0xF8F70CF0, 0xF609F803, 0xF90AF509, 0x0E00FE0E, 0x05F7FE0A,
+0xF807F1F6, 0xFCF5F6FF, 0x0AFE0BFD, 0x09F500E5, 0x0DF8FC0C, 0x070808F1, 0xEDEEF00D, 0x0900FBF2,
+0xF407FAEA, 0xEFFA0CED, 0x10170A0B, 0xF807F6EA, 0xF1ECF9FF, 0xF5FEF4FF, 0x0E020B11, 0xFFEDFC0B,
+0xF3F4ECE6, 0xEE0AF6F4, 0x09F7FE05, 0xF4F2EAFA, 0xF7F70D06, 0xF708EF07, 0x10F8FCF7, 0xEFFB08F2,
+0xFA05FDF7, 0xF3F31111, 0x0109ECFB, 0x0DF1F208, 0x0EF3F307, 0xFFF1F4FE, 0xEDFF12FA, 0x13080405,
+0xF307040D, 0xF408FCFC, 0x10120500, 0x090AEC07, 0x0CF10907, 0x09EEF8ED, 0xFCED0CFB, 0x0CF91008,
+0xFB0FFCF2, 0xF709F7F6, 0x080608F8, 0xF70BF60C, 0x03F60808, 0x0507F9FC, 0x13F3F40C, 0xEC000A0F,
+0xF7F307FD, 0xF2FF0B0E, 0x03FCF5F4, 0x04E4FE0B, 0x0F0BFEF4, 0x100C02F5, 0x13E9ED0D, 0x0204F4ED,
+0xF5F3FAF1, 0x05FD0A05, 0x00F4E4FA, 0xF9FA0EEC, 0xF308F50F, 0xFAF8FB0C, 0x14F70B0A, 0x090A080B,
+0x011207F4, 0xF0070AF0, 0xEDFE0EF3, 0x1311EF09, 0xF8F9F5F1, 0x04F5F507, 0xFFF70FFD, 0xF1F50413,
+0xF6F8F50F, 0xF7FEF00A, 0xF70104F1, 0x0D04F717, 0xEBF31209, 0xFFF50CE7, 0x0CF7070C, 0xFA0AF50A,
+0xF5FEF6F1, 0x050EEF00, 0x0705F6EF, 0x1204FAE5, 0xF80BF9FD, 0x0AF4FDEF, 0x08F80307, 0xEE04050C,
+0xFBEFED07, 0x0A120401, 0x1208F2F1, 0xF6F31315, 0xF7F3E909, 0xF1F90F08, 0x03E40709, 0xFB0BFD0E,
+0xF5F9F7F8, 0x0AF7FEEB, 0x12F4F306, 0x12F1FBF7, 0xF20606F6, 0xFAFB1402, 0x0E11FBF2, 0xFAECF8FD,
+0xFAEEFCF6, 0xFA07FD02, 0x0DFCF604, 0xFAF4FC09, 0xF100EF10, 0xFDEE08F8, 0x0D0B14F0, 0x0BF30DEC,
+0xF9000FF1, 0xF8090E06, 0x09EB03F7, 0x0FF90DF5, 0xEC11F6F8, 0xF6EE09FE, 0xF5F0F9FA, 0xF907EF0B,
+0xFCEE06F8, 0x0FFEFB16, 0x0AFD0805, 0x05F10A08, 0x0CF303F7, 0x0115F3FA, 0xEE0D0A0D, 0xF9F6F80E,
+0x100A0AF8, 0x0BF702FC, 0xF6080705, 0xFD01F3F4, 0x0DFE0101, 0x0EF7FF0A, 0xF00BFFF9, 0xF8FBEF0F,
+0x1101F7F6, 0x1104F5E7, 0xF81709F6, 0x0809F7F5, 0xFEF509F8, 0xEBFB00E8, 0x0800FFF6, 0xF111FAFE,
+0x14F2F6F5, 0xFAEF0108, 0x0FFB100F, 0xF0FB090C, 0xF608EF0B, 0xF304FB19, 0xFEEE0E11, 0x12030908,
+0xF3090907, 0xF707FC11, 0xF8EDFD0F, 0x04F2F5F5, 0x03FEF2F6, 0xF00B02FA, 0xFBF805F9, 0xF5FA1012,
+0x08060E06, 0x12E8F709, 0x0AEAFCEC, 0x080EF10C, 0xF510FEF8, 0xEF06F6FD, 0x0F0508FD, 0xFFF8FA05,
+0xF6091212, 0x07F114F7, 0x070CF50B, 0xF3F501EF, 0x080BF00B, 0x06F9FDEF, 0x08F5EEF2, 0xFA0D0C05,
+0x02FFF90E, 0x050AFA08, 0x0803FF00, 0xF40901F5, 0xF113F514, 0xF9080DF9, 0x03F6000A, 0x170AFCFE,
+0x08050A04, 0x09E5F2FC, 0x0B00F00E, 0x10EF100A, 0x0BFF10F1, 0x120602FD, 0x0AF1F703, 0xF50DF811,
+0xEBF5F012, 0xF908020C, 0x030112F2, 0x16F9E0F5, 0x06070008, 0xFEFAEAF6, 0xFA0D1305, 0xFFFEFA14,
+0x0602F9EF, 0xF2F90202, 0xEF0E10ED, 0x06F00BFD, 0xF0E90503, 0x1506FAF2, 0x01F80A0D, 0xF6E90304,
+0xF1F810F8, 0xF5F60A00, 0x0309F9F5, 0xF1F4F9FA, 0xF4FA0A07, 0xE5080803, 0xF7F9040B, 0x0FFC0FF9,
+0x0AF4FCF5, 0xF0F20B02, 0xFAFB02FE, 0xF3000D0E, 0xF3FAF9FD, 0x02040209, 0xED0DF1F4, 0xF6F00DEA,
+0xFC0004FF, 0x050BFF0D, 0xFFFBF80D, 0xF40302F8, 0xF8FA07F2, 0xF103F907, 0x050B08FB, 0xEF010E0C,
+0xF8030DFD, 0xF814F60C, 0xFA09F506, 0xF4F4F2FE, 0x09F8EFED, 0x03F612F6, 0xF609F20D, 0xF90BFB11,
+0xF60EF5F8, 0x00F60AF9, 0x0D0112E8, 0xF60900F0, 0x0C0008F8, 0xF5ECFD06, 0xEFF9000E, 0x0411FA09,
+0x110B0BEF, 0x11EA0301, 0x0B0CF10A, 0xF1EFF50A, 0x111004FD, 0x0807FDF5, 0x0AF5F100, 0xF8080BF3,
+0x0D01F7F5, 0x000716ED, 0xF3F6F80A, 0xFDF30513, 0xF8FA0B0E, 0x0DF80103, 0x020DF308, 0x10F6050B,
+0x09F7F609, 0xFCF103F0, 0x0709F6F4, 0xF40D12F6, 0x0B02FD0B, 0xF2FC10ED, 0x04EDF7E9, 0x040E0E0E,
+0x090708F2, 0xE90808F9, 0x0E0CEA13, 0x06F103FC, 0xF80C0506, 0xF4FF0DFB, 0x060A08F7, 0x09EBEE07,
+0xF4F8FB0A, 0x0CF60306, 0xFB1EF1FF, 0x08F90C0E, 0x160BF5F5, 0x10F604EE, 0xF40302F7, 0x040507FF,
+0xFDF3FD09, 0xFD0FFB0D, 0xF8F406F8, 0x0BFAF40C, 0x16F6FFF3, 0xFC1F0B0C, 0xF3EEF50F, 0x08F5EB0D,
+0xF0FD0BF4, 0xECF5F9F7, 0xF30100EF, 0xF80BE9F5, 0x0200F50F, 0x08F7F8FA, 0x10F0F4F5, 0xF3ECEFFA,
+0x09FEF5F1, 0xFEEAF402, 0xFAFC13FC, 0x15F8F70F, 0xF7060700, 0x07100D0B, 0x1705F901, 0x0EFF0605,
+0xF407FA16, 0x02FA0615, 0xFDFF0BF4, 0xF211FA0F, 0x0F0406F8, 0x10EEEB0B, 0xEBF1FF12, 0x170E130F,
+0x0B0BF3F4, 0x03120AF8, 0x00160304, 0xF7F6E3F4, 0x0DE6EEEF, 0xEC07F5ED, 0x050F060B, 0x141705EE,
+0xFCFE0AF2, 0x16050AF5, 0x01FEF6F5, 0x0EEFFD0B, 0x0BFDEB15, 0x02FF0507, 0x1507F409, 0x03011609,
+0xFCEE090D, 0xF202F3EB, 0x07FB040D, 0xFAF614F9, 0x0F07070E, 0x0AEFF2F6, 0xFE0604F6, 0xF709F908,
+0xECFE06F1, 0xF1140E0F, 0x0BEEFCEB, 0x13F60DFC, 0xED140FF2, 0xF607F3EF, 0x10040D0B, 0xF2FB0D03,
+0xF4F40CFC, 0xF10AF605, 0xF1FBF20D, 0x0E0D0BF6, 0xF50213F8, 0x0C060F0B, 0x13FBFB0E, 0xEBFFEE0F,
+0xF40909F7, 0xF8090E07, 0xEC0F0A02, 0xF6F70818, 0x0DF0F105, 0xF90B09F8, 0xEFF6090D, 0xF6FE020C,
+0xF6ECEFF0, 0x1409F7F4, 0xF9F3F00A, 0xF4040110, 0x10F1FB05, 0x13EB0B05, 0x110C0111, 0x0F05F3F9,
+0x12F3ED0B, 0xECFC09F1, 0xF90BF8F3, 0x0D12030B, 0xF10403FC, 0xF403FA11, 0xF1FC0A0F, 0xFE03F40B,
+0xE9EF0AFC, 0xF6FB0B09, 0xF7FBF111, 0xFFF5F00C, 0xF205F004, 0xF80B01F8, 0x0BFC1AF7, 0x00F61509,
+0x13FB0F00, 0x09FEEE0C, 0xF7F7EAFB, 0x130F0D08, 0x00060809, 0x130BFBFD, 0xF00F0E15, 0xF10EF912,
+0xF507F0F8, 0x0502010B, 0x0BFAF8F0, 0x0307F614, 0xFEF30508, 0x09060B15, 0xFAF8F3F9, 0xEBF2F8FD,
+0xF9060AF8, 0xEAEE12F6, 0xF406F0E8, 0xF405FC09, 0x130612F7, 0x0D07F811, 0x0D03F8F8, 0x0100130C,
+0x0CF9F20A, 0xF30406F9, 0x0CF5F4F7, 0x0006F10B, 0x11F2F0F7, 0xE80DF60C, 0xFE02F6F7, 0xF70607FB,
+0x130AFCF5, 0xF8F71006, 0x0AFCFDF4, 0xF00E04F1, 0x16F5FCFE, 0xF6FA06FA, 0x09F9ED17, 0xFE051106,
+0x0D0CED0A, 0xEDFC14F4, 0xF81012E8, 0x030303FC, 0xF400F8FD, 0xFDF3F407, 0x0B091406, 0x0CFCF6F4,
+0x180D110B, 0x0DFBF10B, 0xFBE4FAF9, 0x0B10F417, 0x0608F9F2, 0xF2F2F904, 0xF80306F7, 0x0902F3FA,
+0x080EFA07, 0x03F00600, 0xE2ED0DF1, 0x0AFB140A, 0xF50FFAEB, 0x0AE608F5, 0x0DF8FB0B, 0xE7F206FC,
+0x050D0BFB, 0x0204FDF5, 0xFBF70706, 0xF4F0F60B, 0x0B07F7FC, 0x01F7F905, 0x0F16F309, 0x0C0AFAF0,
+0xFDF2010F, 0x0BFF040D, 0x060E04F2, 0x0FEA0915, 0x0F020AF3, 0x06080E02, 0xFFF906F5, 0xF600F1FA,
+0x060E1104, 0xFCEF0CF7, 0x0CF30D14, 0x010F03F6, 0xF9FAF6EE, 0xF6F112FE, 0xF0F302F2, 0x12080FF1,
+0xF911F002, 0xF0F6F010, 0x0D02FC06, 0x10F8FEF2, 0xF6FCE703, 0xEA12FC0D, 0xFFF6FC13, 0xF407F0F8,
+0x0DF5010D, 0xEA0C08F4, 0x02050AFB, 0x090DF6FF, 0xF2F4F709, 0xF104ED0E, 0x0906F8F6, 0xF8F806FB,
+0xF8F20F0D, 0xF8F3F7FA, 0xFE04FB02, 0xF80DF7F9, 0x030EF400, 0x0A05EE08, 0x04EB06EC, 0xF6F50FEF,
+0xEF0E03E7, 0x13FE090B, 0xF70FFC0E, 0x120B150E, 0x0712EDF4, 0x0E04EDF8, 0x0D0DF510, 0x080EF3EE,
+0x0DF702EF, 0x0902E91A, 0xFD10F4EC, 0xF1F7FA0F, 0xFEFDF4FA, 0xFDF60F04, 0xF10FF20B, 0x031017E9,
+0x12EF03FE, 0xF3F6110C, 0xFEF4FC07, 0xF20A08EB, 0x020613F0, 0xF5F6FB0A, 0x07160207, 0x15F5F20B,
+0x18FFED0B, 0x0F11F911, 0xFFEF0B08, 0xF3F8F8F8, 0x0AF40B10, 0x0FF70A04, 0x0AEB13FE, 0xEE0B0C0A,
+0xF5020605, 0x0A140A00, 0x010EF6F2, 0x1A0304FC, 0x08EB0FFF, 0xF0FDF617, 0x12FC01F4, 0xEC1709FA,
+0x0C0C02FA, 0xF90DF9F9, 0xF0F50311, 0xF1100C04, 0xF20200FC, 0xF2141703, 0xFA051100, 0x0D14F8FC,
+0x03F2F6FE, 0x04FCF6F6, 0x10FAFA03, 0x0309FB05, 0x09F00DF4, 0x0A08F4F3, 0xF3F5EFEF, 0xF106FBFE,
+0x050105F8, 0x0D09F0F8, 0x0E130EF1, 0xFAF00B09, 0x080D11ED, 0xFDF703F8, 0xF8F10AFC, 0xFE04ED0A,
+0xF4100B08, 0xF1FCF10F, 0x050E14F4, 0x05070D04, 0x0AEC100C, 0x0D0BFCF6, 0x01FAEB0C, 0xFF0C0DF8,
+0x010E0DFF, 0x07F7F70F, 0x00FBF6FC, 0xF9FB0D09, 0xF1ED080D, 0xFCF9EDF4, 0xF3F80C0B, 0xFD0210F4,
+0xFBF206F2, 0xF3F5F7FC, 0xF8FDFFF1, 0xF0020908, 0xF804F505, 0xF8F2080B, 0xF0FA09F3, 0xEFF8120A,
+0x14EDF8EA, 0x0CF40E15, 0x0EEB0600, 0x02FD01FB, 0xF5F30D0F, 0xFFF400F1, 0xF30F0909, 0xF9ECF107,
+0xEE0AF0FF, 0x05FA070D, 0xFD0CFB06, 0xF8F7EFEE, 0x13F0030B, 0x050404F4, 0xEE0FF6F5, 0xFC0813F5
+
+output0 =
+0xCE63DECD, 0xD5F54E4C, 0xB969BECF, 0x67199350, 0x73BD1B5F, 0xF3FA3DD7, 0xB72F3304, 0xCA6C9E7F,
+0xC75EBD3C, 0xE9183BC1, 0xD2EFF1F5, 0xDB98D960, 0x9183FF24, 0x84E53C2E, 0xBC0ACB99, 0x7544F27D,
+0x61B01F8C, 0x6F8E7BCA, 0x0F9A1912, 0xA4DE41C3, 0xFB1F18F3, 0x44764A35, 0x9525E193, 0xAD6AFC2C,
+0xEAC9CBE7, 0x82E626C3, 0x6764F162, 0xB7180FC5, 0x92F0BF10, 0x6BE2A423, 0x6652CA83, 0x76AB8A79,
+0xD2DC0142, 0x3684A5B0, 0x6AF81D1E, 0xCE7B11D8, 0x5C0A7AA6, 0x9B519157, 0xCF71DB9C, 0xE66B5219,
+0x0976A858, 0x97CCD7A4, 0xBD21A44D, 0x694DB77D, 0x2046F400, 0x66BF01FF, 0x4FE7F1B2, 0x7D287C99,
+0xA6DD65A8, 0xDDAC14DF, 0xB4EA7458, 0x9BF75449, 0xBCCF3BC5, 0x59B3E1D5, 0x04D5FEAA, 0xA91CED07,
+0x264A3E33, 0x314BE435, 0x47FB659B, 0xC8C6CBDD, 0xD4BAF083, 0x51A5AE91, 0x39A33C7A, 0xC54DBA59,
+0x81FD7FFA, 0xE2A3941C, 0x386750ED, 0x85C6A1CF, 0x52E46581, 0x2DD58578, 0x4F8C20DC, 0xCA6C89B8,
+0xD33AF49E, 0xB73D9A1C, 0x8F5992A5, 0x4613FE36, 0x8F724B6A, 0xD2C9A290, 0x5C4791D6, 0x8AA4DE2A,
+0xBCA9EEF4, 0x769D6618, 0x71DF1DFC, 0xE9DC6A93, 0x99E831C3, 0x88B8CBD4, 0x4C9E63C5, 0xBEBC2792,
+0x9E54A535, 0x55181DEF, 0x0F83F8D2, 0x79A8094D, 0x2DA8AAEB, 0xD64C6C17, 0x4F0AADB5, 0x20CB1D7F,
+0x2D6E9F16, 0xB97E8AA9, 0x36167C67, 0x8D84329F, 0x4002AA1C, 0x6326776B, 0xB9B50F8F, 0xF9C52D71,
+0x4D1A117F, 0x604A6DEE, 0xBB19DFB2, 0x96121F4E, 0x9E7C8D9E, 0x00F8F1F3, 0x204B8054, 0xA67E9C60,
+0xC534F776, 0x94B8C032, 0x38E7CFEC, 0xF1E48A55, 0x821E3625, 0xFAC9EBD0, 0xF3D38EF2, 0xB4DA79FB,
+0xF32472
+
+harq_output0 =
+0x0FFA0103, 0x130C0B02, 0xF309F6E7, 0xF70F07F1, 0xF7090FF8, 0x050409F2, 0xF80AFAF7, 0x00F60EF5,
+0x06FC060D, 0x080DFB03, 0xF4EDF9F9, 0xFCF9FEEA, 0x0F0C12F8, 0xF9F31708, 0xF60C02FF, 0xFF110310,
+0x0BF80F0F, 0x02F6F2EE, 0xEDF20A06, 0x0709FEF2, 0x14F5F0F0, 0xF70C0018, 0x12020FEF, 0x0602EF08,
+0xF40A0200, 0xEE0C0BFC, 0x0606ED01, 0xF2F709F3, 0x15110E10, 0x06EC06F8, 0xFBF10CF8, 0x0314FEF6,
+0xF5F4FC0C, 0xF00C00FF, 0xF6FDF9F6, 0x07F30801, 0x0F04F40C, 0x0406F305, 0xFAF9F808, 0xF20DF109,
+0x010A0AF8, 0x070AFC03, 0xF108120A, 0xF8F9F1EC, 0xEEEB09FF, 0x140C0D01, 0x04E5EF10, 0xF616130C,
+0x0314F4EC, 0x09FA09F2, 0xFAFAF714, 0xFAF101FD, 0x06030FF4, 0x17F3EFFA, 0x09FEF109, 0xFDFEF9FB,
+0xF2080B02, 0x0CF90B07, 0xEB0F0D06, 0xF71009FE, 0xEF110AF8, 0x0AF70BF9, 0x170A1508, 0xF8FDFAF1,
+0x0204F3EB, 0xEFFE0315, 0x0C06000B, 0xF10C0A0E, 0xEC0EF9FC, 0x08F0F2F3, 0x09FD02F7, 0x0B11F610,
+0xF8F1F8F7, 0xF8FB0A09, 0xFB030A13, 0x040804F0, 0xE8080813, 0xF1F4FFF3, 0xEBFCEDF7, 0xF7F00AE8,
+0x00F1160E, 0xF007F301, 0x0E13F211, 0x07F815F4, 0xF9EEF70B, 0x0EF7FE15, 0x0706E80C, 0x0611F60E,
+0xFB0B0CF5, 0xF4F50E11, 0x14FDF1EB, 0xF403120A, 0x09F80303, 0xFB0AF80B, 0xFA1408F5, 0xF503F717,
+0x0FFB1610, 0x1107F3FC, 0xF1F4F7F7, 0x060EF4E8, 0x04F8F5FF, 0x04F30CFA, 0x10F008F8, 0xF514EEF3,
+0x0EEDE8FE, 0xE7FEE70B, 0x0404FEF9, 0xF8F509F9, 0x0A0EF6F2, 0xF8080EF8, 0x01F200F3, 0x03FC19F2,
+0x0D0FF2F8, 0xF9FD0C13, 0x11FE0703, 0x0BF9F110, 0x0EF3FEFD, 0x0EF8F10C, 0x0A070FEA, 0x04FA0310,
+0x0CFE0003, 0x0CF3060D, 0xFBFCF5FA, 0xEC0D1108, 0x09ECF70A, 0x0C0EFB08, 0x0BF4F80A, 0xEFF0FB0C,
+0x0B09F8FA, 0xFA16FF13, 0x0B081512, 0xF4F2FBF7, 0x000C0A07, 0x130C0FEE, 0xFEF908FB, 0xF6F5F912,
+0xF1100409, 0x090E1606, 0xF4F50BF3, 0xEE00F7F9, 0xFAFBF5F6, 0x07080B0A, 0xF1150BE7, 0x0DF80912,
+0x12EF0809, 0xEBFF1108, 0x0BF60DFE, 0x130DF608, 0x12EFF2F1, 0x04FB0C0B, 0x01FDFC09, 0xFAF808F9,
+0x12020B01, 0xFCED060F, 0x040DFFFF, 0x04F80AF3, 0xF700F60B, 0x08F40E08, 0x06F7F80F, 0x0DFDEF04,
+0xFDEFF916, 0xF21107EF, 0x0A1110F1, 0x03F70DF3, 0x08F50300, 0xF1F711F9, 0xF6FCFF0C, 0x0CFFF704,
+0x080CFE09, 0x0FF80D06, 0x05080C08, 0xFE020210, 0xFB11F6E9, 0x060BF2F1, 0xED0BEAF9, 0x02F30C02,
+0xF8F40DFB, 0x020D0D01, 0x0CF406F1, 0xF302F812, 0x080C0EF2, 0x06010006, 0xF0FA0908, 0x08F9F905,
+0xFB0A0508, 0x0FF0F7F4, 0xFF081210, 0xEE18F6F1, 0xF9F9E8F2, 0x060B09FD, 0x0AFEEE04, 0x09F304F8,
+0xEA05F6F8, 0x1C0108F5, 0xF205120F, 0xF40D0A04, 0x0001F30D, 0x00FF0DFA, 0x020BF7F7, 0x02F2F7F0,
+0x04F90BF1, 0x01EFEE07, 0xEBE4F807, 0x0AF90FEF, 0x0F040B11, 0x0BF91000, 0x000CF812, 0x0311F3F0,
+0xF8070218, 0xEDFFF614, 0xF00C15F1, 0x000D0F16, 0xFA0EF707, 0xEE080901, 0xFF0C09F5, 0xEEF704F1,
+0xF10C10F9, 0x060BEBF7, 0xFA0EFDF6, 0xF7F403F2, 0xF5F0F306, 0xEC081A0F, 0x020AEEF5, 0xFBF9F7FB,
+0xF60C010A, 0xEC0E0FFF, 0xF014FB10, 0x0EFD0308, 0x04F30015, 0xF4FC0CEE, 0x0CFEF3F7, 0x12F0F702,
+0xE803FB07, 0x040D06F5, 0x05FA07F1, 0x140A0BF8, 0xEFEDFF11, 0x01EFEE13, 0x0D0C0B0F, 0xE70105F0,
+0x01F70CF4, 0x0603EE12, 0xED08EDF9, 0xF2FCFA02, 0x0E0CFCF3, 0x0E04F8F9, 0xF30D17F9, 0xFEEDFB05,
+0x071BF114, 0xF309F7F4, 0x02F503F6, 0x0815F400, 0x0CF0090A, 0xE80D0F02, 0xF9FCFDF8, 0xF00FFEF5,
+0xF3F5F70B, 0xFC10F7EF, 0xF2FB0AFE, 0xEEECEC15, 0x0202F60E, 0xF310FEF9, 0x10F8F209, 0xFB0606EE,
+0x0D0B0C10, 0x1110080C, 0xFCF2F8F6, 0x030DEE07, 0x0C11F511, 0x0CF6EF08, 0x0900070C, 0x0C160E0F,
+0xEEF8FFF9, 0xF7F0EEF5, 0x0A090903, 0xF70A000E, 0xF5FF07F6, 0xF5E5FEFD, 0x08F1F80C, 0x00F2EE0D,
+0xFAED07EA, 0x07EA170B, 0xFEFFECFF, 0xED0B0211, 0x0AF4F4E6, 0xF2FAF705, 0x0807F706, 0xFBF2F8F7,
+0xF31105F7, 0xF10809FB, 0xF1FEF307, 0x0805FFFA, 0x08FC070D, 0x0A071200, 0xEEEDF107, 0xF908EDFB,
+0x09F60FF2, 0x0B0C06F8, 0x07FCF608, 0x000FF30C, 0xFF0EF3FD, 0xE40BFCF4, 0x0CF50BF4, 0x04EDE90D,
+0xFD05F3F1, 0xFAECF4FA, 0xF80C080F, 0x0A0BF70A, 0x07F012F4, 0x1109FEF3, 0xF507F9F1, 0xF513F7FD,
+0xFE0AF80F, 0x041701F1, 0xF5E7F309, 0x0A0AF70C, 0x0E00FEF1, 0x04E505EF, 0xF4EF0BFD, 0x040CF807,
+0x1201EF07, 0xF31508F1, 0xF908F309, 0x0B0EE409, 0xF7EBF9F8, 0xF1F7F406, 0xFB0206F6, 0xECFD11F2,
+0x0702EEF6, 0xF409FC04, 0xEEF80010, 0xF3EC0BF0, 0x090600F1, 0xF9F5EBF7, 0xEEFE11F8, 0x070BF0FA,
+0xFE16EEF8, 0xF108FD05, 0x15FAF3F7, 0xF60E0D0D, 0xF7FC0AF8, 0x01F40805, 0xF70AFE01, 0xFB0F0BF9,
+0x04E701F6, 0x09F517F6, 0xFBE8F5F8, 0x11FE00F6, 0xEF08F2F5, 0xFB0CFB0F, 0x0419080B, 0x0308EE11,
+0x07110907, 0xF2F5ED0F, 0x0BFAFEF6, 0xFA12F8F9, 0xE8090606, 0x0E0CEAEC, 0x06FD10F8, 0xF80505FD,
+0xF1F70912, 0xF5EF0C0B, 0xF9EF0B0B, 0x0D05F5F2, 0x0A08FF0E, 0x09F50300, 0x08F91314, 0x0AFEF60A,
+0xE5FC0504, 0xEF0A000E, 0x06FDFFF1, 0x0D11F103, 0x080CF512, 0xF9F501F2, 0xFAF60708, 0xFE140D05,
+0xF90202EF, 0xF0FD0EED, 0x06F2E903, 0xE904F80D, 0xF600F8F8, 0xF4FA09F5, 0x0803FA07, 0xFCF9F90B,
+0xF202F4F5, 0x000EFBFE, 0x0409FAFD, 0xF0EA0DF4, 0x0B0D00FF, 0x03F8FB0D, 0x0307FAF2, 0x010C0BFB,
+0x140C03FD, 0xF4FE0906, 0xF6F6F8ED, 0x0B11090D, 0xF6F90EF8, 0x09F001E8, 0xEC0600F8, 0x1109F90E,
+0xEA010BEF, 0xEF0A0C0A, 0x07F510FD, 0x08F3F500, 0x07ED01F5, 0xF313F60A, 0xF803FA0E, 0xF60B0D08,
+0xF1F0F709, 0x0DF609F4, 0xFCED020B, 0x0E0EEDE9, 0x08F907F2, 0xF1FC0C13, 0xFFFB0C06, 0xEB070AF7,
+0xF606F80A, 0xF90E1EFF, 0xF6EE0BF5, 0x05FF03F7, 0x0F0DF309, 0xFA0CF4F8, 0x1F0CF6F3, 0xF50DEE0F,
+0xF5F7FDF4, 0x0BF501EF, 0xF7FA000F, 0xECFAF0F5, 0xEA02FEF1, 0xF80FFCFC, 0x100B0600, 0xFF050501,
+0xFA150716, 0x110FFFF4, 0xEE0B04F8, 0x0E0FF112, 0x12F80BF4, 0xF6F41604, 0x07EDE6EF, 0x17EE0F0B,
+0x05F5FEF2, 0xEF0BFEF5, 0xFF07FD15, 0x01090709, 0x02EBEE0D, 0xF6F9FB0D, 0xEFF6070E, 0x090806F6,
+0x140FFEF1, 0xF6FCEEEB, 0x07EF14F2, 0xFB03040B, 0x0A05F4FC, 0x0DF6FB0D, 0x060B02F8, 0xFF0FFB0E,
+0x090709F7, 0xF7180F02, 0x0BF8F005, 0xFE0CF60D, 0x09F4ECF0, 0x0410F30A, 0xEB05F105, 0x05F90C11,
+0xFCF1F30B, 0x120B0BF3, 0x031104FC, 0x030BFC0F, 0xFB09EFFC, 0xF50CFB11, 0x0BF80504, 0xF609FCF7,
+0xFE0CFB00, 0x0F08F7FB, 0x0BFD0609, 0x0E120F15, 0x020B07F8, 0x0714FAF0, 0x0615F308, 0xF2FDF8F9,
+0xEEF606F8, 0x050906E8, 0x071106F7, 0x000C03F8, 0x04F9F90A, 0x060BF5F7, 0x0D0CF2F7, 0x06FB02F7,
+0xF7060AF5, 0x0EF1FCF4, 0xFAFAF5FE, 0x0506F917, 0xFCF40C0A, 0x03FC10E8, 0xF30700FD, 0xFCF40906,
+0xFB0B0D0B, 0x1017E4F9, 0xF20408F2, 0x02FA03F7, 0xF0000E07, 0xFB0AEDF1, 0xE6F50FEB, 0xF2FCF80B,
+0x04F50DFB, 0xF00BF706, 0xF70507FC, 0x0AF01609, 0xFF0DF20F, 0xEA150EF2, 0x080202F3, 0x00FAF9F5,
+0xEFF70E04, 0x0FF6F314, 0xF1FEFAEE, 0x08F1F3F2, 0xF6101102, 0xF8F20206, 0x120DFC03, 0x07F8F613,
+0x0CF4F50D, 0x0DFF05FB, 0x040EF409, 0xF8FB06F6, 0xF3FAF20D, 0x0DF90402, 0x05080E00, 0xF5EFEBEC,
+0xFE0B0EE7, 0x0B0E0F0E, 0x04F812F4, 0x0EEE0D10, 0x021AF7EF, 0xF70F10EC, 0xF604FDFA, 0x10E90F0B,
+0xF60CEFFE, 0x0AEBF407, 0xF60A06F0, 0xF50B1607, 0x1111FF0B, 0xF8F8EF08, 0xF704F410, 0x0B0AEBFE,
+0x14000205, 0x03FC0EF2, 0xFD17EBFF, 0x17FAFCF4, 0x0DF90CFA, 0x1004F511, 0x140302FC, 0x14FC0500,
+0xFCF6F2FE, 0x0905FA03, 0x08F3F0F4, 0x06FEF5EF, 0x09F801F8, 0xF00913F1, 0xF7F80DED, 0x040AF1FC,
+0xFC0F1008, 0x07040EF4, 0x0BF6EC0C, 0x0CF8FA0C, 0xF70F0EFF, 0xFB09FBFC, 0xF9F4ED0D, 0x02F4F80B,
+0xF5FCF2F2, 0x0208FDF1, 0xF20B0405, 0xF80AFAF3, 0xF415EDEA, 0xFDFBEB00, 0xF4F1F30F, 0xEC070F09,
+0xFA0D0AFF, 0xF7EE0C06, 0x04F4F00B, 0x08F50FF5, 0xF50EF3FC, 0x1006E7F9, 0x04F7F7FC, 0xFC070CFB,
+0x0F12EAFA, 0xF7F00706, 0xF4011505, 0xF7140B09, 0x0AF9F1F8, 0x03060DF8, 0xF2090CF8, 0xF20712F3,
+0xF903EFEE, 0x1102EC14, 0x0A09F1F6, 0xF9F001FA, 0xF8FE01FB, 0x140410F1, 0x0B0402F2, 0x0F0006F5,
+0x0805ECF9, 0xF409F10E, 0x0DE7FD01, 0xEFFD0710, 0xF20403FD, 0x0BF2F6F9, 0x0004F909, 0x0F09FFF6,
+0xF3060DF2, 0x0EEF060E, 0x0CF40705, 0xFDF7FB0C, 0xF4F203E4, 0x0E09F4F6, 0xF5FE04F9, 0x06F3FEFE,
+0xFDFB1102, 0xFD04EE0D, 0x0DFBFCF1, 0xEE14E90B, 0xFB0CEE09, 0x0C13F108, 0xF60703FD, 0x0BF4FCFA,
+0x14F2F0FB, 0xFAF9EFF7, 0xF5010801, 0xF109EEF3, 0xFF0A0514, 0x0C0604FF, 0xFB0EF704, 0xF50EFD0B,
+0xFF05F4FA, 0x07E70B0B, 0xEFFEF4FD, 0x0D0807F3, 0x05100DF6, 0xEFFA1A08, 0x020D090A, 0xFFF5F7FD,
+0x1513F10A, 0xF10BF2ED, 0x0B0F150B, 0xF10306FA, 0x09FB11EE, 0x061007F2, 0xF7F8FB14, 0xF90704EE,
+0x0AF8EAF6, 0xF7E809F9, 0x02F609E9, 0x09E802EE, 0x03F50BE8, 0x040C04F1, 0x0CF41009, 0xFB00EEFA,
+0xFC071611, 0xF9F1F203, 0x0BF0F409, 0x0214F801, 0x0A0AF504, 0x0508F5F1, 0xE916E900, 0x07F4F60A,
+0xF9F010F2, 0xF906F507, 0x0BFB0AF4, 0xF408F0F1, 0x0EFD0A06, 0x03F80AF6, 0x130CFD0C, 0xF1E9F7F8,
+0xF800F502, 0xFEFDFDF4, 0xF90B0713, 0xF506FAFD, 0x0712F9F2, 0xEAF20DF5, 0x10F40D0D, 0x06050B09,
+0xF706090E, 0x0F00ED11, 0xF90E02F4, 0xF1FEFCED, 0x0AF5E00D, 0x06F7F3F9, 0x08F81206, 0xF30EF4F5,
+0x12FF02EF, 0xF7040DF4, 0x151204F0, 0x04ED07EC, 0xF0F3FB05, 0x08F2FCF4, 0xECED11FA, 0xFC110DF8,
+0x0BF4F90A, 0xFCF9F905, 0xF0010014, 0x0A0EF9F8, 0xF4020C02, 0x10FDFA13, 0xF5000B05, 0x05EAF808,
+0xFE0F04F3, 0xFDEFF9EE, 0xF9F9090B, 0x10F20E0C, 0x060909F0, 0x060EF40F, 0x0E0705F5, 0xFB05F6F9,
+0xFA1C0512, 0x0B10FBEB, 0x16F20DF6, 0x090012F4, 0x0A13020B, 0x0EFF0C0A, 0x130DEF0C, 0x070A0B04,
+0x0BFCF004, 0x02FF0BF7, 0xF9F1F209, 0xFFF5F008, 0x05F30C07, 0x03FCEE07, 0x11FCEE08, 0xF4F31514,
+0x040B06F2, 0xE400F9F3, 0x13090B1A, 0xF2F4FFE7, 0xF1EE06F9, 0xFA0DFF0D, 0xF3ED09F6, 0xF40305F8,
+0xF8FFF507, 0xF8FF1707, 0x0AFC030C, 0xF109F3F4, 0x0406FDF0, 0xEF04F50E, 0xF5FBF3FD, 0xF30704F4,
+0xF0ECFC1C, 0xFCECF0F5, 0xF911160F, 0x020B0C0D, 0xF90C060B, 0x03FA08E7, 0x0311FF0D, 0xF405F4FA,
+0x0DEBF7F2, 0x0EF6FAF2, 0x09F3ED0E, 0xFE08EFF2, 0x0F170008, 0x0DFF0FFC, 0x0BF0ED0E, 0x0D140E07,
+0xF2F611F3, 0x11E9020B, 0xEE03F3F7, 0xFCFD00EF, 0xF518090B, 0xF11510EE, 0xF5FB07FF, 0xFEFC11F0,
+0x100DF006, 0x0AF4F300, 0xED0A1200, 0xFEF7EDF5, 0xF7040101, 0x0FF2040E, 0xF01207F7, 0x0AF3FF10,
+0xF60B0D00, 0x07F8EFED, 0x060D03FB, 0xFA08FCF6, 0xEEF6FA04, 0x0806FFF9, 0xFF0B0FF0, 0x08F3F1F8,
+0xF0F5EFF3, 0xF1EE0D01, 0xFBFEF3F6, 0xF20D060B, 0xEFFE00EB, 0x080803EE, 0x0617120A, 0x1210050C,
+0xF010FA07, 0x0908EF0D, 0x030908F2, 0x01160610, 0x120BF415, 0xF9F40FF1, 0x0FF00C02, 0x0B110D0B,
+0x0CF9F10A, 0x0C06030D, 0xF20208F5, 0x0F07FAF1, 0xF0FAF50C, 0x08F8F7F0, 0x01EF0EEC, 0x0AEFE90C,
+0xEFFCF714, 0x05F2FF13, 0xECF6F9E7, 0xFEEFFD07, 0xF6ED0F0D, 0x060FF407, 0x0803F600, 0x0105EE06,
+0xF5F70D0B, 0x02EA110F, 0x070FF8F8, 0x0B040902, 0xF6F30AF0, 0x110C1AF9, 0xF61709F7, 0x0D0FF00E,
+0x09F5EFF7, 0x0F13FAFD, 0x0C02F1F3, 0xFBF0F8F7, 0x0DF8F5EB, 0xF1FEF904, 0xFAF1030D, 0x161211F6,
+0xFA0AF50B, 0xF316F60E, 0x100708EE, 0x0AF00A00, 0xFFF4F4EE, 0x0C0BFD18, 0xFCEDF7FE, 0xFB11080F,
+0x0DF70B08, 0xF90AF309, 0xF9FD0F08, 0x10FEFA0E, 0xEE161508, 0x04FCFFFB, 0x0B1009FE, 0x0CF40D0D,
+0xF800F1FC, 0x07080602, 0x1000F8F8, 0xF8F205FD, 0x0809F9F2, 0xF80C09FF, 0xF9F5F6F8, 0x05FE0EFE,
+0xFCF6F8F1, 0x09000A0B, 0x07080DFC, 0x09FBEDF0, 0xEF0CF4FA, 0xF8F6100A, 0xF5F4F1F9, 0xFFFC0E0B,
+0xEEF6F3EC, 0xF4EA09FE, 0xF7EFF70D, 0xEF0810FC, 0xF311FAFD, 0x0DF201EC, 0xFFF40EF3, 0x1304ED12,
+0xF4FCF304, 0x09EC1005, 0x09F80C09, 0x0C10FC0C, 0xF7F7FBFC, 0xF7F60808, 0x05F90308, 0xEC0A13F4,
+0xF20BF707, 0x04FE03F5, 0x10020FFE, 0x02F413ED, 0x050AF5FA, 0xF90E00E4, 0xFAFBF3F5, 0x0908140B,
+0xF00A0107, 0x13EFED0E, 0x04F5F8F5, 0xF104FF0F, 0xF7F0F6F5, 0x0DF7F704, 0xFF0CEB12, 0xFAF50C07,
+0x05EFF5F6, 0x12FA07F6, 0x0AFDF8F9, 0xEE050803, 0x0A04FBED, 0xF61312F2, 0xF10FF7E9, 0xFBFD0307,
+0x0AFEF5F7, 0x12FB12F3, 0xFA14F206, 0xFAF80EFB, 0xFAFDFAFC, 0xFAFC0DF6, 0xFD08F1EF, 0x0B0D0D14,
+0xF80EF90F, 0x0F0D0903, 0xF609ECF6, 0xF9EFF5F9, 0x0FFBFC06, 0x050A0A08, 0x01F30C03, 0xF9F8EE0A,
+0x0B02100A, 0xFDF3F607, 0x0EFF0D01, 0xF8EFF0FF, 0x11F511F7, 0x08F7F809, 0xEB00FE09, 0xF1FA08FF,
+0xFA0114F6, 0xF0090F10, 0xF3FBF6EF, 0x1209FE0E, 0xF7FCF309, 0x04F5F8FD, 0xF00203F2, 0xF510FB05,
+0x12F7080E, 0x08F10AFC, 0xEFF6F5FE, 0xFFFA0F08, 0x0714F612, 0xF30107F5, 0x06FD08F0, 0xFA0C08EE,
+0x05FA02F9, 0xF40108FF, 0xF90DF1F5, 0x17FC0300, 0x09F2080A, 0x10100BF0, 0x12020B10, 0xF5F80AF7,
+0xF902EBF0, 0x16E00312, 0xFEEA0600, 0xFFFAFA13, 0xF20206F9, 0x060BEF10, 0x15FAF005, 0xF603010A,
+0xF50AF110, 0xF1F903F9, 0xE508F40A, 0x0F0FF704, 0xF00B0AFC, 0xF30DFA02, 0x0202F3F9, 0xF60DEDF1,
+0x05FFFC04, 0xF402FFF8, 0xF1F9F807, 0xEF0E0508, 0xF8F6F80D, 0xF4F2FAF5, 0x031209EF, 0xF9FBF6F2,
+0x000AF6F5, 0xF6000D12, 0xF5FD0C08, 0x04FAEF00, 0x1103110B, 0xF1F50BF1, 0x08FD1104, 0xF80B0AF1,
+0x00160DF7, 0xFD05F3F8, 0x0D01F80B, 0x100502F3, 0xFC0309F6, 0xF41207F6, 0xF2100BFD, 0x040E04F7,
+0xE9080908, 0x06030EEA, 0xF40DF805, 0x09EE0608, 0x0C03F4FB, 0x080CFBF1, 0x100416F5, 0x0407F402,
+0xFDFBFDFD, 0x0BF4F806, 0xFC0B16FF, 0x08EBF3F5, 0xECF9F00B, 0xF8E9F300, 0x08F802F5, 0xF3EF10F4,
+0xFEF409F5, 0x15F7FA13, 0x070DF707, 0x0E0617F9, 0x0206F4FA, 0xF2FAFD0B, 0x10EB0F06, 0x1713EBFF,
+0x030A0BF3, 0xF7E30003, 0xECF50DEE, 0x14050506, 0x160AFC0A, 0x0EFD01F6, 0x02050BEB, 0x031615F4,
+0xF2F3FC09, 0xFA140704, 0x0AF20F07, 0xF7F9FE04, 0xF10EEC06, 0x130D0BFC, 0xF6F3ED0F, 0xF20D100D,
+0xF1F6F40C, 0x0E0BF1F2, 0x0C0FF513, 0xEBEE13FB, 0xF80EF409, 0xF608EC0A, 0xF9090DF1, 0xF602EF09,
+0x14F7F6EF, 0xF401F9F0, 0x130B10FB, 0x0FF31101, 0xEC0912ED, 0x0D03F9F8, 0xF4FAF103, 0xFEF4F10A,
+0xF60BE90A, 0xFFF0F7F1, 0xF801F2F0, 0x00150B1A, 0x09EE130F, 0x130DF7EA, 0x13FB0008, 0xF1F9F00E,
+0x0501F5F0, 0x03F60BF8, 0x090BFE05, 0xEBF8FAF3, 0xEA12F90A, 0xF4FCF4F0, 0x0DF81312, 0x01130DF8,
+0xF3060CF2, 0x00F10CF4, 0xE8F611F0, 0xF707FEF6, 0xF81013FC, 0xF0040AFD, 0xF60616FC, 0xFE1109ED,
+0xED140DED, 0x0303F812, 0xFDF4F4F8, 0x0CF60B14, 0x0DF11811, 0x0BF4FBFA, 0xF2F906F9, 0x09F3F806,
+0x030608FA, 0x0A14E20D, 0x0A08F5FA, 0xE7060DFB, 0x02FD050B, 0xF4F6FB07, 0x01F90BF7, 0x0CFA0FF3,
+0x0B04FD01, 0x0F090604, 0x060E0F0A, 0xF6F1FF06, 0xFC0C0611, 0x01030C0D, 0xF612F9F6, 0x120FF002,
+0xF0F0F9F0, 0x10FE0DFC, 0xEAFCF6E7, 0xF4F0FFFC, 0xEA080D01, 0x09F6020A, 0xF1EDF2F7, 0xF80609F8,
+0xF8F7F80F, 0xF8F7FEFB, 0x0AEE03F4, 0xF60F0406, 0x1309EF03, 0x1215F7FC, 0x0EED07ED, 0x08F30DF5,
+0x09E90D02, 0xF1FAFDF4, 0xFD0FFEF4, 0x0317F1F2, 0xF3111203, 0xF208FEFC, 0xF5FB0213, 0x15F20702,
+0x0FF918ED, 0xF3F8FF0B, 0x0F0A0A0B, 0xEE0C0A13, 0x0A0AF506, 0x1A0401F6, 0xF0F6080F, 0xEC091201,
+0xF9F90C02, 0xF10CF003, 0xF217F200, 0x0DF8FA11, 0x04F603F6, 0x03FB10FA, 0x0AF4090D, 0xF1FBF3EF,
+0x0DF00505, 0xFA0B0E0E, 0xFD030811, 0xFEEDF80A, 0xF1F1F40B, 0x050D0514, 0x0DFC0A10, 0xFF0D01EB,
+0x07F7010D, 0xF90D00F6, 0xFCEDF108, 0xFD10F30C, 0xF3F7FB06, 0xF009F8FF, 0xF808F8F5, 0xEF12F009,
+0x0C0E14F8, 0x02010E06, 0xFF00F50D, 0xF9F1F309, 0x0507EEF0, 0xF8EFFDFB, 0x05041303, 0xFC13EEF6
+
+basegraph=
+1
+
+z_c=
+176
+
+n_cb=
+11616
+
+q_m=
+2
+
+n_filler=
+8
+
+e=
+4640
+
+rv_index=
+0
+
+code_block_mode=
+1
+
+iter_max=
+20
+
+expected_iter_count=
+20
+
+op_flags=
+RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE, RTE_BBDEV_LDPC_HQ_COMBINE_OUT_ENABLE
+
+expected_status=
+SYN
diff --git a/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_HARQ_1_1.data b/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_HARQ_1_1.data
new file mode 100644
index 000000000..63c2d3b61
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_HARQ_1_1.data
@@ -0,0 +1,684 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2019 Intel Corporation
+
+op_type =
+RTE_BBDEV_OP_LDPC_DEC
+
+input0 =
+0xF30110EF, 0x09FB0E0E, 0xFB0BF902, 0x10FF060C, 0xF70A10FB, 0xF007F709, 0x0CF30FF1, 0xFC0B07FB,
+0xEA0FFA0D, 0xFB0B1209, 0x0709F1F2, 0x0BF1F004, 0x000EF10B, 0x08F8010A, 0xF70E0909, 0xF7EC00F6,
+0x05F2F8F9, 0x0A060D10, 0x0DFB0CEF, 0xEFF4F2F9, 0xF80DF8F9, 0xF20809ED, 0xFDFEF3FE, 0xF2FC07F9,
+0xEF12EEF8, 0x0D0FEF0C, 0x011714F4, 0xFDF902F3, 0x05020A13, 0x0A0BF5F8, 0x1517FA10, 0x0DFF04FD,
+0xED0F0FFB, 0x0C0B12F8, 0x10F205EE, 0x14EEF0F6, 0xEEF50606, 0xF701F006, 0xF2120906, 0x0FF31409,
+0x0004F9F0, 0x080005F5, 0x05000E18, 0x080BF50C, 0xE9FA01EF, 0x0DFDE702, 0xF303FC08, 0x0306FDED,
+0x0302FD15, 0xF2F404F6, 0xF60B0DFC, 0xF702F2F8, 0x0D0109ED, 0xECF2F006, 0xFFF50AF3, 0xFB0609F7,
+0xF9FAF2FC, 0xF3010611, 0xF2F20EF8, 0x0EF203EC, 0xF30C050D, 0x0CFB0905, 0x10EAF80A, 0x1103F714,
+0x17FCE4F8, 0xF409F2F4, 0x09000A13, 0x0EF009F8, 0xF00DF90A, 0x0AF612E9, 0x12F4FE15, 0x06F3F307,
+0xFDF4EEF8, 0xFDFBFB04, 0x02F30DF1, 0xE9F0F006, 0x10F80508, 0x0DFAFBF9, 0xE9F10B09, 0x020600F9,
+0x020AF50C, 0x0FED0C0A, 0x05FCF403, 0xF8F3FFF6, 0x0312FD0A, 0x0A05F308, 0x10F10E00, 0x0B0CF40D,
+0x04090FFF, 0x1402F2FF, 0xEF0D0B01, 0x0E00F9F8, 0x08040110, 0x0A04EDE5, 0xEE13080C, 0x05F6F516,
+0x05F414EC, 0xFF030A00, 0xF0F5FF06, 0xF809F20E, 0xF70CF014, 0x0FFAFA0E, 0x1201F611, 0xE10E0EF1,
+0xF40FFA09, 0x13F2F103, 0x0B030B0E, 0xF303FCF3, 0xF405FD09, 0xEF09FEEA, 0x07F908FB, 0xF9FD08FE,
+0xF9F7F602, 0x0506FCF4, 0x060BF4F3, 0x040C0E0D, 0xF5F9F606, 0x02FF0DFB, 0x0BF51112, 0x13F7F5FB,
+0xF10AF6F8, 0x15031311, 0x07F7ED0D, 0x050AF7F7, 0x0101F708, 0xF717FBF6, 0x06FAFA05, 0xF1F8EF11,
+0x11070200, 0x09EEFB04, 0x07EF0601, 0x0603FCFE, 0x0FEC140B, 0xF7F7F806, 0xF00A02FA, 0x0E06F30C,
+0xFEF90A10, 0x0AECF80E, 0xF5F2F907, 0x0B08E804, 0x0902E9F7, 0xEE09F6E9, 0xEEF60210, 0x09F7E8FD,
+0x0B0CFC0B, 0x030C0905, 0xF0F6F109, 0xF0F8F8E7, 0x100A0913, 0xF8FB0817, 0x0204FA04, 0x0FF00008,
+0x02F4FD13, 0xFCE8F208, 0x06EBEF07, 0x0DF1F1F4, 0x0801F5F7, 0xF7EB04FC, 0x0C0A15E8, 0x020B1404,
+0xF502EF0E, 0xF600F6F1, 0x090705EC, 0xF1F008F2, 0xFDF2EC11, 0xE90E02FF, 0xF615F6F4, 0xF3F3F4F8,
+0xFC0BF20B, 0xF9F90402, 0xF512F301, 0xF90E06F7, 0x0AFC080C, 0xF707FB06, 0xF0F6F1FA, 0x0806F4FD,
+0xF6F8F10A, 0x0EFBFDF7, 0xF60EF6FD, 0x0308F809, 0x11050CFF, 0xFF140CFD, 0xF7FEF80A, 0xF1F4FD03,
+0xF5EF0203, 0xF8F514F8, 0x11F808F7, 0x12FBFD0A, 0xF3F41309, 0x0D0FF700, 0xFA0B1103, 0xF50A06EF,
+0xF902F210, 0x070FFEFB, 0x0D070910, 0xEA11F207, 0x0D0B0D0B, 0xFCF1F408, 0xF70809E8, 0x06F2F10E,
+0x1DF5FAEB, 0xF7F0F20C, 0xED0C110E, 0xFBF000F3, 0x0208080D, 0x0DFCFAF0, 0x11EE0107, 0xF109FE00,
+0xF4FCF9FE, 0x0AFAF501, 0xF3E7F90B, 0x06E70B12, 0xFDFE06F9, 0x08F00C04, 0xF409090D, 0xF30C0EF5,
+0x02F6EF06, 0x12F6EB0E, 0x0DFA09F8, 0x0BF8EFF4, 0xF015F007, 0x15ED1206, 0x07050006, 0x18EF0111,
+0x0FF2050C, 0x05F9070F, 0xFCF80813, 0xF3F90611, 0xFDF30EEF, 0x00FC0112, 0x0DF1F8FC, 0x10F7FDF9,
+0xF9EA0AE9, 0xF70E0807, 0x0DF105F8, 0x100E0DF8, 0x140F14EA, 0x04F60107, 0x0D030C10, 0x0AF0F9FA,
+0xF814EE17, 0xF4F802FE, 0xFA06FFF9, 0xFCF811F3, 0xF6F5050E, 0xF5FB00FC, 0xF811F4F3, 0xF0ECEA0D,
+0x04F7070A, 0x12090F00, 0xF9FBEEF3, 0x11F8030E, 0xF5F8F7F6, 0xF90BF908, 0x0E0FF80C, 0x10EF06F0,
+0xF5F804FA, 0x06F70909, 0x08EB0F13, 0xF20E0E16, 0xF11509FE, 0x0E0BF3F4, 0xF60F0E0B, 0xFBF405F2,
+0x050AFDF3, 0x0EEC1C0C, 0xFBFBEB02, 0xF71310F8, 0xF9080BFB, 0x1612F2F9, 0xFE0DF412, 0xF50A0009,
+0xEEF0F7F5, 0x0AF11310, 0x0C02F61B, 0x0EF4FF0E, 0x03F7F8F3, 0xFF08F909, 0x0B0BF00D, 0xF3EE0A00,
+0xF0F504F6, 0xF70EFC0F, 0xF70B0BF6, 0x16F313F4, 0x060BF5E7, 0xF9050515, 0xF00908FE, 0xEB0D09F8,
+0x0C08F309, 0x0512F303, 0xEEFCF308, 0x03FF1013, 0x02F9F412, 0xFD0B10F6, 0x010A14F4, 0x091307F9,
+0x06F206F1, 0x04FE0B03, 0xF90C07F7, 0xE40400FB, 0x0BE81AF5, 0x1301F4FD, 0xEBF4E70D, 0x060EF4F8,
+0x06F7F9ED, 0xF1FEEE02, 0x13F20DFB, 0xFAE7F9ED, 0x09FF0A13, 0xF304EDF9, 0x050AF807, 0x08F0EFF8,
+0xF5F607F7, 0xF8F71400, 0x170E07F4, 0xF8F41308, 0xEFF80C0F, 0x1EF2FCF7, 0x07EF08F0, 0xF10D09FD,
+0x11F9F002, 0x0411F2EF, 0x09070E03, 0xEFF2F0FC, 0xF310FDF1, 0x090AFBFD, 0x040DF407, 0xF317F2F7,
+0xFCEF1CEB, 0xF00800F5, 0xF01109F9, 0xFCF1000B, 0x16FF0FF8, 0xF9F6FD10, 0xF80B0D18, 0x160CF713,
+0x06FE0BF5, 0x0D08F80C, 0xF4F9FB06, 0x03FBFAF8, 0xFF0C0D08, 0x03F1FD08, 0xF4EE0E10, 0xF4EAF1EE,
+0xF7F6F2FD, 0xF90FEB11, 0xFA0606F1, 0x0E06F6F7, 0xEDEAFA0D, 0x09EDF30B, 0xEF0CF202, 0xFEEEF4F3,
+0x000DF40F, 0x0FF803F4, 0xFB0DFCEC, 0x0D02EB0D, 0x01060E05, 0x1F0CF0F4, 0x0E0C0712, 0xF9071402,
+0xFD0E07F2, 0xF2F4F60C, 0x02150BF2, 0x1106E901, 0x07F50B08, 0xEEF017E6, 0x00F903F0, 0x10F4FD0D,
+0xF505F7F4, 0x090F040A, 0xFC0BEE08, 0x050F15F0, 0x07FEFFFC, 0x09EB0F08, 0x110A04F1, 0x12EEFC03,
+0xF0E8F106, 0x100DF9F9, 0x07F500FD, 0x0AF208F7, 0x12EE00F0, 0x010A0A12, 0x01EFF5F8, 0x12090BF3,
+0xEDF601F8, 0xF7FEF005, 0x04F40EF5, 0xFB1C06ED, 0xF3120BFB, 0xF006FE05, 0x130AFCF0, 0x0A0807F9,
+0xF907ECF9, 0xF600F701, 0x03F9EDFA, 0x0714F8FF, 0xEF0B0F0B, 0xF216F9F7, 0x10F70A04, 0xFAEEF4F2,
+0xFA0B04F1, 0x02040AF9, 0x13020DF3, 0x08150603, 0x0FF804F3, 0xFFEB0BF8, 0x050FF8EF, 0x08F607F9,
+0x03F7F3FD, 0x04FBF5F0, 0xF910ED00, 0x05F7EE0D, 0xF30C0A12, 0xFBECFEF7, 0xF2F30BF0, 0xF203F9FD,
+0xEC16EB04, 0x03E4FEF3, 0x03F60200, 0x0802F4FF, 0xFE010A05, 0x06F0170C, 0x050F0C02, 0xFEEC100D,
+0xFAF7F307, 0x04FA10FA, 0xEFF5F901, 0xF5020808, 0x0809F2F5, 0x03FF09F8, 0x0604FC05, 0x01EE02F7,
+0xF4FC15F9, 0xFD05F70C, 0x0FEB05F7, 0xF9F2080B, 0x0C11EEF6, 0xFBFAF00E, 0x0D030BF2, 0x0BF7FDF4,
+0xF1F30A06, 0xF7F5F9F0, 0x031AF90F, 0xF8000608, 0xF4EEF509, 0xF20202F6, 0xFA0B050F, 0x0F0F070D,
+0x09EDF8F6, 0x040AFAF7, 0x0B0F04EB, 0x08ECF8FA, 0x0EFB00FC, 0xEDF00300, 0xFD03F8F4, 0x0AF90411,
+0x0B001401, 0xEFF0FCF3, 0xFFF8FEEE, 0x0508F2FC, 0x0EF3FB0B, 0xEC0CF6FE, 0xFD0B0702, 0xFEFE0404,
+0xFB0F0DF3, 0x0AFCED03, 0xF4F20709, 0xF2040FF9, 0x0A070005, 0xF4F1030E, 0xEE0BF20C, 0x1514F1F6,
+0x0D130B11, 0xF5030BED, 0x11EEFB13, 0x02EDFE03, 0xF8F7F80F, 0xF3F9FBF8, 0xF5051604, 0xF7FBF001,
+0x0A0C0408, 0xF6ED07F7, 0x1A020DFE, 0xFD060C18, 0xF5010BF9, 0xF6ED0308, 0x04FAFA16, 0x0D060FFC,
+0xEFFCF7F3, 0xF50EF5F8, 0x0F0CE90E, 0xFB0E13F0, 0x0517F30D, 0x0CF302F9, 0x0C0FF705, 0xFBFE0501,
+0x0905FF00, 0xF9F3F81B, 0x0D0BF0F4, 0xF10712F5, 0x0303F80A, 0x0EEE0509, 0xFDF4F600, 0x16F4FE01,
+0xF509F70A, 0xFA0C0A04, 0xF60FF902, 0xF3FC02F9, 0xF4FDEE0C, 0xFC0D0710, 0x0AEA0009, 0x0AF0040F,
+0x090BEEF7, 0xFFF3F4F5, 0xFDF718EF, 0xF8FCF7FC, 0xF70AEA12, 0xFC0601FB, 0xF4EC0F01, 0x0F021100,
+0xF70A080E, 0x0D02F702, 0x08FE090D, 0x0DF3F6FC, 0x0FF20809, 0x0DFCFD0C, 0xFAF20EEE, 0x10FB1206,
+0x150CF410, 0x02F9160B, 0xEBF4FB0C, 0x04FDFCFC, 0x09F8FE0B, 0xF7FCFC06, 0x0D02F9F3, 0x0CEF08F9,
+0x0509FC11, 0xF80CEB11, 0xF2EFEEF3, 0x07F8080A, 0xF8F30C0C, 0xFC091400, 0xF10E110F, 0x0CF80616,
+0xF913F20D, 0x08EE090D, 0x0902FF09, 0x0C0BF8F0, 0x0A09F8EF, 0x0D0AF5F5, 0x0E1412FA, 0x05F7EAF6,
+0xF807050A, 0xFCF5F613, 0x0A120BFD, 0xF509ECE5, 0x0D0D100C, 0xF2F30805, 0xED02040D, 0x0900FB06,
+0xF4070EFE, 0xEFFAF7ED, 0x1017F60B, 0xF807F6FE, 0xF100F9FF, 0x0912F413, 0x0E020BFD, 0xFF02FCF6,
+0xF308ECFA, 0x020A0AF4, 0x09F7FEF1, 0xF406EAFA, 0xF7F70D1A, 0xF708EF07, 0x100CFC0B, 0xEFFBF4F2,
+0x0E05FDF7, 0x07F3FDFD, 0x0109000F, 0x0D0606F4, 0xFAF3F307, 0x13F1F4FE, 0x01EBFEFA, 0xFF08F005,
+0x0707F00D, 0x0808FC10, 0xFC120514, 0x09F600F3, 0xF7060907, 0xF502F8ED, 0x10010C0F, 0x0C0DFC08,
+0xFB0FFCF2, 0xF709F7F6, 0x08F2F40C, 0xF70BF6F8, 0x03F608F4, 0x051BF9FC, 0xFF07080C, 0xECECF6FB,
+0x0BF307FD, 0xF213F7FA, 0x03FCF5F4, 0x04F8FEF7, 0xFBF7FEF4, 0xFC0C0209, 0x13E901F9, 0x02F0F401,
+0xF5F30E05, 0xF111F6F1, 0x0008E4FA, 0xF9FAFAEC, 0x07F4090F, 0x0EF8FBF8, 0x000BF70A, 0xF5F608F7,
+0xEC1207F4, 0x04070AF0, 0x01FEFAF3, 0x13FD03F5, 0xF80E09F1, 0x04090907, 0xEAF70FE9, 0xF10904FF,
+0x0A0C090F, 0xF7EAF0F6, 0xF7010406, 0xF8040B03, 0x0007FE09, 0x13F5F8E7, 0x0CF7F30C, 0xFA0AF5F6,
+0x09FE0AF1, 0xF1FA0314, 0xF3190A03, 0x12F0FAE5, 0xF80BF911, 0xF6F411EF, 0xF40C03F3, 0x02F0F1F8,
+0x0F03ED07, 0x0A1204ED, 0xFEF4F205, 0x0AF3FF01, 0xF7F3FDF5, 0x05F9FBF4, 0x03F8F309, 0x0F0BE90E,
+0x09F90BF8, 0xF6F7EAEB, 0xFEF40706, 0x12F10F0B, 0x06F2F2F6, 0xFAFB14EE, 0x0E11FBF2, 0x0EECF811,
+0xFAEEFCF6, 0x0E07FD16, 0x0D100AF0, 0x0E08FC09, 0x0500EF10, 0x12EE080D, 0xF9F700F0, 0xF7070DEC,
+0xE500FB05, 0x0C090E06, 0xF5EB030B, 0x0F0D0DF5, 0x00110A0C, 0xF6020912, 0xF504F9FA, 0x0DF303F7,
+0x1002060C, 0x0FEAFB02, 0x0A1108F1, 0x0505F608, 0xF807EFF7, 0xED0107FA, 0xEE0D0A0D, 0xF9F60C0E,
+0x10F60A0C, 0x0BF71611, 0xF6F407F1, 0xFD010708, 0x0DFE0101, 0x0EF7FFF6, 0x04F7EBF9, 0x0C0FEF0F,
+0xFD010B0A, 0x11EFF5E7, 0x0C02F5F6, 0x08090B09, 0xFE09F5F8, 0xFF0F14E8, 0xF40013F6, 0xF1FDFAFE,
+0x0006F6F5, 0xFAEF0108, 0x0F0FFC0F, 0xF01009F8, 0x0AF4EF0B, 0xF304FB19, 0xFEEE0EFD, 0xFEEF0908,
+0xF3F5F507, 0xF7071011, 0x0C0111FB, 0x04F20909, 0xEF13F20A, 0x040BEEFA, 0x0F0CF1F9, 0x09FAFC12,
+0xF4F2F9F2, 0xFEE80B09, 0x0AFEFC00, 0x08FAF1F8, 0xF5FCFEF8, 0x03F20AFD, 0x0FF1F4FD, 0x13F8FA05,
+0x0A09FE12, 0x07F100F7, 0x07F8F50B, 0x07091503, 0x08F7F00B, 0x06F9FDEF, 0x08F5EEF2, 0x0F0D0C05,
+0x02FF0D0E, 0x190A0E08, 0xF4EEEB00, 0x0809EDF5, 0xF1130914, 0x0D080DF9, 0xEFF6000A, 0x020A10FE,
+0x08050AF0, 0xF5E50610, 0xF7ECF0FA, 0x1004101E, 0xF7FFFB05, 0xFE0602FD, 0xF6F1F7EF, 0x090DF811,
+0xFF090412, 0xF9F402F8, 0x0301FE06, 0x160DE009, 0x1AF30008, 0x12FAEAF6, 0x0FF8FFF1, 0x13FE0E14,
+0xF2EEF903, 0x070D0202, 0xEFFAFCED, 0xF1F00BFD, 0x04E9F103, 0x01F20EF2, 0x150CF60D, 0xF6E9EF04,
+0x05F810F8, 0xF50A0A00, 0xEF090D09, 0x05F40DFA, 0xF4FAF61B, 0xF9F408EF, 0x0B0DF00B, 0x0FFC0F0D,
+0xF608FCF5, 0x04F2F7EE, 0xFA0FEE12, 0x0700F90E, 0x070FF911, 0x02F0EEF5, 0x01F905F4, 0xF604F9FE,
+0xFC1404EB, 0xF10BFFF9, 0xEBFB0CF9, 0x0817020C, 0x0C0EF306, 0xF1030EF3, 0x05F7080F, 0x03010EF8,
+0x0CEFF9FD, 0x0C14F6F8, 0x0EF5F5F2, 0x08F4F212, 0x090CEF01, 0xEF0AFEF6, 0x0A09060D, 0xF9F7FB11,
+0xF6F9F50C, 0x14F6F60D, 0x0DECFEE8, 0xF60914F0, 0xF814F40C, 0xF5EC1106, 0xEF0D00FA, 0xF0FDFA09,
+0xFCF70BEF, 0x11EA0301, 0x0BF805F6, 0xF103090A, 0x11FCF0FD, 0xF4F3FDF5, 0xF6F5F100, 0xF8F40BF3,
+0x0DEC0BF5, 0x14F316ED, 0x070A0CF6, 0x11F30513, 0xF8FA0B0E, 0x0DF8EDEF, 0xEE0D07F4, 0x100A050B,
+0xF5F7E2F5, 0xFCF1EFF0, 0xF309F6F4, 0x080D120A, 0x0BEEFDF7, 0xF21010ED, 0xF0ED0BFE, 0x040EFA0E,
+0xF5F30806, 0xFDF408F9, 0x0EF8EAFF, 0x060503FC, 0x0CF705F2, 0xF413F9FB, 0x06F608F7, 0xF5FFEE07,
+0xF4F80FF6, 0x0C0AEEF2, 0xFB1E06FF, 0xF40DF8FA, 0x160B0909, 0xFCF6F0EE, 0xF403020B, 0x04F10713,
+0xFDF3FDF5, 0xFDFAFBF9, 0xF808060C, 0x0BFAF40C, 0x01F6EB07, 0xFC0BF7F8, 0x070209FB, 0x0809EBF9,
+0x04FD0B08, 0xECF5F90B, 0xF31500EF, 0xF8F7E9F5, 0xEE00F5FB, 0x1C0B0CFA, 0xFCF00809, 0x070103FA,
+0x09FE0905, 0xFEEAF402, 0x0EFCFF10, 0x150C0BFB, 0x0BF20714, 0xF3FB0DF7, 0x03F1F9ED, 0xFA13F205,
+0x09F2FA16, 0x02FAF201, 0xFDFFF7F4, 0x06FD0EFB, 0x0F04F20C, 0xFCEEEB0B, 0xFF0513FD, 0x03FA13FB,
+0x0BF707F4, 0x03FE0AF8, 0x000203EF, 0x0BF6F708, 0x0DE60203, 0x00F30901, 0xF1FA06F7, 0x140305EE,
+0xFCEAF6F2, 0x02F10A09, 0x01FEF6F5, 0xFAEFFD0B, 0xF711EB15, 0xEEFF05F3, 0x01F3F409, 0x03ED0209,
+0x10EE090D, 0x060207FF, 0x070F04F9, 0x0EF6000D, 0x0F0707FA, 0x0A03060A, 0xFE06040A, 0x0CF50DF4,
+0x00FE1AF1, 0xF114FA0F, 0x0BEE10FF, 0xFFF6F9FC, 0xED000F06, 0xF6070703, 0x10040DF7, 0x06FBF9EF,
+0xF4090CFC, 0x050AF6F0, 0xF10F06F9, 0x0EF90B0A, 0x0902FFF8, 0xF8F2FBF7, 0x13FBFB0E, 0xEBFFEEFB,
+0xF409F50B, 0x0C090E07, 0xEC0F0A02, 0xF60B0818, 0xF9040505, 0xF90BF50C, 0x030AF5F9, 0x0A12EEF8,
+0x0A0003F0, 0x00090BF4, 0xF907040A, 0x08F01510, 0x10050FF1, 0x13EBF7F1, 0x110CED11, 0xFB0507F9,
+0xFDF3010B, 0xECE8F505, 0xF90B0CF3, 0x0D1203F7, 0x05EFEFFC, 0xF4EFFA11, 0x05FC0A0F, 0x12EF09F7,
+0xFDEF0A10, 0xF6E70B09, 0xF7FB06FD, 0xFFF5040C, 0x0605F0F0, 0xF8F7EDF8, 0xF7FC1AF7, 0x00F60109,
+0xFF0FFA00, 0x09EAEEF8, 0x0B0BEA10, 0xFFFB0DF4, 0x0006F4F5, 0x13F70F11, 0x04FBFA01, 0xF1FAF912,
+0xF5F3040C, 0x0502ED0B, 0xF7FAF804, 0x03070A14, 0x1207F108, 0x0906F701, 0x0E0D070D, 0xFFF20C11,
+0xF9F2F6F8, 0xFEEE12F6, 0x08F1F0E8, 0x08F0FC09, 0x1306FEF7, 0xF907F8FD, 0x0DEF0C0C, 0x0114FFF8,
+0x0CF906F6, 0xF3F0F10D, 0xF7F5F40B, 0xECF2050B, 0xFD0604F7, 0xFCF9F60C, 0xFE02F6F7, 0x0B0607FB,
+0x130AE809, 0xF8F7FCF2, 0xF6101108, 0xF0FA0405, 0x02091013, 0xF60E06FA, 0xF50DED03, 0x1205FD06,
+0xF90CEDF6, 0x01FC00F4, 0xF8FCFEFC, 0xEE0303E8, 0xF4140C11, 0x11F3F4F3, 0xF6091406, 0x0CFC0BF4,
+0x04F911F7, 0x0DFB050B, 0x0FF8FA0D, 0x0BFC0802, 0x0608F9F2, 0xF2F2F904, 0xF8EFF20B, 0xF5EEF30E,
+0x080E0EF3, 0xEFF00600, 0xF6ED0DF1, 0xF6FB14F6, 0x0A0F0EEB, 0x0AFA08F5, 0xF90CFB0B, 0xFB06F2FC,
+0xF1F8F70F, 0x16F01209, 0x0FF7F306, 0xF4F0F6F7, 0x0B070BFC, 0x01F70D05, 0xFB020709, 0x0C0A0EF0,
+0xFDF2ED0F, 0x0BFF040D, 0x06FA0406, 0xFAEAF515, 0xFBED0AF3, 0xF208FA16, 0xFFF9F2F5, 0x0A00F10E,
+0x06FA1104, 0x10EF0CF7, 0x0C08F914, 0x010FEFF6, 0xF9FA0A02, 0x0BF112FE, 0xF0F30206, 0x1208FB05,
+0x0DFD05EE, 0x04F60410, 0xF9161006, 0x10F8FE06, 0x0AFCE7EF, 0xEAFEFC0D, 0xFFF6FC13, 0xF40704F8,
+0xF909EDF9, 0xEA0C0808, 0x16F0F6FB, 0xF50DF6EB, 0x06F4F7F4, 0xF1F0010E, 0xF5F2F80A, 0xF8F806E7,
+0x0CF2FA0D, 0xF8F3F7FA, 0xFE04FBEE, 0x0CF9F70D, 0xEF0E0800, 0x0AF1EEF4, 0xF0FFF2EC, 0x0A09FBEF,
+0xEF0EEFE7, 0x13FEF50B, 0x0B0FFC0E, 0xFDF701FA, 0xF3FEEDF4, 0xFAF0010C, 0x0DF909FC, 0x08FAF3EE,
+0xF9F70203, 0x0916FE1A, 0xFD10F4EC, 0x05F70F0F, 0xFE1108FA, 0x11F6FAF0, 0xF1FBF20B, 0x171003FD,
+0xFE0303FE, 0xF3F6FC0C, 0xEA0810F3, 0x060AF4FF, 0xEE0613F0, 0x09F60FF6, 0x071602F3, 0x00F5F2F7,
+0x04EB01F7, 0xFBFDF9FD, 0xEBEFF7F4, 0x070C0CF8, 0xF5090B10, 0x0FE3F6EF, 0xF6FFFF12, 0xEEF7F8F6,
+0xF50206F1, 0x0A000A14, 0x010E0AF2, 0x0603F010, 0xF4EBFBFF, 0xF011F617, 0x12100108, 0x0017F5FA,
+0x0CF8020E, 0x0D0DF9F9, 0xF0F5EF11, 0xF1FCF8F0, 0x06EEECFC, 0x06141703, 0x0EF1FD00, 0x0D00F810,
+0x03060A12, 0xF011F60A, 0x10FA0EEF, 0x03F5FB05, 0xF5040DF4, 0xF6F408F3, 0x0809EFEF, 0xF1060F12,
+0xF115050C, 0xF909F00C, 0xFA130E06, 0x0E04F7F4, 0x080D11ED, 0xFD0B030C, 0x0CF1F610, 0x12F0EDF6,
+0x0810F708, 0x05FC050F, 0x050E1408, 0x05F3F9EF, 0x0AEC10F8, 0x0D0B100A, 0x01FAFF0C, 0xEA0CF9F8,
+0x010E0DFF, 0x07F70BFB, 0x140F0AFC, 0xF90F0DF5, 0xF1EDF4F8, 0xFC0D02F4, 0xF30CF80B, 0xE902FC08,
+0x0FF2F2F2, 0x07F5F710, 0xF8FDFFF1, 0x04020908, 0x0C04F5F1, 0x0C06080B, 0xF0E6F507, 0x03F8FEF6,
+0x00ED0CFF, 0xF8F40E15, 0xFAEBF2EC, 0x02E801FB, 0x09F30D0F, 0x13081405, 0x070FF509, 0xF90005F3,
+0x02F6F0EB, 0x05FAF30D, 0xFDF8FB06, 0x0C0BEFEE, 0x13F0EF0B, 0xF1041808, 0xEEFBF609, 0x10F4FFF5
+
+harq_input0 =
+0x0FFA0103, 0x130C0B02, 0xF309F6E7, 0xF70F07F1, 0xF7090FF8, 0x050409F2, 0xF80AFAF7, 0x00F60EF5,
+0x06FC060D, 0x080DFB03, 0xF4EDF9F9, 0xFCF9FEEA, 0x0F0C12F8, 0xF9F31708, 0xF60C02FF, 0xFF110310,
+0x0BF80F0F, 0x02F6F2EE, 0xEDF20A06, 0x0709FEF2, 0x14F5F0F0, 0xF70C0018, 0x12020FEF, 0x0602EF08,
+0xF40A0200, 0xEE0C0BFC, 0x0606ED01, 0xF2F709F3, 0x15110E10, 0x06EC06F8, 0xFBF10CF8, 0x0314FEF6,
+0xF5F4FC0C, 0xF00C00FF, 0xF6FDF9F6, 0x07F30801, 0x0F04F40C, 0x0406F305, 0xFAF9F808, 0xF20DF109,
+0x010A0AF8, 0x070AFC03, 0xF108120A, 0xF8F9F1EC, 0xEEEB09FF, 0x140C0D01, 0x04E5EF10, 0xF616130C,
+0x0314F4EC, 0x09FA09F2, 0xFAFAF714, 0xFAF101FD, 0x06030FF4, 0x17F3EFFA, 0x09FEF109, 0xFDFEF9FB,
+0xF2080B02, 0x0CF90B07, 0xEB0F0D06, 0xF71009FE, 0xEF110AF8, 0x0AF70BF9, 0x170A1508, 0xF8FDFAF1,
+0x0204F3EB, 0xEFFE0315, 0x0C06000B, 0xF10C0A0E, 0xEC0EF9FC, 0x08F0F2F3, 0x09FD02F7, 0x0B11F610,
+0xF8F1F8F7, 0xF8FB0A09, 0xFB030A13, 0x040804F0, 0xE8080813, 0xF1F4FFF3, 0xEBFCEDF7, 0xF7F00AE8,
+0x00F1160E, 0xF007F301, 0x0E13F211, 0x07F815F4, 0xF9EEF70B, 0x0EF7FE15, 0x0706E80C, 0x0611F60E,
+0xFB0B0CF5, 0xF4F50E11, 0x14FDF1EB, 0xF403120A, 0x09F80303, 0xFB0AF80B, 0xFA1408F5, 0xF503F717,
+0x0FFB1610, 0x1107F3FC, 0xF1F4F7F7, 0x060EF4E8, 0x04F8F5FF, 0x04F30CFA, 0x10F008F8, 0xF514EEF3,
+0x0EEDE8FE, 0xE7FEE70B, 0x0404FEF9, 0xF8F509F9, 0x0A0EF6F2, 0xF8080EF8, 0x01F200F3, 0x03FC19F2,
+0x0D0FF2F8, 0xF9FD0C13, 0x11FE0703, 0x0BF9F110, 0x0EF3FEFD, 0x0EF8F10C, 0x0A070FEA, 0x04FA0310,
+0x0CFE0003, 0x0CF3060D, 0xFBFCF5FA, 0xEC0D1108, 0x09ECF70A, 0x0C0EFB08, 0x0BF4F80A, 0xEFF0FB0C,
+0x0B09F8FA, 0xFA16FF13, 0x0B081512, 0xF4F2FBF7, 0x000C0A07, 0x130C0FEE, 0xFEF908FB, 0xF6F5F912,
+0xF1100409, 0x090E1606, 0xF4F50BF3, 0xEE00F7F9, 0xFAFBF5F6, 0x07080B0A, 0xF1150BE7, 0x0DF80912,
+0x12EF0809, 0xEBFF1108, 0x0BF60DFE, 0x130DF608, 0x12EFF2F1, 0x04FB0C0B, 0x01FDFC09, 0xFAF808F9,
+0x12020B01, 0xFCED060F, 0x040DFFFF, 0x04F80AF3, 0xF700F60B, 0x08F40E08, 0x06F7F80F, 0x0DFDEF04,
+0xFDEFF916, 0xF21107EF, 0x0A1110F1, 0x03F70DF3, 0x08F50300, 0xF1F711F9, 0xF6FCFF0C, 0x0CFFF704,
+0x080CFE09, 0x0FF80D06, 0x05080C08, 0xFE020210, 0xFB11F6E9, 0x060BF2F1, 0xED0BEAF9, 0x02F30C02,
+0xF8F40DFB, 0x020D0D01, 0x0CF406F1, 0xF302F812, 0x080C0EF2, 0x06010006, 0xF0FA0908, 0x08F9F905,
+0xFB0A0508, 0x0FF0F7F4, 0xFF081210, 0xEE18F6F1, 0xF9F9E8F2, 0x060B09FD, 0x0AFEEE04, 0x09F304F8,
+0xEA05F6F8, 0x1C0108F5, 0xF205120F, 0xF40D0A04, 0x0001F30D, 0x00FF0DFA, 0x020BF7F7, 0x02F2F7F0,
+0x04F90BF1, 0x01EFEE07, 0xEBE4F807, 0x0AF90FEF, 0x0F040B11, 0x0BF91000, 0x000CF812, 0x0311F3F0,
+0xF8070218, 0xEDFFF614, 0xF00C15F1, 0x000D0F16, 0xFA0EF707, 0xEE080901, 0xFF0C09F5, 0xEEF704F1,
+0xF10C10F9, 0x060BEBF7, 0xFA0EFDF6, 0xF7F403F2, 0xF5F0F306, 0xEC081A0F, 0x020AEEF5, 0xFBF9F7FB,
+0xF60C010A, 0xEC0E0FFF, 0xF014FB10, 0x0EFD0308, 0x04F30015, 0xF4FC0CEE, 0x0CFEF3F7, 0x12F0F702,
+0xE803FB07, 0x040D06F5, 0x05FA07F1, 0x140A0BF8, 0xEFEDFF11, 0x01EFEE13, 0x0D0C0B0F, 0xE70105F0,
+0x01F70CF4, 0x0603EE12, 0xED08EDF9, 0xF2FCFA02, 0x0E0CFCF3, 0x0E04F8F9, 0xF30D17F9, 0xFEEDFB05,
+0x071BF114, 0xF309F7F4, 0x02F503F6, 0x0815F400, 0x0CF0090A, 0xE80D0F02, 0xF9FCFDF8, 0xF00FFEF5,
+0xF3F5F70B, 0xFC10F7EF, 0xF2FB0AFE, 0xEEECEC15, 0x0202F60E, 0xF310FEF9, 0x10F8F209, 0xFB0606EE,
+0x0D0B0C10, 0x1110080C, 0xFCF2F8F6, 0x030DEE07, 0x0C11F511, 0x0CF6EF08, 0x0900070C, 0x0C160E0F,
+0xEEF8FFF9, 0xF7F0EEF5, 0x0A090903, 0xF70A000E, 0xF5FF07F6, 0xF5E5FEFD, 0x08F1F80C, 0x00F2EE0D,
+0xFAED07EA, 0x07EA170B, 0xFEFFECFF, 0xED0B0211, 0x0AF4F4E6, 0xF2FAF705, 0x0807F706, 0xFBF2F8F7,
+0xF31105F7, 0xF10809FB, 0xF1FEF307, 0x0805FFFA, 0x08FC070D, 0x0A071200, 0xEEEDF107, 0xF908EDFB,
+0x09F60FF2, 0x0B0C06F8, 0x07FCF608, 0x000FF30C, 0xFF0EF3FD, 0xE40BFCF4, 0x0CF50BF4, 0x04EDE90D,
+0xFD05F3F1, 0xFAECF4FA, 0xF80C080F, 0x0A0BF70A, 0x07F012F4, 0x1109FEF3, 0xF507F9F1, 0xF513F7FD,
+0xFE0AF80F, 0x041701F1, 0xF5E7F309, 0x0A0AF70C, 0x0E00FEF1, 0x04E505EF, 0xF4EF0BFD, 0x040CF807,
+0x1201EF07, 0xF31508F1, 0xF908F309, 0x0B0EE409, 0xF7EBF9F8, 0xF1F7F406, 0xFB0206F6, 0xECFD11F2,
+0x0702EEF6, 0xF409FC04, 0xEEF80010, 0xF3EC0BF0, 0x090600F1, 0xF9F5EBF7, 0xEEFE11F8, 0x070BF0FA,
+0xFE16EEF8, 0xF108FD05, 0x15FAF3F7, 0xF60E0D0D, 0xF7FC0AF8, 0x01F40805, 0xF70AFE01, 0xFB0F0BF9,
+0x04E701F6, 0x09F517F6, 0xFBE8F5F8, 0x11FE00F6, 0xEF08F2F5, 0xFB0CFB0F, 0x0419080B, 0x0308EE11,
+0x07110907, 0xF2F5ED0F, 0x0BFAFEF6, 0xFA12F8F9, 0xE8090606, 0x0E0CEAEC, 0x06FD10F8, 0xF80505FD,
+0xF1F70912, 0xF5EF0C0B, 0xF9EF0B0B, 0x0D05F5F2, 0x0A08FF0E, 0x09F50300, 0x08F91314, 0x0AFEF60A,
+0xE5FC0504, 0xEF0A000E, 0x06FDFFF1, 0x0D11F103, 0x080CF512, 0xF9F501F2, 0xFAF60708, 0xFE140D05,
+0xF90202EF, 0xF0FD0EED, 0x06F2E903, 0xE904F80D, 0xF600F8F8, 0xF4FA09F5, 0x0803FA07, 0xFCF9F90B,
+0xF202F4F5, 0x000EFBFE, 0x0409FAFD, 0xF0EA0DF4, 0x0B0D00FF, 0x03F8FB0D, 0x0307FAF2, 0x010C0BFB,
+0x140C03FD, 0xF4FE0906, 0xF6F6F8ED, 0x0B11090D, 0xF6F90EF8, 0x09F001E8, 0xEC0600F8, 0x1109F90E,
+0xEA010BEF, 0xEF0A0C0A, 0x07F510FD, 0x08F3F500, 0x07ED01F5, 0xF313F60A, 0xF803FA0E, 0xF60B0D08,
+0xF1F0F709, 0x0DF609F4, 0xFCED020B, 0x0E0EEDE9, 0x08F907F2, 0xF1FC0C13, 0xFFFB0C06, 0xEB070AF7,
+0xF606F80A, 0xF90E1EFF, 0xF6EE0BF5, 0x05FF03F7, 0x0F0DF309, 0xFA0CF4F8, 0x1F0CF6F3, 0xF50DEE0F,
+0xF5F7FDF4, 0x0BF501EF, 0xF7FA000F, 0xECFAF0F5, 0xEA02FEF1, 0xF80FFCFC, 0x100B0600, 0xFF050501,
+0xFA150716, 0x110FFFF4, 0xEE0B04F8, 0x0E0FF112, 0x12F80BF4, 0xF6F41604, 0x07EDE6EF, 0x17EE0F0B,
+0x05F5FEF2, 0xEF0BFEF5, 0xFF07FD15, 0x01090709, 0x02EBEE0D, 0xF6F9FB0D, 0xEFF6070E, 0x090806F6,
+0x140FFEF1, 0xF6FCEEEB, 0x07EF14F2, 0xFB03040B, 0x0A05F4FC, 0x0DF6FB0D, 0x060B02F8, 0xFF0FFB0E,
+0x090709F7, 0xF7180F02, 0x0BF8F005, 0xFE0CF60D, 0x09F4ECF0, 0x0410F30A, 0xEB05F105, 0x05F90C11,
+0xFCF1F30B, 0x120B0BF3, 0x031104FC, 0x030BFC0F, 0xFB09EFFC, 0xF50CFB11, 0x0BF80504, 0xF609FCF7,
+0xFE0CFB00, 0x0F08F7FB, 0x0BFD0609, 0x0E120F15, 0x020B07F8, 0x0714FAF0, 0x0615F308, 0xF2FDF8F9,
+0xEEF606F8, 0x050906E8, 0x071106F7, 0x000C03F8, 0x04F9F90A, 0x060BF5F7, 0x0D0CF2F7, 0x06FB02F7,
+0xF7060AF5, 0x0EF1FCF4, 0xFAFAF5FE, 0x0506F917, 0xFCF40C0A, 0x03FC10E8, 0xF30700FD, 0xFCF40906,
+0xFB0B0D0B, 0x1017E4F9, 0xF20408F2, 0x02FA03F7, 0xF0000E07, 0xFB0AEDF1, 0xE6F50FEB, 0xF2FCF80B,
+0x04F50DFB, 0xF00BF706, 0xF70507FC, 0x0AF01609, 0xFF0DF20F, 0xEA150EF2, 0x080202F3, 0x00FAF9F5,
+0xEFF70E04, 0x0FF6F314, 0xF1FEFAEE, 0x08F1F3F2, 0xF6101102, 0xF8F20206, 0x120DFC03, 0x07F8F613,
+0x0CF4F50D, 0x0DFF05FB, 0x040EF409, 0xF8FB06F6, 0xF3FAF20D, 0x0DF90402, 0x05080E00, 0xF5EFEBEC,
+0xFE0B0EE7, 0x0B0E0F0E, 0x04F812F4, 0x0EEE0D10, 0x021AF7EF, 0xF70F10EC, 0xF604FDFA, 0x10E90F0B,
+0xF60CEFFE, 0x0AEBF407, 0xF60A06F0, 0xF50B1607, 0x1111FF0B, 0xF8F8EF08, 0xF704F410, 0x0B0AEBFE,
+0x14000205, 0x03FC0EF2, 0xFD17EBFF, 0x17FAFCF4, 0x0DF90CFA, 0x1004F511, 0x140302FC, 0x14FC0500,
+0xFCF6F2FE, 0x0905FA03, 0x08F3F0F4, 0x06FEF5EF, 0x09F801F8, 0xF00913F1, 0xF7F80DED, 0x040AF1FC,
+0xFC0F1008, 0x07040EF4, 0x0BF6EC0C, 0x0CF8FA0C, 0xF70F0EFF, 0xFB09FBFC, 0xF9F4ED0D, 0x02F4F80B,
+0xF5FCF2F2, 0x0208FDF1, 0xF20B0405, 0xF80AFAF3, 0xF415EDEA, 0xFDFBEB00, 0xF4F1F30F, 0xEC070F09,
+0xFA0D0AFF, 0xF7EE0C06, 0x04F4F00B, 0x08F50FF5, 0xF50EF3FC, 0x1006E7F9, 0x04F7F7FC, 0xFC070CFB,
+0x0F12EAFA, 0xF7F00706, 0xF4011505, 0xF7140B09, 0x0AF9F1F8, 0x03060DF8, 0xF2090CF8, 0xF20712F3,
+0xF903EFEE, 0x1102EC14, 0x0A09F1F6, 0xF9F001FA, 0xF8FE01FB, 0x140410F1, 0x0B0402F2, 0x0F0006F5,
+0x0805ECF9, 0xF409F10E, 0x0DE7FD01, 0xEFFD0710, 0xF20403FD, 0x0BF2F6F9, 0x0004F909, 0x0F09FFF6,
+0xF3060DF2, 0x0EEF060E, 0x0CF40705, 0xFDF7FB0C, 0xF4F203E4, 0x0E09F4F6, 0xF5FE04F9, 0x06F3FEFE,
+0xFDFB1102, 0xFD04EE0D, 0x0DFBFCF1, 0xEE14E90B, 0xFB0CEE09, 0x0C13F108, 0xF60703FD, 0x0BF4FCFA,
+0x14F2F0FB, 0xFAF9EFF7, 0xF5010801, 0xF109EEF3, 0xFF0A0514, 0x0C0604FF, 0xFB0EF704, 0xF50EFD0B,
+0xFF05F4FA, 0x07E70B0B, 0xEFFEF4FD, 0x0D0807F3, 0x05100DF6, 0xEFFA1A08, 0x020D090A, 0xFFF5F7FD,
+0x1513F10A, 0xF10BF2ED, 0x0B0F150B, 0xF10306FA, 0x09FB11EE, 0x061007F2, 0xF7F8FB14, 0xF90704EE,
+0x0AF8EAF6, 0xF7E809F9, 0x02F609E9, 0x09E802EE, 0x03F50BE8, 0x040C04F1, 0x0CF41009, 0xFB00EEFA,
+0xFC071611, 0xF9F1F203, 0x0BF0F409, 0x0214F801, 0x0A0AF504, 0x0508F5F1, 0xE916E900, 0x07F4F60A,
+0xF9F010F2, 0xF906F507, 0x0BFB0AF4, 0xF408F0F1, 0x0EFD0A06, 0x03F80AF6, 0x130CFD0C, 0xF1E9F7F8,
+0xF800F502, 0xFEFDFDF4, 0xF90B0713, 0xF506FAFD, 0x0712F9F2, 0xEAF20DF5, 0x10F40D0D, 0x06050B09,
+0xF706090E, 0x0F00ED11, 0xF90E02F4, 0xF1FEFCED, 0x0AF5E00D, 0x06F7F3F9, 0x08F81206, 0xF30EF4F5,
+0x12FF02EF, 0xF7040DF4, 0x151204F0, 0x04ED07EC, 0xF0F3FB05, 0x08F2FCF4, 0xECED11FA, 0xFC110DF8,
+0x0BF4F90A, 0xFCF9F905, 0xF0010014, 0x0A0EF9F8, 0xF4020C02, 0x10FDFA13, 0xF5000B05, 0x05EAF808,
+0xFE0F04F3, 0xFDEFF9EE, 0xF9F9090B, 0x10F20E0C, 0x060909F0, 0x060EF40F, 0x0E0705F5, 0xFB05F6F9,
+0xFA1C0512, 0x0B10FBEB, 0x16F20DF6, 0x090012F4, 0x0A13020B, 0x0EFF0C0A, 0x130DEF0C, 0x070A0B04,
+0x0BFCF004, 0x02FF0BF7, 0xF9F1F209, 0xFFF5F008, 0x05F30C07, 0x03FCEE07, 0x11FCEE08, 0xF4F31514,
+0x040B06F2, 0xE400F9F3, 0x13090B1A, 0xF2F4FFE7, 0xF1EE06F9, 0xFA0DFF0D, 0xF3ED09F6, 0xF40305F8,
+0xF8FFF507, 0xF8FF1707, 0x0AFC030C, 0xF109F3F4, 0x0406FDF0, 0xEF04F50E, 0xF5FBF3FD, 0xF30704F4,
+0xF0ECFC1C, 0xFCECF0F5, 0xF911160F, 0x020B0C0D, 0xF90C060B, 0x03FA08E7, 0x0311FF0D, 0xF405F4FA,
+0x0DEBF7F2, 0x0EF6FAF2, 0x09F3ED0E, 0xFE08EFF2, 0x0F170008, 0x0DFF0FFC, 0x0BF0ED0E, 0x0D140E07,
+0xF2F611F3, 0x11E9020B, 0xEE03F3F7, 0xFCFD00EF, 0xF518090B, 0xF11510EE, 0xF5FB07FF, 0xFEFC11F0,
+0x100DF006, 0x0AF4F300, 0xED0A1200, 0xFEF7EDF5, 0xF7040101, 0x0FF2040E, 0xF01207F7, 0x0AF3FF10,
+0xF60B0D00, 0x07F8EFED, 0x060D03FB, 0xFA08FCF6, 0xEEF6FA04, 0x0806FFF9, 0xFF0B0FF0, 0x08F3F1F8,
+0xF0F5EFF3, 0xF1EE0D01, 0xFBFEF3F6, 0xF20D060B, 0xEFFE00EB, 0x080803EE, 0x0617120A, 0x1210050C,
+0xF010FA07, 0x0908EF0D, 0x030908F2, 0x01160610, 0x120BF415, 0xF9F40FF1, 0x0FF00C02, 0x0B110D0B,
+0x0CF9F10A, 0x0C06030D, 0xF20208F5, 0x0F07FAF1, 0xF0FAF50C, 0x08F8F7F0, 0x01EF0EEC, 0x0AEFE90C,
+0xEFFCF714, 0x05F2FF13, 0xECF6F9E7, 0xFEEFFD07, 0xF6ED0F0D, 0x060FF407, 0x0803F600, 0x0105EE06,
+0xF5F70D0B, 0x02EA110F, 0x070FF8F8, 0x0B040902, 0xF6F30AF0, 0x110C1AF9, 0xF61709F7, 0x0D0FF00E,
+0x09F5EFF7, 0x0F13FAFD, 0x0C02F1F3, 0xFBF0F8F7, 0x0DF8F5EB, 0xF1FEF904, 0xFAF1030D, 0x161211F6,
+0xFA0AF50B, 0xF316F60E, 0x100708EE, 0x0AF00A00, 0xFFF4F4EE, 0x0C0BFD18, 0xFCEDF7FE, 0xFB11080F,
+0x0DF70B08, 0xF90AF309, 0xF9FD0F08, 0x10FEFA0E, 0xEE161508, 0x04FCFFFB, 0x0B1009FE, 0x0CF40D0D,
+0xF800F1FC, 0x07080602, 0x1000F8F8, 0xF8F205FD, 0x0809F9F2, 0xF80C09FF, 0xF9F5F6F8, 0x05FE0EFE,
+0xFCF6F8F1, 0x09000A0B, 0x07080DFC, 0x09FBEDF0, 0xEF0CF4FA, 0xF8F6100A, 0xF5F4F1F9, 0xFFFC0E0B,
+0xEEF6F3EC, 0xF4EA09FE, 0xF7EFF70D, 0xEF0810FC, 0xF311FAFD, 0x0DF201EC, 0xFFF40EF3, 0x1304ED12,
+0xF4FCF304, 0x09EC1005, 0x09F80C09, 0x0C10FC0C, 0xF7F7FBFC, 0xF7F60808, 0x05F90308, 0xEC0A13F4,
+0xF20BF707, 0x04FE03F5, 0x10020FFE, 0x02F413ED, 0x050AF5FA, 0xF90E00E4, 0xFAFBF3F5, 0x0908140B,
+0xF00A0107, 0x13EFED0E, 0x04F5F8F5, 0xF104FF0F, 0xF7F0F6F5, 0x0DF7F704, 0xFF0CEB12, 0xFAF50C07,
+0x05EFF5F6, 0x12FA07F6, 0x0AFDF8F9, 0xEE050803, 0x0A04FBED, 0xF61312F2, 0xF10FF7E9, 0xFBFD0307,
+0x0AFEF5F7, 0x12FB12F3, 0xFA14F206, 0xFAF80EFB, 0xFAFDFAFC, 0xFAFC0DF6, 0xFD08F1EF, 0x0B0D0D14,
+0xF80EF90F, 0x0F0D0903, 0xF609ECF6, 0xF9EFF5F9, 0x0FFBFC06, 0x050A0A08, 0x01F30C03, 0xF9F8EE0A,
+0x0B02100A, 0xFDF3F607, 0x0EFF0D01, 0xF8EFF0FF, 0x11F511F7, 0x08F7F809, 0xEB00FE09, 0xF1FA08FF,
+0xFA0114F6, 0xF0090F10, 0xF3FBF6EF, 0x1209FE0E, 0xF7FCF309, 0x04F5F8FD, 0xF00203F2, 0xF510FB05,
+0x12F7080E, 0x08F10AFC, 0xEFF6F5FE, 0xFFFA0F08, 0x0714F612, 0xF30107F5, 0x06FD08F0, 0xFA0C08EE,
+0x05FA02F9, 0xF40108FF, 0xF90DF1F5, 0x17FC0300, 0x09F2080A, 0x10100BF0, 0x12020B10, 0xF5F80AF7,
+0xF902EBF0, 0x16E00312, 0xFEEA0600, 0xFFFAFA13, 0xF20206F9, 0x060BEF10, 0x15FAF005, 0xF603010A,
+0xF50AF110, 0xF1F903F9, 0xE508F40A, 0x0F0FF704, 0xF00B0AFC, 0xF30DFA02, 0x0202F3F9, 0xF60DEDF1,
+0x05FFFC04, 0xF402FFF8, 0xF1F9F807, 0xEF0E0508, 0xF8F6F80D, 0xF4F2FAF5, 0x031209EF, 0xF9FBF6F2,
+0x000AF6F5, 0xF6000D12, 0xF5FD0C08, 0x04FAEF00, 0x1103110B, 0xF1F50BF1, 0x08FD1104, 0xF80B0AF1,
+0x00160DF7, 0xFD05F3F8, 0x0D01F80B, 0x100502F3, 0xFC0309F6, 0xF41207F6, 0xF2100BFD, 0x040E04F7,
+0xE9080908, 0x06030EEA, 0xF40DF805, 0x09EE0608, 0x0C03F4FB, 0x080CFBF1, 0x100416F5, 0x0407F402,
+0xFDFBFDFD, 0x0BF4F806, 0xFC0B16FF, 0x08EBF3F5, 0xECF9F00B, 0xF8E9F300, 0x08F802F5, 0xF3EF10F4,
+0xFEF409F5, 0x15F7FA13, 0x070DF707, 0x0E0617F9, 0x0206F4FA, 0xF2FAFD0B, 0x10EB0F06, 0x1713EBFF,
+0x030A0BF3, 0xF7E30003, 0xECF50DEE, 0x14050506, 0x160AFC0A, 0x0EFD01F6, 0x02050BEB, 0x031615F4,
+0xF2F3FC09, 0xFA140704, 0x0AF20F07, 0xF7F9FE04, 0xF10EEC06, 0x130D0BFC, 0xF6F3ED0F, 0xF20D100D,
+0xF1F6F40C, 0x0E0BF1F2, 0x0C0FF513, 0xEBEE13FB, 0xF80EF409, 0xF608EC0A, 0xF9090DF1, 0xF602EF09,
+0x14F7F6EF, 0xF401F9F0, 0x130B10FB, 0x0FF31101, 0xEC0912ED, 0x0D03F9F8, 0xF4FAF103, 0xFEF4F10A,
+0xF60BE90A, 0xFFF0F7F1, 0xF801F2F0, 0x00150B1A, 0x09EE130F, 0x130DF7EA, 0x13FB0008, 0xF1F9F00E,
+0x0501F5F0, 0x03F60BF8, 0x090BFE05, 0xEBF8FAF3, 0xEA12F90A, 0xF4FCF4F0, 0x0DF81312, 0x01130DF8,
+0xF3060CF2, 0x00F10CF4, 0xE8F611F0, 0xF707FEF6, 0xF81013FC, 0xF0040AFD, 0xF60616FC, 0xFE1109ED,
+0xED140DED, 0x0303F812, 0xFDF4F4F8, 0x0CF60B14, 0x0DF11811, 0x0BF4FBFA, 0xF2F906F9, 0x09F3F806,
+0x030608FA, 0x0A14E20D, 0x0A08F5FA, 0xE7060DFB, 0x02FD050B, 0xF4F6FB07, 0x01F90BF7, 0x0CFA0FF3,
+0x0B04FD01, 0x0F090604, 0x060E0F0A, 0xF6F1FF06, 0xFC0C0611, 0x01030C0D, 0xF612F9F6, 0x120FF002,
+0xF0F0F9F0, 0x10FE0DFC, 0xEAFCF6E7, 0xF4F0FFFC, 0xEA080D01, 0x09F6020A, 0xF1EDF2F7, 0xF80609F8,
+0xF8F7F80F, 0xF8F7FEFB, 0x0AEE03F4, 0xF60F0406, 0x1309EF03, 0x1215F7FC, 0x0EED07ED, 0x08F30DF5,
+0x09E90D02, 0xF1FAFDF4, 0xFD0FFEF4, 0x0317F1F2, 0xF3111203, 0xF208FEFC, 0xF5FB0213, 0x15F20702,
+0x0FF918ED, 0xF3F8FF0B, 0x0F0A0A0B, 0xEE0C0A13, 0x0A0AF506, 0x1A0401F6, 0xF0F6080F, 0xEC091201,
+0xF9F90C02, 0xF10CF003, 0xF217F200, 0x0DF8FA11, 0x04F603F6, 0x03FB10FA, 0x0AF4090D, 0xF1FBF3EF,
+0x0DF00505, 0xFA0B0E0E, 0xFD030811, 0xFEEDF80A, 0xF1F1F40B, 0x050D0514, 0x0DFC0A10, 0xFF0D01EB,
+0x07F7010D, 0xF90D00F6, 0xFCEDF108, 0xFD10F30C, 0xF3F7FB06, 0xF009F8FF, 0xF808F8F5, 0xEF12F009,
+0x0C0E14F8, 0x02010E06, 0xFF00F50D, 0xF9F1F309, 0x0507EEF0, 0xF8EFFDFB, 0x05041303, 0xFC13EEF6,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
+
+output0 =
+0x8EC35F65, 0xF1011E4E, 0x01283C76, 0x46C59B44, 0x66BD1E7E, 0x71CC3D13, 0xF54F7B59, 0xC2E51E78,
+0x878ACD1F, 0x0BB83AD9, 0xD6EB81F6, 0xDA98D960, 0x9583FF24, 0x84E13C2E, 0xB80A4BD9, 0x7546DA7D,
+0x61301F84, 0x4E8E7BCA, 0x0F9A1992, 0x84DE01C3, 0xFB1B38F1, 0x44764A25, 0x9525C193, 0xAD6AFC2C,
+0xEAC9CBE7, 0x822626C3, 0x6764F1E2, 0xB7080FC1, 0x92F0BF18, 0x2BE2A423, 0x6652CA22, 0x7E2B8B7D,
+0xDADC0042, 0x1684A5B0, 0x6AF80D1E, 0xDE4B11F8, 0x4C027AA7, 0x9B499047, 0xDF71DF9C, 0xE66B5211,
+0x0976A858, 0x97CCDFA6, 0xF921AC4D, 0x684DB77D, 0x2046F400, 0x66BF05FF, 0xCFE771B2, 0x7D285899,
+0xA6DD74A8, 0xD5AC14DF, 0xB4EE744D, 0x9BF75449, 0xBCCF7BE5, 0xD9B3E1C5, 0x04D5FEEA, 0xA91CED17,
+0x260A3E33, 0xB14FA433, 0xC7FB659B, 0xD847CBDD, 0xD4BAF083, 0x51A5AEB1, 0x39A13C7A, 0xC54DBA51,
+0x81DD7FFE, 0xE2A3941C, 0x386750AD, 0x85C6A1CF, 0x52E46581, 0x2DC58468, 0x4F8C204C, 0xCA6C89B8,
+0xD338F49E, 0xB71D9A1C, 0xAE5992A5, 0x461FFEB6, 0x0F724968, 0xD2D9A290, 0x4C0791D6, 0x8AA45E2A,
+0xBCE9EEF4, 0x769D6618, 0x71D659F8, 0xE9DC6A13, 0x99E831C3, 0x8AB8CFD6, 0x489E23C5, 0xBEFC2792,
+0x9E54E534, 0x54101DEF, 0x1F83D8D2, 0x69A8094D, 0x2DA8AAEB, 0x564C6C07, 0x4F2AADB5, 0x20CB1D7F,
+0x2D6E9D54, 0xB97A8BC9, 0x36365C67, 0x8D84329F, 0x4000A81C, 0x6326766B, 0xB9B50B8D, 0xF9D51D73,
+0x4D1A117F, 0x70486DEE, 0xBB19FFB6, 0x96929F46, 0x8E7C8D1C, 0x04B8D1F3, 0x204B8156, 0xA67E9C62,
+0x4534F672, 0x94B8C832, 0x38E7CFE4, 0x71F48255, 0x82181625, 0xF8C9EB50, 0xF3D38EF0, 0xB4DE79FB,
+0xF32452
+
+harq_output0 =
+0x0FFA0103, 0x130C0B02, 0xF309F6E7, 0xF70F07F1, 0xF7090FF8, 0x050409F2, 0xF80AFAF7, 0x00F60EF5,
+0x06FC060D, 0x080DFB03, 0xF4EDF9F9, 0xFCF9FEEA, 0x0F0C12F8, 0xF9F31708, 0xF60C02FF, 0xFF110310,
+0x0BF80F0F, 0x02F6F2EE, 0xEDF20A06, 0x0709FEF2, 0x14F5F0F0, 0xF70C0018, 0x12020FEF, 0x0602EF08,
+0xF40A0200, 0xEE0C0BFC, 0x0606ED01, 0xF2F709F3, 0x15110E10, 0x06EC06F8, 0xFBF10CF8, 0x0314FEF6,
+0xF5F4FC0C, 0xF00C00FF, 0xF6FDF9F6, 0x07F30801, 0x0F04F40C, 0x0406F305, 0xFAF9F808, 0xF20DF109,
+0x010A0AF8, 0x070AFC03, 0xF108120A, 0xF8F9F1EC, 0xEEEB09FF, 0x140C0D01, 0x04E5EF10, 0xF616130C,
+0x0314F4EC, 0x09FA09F2, 0xFAFAF714, 0xFAF101FD, 0x06030FF4, 0x17F3EFFA, 0x09FEF109, 0xFDFEF9FB,
+0xF2080B02, 0x0CF90B07, 0xEB0F0D06, 0xF71009FE, 0xEF110AF8, 0x0AF70BF9, 0x170A1508, 0xF8FDFAF1,
+0x0204F3EB, 0xEFFE0315, 0x0C06000B, 0xF10C0A0E, 0xEC0EF9FC, 0x08F0F2F3, 0x09FD02F7, 0x0B11F610,
+0xF8F1F8F7, 0xF8FB0A09, 0xFB030A13, 0x040804F0, 0xE8080813, 0xF1F4FFF3, 0xEBFCEDF7, 0xF7F00AE8,
+0x00F1160E, 0xF007F301, 0x0E13F211, 0x07F815F4, 0xF9EEF70B, 0x0EF7FE15, 0x0706E80C, 0x0611F60E,
+0xFB0B0CF5, 0xF4F50E11, 0x14FDF1EB, 0xF403120A, 0x09F80303, 0xFB0AF80B, 0xFA1408F5, 0xF503F717,
+0x0FFB1610, 0x1107F3FC, 0xF1F4F7F7, 0x060EF4E8, 0x04F8F5FF, 0x04F30CFA, 0x10F008F8, 0xF514EEF3,
+0x0EEDE8FE, 0xE7FEE70B, 0x0404FEF9, 0xF8F509F9, 0x0A0EF6F2, 0xF8080EF8, 0x01F200F3, 0x03FC19F2,
+0x0D0FF2F8, 0xF9FD0C13, 0x11FE0703, 0x0BF9F110, 0x0EF3FEFD, 0x0EF8F10C, 0x0A070FEA, 0x04FA0310,
+0x0CFE0003, 0x0CF3060D, 0xFBFCF5FA, 0xEC0D1108, 0x09ECF70A, 0x0C0EFB08, 0x0BF4F80A, 0xEFF0FB0C,
+0x0B09F8FA, 0xFA16FF13, 0x0B081512, 0xF4F2FBF7, 0x000C0A07, 0x130C0FEE, 0xFEF908FB, 0xF6F5F912,
+0xF1100409, 0x090E1606, 0xF4F50BF3, 0xEE00F7F9, 0xFAFBF5F6, 0x07080B0A, 0xF1150BE7, 0x0DF80912,
+0x12EF0809, 0xEBFF1108, 0x0BF60DFE, 0x130DF608, 0x12EFF2F1, 0x04FB0C0B, 0x01FDFC09, 0xFAF808F9,
+0x12020B01, 0xFCED060F, 0x040DFFFF, 0x04F80AF3, 0xF700F60B, 0x08F40E08, 0x06F7F80F, 0x0DFDEF04,
+0xFDEFF916, 0xF21107EF, 0x0A1110F1, 0x03F70DF3, 0x08F50300, 0xF1F711F9, 0xF6FCFF0C, 0x0CFFF704,
+0x080CFE09, 0x0FF80D06, 0x05080C08, 0xFE020210, 0xFB11F6E9, 0x060BF2F1, 0xED0BEAF9, 0x02F30C02,
+0xF8F40DFB, 0x020D0D01, 0x0CF406F1, 0xF302F812, 0x080C0EF2, 0x06010006, 0xF0FA0908, 0x08F9F905,
+0xFB0A0508, 0x0FF0F7F4, 0xFF081210, 0xEE18F6F1, 0xF9F9E8F2, 0x060B09FD, 0x0AFEEE04, 0x09F304F8,
+0xEA05F6F8, 0x1C0108F5, 0xF205120F, 0xF40D0A04, 0x0001F30D, 0x00FF0DFA, 0x020BF7F7, 0x02F2F7F0,
+0x04F90BF1, 0x01EFEE07, 0xEBE4F807, 0x0AF90FEF, 0x0F040B11, 0x0BF91000, 0x000CF812, 0x0311F3F0,
+0xF8070218, 0xEDFFF614, 0xF00C15F1, 0x000D0F16, 0xFA0EF707, 0xEE080901, 0xFF0C09F5, 0xEEF704F1,
+0xF10C10F9, 0x060BEBF7, 0xFA0EFDF6, 0xF7F403F2, 0xF5F0F306, 0xEC081A0F, 0x020AEEF5, 0xFBF9F7FB,
+0xF60C010A, 0xEC0E0FFF, 0xF014FB10, 0x0EFD0308, 0x04F30015, 0xF4FC0CEE, 0x0CFEF3F7, 0x12F0F702,
+0xE803FB07, 0x040D06F5, 0x05FA07F1, 0x140A0BF8, 0xEFEDFF11, 0x01EFEE13, 0x0D0C0B0F, 0xE70105F0,
+0x01F70CF4, 0x0603EE12, 0xED08EDF9, 0xF2FCFA02, 0x0E0CFCF3, 0x0E04F8F9, 0xF30D17F9, 0xFEEDFB05,
+0x071BF114, 0xF309F7F4, 0x02F503F6, 0x0815F400, 0x0CF0090A, 0xE80D0F02, 0xF9FCFDF8, 0xF00FFEF5,
+0xF3F5F70B, 0xFC10F7EF, 0xF2FB0AFE, 0xEEECEC15, 0x0202F60E, 0xF310FEF9, 0x10F8F209, 0xFB0606EE,
+0x0D0B0C10, 0x1110080C, 0xFCF2F8F6, 0x030DEE07, 0x0C11F511, 0x0CF6EF08, 0x0900070C, 0x0C160E0F,
+0xEEF8FFF9, 0xF7F0EEF5, 0x0A090903, 0xF70A000E, 0xF5FF07F6, 0xF5E5FEFD, 0x08F1F80C, 0x00F2EE0D,
+0xFAED07EA, 0x07EA170B, 0xFEFFECFF, 0xED0B0211, 0x0AF4F4E6, 0xF2FAF705, 0x0807F706, 0xFBF2F8F7,
+0xF31105F7, 0xF10809FB, 0xF1FEF307, 0x0805FFFA, 0x08FC070D, 0x0A071200, 0xEEEDF107, 0xF908EDFB,
+0x09F60FF2, 0x0B0C06F8, 0x07FCF608, 0x000FF30C, 0xFF0EF3FD, 0xE40BFCF4, 0x0CF50BF4, 0x04EDE90D,
+0xFD05F3F1, 0xFAECF4FA, 0xF80C080F, 0x0A0BF70A, 0x07F012F4, 0x1109FEF3, 0xF507F9F1, 0xF513F7FD,
+0xFE0AF80F, 0x041701F1, 0xF5E7F309, 0x0A0AF70C, 0x0E00FEF1, 0x04E505EF, 0xF4EF0BFD, 0x040CF807,
+0x1201EF07, 0xF31508F1, 0xF908F309, 0x0B0EE409, 0xF7EBF9F8, 0xF1F7F406, 0xFB0206F6, 0xECFD11F2,
+0x0702EEF6, 0xF409FC04, 0xEEF80010, 0xF3EC0BF0, 0x090600F1, 0xF9F5EBF7, 0xEEFE11F8, 0x070BF0FA,
+0xFE16EEF8, 0xF108FD05, 0x15FAF3F7, 0xF60E0D0D, 0xF7FC0AF8, 0x01F40805, 0xF70AFE01, 0xFB0F0BF9,
+0x04E701F6, 0x09F517F6, 0xFBE8F5F8, 0x11FE00F6, 0xEF08F2F5, 0xFB0CFB0F, 0x0419080B, 0x0308EE11,
+0x07110907, 0xF2F5ED0F, 0x0BFAFEF6, 0xFA12F8F9, 0xE8090606, 0x0E0CEAEC, 0x06FD10F8, 0xF80505FD,
+0xF1F70912, 0xF5EF0C0B, 0xF9EF0B0B, 0x0D05F5F2, 0x0A08FF0E, 0x09F50300, 0x08F91314, 0x0AFEF60A,
+0xE5FC0504, 0xEF0A000E, 0x06FDFFF1, 0x0D11F103, 0x080CF512, 0xF9F501F2, 0xFAF60708, 0xFE140D05,
+0xF90202EF, 0xF0FD0EED, 0x06F2E903, 0xE904F80D, 0xF600F8F8, 0xF4FA09F5, 0x0803FA07, 0xFCF9F90B,
+0xF202F4F5, 0x000EFBFE, 0x0409FAFD, 0xF0EA0DF4, 0x0B0D00FF, 0x03F8FB0D, 0x0307FAF2, 0x010C0BFB,
+0x140C03FD, 0xF4FE0906, 0xF6F6F8ED, 0x0B11090D, 0xF6F90EF8, 0x09F001E8, 0xEC0600F8, 0x1109F90E,
+0xEA010BEF, 0xEF0A0C0A, 0x07F510FD, 0x08F3F500, 0x07ED01F5, 0xF313F60A, 0xF803FA0E, 0xF60B0D08,
+0xF1F0F709, 0x0DF609F4, 0xFCED020B, 0x0E0EEDE9, 0x08F907F2, 0xF1FC0C13, 0xFFFB0C06, 0xEB070AF7,
+0xF606F80A, 0xF90E1EFF, 0xF6EE0BF5, 0x05FF03F7, 0x0F0DF309, 0xFA0CF4F8, 0x1F0CF6F3, 0xF50DEE0F,
+0xF5F7FDF4, 0x0BF501EF, 0xF7FA000F, 0xECFAF0F5, 0xEA02FEF1, 0xF80FFCFC, 0x100B0600, 0xFF050501,
+0xFA150716, 0x110FFFF4, 0xEE0B04F8, 0x0E0FF112, 0x12F80BF4, 0xF6F41604, 0x07EDE6EF, 0x17EE0F0B,
+0x05F5FEF2, 0xEF0BFEF5, 0xFF07FD15, 0x01090709, 0x02EBEE0D, 0xF6F9FB0D, 0xEFF6070E, 0x090806F6,
+0x140FFEF1, 0xF6FCEEEB, 0x07EF14F2, 0xFB03040B, 0x0A05F4FC, 0x0DF6FB0D, 0x060B02F8, 0xFF0FFB0E,
+0x090709F7, 0xF7180F02, 0x0BF8F005, 0xFE0CF60D, 0x09F4ECF0, 0x0410F30A, 0xEB05F105, 0x05F90C11,
+0xFCF1F30B, 0x120B0BF3, 0x031104FC, 0x030BFC0F, 0xFB09EFFC, 0xF50CFB11, 0x0BF80504, 0xF609FCF7,
+0xFE0CFB00, 0x0F08F7FB, 0x0BFD0609, 0x0E120F15, 0x020B07F8, 0x0714FAF0, 0x0615F308, 0xF2FDF8F9,
+0xEEF606F8, 0x050906E8, 0x071106F7, 0x000C03F8, 0x04F9F90A, 0x060BF5F7, 0x0D0CF2F7, 0x06FB02F7,
+0xF7060AF5, 0x0EF1FCF4, 0xFAFAF5FE, 0x0506F917, 0xFCF40C0A, 0x03FC10E8, 0xF30700FD, 0xFCF40906,
+0xFB0B0D0B, 0x1017E4F9, 0xF20408F2, 0x02FA03F7, 0xF0000E07, 0xFB0AEDF1, 0xE6F50FEB, 0xF2FCF80B,
+0x04F50DFB, 0xF00BF706, 0xF70507FC, 0x0AF01609, 0xFF0DF20F, 0xEA150EF2, 0x080202F3, 0x00FAF9F5,
+0xEFF70E04, 0x0FF6F314, 0xF1FEFAEE, 0x08F1F3F2, 0xF6101102, 0xF8F20206, 0x120DFC03, 0x07F8F613,
+0x0CF4F50D, 0x0DFF05FB, 0x040EF409, 0xF8FB06F6, 0xF3FAF20D, 0x0DF90402, 0x05080E00, 0xF5EFEBEC,
+0xFE0B0EE7, 0x0B0E0F0E, 0x04F812F4, 0x0EEE0D10, 0x021AF7EF, 0xF70F10EC, 0xF604FDFA, 0x10E90F0B,
+0xF60CEFFE, 0x0AEBF407, 0xF60A06F0, 0xF50B1607, 0x1111FF0B, 0xF8F8EF08, 0xF704F410, 0x0B0AEBFE,
+0x14000205, 0x03FC0EF2, 0xFD17EBFF, 0x17FAFCF4, 0x0DF90CFA, 0x1004F511, 0x140302FC, 0x14FC0500,
+0xFCF6F2FE, 0x0905FA03, 0x08F3F0F4, 0x06FEF5EF, 0x09F801F8, 0xF00913F1, 0xF7F80DED, 0x040AF1FC,
+0xFC0F1008, 0x07040EF4, 0x0BF6EC0C, 0x0CF8FA0C, 0xF70F0EFF, 0xFB09FBFC, 0xF9F4ED0D, 0x02F4F80B,
+0xF5FCF2F2, 0x0208FDF1, 0xF20B0405, 0xF80AFAF3, 0xF415EDEA, 0xFDFBEB00, 0xF4F1F30F, 0xEC070F09,
+0xFA0D0AFF, 0xF7EE0C06, 0x04F4F00B, 0x08F50FF5, 0xF50EF3FC, 0x1006E7F9, 0x04F7F7FC, 0xFC070CFB,
+0x0F12EAFA, 0xF7F00706, 0xF4011505, 0xF7140B09, 0x0AF9F1F8, 0x03060DF8, 0xF2090CF8, 0xF20712F3,
+0xF903EFEE, 0x1102EC14, 0x0A09F1F6, 0xF9F001FA, 0xF8FE01FB, 0x140410F1, 0x0B0402F2, 0x0F0006F5,
+0x0805ECF9, 0xF409F10E, 0x0DE7FD01, 0xEFFD0710, 0xF20403FD, 0x0BF2F6F9, 0x0004F909, 0x0F09FFF6,
+0xF3060DF2, 0x0EEF060E, 0x0CF40705, 0xFDF7FB0C, 0xF4F203E4, 0x0E09F4F6, 0xF5FE04F9, 0x06F3FEFE,
+0xFDFB1102, 0xFD04EE0D, 0x0DFBFCF1, 0xEE14E90B, 0xFB0CEE09, 0x0C13F108, 0xF60703FD, 0x0BF4FCFA,
+0x14F2F0FB, 0xFAF9EFF7, 0xF5010801, 0xF109EEF3, 0xFF0A0514, 0x0C0604FF, 0xFB0EF704, 0xF50EFD0B,
+0xFF05F4FA, 0x07E70B0B, 0xEFFEF4FD, 0x0D0807F3, 0x05100DF6, 0xEFFA1A08, 0x020D090A, 0xFFF5F7FD,
+0x1513F10A, 0xF10BF2ED, 0x0B0F150B, 0xF10306FA, 0x09FB11EE, 0x061007F2, 0xF7F8FB14, 0xF90704EE,
+0x0AF8EAF6, 0xF7E809F9, 0x02F609E9, 0x09E802EE, 0x03F50BE8, 0x040C04F1, 0x0CF41009, 0xFB00EEFA,
+0xFC071611, 0xF9F1F203, 0x0BF0F409, 0x0214F801, 0x0A0AF504, 0x0508F5F1, 0xE916E900, 0x07F4F60A,
+0xF9F010F2, 0xF906F507, 0x0BFB0AF4, 0xF408F0F1, 0x0EFD0A06, 0x03F80AF6, 0x130CFD0C, 0xF1E9F7F8,
+0xF800F502, 0xFEFDFDF4, 0xF90B0713, 0xF506FAFD, 0x0712F9F2, 0xEAF20DF5, 0x10F40D0D, 0x06050B09,
+0xF706090E, 0x0F00ED11, 0xF90E02F4, 0xF1FEFCED, 0x0AF5E00D, 0x06F7F3F9, 0x08F81206, 0xF30EF4F5,
+0x12FF02EF, 0xF7040DF4, 0x151204F0, 0x04ED07EC, 0xF0F3FB05, 0x08F2FCF4, 0xECED11FA, 0xFC110DF8,
+0x0BF4F90A, 0xFCF9F905, 0xF0010014, 0x0A0EF9F8, 0xF4020C02, 0x10FDFA13, 0xF5000B05, 0x05EAF808,
+0xFE0F04F3, 0xFDEFF9EE, 0xF9F9090B, 0x10F20E0C, 0x060909F0, 0x060EF40F, 0x0E0705F5, 0xFB05F6F9,
+0xFA1C0512, 0x0B10FBEB, 0x16F20DF6, 0x090012F4, 0x0A13020B, 0x0EFF0C0A, 0x130DEF0C, 0x070A0B04,
+0x0BFCF004, 0x02FF0BF7, 0xF9F1F209, 0xFFF5F008, 0x05F30C07, 0x03FCEE07, 0x11FCEE08, 0xF4F31514,
+0x040B06F2, 0xE400F9F3, 0x13090B1A, 0xF2F4FFE7, 0xF1EE06F9, 0xFA0DFF0D, 0xF3ED09F6, 0xF40305F8,
+0xF8FFF507, 0xF8FF1707, 0x0AFC030C, 0xF109F3F4, 0x0406FDF0, 0xEF04F50E, 0xF5FBF3FD, 0xF30704F4,
+0xF0ECFC1C, 0xFCECF0F5, 0xF911160F, 0x020B0C0D, 0xF90C060B, 0x03FA08E7, 0x0311FF0D, 0xF405F4FA,
+0x0DEBF7F2, 0x0EF6FAF2, 0x09F3ED0E, 0xFE08EFF2, 0x0F170008, 0x0DFF0FFC, 0x0BF0ED0E, 0x0D140E07,
+0xF2F611F3, 0x11E9020B, 0xEE03F3F7, 0xFCFD00EF, 0xF518090B, 0xF11510EE, 0xF5FB07FF, 0xFEFC11F0,
+0x100DF006, 0x0AF4F300, 0xED0A1200, 0xFEF7EDF5, 0xF7040101, 0x0FF2040E, 0xF01207F7, 0x0AF3FF10,
+0xF60B0D00, 0x07F8EFED, 0x060D03FB, 0xFA08FCF6, 0xEEF6FA04, 0x0806FFF9, 0xFF0B0FF0, 0x08F3F1F8,
+0xF0F5EFF3, 0xF1EE0D01, 0xFBFEF3F6, 0xF20D060B, 0xEFFE00EB, 0x080803EE, 0x0617120A, 0x1210050C,
+0xF010FA07, 0x0908EF0D, 0x030908F2, 0x01160610, 0x120BF415, 0xF9F40FF1, 0x0FF00C02, 0x0B110D0B,
+0x0CF9F10A, 0x0C06030D, 0xF20208F5, 0x0F07FAF1, 0xF0FAF50C, 0x08F8F7F0, 0x01EF0EEC, 0x0AEFE90C,
+0xEFFCF714, 0x05F2FF13, 0xECF6F9E7, 0xFEEFFD07, 0xF6ED0F0D, 0x060FF407, 0x0803F600, 0x0105EE06,
+0xF5F70D0B, 0x02EA110F, 0x070FF8F8, 0x0B040902, 0xF6F30AF0, 0x110C1AF9, 0xF61709F7, 0x0D0FF00E,
+0x09F5EFF7, 0x0F13FAFD, 0x0C02F1F3, 0xFBF0F8F7, 0x0DF8F5EB, 0xF1FEF904, 0xFAF1030D, 0x161211F6,
+0xFA0AF50B, 0xF316F60E, 0x100708EE, 0x0AF00A00, 0xFFF4F4EE, 0x0C0BFD18, 0xFCEDF7FE, 0xFB11080F,
+0x0DF70B08, 0xF90AF309, 0xF9FD0F08, 0x10FEFA0E, 0xEE161508, 0x04FCFFFB, 0x0B1009FE, 0x0CF40D0D,
+0xF800F1FC, 0x07080602, 0x1000F8F8, 0xF8F205FD, 0x0809F9F2, 0xF80C09FF, 0xF9F5F6F8, 0x05FE0EFE,
+0xFCF6F8F1, 0x09000A0B, 0x07080DFC, 0x09FBEDF0, 0xEF0CF4FA, 0xF8F6100A, 0xF5F4F1F9, 0xFFFC0E0B,
+0xEEF6F3EC, 0xF4EA09FE, 0xF7EFF70D, 0xEF0810FC, 0xF311FAFD, 0x0DF201EC, 0xFFF40EF3, 0x1304ED12,
+0xF4FCF304, 0x09EC1005, 0x09F80C09, 0x0C10FC0C, 0xF7F7FBFC, 0xF7F60808, 0x05F90308, 0xEC0A13F4,
+0xF20BF707, 0x04FE03F5, 0x10020FFE, 0x02F413ED, 0x050AF5FA, 0xF90E00E4, 0xFAFBF3F5, 0x0908140B,
+0xF00A0107, 0x13EFED0E, 0x04F5F8F5, 0xF104FF0F, 0xF7F0F6F5, 0x0DF7F704, 0xFF0CEB12, 0xFAF50C07,
+0x05EFF5F6, 0x12FA07F6, 0x0AFDF8F9, 0xEE050803, 0x0A04FBED, 0xF61312F2, 0xF10FF7E9, 0xFBFD0307,
+0x0AFEF5F7, 0x12FB12F3, 0xFA14F206, 0xFAF80EFB, 0xFAFDFAFC, 0xFAFC0DF6, 0xFD08F1EF, 0x0B0D0D14,
+0xF80EF90F, 0x0F0D0903, 0xF609ECF6, 0xF9EFF5F9, 0x0FFBFC06, 0x050A0A08, 0x01F30C03, 0xF9F8EE0A,
+0x0B02100A, 0xFDF3F607, 0x0EFF0D01, 0xF8EFF0FF, 0x11F511F7, 0x08F7F809, 0xEB00FE09, 0xF1FA08FF,
+0xFA0114F6, 0xF0090F10, 0xF3FBF6EF, 0x1209FE0E, 0xF7FCF309, 0x04F5F8FD, 0xF00203F2, 0xF510FB05,
+0x12F7080E, 0x08F10AFC, 0xEFF6F5FE, 0xFFFA0F08, 0x0714F612, 0xF30107F5, 0x06FD08F0, 0xFA0C08EE,
+0x05FA02F9, 0xF40108FF, 0xF90DF1F5, 0x17FC0300, 0x09F2080A, 0x10100BF0, 0x12020B10, 0xF5F80AF7,
+0xF902EBF0, 0x16E00312, 0xFEEA0600, 0xFFFAFA13, 0xF20206F9, 0x060BEF10, 0x15FAF005, 0xF603010A,
+0xF50AF110, 0xF1F903F9, 0xE508F40A, 0x0F0FF704, 0xF00B0AFC, 0xF30DFA02, 0x0202F3F9, 0xF60DEDF1,
+0x05FFFC04, 0xF402FFF8, 0xF1F9F807, 0xEF0E0508, 0xF8F6F80D, 0xF4F2FAF5, 0x031209EF, 0xF9FBF6F2,
+0x000AF6F5, 0xF6000D12, 0xF5FD0C08, 0x04FAEF00, 0x1103110B, 0xF1F50BF1, 0x08FD1104, 0xF80B0AF1,
+0x00160DF7, 0xFD05F3F8, 0x0D01F80B, 0x100502F3, 0xFC0309F6, 0xF41207F6, 0xF2100BFD, 0x040E04F7,
+0xE9080908, 0x06030EEA, 0xF40DF805, 0x09EE0608, 0x0C03F4FB, 0x080CFBF1, 0x100416F5, 0x0407F402,
+0xFDFBFDFD, 0x0BF4F806, 0xFC0B16FF, 0x08EBF3F5, 0xECF9F00B, 0xF8E9F300, 0x08F802F5, 0xF3EF10F4,
+0xFEF409F5, 0x15F7FA13, 0x070DF707, 0x0E0617F9, 0x0206F4FA, 0xF2FAFD0B, 0x10EB0F06, 0x1713EBFF,
+0x030A0BF3, 0xF7E30003, 0xECF50DEE, 0x14050506, 0x160AFC0A, 0x0EFD01F6, 0x02050BEB, 0x031615F4,
+0xF2F3FC09, 0xFA140704, 0x0AF20F07, 0xF7F9FE04, 0xF10EEC06, 0x130D0BFC, 0xF6F3ED0F, 0xF20D100D,
+0xF1F6F40C, 0x0E0BF1F2, 0x0C0FF513, 0xEBEE13FB, 0xF80EF409, 0xF608EC0A, 0xF9090DF1, 0xF602EF09,
+0x14F7F6EF, 0xF401F9F0, 0x130B10FB, 0x0FF31101, 0xEC0912ED, 0x0D03F9F8, 0xF4FAF103, 0xFEF4F10A,
+0xF60BE90A, 0xFFF0F7F1, 0xF801F2F0, 0x00150B1A, 0x09EE130F, 0x130DF7EA, 0x13FB0008, 0xF1F9F00E,
+0x0501F5F0, 0x03F60BF8, 0x090BFE05, 0xEBF8FAF3, 0xEA12F90A, 0xF4FCF4F0, 0x0DF81312, 0x01130DF8,
+0xF3060CF2, 0x00F10CF4, 0xE8F611F0, 0xF707FEF6, 0xF81013FC, 0xF0040AFD, 0xF60616FC, 0xFE1109ED,
+0xED140DED, 0x0303F812, 0xFDF4F4F8, 0x0CF60B14, 0x0DF11811, 0x0BF4FBFA, 0xF2F906F9, 0x09F3F806,
+0x030608FA, 0x0A14E20D, 0x0A08F5FA, 0xE7060DFB, 0x02FD050B, 0xF4F6FB07, 0x01F90BF7, 0x0CFA0FF3,
+0x0B04FD01, 0x0F090604, 0x060E0F0A, 0xF6F1FF06, 0xFC0C0611, 0x01030C0D, 0xF612F9F6, 0x120FF002,
+0xF0F0F9F0, 0x10FE0DFC, 0xEAFCF6E7, 0xF4F0FFFC, 0xEA080D01, 0x09F6020A, 0xF1EDF2F7, 0xF80609F8,
+0xF8F7F80F, 0xF8F7FEFB, 0x0AEE03F4, 0xF60F0406, 0x1309EF03, 0x1215F7FC, 0x0EED07ED, 0x08F30DF5,
+0x09E90D02, 0xF1FAFDF4, 0xFD0FFEF4, 0x0317F1F2, 0xF3111203, 0xF208FEFC, 0xF5FB0213, 0x15F20702,
+0x0FF918ED, 0xF3F8FF0B, 0x0F0A0A0B, 0xEE0C0A13, 0x0A0AF506, 0x1A0401F6, 0xF0F6080F, 0xEC091201,
+0xF9F90C02, 0xF10CF003, 0xF217F200, 0x0DF8FA11, 0x04F603F6, 0x03FB10FA, 0x0AF4090D, 0xF1FBF3EF,
+0x0DF00505, 0xFA0B0E0E, 0xFD030811, 0xFEEDF80A, 0xF1F1F40B, 0x050D0514, 0x0DFC0A10, 0xFF0D01EB,
+0x07F7010D, 0xF90D00F6, 0xFCEDF108, 0xFD10F30C, 0xF3F7FB06, 0xF009F8FF, 0xF808F8F5, 0xEF12F009,
+0x0C0E14F8, 0x02010E06, 0xFF00F50D, 0xF9F1F309, 0x0507EEF0, 0xF8EFFDFB, 0x05041303, 0xFC13EEF6,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0xFB0E01EF, 0xFF0C0B02, 0x07090AFB, 0x0BFBF3F1, 0x0B090F0D, 0xF10409F2,
+0xF80A0E0B, 0xECF60E09, 0x0610F2F9, 0xF4F9FBEF, 0x08ED0DF9, 0xFCF9FEFE, 0x0F0C12F8, 0xF9F317F4,
+0x0BF80213, 0xFFFD1710, 0x0BF80FFB, 0xEEF6F2EE, 0x0106F506, 0xF3091206, 0x00F504F0, 0x0B0C0018,
+0xFD02FAEF, 0x06ED0308, 0xF4F60215, 0x02F80BFC, 0xF20601ED, 0x06F7F5F3, 0x0111FAFC, 0xF2ECF2F8,
+0xFB050C0D, 0x0314EA0A, 0x09F4FCF8, 0xF0F80013, 0xF6E90D0A, 0xF307F415, 0xFB04F4F8, 0xF006F3F1,
+0xFAF9F808, 0x06F9F109, 0xED0A0A0C, 0xF3F6FC03, 0x0508120A, 0x0C0DF100, 0x02FF09FF, 0x00F80D01,
+0x04E50410, 0xF616130C, 0x0300F4EC, 0x090EF506, 0xFA0E0C14, 0x0EF10111, 0xF2030F09, 0x03F3030E,
+0x09EA0509, 0xFDFEF9FB, 0x06F4F702, 0x0C0D0BF3, 0xFFFBF906, 0xF7FBF512, 0x03110AF8, 0x0AF7F70D,
+0x17F60108, 0xF811FA05, 0xEE040700, 0x03FEEF01, 0xF706EC0B, 0x060C0AFA, 0xEC0EF910, 0x0804F207,
+0x09E902F7, 0xF7FDF610, 0x0C050C0B, 0xF8E7F609, 0xFB170A13, 0xF0080404, 0xE808F413, 0xF1F4EB07,
+0xEBFC01F7, 0x0B040AE8, 0x00F1020E, 0xF0F207EC, 0x0EFFF211, 0xF3F815F4, 0xF9020B0B, 0x0EF71201,
+0x0706FC0C, 0x06FDF6FA, 0xFBF7F80A, 0x08090EFD, 0x14FD05FF, 0xF403FE0A, 0xF5F8EF03, 0xFB0AF8F7,
+0x0F00F409, 0x0AEF0B03, 0x0FFB0210, 0x11070710, 0xF1080B0B, 0xF20E08E8, 0xF00CF5EB, 0xF0F30C0E,
+0xFCF0080D, 0x0900EE07, 0xFA01FCFE, 0xE712E70B, 0xF004FEF9, 0x0CF5090D, 0xF60EF606, 0xF8F4FAF8,
+0xED061507, 0xEF110506, 0xF90FF20C, 0xF911F813, 0xFC12F3EF, 0xF7F9F1FC, 0x0E07EAE9, 0x0EF8F1F8,
+0xF6070FEA, 0xF0FA0310, 0xF8FE1417, 0xF8F306F9, 0xFBFCF50E, 0xEC0D11F3, 0x0900F70A, 0xF80EFBF3,
+0x0B08F8F6, 0xEFF00F0C, 0xF709F8FA, 0x0E16EB13, 0x0BF415FE, 0xF4F20F0B, 0xEC0C0AF3, 0x13F8FB02,
+0x12F908FB, 0x0A090D12, 0xF110F0F5, 0xF40E021B, 0x0809F7F3, 0xEE000B0D, 0x0E0FF5F6, 0xF3F40BF6,
+0x05150BE7, 0x0DF809FE, 0x12030809, 0xFF13FC08, 0x0BF6F912, 0x13F90AF4, 0xFE03F2F1, 0x04FB0CF7,
+0x01FDE8F5, 0x0EF8F40D, 0xFE02F7ED, 0xE7EDF2FB, 0x04F9FF13, 0xF0F80A07, 0xF700F6F7, 0xF4080EF4,
+0xF2F7F80F, 0x0DFDEFF0, 0x11EFF902, 0xF2FC0703, 0x0AFD10F1, 0x17F70D07, 0x08F5EFEB, 0xF10B11F9,
+0xF610FFF8, 0x0C130B18, 0x080CFEF5, 0xFBF8F906, 0xF1080C08, 0xEAEEEE10, 0x0F11F6FD, 0x06F706F1,
+0xED0BEA0D, 0xEEF30C02, 0xF8F40D0F, 0x020D0DEC, 0x0CF40605, 0x07020C12, 0xF40C0EF2, 0x060115F2,
+0xF0E6F508, 0xF40DF9F0, 0x0F0A05F4, 0x0FF00B08, 0xEB08FEFC, 0xEE030AF1, 0x0DF9E806, 0xF2F7F5FD,
+0x0A12EEF0, 0x09F3EFF8, 0xFE05F6F8, 0x1CEDF4F5, 0x060512FB, 0x08F90AF0, 0x000107F9, 0x14FFF9FA,
+0x16F70B0B, 0xEEF2F704, 0x04F90BF1, 0x150302F3, 0xEBF8F8F3, 0xF6F90FEF, 0xFBF0F7FD, 0xF70D1000,
+0xECF70C12, 0x03FDF3F0, 0xE4F31604, 0x02FFF600, 0xF00C0105, 0xEC0D0F02, 0xFAFAF707, 0x0208F501,
+0xFFF809F5, 0xEEF70405, 0x050CFCF9, 0xF20BEBF7, 0xFA0E11F6, 0xF7F403F2, 0xF5F0F306, 0x00081A0F,
+0x02F6EE09, 0x0F0D0B0F, 0x0AF7EDF6, 0xECFA0FEB, 0xF000FBFC, 0xF91103F4, 0xF0F30001, 0x08FCF8EE,
+0x0CFEF30B, 0xFE040B02, 0xFC030FF3, 0x04F9F209, 0xF10E0705, 0x14F60B0C, 0x03ED1311, 0xED03EE13,
+0xF9F8F70F, 0xFB010504, 0xEDF70C08, 0x061802FE, 0xED0801F9, 0x06FCFA16, 0x0EF8FCF3, 0x0EF00C0E,
+0xF3F9170D, 0xFE010F05, 0xF31B0500, 0x07F50BF4, 0xEE09030A, 0xF401F400, 0x0C04090A, 0xFCF90F02,
+0x0D10FD0C, 0xF00FEA09, 0xF3F50BF7, 0xFCFCF7EF, 0x06FB0A12, 0x0200EC01, 0x02020A0E, 0xF3FCFE0D,
+0xFC0CF209, 0xFB06F2EE, 0xF90B0C10, 0xFDFCF40C, 0xFC06F80B, 0xEFF902F3, 0x0C110911, 0xF80AEFF3,
+0x0900F30C, 0xF8160E0F, 0xEE0D130D, 0x0BF00209, 0x0AF509EF, 0xF7F614FA, 0xF513070A, 0x09E512FD,
+0xF3050D0C, 0x0006020D, 0xFAED07FE, 0x07FE170B, 0x121300FF, 0x02F602FD, 0x0AF408FA, 0x06FAF7F1,
+0x0807F71A, 0xFBF20C0B, 0xF3FD05F7, 0x06F4090F, 0xF1FEF307, 0x0805EBFA, 0x0810070D, 0xF6F31214,
+0x02ED0607, 0x0D08010F, 0x09F60FF2, 0x0BF8F20C, 0x1BFCF6F4, 0xECFB070C, 0x13FAF3FD, 0xF8F7FCF4,
+0x0C09F7F4, 0xF001E9F9, 0x11F1F305, 0xFAEC08FA, 0xF8F8F40F, 0xF6F70B0A, 0x07F012F4, 0xFDF5FEF3,
+0x09070EF1, 0x09FFF7E9, 0xEAF60C0F, 0x04030106, 0xF5E70709, 0x0AF6F70C, 0xFA14FEF1, 0xF0E51903,
+0xF4EF0B11, 0xF0F80CF3, 0x12ED0307, 0xF301F405, 0xF9F4F3F5, 0x0B0EF809, 0xF7EBF9F8, 0xF10BF406,
+0xFBEEF2F6, 0xEC1111F2, 0x0716EEF6, 0x080910F0, 0xEE0D0010, 0x07ECF7F0, 0x09060005, 0x0DF5EB0B,
+0x0212110C, 0xF3F704FA, 0xEA02020C, 0x050811F1, 0x01FA07F7, 0xF60E0D0D, 0xF711F60C, 0x0108F4F1,
+0xF7F6FE01, 0x0F0FF7F9, 0xEFE7010A, 0x090902F6, 0x0FE809F8, 0xFDFE00F6, 0xEF0806F5, 0x10F80F0F,
+0x0419F40B, 0xEF08EEFD, 0x0711F507, 0xF20901FB, 0x0BFA130A, 0xFA120CF9, 0xE809F2F2, 0xFAF8FE00,
+0xF2FDFCF8, 0xF805F1FD, 0xF1F70912, 0x0903F80B, 0xF9EFF70B, 0x0D05F5F2, 0x0A08FF0E, 0x09F5EE00,
+0x08F91314, 0x0AFEF60A, 0xE51005F0, 0x041EECFA, 0x06FDFF05, 0x0D11F1EF, 0xF4F80912, 0x0D090106,
+0xFAF6F308, 0xFE14F8F1, 0x0D02EE03, 0xF0FDFAED, 0xF2F2E903, 0xE9040C0D, 0x0A00F8F8, 0xF4FA0909,
+0xF4EFFA1B, 0xFC0D0D0B, 0xF2EE08F5, 0x000E0F12, 0xF0F50F11, 0x04FEF9F4, 0x0BF914EB, 0x170CFBF9,
+0x03F30E06, 0x01F8F70F, 0x14F8EFFD, 0xF412F5F2, 0x0AF60C01, 0xF711090D, 0xF60DF90C, 0x09F0ECE8,
+0xEC06140C, 0xFD090DFA, 0xEA01F7EF, 0x030AF8F6, 0xF3F5FCFD, 0xF4F3F500, 0xF3EDECF5, 0xF3130AF6,
+0xF8EFFA0E, 0x0A0B0DF4, 0xF1F0F7F5, 0x0D0A09F4, 0x10EDEEF7, 0x0E0EEDFE, 0xF4F9F306, 0x05FCF8FF,
+0x13FBF7F2, 0xFF07F6F7, 0x0AF2F8F6, 0x0DFA1EFF, 0xF6EE0B09, 0xF113030B, 0xFAF9F3F5, 0xFA0C080C,
+0x0BF8F607, 0x09F902FB, 0xF50BFD08, 0xF7F515EF, 0x0BFA00FB, 0x01FAF009, 0xEA02FE05, 0x0CFBFC10,
+0xFBF7F214, 0x1305F1ED, 0xFA01F216, 0xFDFBFFF4, 0xEE0B040C, 0xFAFB05FD, 0xFEF8F7F4, 0xF60802EF,
+0xF301E603, 0x03EEFAF7, 0xF109EAF2, 0xEF0BFEF5, 0xFFF31115, 0xED09F309, 0x02FFEE0D, 0xF60D0FF9,
+0x030A07FA, 0xF5F4060A, 0x140FFEF1, 0xF6FCEEFF, 0x07030006, 0xFBEF04F7, 0x0AF009FC, 0xF90A0FF9,
+0xF2F702F8, 0xFFFBFB0E, 0x0907090B, 0x0B180F02, 0x0B0C0405, 0x12F80AF9, 0x09F400F0, 0xF010070A,
+0xEBF105F1, 0x05F90C11, 0xE805F30B, 0x12F70BF3, 0xEF11EFFC, 0xEFF7FC0F, 0xE709EF10, 0xF50CFBFD,
+0xF7F805F0, 0xF609FCF7, 0xEAF80F00, 0xFBF40B10, 0xF71106F5, 0xFA12FB01, 0x020BF30C, 0x0714FA04,
+0x06010708, 0xF2110D0D, 0xEEF6F2F8, 0xF009F1E8, 0x07FD06F7, 0x14F8EF0C, 0xF00DF9F6, 0xF20BF50B,
+0xF90C06F7, 0x06FB02F7, 0xF7F20A09, 0xFA051008, 0x0EFA0913, 0x05060D03, 0xFCF40CF6, 0x03E8FCFC,
+0xF3F31411, 0xFCF40906, 0xFB0BF9F7, 0xFC02F80D, 0xF20408F2, 0xEE0EEF0B, 0xF0000EF3, 0xFBF6EDF1,
+0xFAF50FEB, 0x06FC0C0B, 0xF009F80F, 0xF0F7F706, 0xF70507FC, 0x0AF00209, 0xFF0DF20F, 0xEA15FA06,
+0x0816EDF3, 0x000EF9F5, 0xEFF7FA04, 0x0FF60814, 0xF1FEFA02, 0x0805F306, 0xF610FDEE, 0xF8061606,
+0xFE0DFCEF, 0x07F8F613, 0x0C0809F9, 0x0DEBF0FB, 0xF00EF4F4, 0xF8E7F20A, 0xF3FAF20D, 0xF90D04EE,
+0xF1F40E00, 0x09EFFFEC, 0xFE0B0EE7, 0xF7FA0F0E, 0xF00CFEF4, 0xFAEEF9FC, 0x161AF703, 0xF70F10EC,
+0xF6F011FA, 0x10FDFB0B, 0xF60C03FE, 0x0AFF08F3, 0xF6F606F0, 0xF5F716F3, 0xFDFDEBF7, 0x0CF8EFF4,
+0xE3EF0910, 0xF7F6FF12, 0x001402F1, 0x03100EF2, 0x1117EBFF, 0x17FA1008, 0x0DF9F80E, 0xFCF0F511,
+0x1403EEFC, 0x0010F100, 0x110A0612, 0xF505FAEF, 0xF4F304F4, 0x061209EF, 0x090C150C, 0x04F41306,
+0x0B0C0DED, 0xF0F6F110, 0xFC0F1008, 0xF3EF0E08, 0x0B0AECF8, 0x0CF8FA0C, 0xF7FB0EFF, 0x0FF50FFC,
+0x0DF4EDF8, 0x02080C0B, 0xF510F2F2, 0x0208FDF1, 0x060B04F1, 0xF8F6E607, 0xF415EDFF, 0xE8FBEBEC,
+0x0805F30F, 0x00F30F09, 0xFA0DF6EB, 0x0BEEF806, 0x0408F00B, 0xF4F5FB09, 0x090EF310, 0x1006FBF9,
+0xF0F7F710, 0xFC070C0F, 0xFB12EAFA, 0x0BF007F1, 0x080100F1, 0xF700F709, 0x0A0D05F8, 0xEFF20D0C,
+0xF209F8F8, 0xF207FDF3, 0x0DEFEFEE, 0xFD020114, 0x0AF5050A, 0x0D0415FA, 0x0C12ED0F, 0x14F01005,
+0xF7F0EE06, 0x0F14F209, 0x080500F9, 0x08F5050E, 0x0DE7E901, 0x03FDF3FC, 0xF20403FD, 0xF7F2F60D,
+0xECF00D09, 0xFB09FF0A, 0xF306F9F2, 0x0E03F20E, 0x0C09F305, 0x11F710F8, 0xF4F217E4, 0x0E09090A,
+0x0A12F0F9, 0x06F312FE, 0xFDFBFDEE, 0xE9F0020D, 0x0DFB1005, 0x0200E90B, 0x0F0C02F5, 0xF8FF05F4,
+0x0AF303FD, 0x0BF4100E, 0x14F2040F, 0x0EF9EF0B, 0x0AED0801, 0x05F5EE08, 0xFF0A0514, 0xF8F2F0FF,
+0x0FFAF7F0, 0xE10E12F6, 0x13F1F4FA, 0xF3FC0B0B, 0xEFFEF4FD, 0xF9080708, 0x05FCF9F6, 0x040E06F4,
+0x020DF5F6, 0x13F50B11, 0x1513F1F6, 0x05F707ED, 0xF7FB01F7, 0xF1EF06FA, 0x09FB1102, 0x06FC0706,
+0xF7F80F14, 0x0EF3F002, 0x0AF8FE0A, 0x0BE8F5F9, 0xEEF609E9, 0x09E8EE02, 0x03090BFC, 0xF0F8F0F1,
+0xF8081009, 0x0F0002FA, 0xFCF202FD, 0x0DF106EF, 0xF70408F5, 0x02140C15, 0xF6F6F5EF, 0xF1080905,
+0xE902FDEC, 0xF3F4F6F6, 0xF904FCF2, 0xF906F5F3, 0xF7FB0A08, 0x08F4F0F1, 0x0EFDF6F1, 0x03F8F6F6,
+0xFF0C110C, 0xF1FDF7F8, 0xF814F502, 0x12FD1108, 0x0DF7F313, 0xF506FA11, 0x07FEF9F2, 0xEAF20D09,
+0xFCF40D0D, 0x06F1F709, 0xF7F21DFA, 0xFB00ED11, 0x0DFA0208, 0xF1FE1101, 0x0AF5F4F9, 0x060BF3F9,
+0x080CFD06, 0xF30EF409, 0x12EB02EF, 0x0BEF0D09, 0x1512F0F0, 0x18010700, 0x05070F05, 0xF306FC08,
+0x0001FD0E, 0x10FD0DF8, 0xF708F90A, 0x100D0D05, 0x04011414, 0x0AF90D0C, 0xF402F8EE, 0xFC11FAFF,
+0xF500F605, 0xF0EAF8F4, 0x120F0407, 0x1103F9EE, 0xF9F9F5F7, 0x10060EF8, 0x0609F504, 0xF20E080F,
+0x0EF3F109, 0xFB05F60E, 0x0E1C05FD, 0xF710FBEB, 0x16F2F90B, 0xF500FEF4, 0x0A13EEF7, 0x0EFF0CF6,
+0xFFF903F8, 0xF30A0BF0, 0xF7FCF004, 0x1613F70B, 0xF90506F5, 0xEB09F008, 0x05F30CF3, 0x0310EEF3,
+0xFD1002F4, 0x09070114, 0x040B0606, 0xE400F907, 0x13F40B1A, 0x06F4EBE7, 0xF1EE06F9, 0xFAF9130D,
+0xF3ED090A, 0x08EF05F8, 0xF814F507, 0xF8131707, 0x1EFCEF0C, 0xF1090708, 0x04F211F0, 0xEFF0090E,
+0x09FBF3FD, 0xF3F204F4, 0xF000FC1C, 0xFC00F009, 0xF9FD160F, 0x16F7F80D, 0x0DF8060B, 0x03FAF4FB,
+0x03FDFF0D, 0xF4F1F40E, 0xF9EBF7F2, 0x0EF6FA06, 0x09F3EDFA, 0xFEF4EFF2, 0x0F0300F4, 0x0DEBFBFC,
+0x1FF0010E, 0xF9140E07, 0xF2F6FD07, 0x11E9020B, 0xEE17070B, 0x10FD0003, 0x0904F5F7, 0x0515FCEE,
+0x090F07FF, 0x12FC1104, 0x10F9F0F1, 0x0A080700, 0x010A1200, 0x120B01F5, 0xF7F0ED01, 0xFB06040E,
+0xF0FEF30B, 0x0A0713FC, 0xF6F7F9EC, 0x07F803ED, 0xF2F9EF0F, 0xFAF4100A, 0x020AFA04, 0x0806130D,
+0xFF0B0F04, 0x080705F8, 0x04F503F3, 0x05EEF9ED, 0xFBFEF30A, 0xF2F9F20B, 0x03FEECEB, 0x08F40302,
+0x0617FE0A, 0xFE10050C, 0x0410FAF3, 0xF508EFF9, 0x030908F2, 0x010206FC, 0xFDF7F415, 0xF9080F05,
+0xFBF00CEE, 0x0BFD0D0B, 0xF7F9F10A, 0xF80603F9, 0xF202F4F5, 0x0F07FA05, 0x04FA09F8, 0x08F80B04,
+0xED030E00, 0x0A04FDF8, 0xEFFC0B14, 0x05F2FFFE, 0xECF60EFB, 0xFE04FD07, 0x0AEDFB0D, 0xF20FF407,
+0xF4030A00, 0x15F1EEF2, 0xF50B0D0B, 0x02FE11FB, 0xF3FBF8F8, 0xF7F0F516, 0xF6070A04, 0xFD0C1A0D,
+0xF603F50B, 0x0D0F04FA, 0xF5F5EFF7, 0xFB130FE9, 0x0C0205F3, 0xFB050CF7, 0xF9F809FF, 0xF1120DF0,
+0x0E0503F8, 0x16FEFDF6, 0xFA0AF5F7, 0xF302F6F9, 0xFC07F4EE, 0x0A040A00, 0xFFF409EE, 0xF8F7FD18,
+0xFC01F7EA, 0x0F11F40F, 0x0DF7F708, 0x0DF60809, 0x0DFD0F08, 0x1012FA0E, 0x021615F4, 0x04FCEBFB,
+0xF7FC09FE, 0x0C080DF9, 0xF8EB05FC, 0x0708F2EE, 0xFC14F80C, 0x0C06F111, 0x0809F9F2, 0x0CF809FF,
+0x0DF50AF8, 0x05EA0E12, 0xFCF6F805, 0xF5EC0A0B, 0xF2080D10, 0x09FBED04, 0xEFF7F40E, 0xF8F610F6,
+0x09F4F1F9, 0xFFFC0E0B, 0x020AF3EC, 0xF4EA09FE, 0xF7EFF70D, 0xEFF410FC, 0x07FD0EFD, 0x0D060100,
+0x13F4FAF3, 0xFFF001FE, 0x08FC07F0, 0x0900FC05, 0xF5F8F709, 0x0CFC100C, 0xF7F7FBFC, 0xF7F608F4,
+0x05F90308, 0xECF6FF08, 0xF2F70B07, 0x04FE03F5, 0xFC02FBFE, 0x02F41301, 0xF1F6F50E, 0xF9FA00E4,
+0x0EFB0709, 0xF50800F7, 0x040AEC07, 0x130301FA, 0x0409F809, 0xF104EA0F, 0xF7F00A09, 0xF80BF704,
+0x13F800FE, 0xFAF50CF3, 0xF103090A, 0x12FAF30A, 0xF611F8F9, 0x02F1F403, 0x0A040FED, 0x0AFFFEF2,
+0x05FBF7FD, 0x0FE903F3, 0xF6EA090B, 0x120FFE07, 0xFA1406F2, 0x0EF80EFB, 0x0EFDFAFC, 0x0EFC0D0A,
+0x120805EF, 0xF70DF900, 0x0C0EE5FB, 0x0F0DF503, 0xF609000A, 0x0D03F5F9, 0x0FFB1006, 0x05F60A08,
+0xED07F8EF, 0xF90CEE0A, 0x0B16100A, 0xFD07F607, 0x0EFF0D01, 0x0CEF04EB, 0x11F5FD0B, 0x080B0CF5,
+0xFF14FEF5, 0xF1FAF413, 0xFA0100F6, 0xF0090FFC, 0xF3FB0AEF, 0xFE09FE0E, 0xF710F3F5, 0x04090C11,
+0x04EEEFF2, 0x09FC0FF1, 0xFE0BF4F9, 0x08F10AFC, 0x030AF5FE, 0x13FA0FF4, 0x07000AFE, 0x071507F5,
+0x06FD08F0, 0x0F0C08EE, 0x190E020D, 0x08EDF4EB, 0x0D0DF109, 0x0210EF00, 0xF506080A, 0x1010F7F0,
+0xFE02F7FB, 0x09F8F6F7, 0xF902FF04, 0x16E003FE, 0x12EA1A00, 0x130E0FFF, 0x0702F2F9, 0xF10BEFFC,
+0x010E04F1, 0xF6EF15F6, 0xF50A0510, 0x050DEF0D, 0xF908F4F6, 0x0F0F0BF0, 0x04F7F6FC, 0x07F9FAEE,
+0x02EE07F9, 0xF6F90105, 0xF1FFFC04, 0x0802EB0C, 0xF10E0CF3, 0x030E0508, 0x0CF60CF9, 0x08F20EF5,
+0xEFFE09EF, 0xF9FB0A06, 0x14F6F6F5, 0xF6140DFE, 0xF511F8F4, 0xF0FAEF00, 0x1103FC0B, 0xF1090B05,
+0xF4FD11F0, 0xF80BF6F1, 0x14160D0B, 0x1105070C, 0x0DEDF80B, 0x1005EE07, 0xFCEFF5E2, 0x0812F3F6,
+0xF2100BFD, 0x04FAF00B, 0xFD08F508, 0x06030EEA, 0xF4F90C05, 0xF5EE0608, 0x0CEEF40F, 0xF4F8FB06,
+0xFCF01609, 0x0407F402, 0xFDFBFDFD, 0x0BF4F806, 0xFCF701EB, 0x08EB0709, 0xECF9040B, 0xF8E9F300,
+0x1C0CEEF5, 0x0703FC08, 0xFEF40909, 0x150B0EFF, 0xF30D0B07, 0xFAF203F9, 0x02F209FA, 0x060EFDF7,
+0xFCEB0FF2, 0x0313FF13, 0x030A0B07, 0x0BF70003, 0x00090D02, 0x1405F106, 0x020AFCF6, 0xFAFD01F6,
+0xEE05F7EB, 0x030201F4, 0x06071009, 0x0E000704, 0x0A060F07, 0x0C0DFE04, 0xF1FA001A, 0xFFF90B10,
+0xF607ED0F, 0x06F9100D, 0x05F6F40C, 0x0E0BF106, 0xF8FB09FF, 0xEBEE13FB, 0x0C0EF4F5, 0xF608EC0A,
+0xF9F5F905, 0x0AEE03F5, 0x000B0A03, 0x0815F904, 0x13F7100F, 0xFB0711ED, 0xECF5FD01, 0x0D03F90C,
+0xF4FA05EF, 0x1209050A, 0xF60BFD0A, 0xFF04F706, 0xF8ED06F0, 0x0001F71A, 0x09EEFFFA, 0xFF0D0BEA,
+0x130F00F4, 0xF1F904FA, 0x05EDF504, 0x030AF7F8, 0x09F712F1, 0xFF0C0E07, 0xFE12F9F6, 0x08FC08F0,
+0xF9F813FE, 0x01FF0D0C, 0xF3F10C06, 0xEC05F7F4, 0xFCF6FD04, 0x0B07FEF6, 0xF8FC13E8, 0xF004F611,
+0xF6060210, 0x12FDF5ED, 0x0100F9ED, 0xEE03F8FE, 0x11F4F40C, 0x0C0BF614, 0x0D050411, 0x0B080FFA,
+0xF2F906F9, 0xF5F3F8F2, 0xEF06080E, 0xF614F60D, 0x0A080A0E, 0xFBF2F9FB, 0x1612F1F7, 0xF4F60FF3,
+0x010D0B0B, 0x0C0EFB07, 0x0B04FDED, 0xFAF50604, 0xF2FAFB0A, 0x0AF1FFF2, 0x100C0611, 0x01EF0CF9,
+0x0B12F90A, 0x12FBF002, 0x04040D05, 0x10FEF910, 0xEAFC0AE7, 0xF404FFFC, 0xEA08F9ED, 0xF5F616F6,
+0xF10106F7, 0xF806F5F8, 0xF8F70CFA, 0x0CF7FEFB, 0x0AEEEF08, 0x0AFBF0F2, 0x13F5EFEF, 0xFD010BFC,
+0xFA01F3ED, 0x08F30D09, 0x09FEF902, 0x050FFDF4, 0x11FAFE08, 0x1703F1F2, 0xF3FCFE03, 0x06F4EA10,
+0x090FEE13, 0x00F20702, 0xFBF90401, 0x070CEBF7, 0x0FF6F50B, 0xEEF8F6FF, 0x0A0AF506, 0x06F0010A,
+0xF0F6F4FB, 0x00F51201, 0x0DF90C02, 0xF1F8F0EF, 0x061706EC, 0x0DF80EFD, 0xF0F6030A, 0x03FB100E,
+0xF608F50D, 0xF10F08EF, 0xF9F0F105, 0x0EF7FA0E, 0xFD030811, 0x12ED0CF6, 0x050508F7, 0x05F90514,
+0x0D100A10, 0xEAF901FF, 0x070B010D, 0xF90D140A, 0xFC02F1F4, 0xE9FCF3F8, 0x07F70FF2, 0x0409F8FF,
+0x0C080CF5, 0x03FEF0F5, 0xF80E000C, 0x0201FAF2, 0x1314090D, 0xF90507F5, 0x05F302F0, 0x0CEFFDFB,
+0xF11813EF, 0x10FFEEF6
+
+
+basegraph=
+1
+
+z_c=
+176
+
+n_cb=
+11616
+
+q_m=
+2
+
+n_filler=
+8
+
+e=
+4640
+
+rv_index=
+2
+
+code_block_mode=
+1
+
+iter_max=
+20
+
+expected_iter_count=
+4
+
+op_flags=
+RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE, RTE_BBDEV_LDPC_HQ_COMBINE_OUT_ENABLE, RTE_BBDEV_LDPC_HQ_COMBINE_IN_ENABLE
+
+expected_status=
+OK
diff --git a/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_HARQ_1_2.data b/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_HARQ_1_2.data
new file mode 100644
index 000000000..2463df617
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_HARQ_1_2.data
@@ -0,0 +1,902 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2019 Intel Corporation
+
+op_type =
+RTE_BBDEV_OP_LDPC_DEC
+
+input0 =
+0xF315FCEF, 0xF50FFAFA, 0xFBF70DEE, 0x1013060C, 0x0B0AFCE7, 0xF0F30BF4, 0x0C070F06, 0x10F7F30F,
+0xFE0F0E0D, 0x0FF7FE09, 0x07090606, 0xF705F004, 0x150EF10B, 0x080C010A, 0xF7FA0909, 0x0B00140A,
+0xF1F2F8F9, 0x0AF2F910, 0x0D0F0CEF, 0x03F4F20D, 0x0CF90CF9, 0x06F4F501, 0x12FEF3EA, 0xF210F3F9,
+0x0312020C, 0x0D0FEF0C, 0x011714F4, 0x110E02F3, 0xF102F613, 0x0A0B090C, 0x1503FA10, 0x0D13F011,
+0xED0F0F0F, 0xF8F712F8, 0x10060502, 0x14EEF0F6, 0xEEF50606, 0x0BEDF006, 0xF2120906, 0x0F0700F4,
+0xECF00D04, 0xF414F1F5, 0xF1ECF918, 0xF40B090C, 0xFD0FEDEF, 0x0DFDFBED, 0x0703FCF3, 0xEFF2FDED,
+0x03021100, 0x0608F00A, 0x0BF7F910, 0xF7EEF20C, 0xF9ED0901, 0xECF2F0F2, 0xEB09F6F3, 0x0F06F5F7,
+0xF90E0610, 0x07010611, 0x06F20E0D, 0x0E06EF00, 0x070C050D, 0x0C0F09F1, 0x10FE0CF6, 0x11EF0B14,
+0x03FCE40C, 0xF4F506F4, 0xF400F613, 0x0E0509F8, 0xF00DF9F6, 0xF5F612E9, 0x1208FE15, 0x0607F307,
+0x1108EE0C, 0xFDFBFB04, 0x02F30D05, 0xFDF0041A, 0x100CF1F4, 0x0DFAFBF9, 0xE9F10B09, 0xEEF214F9,
+0x02F6F5F8, 0x0F010CF6, 0xF11008EF, 0x0CF3130A, 0x03FE11F5, 0xF6050708, 0xFC050EEC, 0x0BF8F4F9,
+0x04F50FFF, 0x000206EB, 0xEFF9F7ED, 0x0E14F90C, 0x080401FC, 0x0A0401E5, 0xEE13F30C, 0xF10A0916,
+0xF0F400EC, 0xFF03F614, 0x0409EBF2, 0x0C0906FA, 0xF70C0400, 0x0FFAFAFA, 0x1201F611, 0xF5FAFAF1,
+0xF40FFA09, 0xFFF2F1EF, 0x0BEFF7FA, 0x0703FC07, 0x08F11109, 0xEF09FEEA, 0x07F908FB, 0xF9FD0812,
+0xF90B0A02, 0x05F210F4, 0x1AF7F407, 0xEFF8FA0D, 0xF5F9F606, 0x02EB0D0F, 0xF7F5FDFE, 0x130BF5FB,
+0x05F6F6F8, 0x1503FFFD, 0xF2F701F9, 0xF1F6F70B, 0x01010B08, 0xF717FBF6, 0x06FAFA05, 0x050CEF11,
+0x11F30200, 0x09020F04, 0x07030601, 0x0603FC12, 0xFB0014F7, 0xF7F70CF2, 0xF0F6EEFA, 0x0EF107F8,
+0xEA0D0A10, 0x0AEC0C0E, 0xF5060D07, 0xF7F4E804, 0x0902E90B, 0xEE090AFD, 0x02F60210, 0x090BFCFD,
+0xF7F8FCF7, 0x030C0905, 0x040AF1F5, 0xF0F80CE7, 0x100AF413, 0xF8FB0817, 0x02EFFA04, 0xFB04EC08,
+0x16F4FDFE, 0xE8FD07F4, 0xF2FFEF07, 0x0DF105F4, 0xF4EDF50B, 0xF7EB04FC, 0xF8F601E8, 0xEE0B00F0,
+0xF516040E, 0xF600F605, 0x090705EC, 0xF10408F2, 0xE9F2EC11, 0xE90E1613, 0xF601F6F4, 0xF307F4F8,
+0x100B060B, 0xF90D0402, 0x09FE0715, 0xF90E06F7, 0xF6FC08F7, 0xF7F30FF2, 0x040A05FA, 0x08F1F411,
+0xF6F806F5, 0x0EFBFD0B, 0x0A0EF6FD, 0xEFF4F8F5, 0xFD05F8EB, 0x1300F8FD, 0xF7FE0CF6, 0x05F4E903,
+0xF50302EF, 0xF8F514F8, 0x11F8F4F7, 0x120F11F6, 0x07F4FF09, 0x0D0FF700, 0x0EF7FD03, 0x090A06EF,
+0xF90206FC, 0xF20FFEFB, 0xF90709FC, 0xFEFDF2F3, 0x0DF70DF7, 0x10F10808, 0x0B08F5FC, 0xF20605F9,
+0x1DF5FAFF, 0x0B04F20C, 0xEDF811FA, 0x0F04EC07, 0xEEF4F40D, 0xF9100EF0, 0xFCEEEDF3, 0xF109EA00,
+0xE0E8F913, 0x0AFA0AED, 0xF3E7F90B, 0x06FB0BFE, 0x12FEF20D, 0xF4040C04, 0xF409090D, 0xF3F8FAF5,
+0x02F60306, 0x12F6FFFA, 0xF9FAF4F8, 0xF70D0408, 0x0400F007, 0x1501FDF2, 0xF305ECF2, 0x18EF01FC,
+0x0FF2050C, 0x050DF30F, 0xFCF80813, 0xF3F906FD, 0xFDF3FAEF, 0xECFCEDFE, 0x0D05F810, 0xFC0B11F9,
+0xF9FE0AE9, 0xF70EF4F3, 0xF9F1F1F8, 0xFCFA0DF8, 0x140F00EA, 0xF00AED07, 0xF9030CFC, 0xF604F9FA,
+0xF8140217, 0x08F816FE, 0xFA06FF0D, 0xFC0C11F3, 0xF6F5050E, 0x09FB0010, 0x0C11F4F3, 0x05ECFE0D,
+0x04F7070A, 0x12F50FEC, 0x0DFB0208, 0x110C03FA, 0xF50CF70A, 0xF90BF908, 0xFA0F0CF8, 0x100306F0,
+0xF50C04FA, 0x060B0909, 0xF4FF0F13, 0x06FAFA02, 0x05150912, 0x0E0BF308, 0x0BFB0E0B, 0x0FF405F2,
+0xF10AFD07, 0xFA00080C, 0xFB0FEB02, 0xF7FFFC0C, 0x0DF40BFB, 0x16FE060D, 0xFEF908FE, 0xF5F600F5,
+0x0204F7F5, 0xF605FFFC, 0xF802F606, 0xFA09EB0E, 0xEF0B0CF3, 0x1308F909, 0xF7F704F9, 0x0702F600,
+0x04F5F00A, 0xF7FAFC0F, 0x0BF70BF6, 0x16F3FF08, 0xF20B09FB, 0xF905F115, 0x040908FE, 0xEBF9090C,
+0xF808F3F5, 0x0512F3EF, 0xEEFC07F4, 0xEFFFFCFF, 0xEE0DF4FE, 0x11F7100A, 0x01F600F4, 0xF413F3F9,
+0x06F2F2F1, 0xF0120B03, 0x0D0CF3F7, 0xE4F000FB, 0xF7FC1A09, 0xFFED0912, 0xFF08E7F9, 0x06FA08F8,
+0x06F70D01, 0x05FEEE16, 0x13F2F90F, 0x0EFC0D01, 0xF5130AFF, 0xF3F0ED0D, 0xF10AF807, 0xF4F0030C,
+0x090AF3F7, 0x0C0BFFEC, 0x17FAF3F4, 0x0C0813F4, 0xEF0C0C0F, 0x0AF2E7F7, 0xF3EF0804, 0x05F90912,
+0xFDF9F002, 0x041106EF, 0xF51BFAEF, 0xEFF20411, 0x07FCFDF1, 0x09F6FB11, 0xF00D0907, 0x0717F20B,
+0xFCEF0800, 0xF0080009, 0xF011F50D, 0xFC06EC0B, 0x16FF0FF8, 0xF9F611FC, 0xF8F70D18, 0x160C0B13,
+0x0612F7F5, 0x0D08F80C, 0xF4F9E7F2, 0x03FB0EF8, 0xFF0CF908, 0xEFF111F4, 0xF4EE0EFB, 0xF4FE0502,
+0xF70A06FD, 0x0DFBFFFD, 0xFAF2F205, 0xFA060A0B, 0xEDFE0EF9, 0xF5EDF30B, 0xEF0C0616, 0x12020807,
+0x00F9F4FB, 0x0FF803F4, 0xFBF8FC01, 0x0D02EB0D, 0x01F2F9F1, 0x0B0CF0F4, 0xFA0C0712, 0x0DF314EE,
+0xFD0E0706, 0x06080AF8, 0x1600F7F2, 0xFCF2FEED, 0xF3090BF4, 0xEE0417FA, 0x00F90305, 0x1008110D,
+0xF5F1F7F4, 0xF5FB04F6, 0xFC0B02F4, 0xF1FB00F0, 0x0712FF10, 0xF5EB0FF4, 0x110AF005, 0xFE02FC18,
+0xF0E8F106, 0x100DF90D, 0xF30900FD, 0xF6F208F7, 0xFE021404, 0xED0AF612, 0x0104F5F8, 0xFE09F7F3,
+0xED0A01F8, 0x0BFE0405, 0xF008FA0A, 0xFB1CF201, 0x0712F70F, 0xF0F2FE05, 0xFFF6FC04, 0x0AF4070D,
+0xF9F3ECF9, 0x0AEC0BED, 0xEF0D010E, 0xF314F8FF, 0xEF0BFB0B, 0x0602F90B, 0x10F70A04, 0xFAEE0806,
+0x0EF7F005, 0xEEF0F60D, 0x13EE0D07, 0xF415F203, 0xFBF8F0F3, 0xEBEB0BE4, 0x05FBF803, 0xF40A07F9,
+0xEFF7F311, 0x040FF5F0, 0x0DFCED00, 0x050BEEF9, 0xF30CF612, 0xFB00EA0C, 0xF208F7F0, 0x0603F911,
+0xEC02EB04, 0xEFF812F3, 0xEFF60200, 0xF40208FF, 0x12010A05, 0x06F017F8, 0x050F0C16, 0x120010F9,
+0x0EF70707, 0xF0FA100E, 0xEFF50D01, 0xF5EE0808, 0xF409F2F5, 0x03FFF50C, 0xF2F0FCF1, 0x01EE16F7,
+0x081015F9, 0xFDF10BF7, 0xFBEBF10B, 0x0EF208F7, 0x0C11EE0A, 0x0FFAF00E, 0x0D03F706, 0xF7F711F4,
+0x05F30A06, 0xF709F904, 0x031A0DFB, 0xF8EC0608, 0x08EE0909, 0xF202EEF6, 0xFAF7F10F, 0x0F0FF3F9,
+0x09010CF6, 0x04F60EF7, 0x0B0FF0EB, 0x08ECF80E, 0x0EFB0010, 0x0104EF14, 0xE9EF0CF4, 0x0AF9EFFD,
+0x0B001415, 0xEF04FC07, 0xFF0C13EE, 0xF1F4F2FC, 0x0E08E7F7, 0x000CF612, 0xFD0B07EE, 0xFEFE04F0,
+0xFBFB0D07, 0x0AE80103, 0xF4F2F309, 0xF2EFFBF9, 0x0A07EC05, 0xF405EEFA, 0x03F706F8, 0x010005F6,
+0x0DFFF711, 0xF5030BED, 0x11EEFB13, 0xEE01EAEF, 0xF8F70DFB, 0x070DFBF8, 0xF5F116F0, 0xF7FB0401,
+0xF6F8F008, 0xF6EDF3F7, 0x1A02F912, 0xFD06F803, 0xF501F70D, 0x0A011708, 0xF0FA0E02, 0xF906FBFC,
+0xEFFCF707, 0xF50E09F8, 0xFA0CE9F9, 0xFB0E13F0, 0xF117F30D, 0x0C0702F9, 0x0CFBF705, 0xFB12F0ED,
+0xF5F1FF14, 0x0D070C07, 0xF90B0409, 0xF1F3FE09, 0xEF03F80A, 0xFAEE0509, 0x11F4F600, 0x16081215,
+0x0909F7F6, 0x0EF80A04, 0x0AFB0EEE, 0xF3FC020D, 0xF4FDEEF8, 0xFCF9F310, 0x0AEA00F5, 0x0AF0040F,
+0x09F7EEF7, 0xFFF3F409, 0x11F704EF, 0x0C10F710, 0xF70AEA12, 0xFCF201FB, 0xF4000F01, 0x0F021100,
+0x0B0AF4FA, 0xF802F702, 0x0812090D, 0xF9F30A10, 0x0FF2F309, 0x0DFCE9F8, 0xFA06FA02, 0x10E7FE06,
+0x15F8F410, 0x020D02F7, 0xEB0810F8, 0xF011FC10, 0xF5F812F6, 0xF71010F2, 0x0DEE0DF3, 0xF8EF08F9,
+0xF1F5FC11, 0xF8F8EBFD, 0x0604EEF3, 0x070CF40A, 0x0C070CF8, 0xFC090014, 0xF10EFDFB, 0x0CF80616,
+0x0DFFF2F9, 0x0802F5F8, 0x09EE1309, 0xF8F70C04, 0x0AF50C03, 0xF90AF5F5, 0x0E00FE0E, 0xF1F7FEF6,
+0xF8F3050A, 0xFCF50A13, 0x0AFE0B11, 0xF5F500E5, 0x0D0DFCF8, 0xF208F405, 0x01EEF0F9, 0x0900FB06,
+0xF4F30EEA, 0x03FA0C02, 0xFC03F60B, 0xF8070AEA, 0xF1ECF9FF, 0x09FE0813, 0xFA020B11, 0xFF0210F6,
+0xF3F4ECE6, 0xEEF6F6F4, 0xF50CFEF1, 0x08F2EA0E, 0xF7F70D06, 0xF708EF07, 0xFB0CFC0B, 0xEF0FF4F2,
+0xFAF0FD0C, 0xF3F311FD, 0x01F5EC0F, 0xF9F10608, 0x0E07F3F3, 0x130508FE, 0x01EB12FA, 0xFF0804F1,
+0x0707040D, 0xF408FCFC, 0xFCFEF014, 0x090A0007, 0x0C06F5F3, 0xF5020CED, 0xFCED0C0F, 0x0C0D1008,
+0x0F0FFC06, 0x0B09F7F6, 0x08F208F8, 0xF7F7F60C, 0x030AF408, 0x051BF9FC, 0x1307080C, 0x0000F60F,
+0x0B07F211, 0x0613F70E, 0x0310F5F4, 0xF0F812F7, 0xFB0B1308, 0xFC0C02F5, 0x13FD010D, 0x02F008ED,
+0xF5F30EF1, 0x0511F605, 0x0008F80E, 0xF90EFA00, 0x0708090F, 0xFAF8FB0C, 0x14F7F70A, 0x09F608F7,
+0xEC120708, 0x04070A04, 0xEDFEFA08, 0xFF11EFF5, 0x0CF9F5F1, 0x04F5F507, 0xFFF70FFD, 0xF10904FF,
+0xF6F8F50F, 0x0BFE040A, 0xF71504F1, 0x0D04F717, 0x00F3FEF5, 0x13F50CFB, 0xF8F707F8, 0xFA0A09F6,
+0x09FEF605, 0x050E0300, 0x07190AEF, 0xFE040EE5, 0xF8F70D11, 0x0A08FD03, 0xF40C03F3, 0xEEF0050C,
+0xFBEFED07, 0x0AFEEFED, 0xFE0806F1, 0x0A071315, 0xF707FDF5, 0xF10D0FF4, 0x03F80709, 0x0F0BE9FA,
+0xF50D0B0C, 0x0AF7EAEB, 0x12F4F306, 0x12F10FF7, 0x06F2F20A, 0x0E0F14EE, 0xFAFC0F06, 0x0E000CFD,
+0xFAEEFCF6, 0x0EF3FD02, 0xF9100A04, 0xFAF410F5, 0x051403FB, 0x12EEF40D, 0xF90B0004, 0xF7070DEC,
+0xE5140FF1, 0x0C090E06, 0xF5FFEFF7, 0x0FF90D09, 0x00FD0A0C, 0x0A02F5FE, 0x09040DFA, 0x0D07030B,
+0x10EEF2F8, 0x0FEA0F16, 0xF611F405, 0x05F10A08, 0xF80703F7, 0x010107FA, 0xEE0DF60D, 0xF9F6F80E,
+0x10F6F5F8, 0x0B0B02FC, 0x0A08F305, 0x110107F4, 0x0D120101, 0x0EF7130A, 0x04F7EBF9, 0xF8FB03FB,
+0xFD160BF6, 0x1104F5E7, 0xF802F5F6, 0x08090BF5, 0xEA09F50D, 0xFFFB14E8, 0x0800FF0A, 0x05FDE612,
+0x14F2F609, 0xFA0301F4, 0xFBFBFC0F, 0x0410F40C, 0xF6F4EF0B, 0xF304FB05, 0xFEEE0E11, 0x12030908,
+0x07090907, 0xF707FC11, 0x0C01FDFB, 0x04F20909, 0xEFFEF20A, 0xF00B02FA, 0x0FF8050D, 0xF50EFCFE,
+0x08F20EF2, 0xFEFC0BF5, 0xF6EAFCEC, 0x08FA05F8, 0x0AFCFE0C, 0xEFF20A11, 0x0FF1F411, 0x13F8FAF1,
+0x0A0912FE, 0x070514F7, 0xF3F8F50B, 0xF3091503, 0x080BF00B, 0xF2F9FD03, 0xF3F503F2, 0xFAF9F819,
+0x02FFF9FA, 0x19F6FA08, 0xF403FF00, 0xF40901F5, 0x0613F514, 0xF9F40DF9, 0x030A14F6, 0x170AFC12,
+0xF4F10AF0, 0xF5E506FC, 0x0BECF0FA, 0xFC04101E, 0x0BFFFBF1, 0x12F2EEFD, 0xF605F7EF, 0x090DF8FD,
+0xFF09F012, 0xF9F4020C, 0x03011206, 0x16F9E009, 0x0607EC1D, 0xFE0EEAF6, 0xFA0DFFF1, 0x13FEFA14,
+0x06020D03, 0xF2F902EE, 0xEF0EFCED, 0xF104F711, 0xF0E90503, 0x15060EF2, 0x01F80AF9, 0x0AFDEF04,
+0xF10C100D, 0x090AF600, 0x03F5F909, 0x05080DFA, 0xF40E0A1B, 0xF9F408EF, 0x0BF9F0F7, 0xFB100FF9,
+0xF6081009, 0xF006F7EE, 0xFA0F0212, 0x0714F90E, 0x070F0DFD, 0x160402F5, 0xED0DF108, 0xF6F0F9EA,
+0x1000F0FF, 0xF10B130D, 0xFF0F0C0D, 0x081702F8, 0x0C0EF306, 0x0517F907, 0x05F708FB, 0x0301FAF8,
+0xF803F912, 0xF8140AF8, 0x0EF5F506, 0xF4F406FE, 0xF5F8EFED, 0xEF0A120A, 0x0A0906F9, 0x0D0BFB11,
+0xF60EF5F8, 0x000B0A0D, 0xF9EC12E8, 0x0A0900F0, 0x0C14F40C, 0xF50011F2, 0x030D000E, 0xF0FD0E09,
+0x11F70B03, 0x11EA0316, 0xF7F8050A, 0xF103F5F6, 0xFD1004FD, 0x08F31109, 0xF6F5F114, 0x0CF40BF3,
+0x0DEC0BF5, 0x14F30202, 0x070AF80A, 0x11F3F1FF, 0xF8FA0BFA, 0xF90C01EF, 0xEE0DF308, 0x10F6F10B,
+0x09F7E2F5, 0x10F1EF04, 0xF3F50AF4, 0x08F9120A, 0x0B02FDF7, 0x06FC1001, 0x0401F7FE, 0x18FAFAFA,
+0xF5F3F4F2, 0xE9F4F40D, 0xFA0CFEFF, 0x060503FC, 0xF8F7F106, 0x0813F9FB, 0xF20AF4F7, 0x09EBEEF3,
+0xF40CFBF6, 0x0CF6EEF2, 0x0F1EF1EB, 0xF4F90C0E, 0x160BF5F5, 0xFCF6F0EE, 0xF403EEF7, 0x04F10713,
+0x11071109, 0xFDFA0F0D, 0x0C08060C, 0x0BFA08F8, 0x010AFF07, 0x101FF7F8, 0xF3EE090F, 0x08F5EBF9,
+0x04FDF708, 0xEC090DF7, 0xF3150003, 0xF80BFD0A, 0xEE000A0F, 0x08F7F8FA, 0xFCF008F5, 0x0701EFFA,
+0xF5FEF505, 0xEAEAF4EE, 0x0EFCFF10, 0x15F80BFB, 0xF7060700, 0xF3100D0B, 0x1705F901, 0xFA130605,
+0xF4F2FA16, 0xEEFA0615, 0xFD130BF4, 0x06FDFA0F, 0xFB0406F8, 0xFC03EB0B, 0xFFF113FD, 0x03FA130F,
+0x0B0B07F4, 0x03120AF8, 0x00020304, 0xF70AE308, 0xF9FA0203, 0x0007F501, 0x05FAF2F7, 0x1417F1EE,
+0xFCEAF606, 0x02050AF5, 0xED12F609, 0x0E03FD0B, 0xF7FDEB01, 0x02FFF107, 0x1507F4F5, 0xEFED1609,
+0xFC02F5F9, 0x06ED07FF, 0x070F18F9, 0xFA0A000D, 0x0FF307FA, 0xF6EFF20A, 0x120604F6, 0xF7090DF4,
+0xEC120605, 0x0514FAFB, 0x0BEEFCFF, 0x130A0D10, 0x0100FAF2, 0xF6F307EF, 0x10F0F9F7, 0xF2FB0DEF,
+0xF409F8FC, 0xF10A0A05, 0xF10F060D, 0x0EF9F7F6, 0xF502FFF8, 0x0CF20F0B, 0xFFFBFB0E, 0xEBFFEE0F,
+0x0809F50B, 0xF809FAF3, 0x00FBF6EE, 0x0A0B0804, 0x0D04F105, 0x0DF709F8, 0x03F6F5F9, 0x0A12EE0C,
+0xF6ECEFF0, 0x14090BF4, 0xF907040A, 0xF4F01510, 0x10050FF1, 0x13FFF705, 0x11F80111, 0xFB05F30D,
+0x12F3EDF7, 0xECE80905, 0xF90BF8F3, 0x0DFE030B, 0xF1EF0310, 0x08030E11, 0x0510F6FB, 0x12EF09F7,
+0xFD03F610, 0xF6FB0B09, 0x0B0F06FD, 0x1309F0F8, 0x060504F0, 0x0CF7EDF8, 0xF7101AF7, 0x000A0109,
+0xFFFBFA00, 0xF5EAEEF8, 0xF7F7EAFB, 0x13FB0D08, 0x14F2F4F5, 0xFFF7FB11, 0xF00FFA01, 0x050EF9FE,
+0x09F3040C, 0xF002ED0B, 0xF7FA0C04, 0x03070A00, 0xFEF3F108, 0x09F2F701, 0xFAF8070D, 0xEBF20C11,
+0xF9060AF8, 0xEA02120A, 0xF4F104FC, 0x08051009, 0x1306FE0C, 0xF9F30C11, 0xF9EFF8F8, 0x1500FFF8,
+0xF80DF20A, 0x07F0F1F9, 0xF709F40B, 0xEC06F10B, 0x11F2040B, 0xE80D0AF8, 0xFE02F60B, 0xF7F2070F,
+0x13F6FCF5, 0xF80B1006, 0x0A1011F4, 0x040E04F1, 0x02F51013, 0xF6FA06FA, 0xF50D0103, 0x12F111F2,
+0xF90CEDF6, 0xED111408, 0x0DFC12E8, 0x0303EFE8, 0xF400F811, 0xFD070807, 0x0BF500F2, 0x0C100BF4,
+0x180DFDF7, 0x0DFB050B, 0x0FF80E0D, 0xF710F402, 0x06080D06, 0xF2F20D04, 0xF803F2F7, 0xF5EEF30E,
+0xF40E0EF3, 0x03F00600, 0xE201F9F1, 0xF60F14F6, 0x0A0F0EFF, 0x0AFA0809, 0x0DF8E6F7, 0xE7F206FC,
+0x05F8F7FB, 0x1604FD09, 0x0F0BF306, 0x08F00AF7, 0xF7070B11, 0x150BF905, 0x0F16F309, 0xF8F60E04,
+0xFDF2EDFB, 0x0BFF040D, 0x06FAF0F2, 0xFAFEF501, 0x0F02F6F3, 0x0608FA16, 0x13F9F20A, 0x0A00F10E,
+0x06FAFD04, 0x10EFF8F7, 0x0C08F914, 0x01FB030A, 0x0D0E0A02, 0x0BF1FEFE, 0xF00702F2, 0xFE080F05,
+0x0D110502, 0x04F60410, 0xF9161006, 0xFCF8FEF2, 0xF6FCFCEF, 0xFEFEFCF8, 0xEB0AFCFF, 0x08F304F8,
+0xF909010D, 0xFE0C08F4, 0x02F0F60F, 0x09F90AFF, 0xF2F40B09, 0xF104010E, 0xF5060CF6, 0x0C0CF2E7,
+0x0CF2FA0D, 0xF8F3F7FA, 0xFEF00F02, 0xF80D0BF9, 0x03FAF400, 0x0A05EE08, 0xF0EBF200, 0xF6090F03,
+0x030E03E7, 0x13FEF50B, 0x0B0FFC0E, 0x12F701FA, 0xF3FE01F4, 0x0E04010C, 0xF90DF510, 0xF4FAF302,
+0xF90B0203, 0xF516E906, 0xFDFCF400, 0xF1F7FA0F, 0x121108FA, 0xFDF60F04, 0xF1FBF20B, 0x03FC17FD,
+0xFE03EE12, 0x070A11F8, 0xFEF4FCF3, 0xF20AF4FF, 0x02F213F0, 0x09F6FBF6, 0x070202F3, 0x1509060B,
+0x04EB010B, 0xFB110DFD, 0xEB030BF4, 0x070C0CF8, 0x0A09F7FC, 0xFAF70AEF, 0xF6EBFFFE, 0xEEF70C0A,
+0xF5EE06F1, 0x0A14F500, 0x01FAF606, 0x1AEFF0FC, 0x08EB0FEB, 0x0411F617, 0xFE10EDF4, 0xEC0309FA,
+0xF8F802FA, 0x0D0D0D0D, 0x0409EFFD, 0xF1FC0C04, 0x06EEECFC, 0x061417EF, 0x0E05FD00, 0xF914F8FC,
+0xEFF20AFE, 0xF011F60A, 0x100EFA03, 0x03F5FBF1, 0x0904F808, 0xF608F4F3, 0x08F5EF03, 0xF1060FFE,
+0xF115050C, 0x0D09F0F8, 0xFAFF0E06, 0xFA04F7F4, 0xF40D11ED, 0xE90B030C, 0xF805F610, 0x120401F6,
+0x08FC0BF4, 0xF110F1FB, 0xF10E1408, 0x1907F9EF, 0x0AEC10F8, 0xF9F7FCF6, 0x010EFF0C, 0xFFF8F90C,
+0x01FAF913, 0xF30B0BFB, 0x00FBF610, 0xF90FF809, 0x05ED080D, 0xFC0DEDF4, 0x07F80C0B, 0xFDEEFCF4,
+0x0FF2F2F2, 0x07090B10, 0xF8FD1305, 0x04EE0908, 0x0C18F505, 0x0C06080B, 0xF0E6F5F3, 0xEFF812F6,
+0x14010CFF, 0xF8080E15, 0xFAFFF2EC, 0x16FD010F, 0x0907F9FB, 0x13F400F1, 0x07FBF509, 0x0DEC05F3,
+0x020A04FF, 0x05FA070D, 0x110C0FF2, 0x0C0B0302, 0xFF0403F7, 0x05F018F4, 0x02FB0BF5, 0x10F413F5
+
+harq_input0 =
+0x0FFA0103, 0x130C0B02, 0xF309F6E7, 0xF70F07F1, 0xF7090FF8, 0x050409F2, 0xF80AFAF7, 0x00F60EF5,
+0x06FC060D, 0x080DFB03, 0xF4EDF9F9, 0xFCF9FEEA, 0x0F0C12F8, 0xF9F31708, 0xF60C02FF, 0xFF110310,
+0x0BF80F0F, 0x02F6F2EE, 0xEDF20A06, 0x0709FEF2, 0x14F5F0F0, 0xF70C0018, 0x12020FEF, 0x0602EF08,
+0xF40A0200, 0xEE0C0BFC, 0x0606ED01, 0xF2F709F3, 0x15110E10, 0x06EC06F8, 0xFBF10CF8, 0x0314FEF6,
+0xF5F4FC0C, 0xF00C00FF, 0xF6FDF9F6, 0x07F30801, 0x0F04F40C, 0x0406F305, 0xFAF9F808, 0xF20DF109,
+0x010A0AF8, 0x070AFC03, 0xF108120A, 0xF8F9F1EC, 0xEEEB09FF, 0x140C0D01, 0x04E5EF10, 0xF616130C,
+0x0314F4EC, 0x09FA09F2, 0xFAFAF714, 0xFAF101FD, 0x06030FF4, 0x17F3EFFA, 0x09FEF109, 0xFDFEF9FB,
+0xF2080B02, 0x0CF90B07, 0xEB0F0D06, 0xF71009FE, 0xEF110AF8, 0x0AF70BF9, 0x170A1508, 0xF8FDFAF1,
+0x0204F3EB, 0xEFFE0315, 0x0C06000B, 0xF10C0A0E, 0xEC0EF9FC, 0x08F0F2F3, 0x09FD02F7, 0x0B11F610,
+0xF8F1F8F7, 0xF8FB0A09, 0xFB030A13, 0x040804F0, 0xE8080813, 0xF1F4FFF3, 0xEBFCEDF7, 0xF7F00AE8,
+0x00F1160E, 0xF007F301, 0x0E13F211, 0x07F815F4, 0xF9EEF70B, 0x0EF7FE15, 0x0706E80C, 0x0611F60E,
+0xFB0B0CF5, 0xF4F50E11, 0x14FDF1EB, 0xF403120A, 0x09F80303, 0xFB0AF80B, 0xFA1408F5, 0xF503F717,
+0x0FFB1610, 0x1107F3FC, 0xF1F4F7F7, 0x060EF4E8, 0x04F8F5FF, 0x04F30CFA, 0x10F008F8, 0xF514EEF3,
+0x0EEDE8FE, 0xE7FEE70B, 0x0404FEF9, 0xF8F509F9, 0x0A0EF6F2, 0xF8080EF8, 0x01F200F3, 0x03FC19F2,
+0x0D0FF2F8, 0xF9FD0C13, 0x11FE0703, 0x0BF9F110, 0x0EF3FEFD, 0x0EF8F10C, 0x0A070FEA, 0x04FA0310,
+0x0CFE0003, 0x0CF3060D, 0xFBFCF5FA, 0xEC0D1108, 0x09ECF70A, 0x0C0EFB08, 0x0BF4F80A, 0xEFF0FB0C,
+0x0B09F8FA, 0xFA16FF13, 0x0B081512, 0xF4F2FBF7, 0x000C0A07, 0x130C0FEE, 0xFEF908FB, 0xF6F5F912,
+0xF1100409, 0x090E1606, 0xF4F50BF3, 0xEE00F7F9, 0xFAFBF5F6, 0x07080B0A, 0xF1150BE7, 0x0DF80912,
+0x12EF0809, 0xEBFF1108, 0x0BF60DFE, 0x130DF608, 0x12EFF2F1, 0x04FB0C0B, 0x01FDFC09, 0xFAF808F9,
+0x12020B01, 0xFCED060F, 0x040DFFFF, 0x04F80AF3, 0xF700F60B, 0x08F40E08, 0x06F7F80F, 0x0DFDEF04,
+0xFDEFF916, 0xF21107EF, 0x0A1110F1, 0x03F70DF3, 0x08F50300, 0xF1F711F9, 0xF6FCFF0C, 0x0CFFF704,
+0x080CFE09, 0x0FF80D06, 0x05080C08, 0xFE020210, 0xFB11F6E9, 0x060BF2F1, 0xED0BEAF9, 0x02F30C02,
+0xF8F40DFB, 0x020D0D01, 0x0CF406F1, 0xF302F812, 0x080C0EF2, 0x06010006, 0xF0FA0908, 0x08F9F905,
+0xFB0A0508, 0x0FF0F7F4, 0xFF081210, 0xEE18F6F1, 0xF9F9E8F2, 0x060B09FD, 0x0AFEEE04, 0x09F304F8,
+0xEA05F6F8, 0x1C0108F5, 0xF205120F, 0xF40D0A04, 0x0001F30D, 0x00FF0DFA, 0x020BF7F7, 0x02F2F7F0,
+0x04F90BF1, 0x01EFEE07, 0xEBE4F807, 0x0AF90FEF, 0x0F040B11, 0x0BF91000, 0x000CF812, 0x0311F3F0,
+0xF8070218, 0xEDFFF614, 0xF00C15F1, 0x000D0F16, 0xFA0EF707, 0xEE080901, 0xFF0C09F5, 0xEEF704F1,
+0xF10C10F9, 0x060BEBF7, 0xFA0EFDF6, 0xF7F403F2, 0xF5F0F306, 0xEC081A0F, 0x020AEEF5, 0xFBF9F7FB,
+0xF60C010A, 0xEC0E0FFF, 0xF014FB10, 0x0EFD0308, 0x04F30015, 0xF4FC0CEE, 0x0CFEF3F7, 0x12F0F702,
+0xE803FB07, 0x040D06F5, 0x05FA07F1, 0x140A0BF8, 0xEFEDFF11, 0x01EFEE13, 0x0D0C0B0F, 0xE70105F0,
+0x01F70CF4, 0x0603EE12, 0xED08EDF9, 0xF2FCFA02, 0x0E0CFCF3, 0x0E04F8F9, 0xF30D17F9, 0xFEEDFB05,
+0x071BF114, 0xF309F7F4, 0x02F503F6, 0x0815F400, 0x0CF0090A, 0xE80D0F02, 0xF9FCFDF8, 0xF00FFEF5,
+0xF3F5F70B, 0xFC10F7EF, 0xF2FB0AFE, 0xEEECEC15, 0x0202F60E, 0xF310FEF9, 0x10F8F209, 0xFB0606EE,
+0x0D0B0C10, 0x1110080C, 0xFCF2F8F6, 0x030DEE07, 0x0C11F511, 0x0CF6EF08, 0x0900070C, 0x0C160E0F,
+0xEEF8FFF9, 0xF7F0EEF5, 0x0A090903, 0xF70A000E, 0xF5FF07F6, 0xF5E5FEFD, 0x08F1F80C, 0x00F2EE0D,
+0xFAED07EA, 0x07EA170B, 0xFEFFECFF, 0xED0B0211, 0x0AF4F4E6, 0xF2FAF705, 0x0807F706, 0xFBF2F8F7,
+0xF31105F7, 0xF10809FB, 0xF1FEF307, 0x0805FFFA, 0x08FC070D, 0x0A071200, 0xEEEDF107, 0xF908EDFB,
+0x09F60FF2, 0x0B0C06F8, 0x07FCF608, 0x000FF30C, 0xFF0EF3FD, 0xE40BFCF4, 0x0CF50BF4, 0x04EDE90D,
+0xFD05F3F1, 0xFAECF4FA, 0xF80C080F, 0x0A0BF70A, 0x07F012F4, 0x1109FEF3, 0xF507F9F1, 0xF513F7FD,
+0xFE0AF80F, 0x041701F1, 0xF5E7F309, 0x0A0AF70C, 0x0E00FEF1, 0x04E505EF, 0xF4EF0BFD, 0x040CF807,
+0x1201EF07, 0xF31508F1, 0xF908F309, 0x0B0EE409, 0xF7EBF9F8, 0xF1F7F406, 0xFB0206F6, 0xECFD11F2,
+0x0702EEF6, 0xF409FC04, 0xEEF80010, 0xF3EC0BF0, 0x090600F1, 0xF9F5EBF7, 0xEEFE11F8, 0x070BF0FA,
+0xFE16EEF8, 0xF108FD05, 0x15FAF3F7, 0xF60E0D0D, 0xF7FC0AF8, 0x01F40805, 0xF70AFE01, 0xFB0F0BF9,
+0x04E701F6, 0x09F517F6, 0xFBE8F5F8, 0x11FE00F6, 0xEF08F2F5, 0xFB0CFB0F, 0x0419080B, 0x0308EE11,
+0x07110907, 0xF2F5ED0F, 0x0BFAFEF6, 0xFA12F8F9, 0xE8090606, 0x0E0CEAEC, 0x06FD10F8, 0xF80505FD,
+0xF1F70912, 0xF5EF0C0B, 0xF9EF0B0B, 0x0D05F5F2, 0x0A08FF0E, 0x09F50300, 0x08F91314, 0x0AFEF60A,
+0xE5FC0504, 0xEF0A000E, 0x06FDFFF1, 0x0D11F103, 0x080CF512, 0xF9F501F2, 0xFAF60708, 0xFE140D05,
+0xF90202EF, 0xF0FD0EED, 0x06F2E903, 0xE904F80D, 0xF600F8F8, 0xF4FA09F5, 0x0803FA07, 0xFCF9F90B,
+0xF202F4F5, 0x000EFBFE, 0x0409FAFD, 0xF0EA0DF4, 0x0B0D00FF, 0x03F8FB0D, 0x0307FAF2, 0x010C0BFB,
+0x140C03FD, 0xF4FE0906, 0xF6F6F8ED, 0x0B11090D, 0xF6F90EF8, 0x09F001E8, 0xEC0600F8, 0x1109F90E,
+0xEA010BEF, 0xEF0A0C0A, 0x07F510FD, 0x08F3F500, 0x07ED01F5, 0xF313F60A, 0xF803FA0E, 0xF60B0D08,
+0xF1F0F709, 0x0DF609F4, 0xFCED020B, 0x0E0EEDE9, 0x08F907F2, 0xF1FC0C13, 0xFFFB0C06, 0xEB070AF7,
+0xF606F80A, 0xF90E1EFF, 0xF6EE0BF5, 0x05FF03F7, 0x0F0DF309, 0xFA0CF4F8, 0x1F0CF6F3, 0xF50DEE0F,
+0xF5F7FDF4, 0x0BF501EF, 0xF7FA000F, 0xECFAF0F5, 0xEA02FEF1, 0xF80FFCFC, 0x100B0600, 0xFF050501,
+0xFA150716, 0x110FFFF4, 0xEE0B04F8, 0x0E0FF112, 0x12F80BF4, 0xF6F41604, 0x07EDE6EF, 0x17EE0F0B,
+0x05F5FEF2, 0xEF0BFEF5, 0xFF07FD15, 0x01090709, 0x02EBEE0D, 0xF6F9FB0D, 0xEFF6070E, 0x090806F6,
+0x140FFEF1, 0xF6FCEEEB, 0x07EF14F2, 0xFB03040B, 0x0A05F4FC, 0x0DF6FB0D, 0x060B02F8, 0xFF0FFB0E,
+0x090709F7, 0xF7180F02, 0x0BF8F005, 0xFE0CF60D, 0x09F4ECF0, 0x0410F30A, 0xEB05F105, 0x05F90C11,
+0xFCF1F30B, 0x120B0BF3, 0x031104FC, 0x030BFC0F, 0xFB09EFFC, 0xF50CFB11, 0x0BF80504, 0xF609FCF7,
+0xFE0CFB00, 0x0F08F7FB, 0x0BFD0609, 0x0E120F15, 0x020B07F8, 0x0714FAF0, 0x0615F308, 0xF2FDF8F9,
+0xEEF606F8, 0x050906E8, 0x071106F7, 0x000C03F8, 0x04F9F90A, 0x060BF5F7, 0x0D0CF2F7, 0x06FB02F7,
+0xF7060AF5, 0x0EF1FCF4, 0xFAFAF5FE, 0x0506F917, 0xFCF40C0A, 0x03FC10E8, 0xF30700FD, 0xFCF40906,
+0xFB0B0D0B, 0x1017E4F9, 0xF20408F2, 0x02FA03F7, 0xF0000E07, 0xFB0AEDF1, 0xE6F50FEB, 0xF2FCF80B,
+0x04F50DFB, 0xF00BF706, 0xF70507FC, 0x0AF01609, 0xFF0DF20F, 0xEA150EF2, 0x080202F3, 0x00FAF9F5,
+0xEFF70E04, 0x0FF6F314, 0xF1FEFAEE, 0x08F1F3F2, 0xF6101102, 0xF8F20206, 0x120DFC03, 0x07F8F613,
+0x0CF4F50D, 0x0DFF05FB, 0x040EF409, 0xF8FB06F6, 0xF3FAF20D, 0x0DF90402, 0x05080E00, 0xF5EFEBEC,
+0xFE0B0EE7, 0x0B0E0F0E, 0x04F812F4, 0x0EEE0D10, 0x021AF7EF, 0xF70F10EC, 0xF604FDFA, 0x10E90F0B,
+0xF60CEFFE, 0x0AEBF407, 0xF60A06F0, 0xF50B1607, 0x1111FF0B, 0xF8F8EF08, 0xF704F410, 0x0B0AEBFE,
+0x14000205, 0x03FC0EF2, 0xFD17EBFF, 0x17FAFCF4, 0x0DF90CFA, 0x1004F511, 0x140302FC, 0x14FC0500,
+0xFCF6F2FE, 0x0905FA03, 0x08F3F0F4, 0x06FEF5EF, 0x09F801F8, 0xF00913F1, 0xF7F80DED, 0x040AF1FC,
+0xFC0F1008, 0x07040EF4, 0x0BF6EC0C, 0x0CF8FA0C, 0xF70F0EFF, 0xFB09FBFC, 0xF9F4ED0D, 0x02F4F80B,
+0xF5FCF2F2, 0x0208FDF1, 0xF20B0405, 0xF80AFAF3, 0xF415EDEA, 0xFDFBEB00, 0xF4F1F30F, 0xEC070F09,
+0xFA0D0AFF, 0xF7EE0C06, 0x04F4F00B, 0x08F50FF5, 0xF50EF3FC, 0x1006E7F9, 0x04F7F7FC, 0xFC070CFB,
+0x0F12EAFA, 0xF7F00706, 0xF4011505, 0xF7140B09, 0x0AF9F1F8, 0x03060DF8, 0xF2090CF8, 0xF20712F3,
+0xF903EFEE, 0x1102EC14, 0x0A09F1F6, 0xF9F001FA, 0xF8FE01FB, 0x140410F1, 0x0B0402F2, 0x0F0006F5,
+0x0805ECF9, 0xF409F10E, 0x0DE7FD01, 0xEFFD0710, 0xF20403FD, 0x0BF2F6F9, 0x0004F909, 0x0F09FFF6,
+0xF3060DF2, 0x0EEF060E, 0x0CF40705, 0xFDF7FB0C, 0xF4F203E4, 0x0E09F4F6, 0xF5FE04F9, 0x06F3FEFE,
+0xFDFB1102, 0xFD04EE0D, 0x0DFBFCF1, 0xEE14E90B, 0xFB0CEE09, 0x0C13F108, 0xF60703FD, 0x0BF4FCFA,
+0x14F2F0FB, 0xFAF9EFF7, 0xF5010801, 0xF109EEF3, 0xFF0A0514, 0x0C0604FF, 0xFB0EF704, 0xF50EFD0B,
+0xFF05F4FA, 0x07E70B0B, 0xEFFEF4FD, 0x0D0807F3, 0x05100DF6, 0xEFFA1A08, 0x020D090A, 0xFFF5F7FD,
+0x1513F10A, 0xF10BF2ED, 0x0B0F150B, 0xF10306FA, 0x09FB11EE, 0x061007F2, 0xF7F8FB14, 0xF90704EE,
+0x0AF8EAF6, 0xF7E809F9, 0x02F609E9, 0x09E802EE, 0x03F50BE8, 0x040C04F1, 0x0CF41009, 0xFB00EEFA,
+0xFC071611, 0xF9F1F203, 0x0BF0F409, 0x0214F801, 0x0A0AF504, 0x0508F5F1, 0xE916E900, 0x07F4F60A,
+0xF9F010F2, 0xF906F507, 0x0BFB0AF4, 0xF408F0F1, 0x0EFD0A06, 0x03F80AF6, 0x130CFD0C, 0xF1E9F7F8,
+0xF800F502, 0xFEFDFDF4, 0xF90B0713, 0xF506FAFD, 0x0712F9F2, 0xEAF20DF5, 0x10F40D0D, 0x06050B09,
+0xF706090E, 0x0F00ED11, 0xF90E02F4, 0xF1FEFCED, 0x0AF5E00D, 0x06F7F3F9, 0x08F81206, 0xF30EF4F5,
+0x12FF02EF, 0xF7040DF4, 0x151204F0, 0x04ED07EC, 0xF0F3FB05, 0x08F2FCF4, 0xECED11FA, 0xFC110DF8,
+0x0BF4F90A, 0xFCF9F905, 0xF0010014, 0x0A0EF9F8, 0xF4020C02, 0x10FDFA13, 0xF5000B05, 0x05EAF808,
+0xFE0F04F3, 0xFDEFF9EE, 0xF9F9090B, 0x10F20E0C, 0x060909F0, 0x060EF40F, 0x0E0705F5, 0xFB05F6F9,
+0xFA1C0512, 0x0B10FBEB, 0x16F20DF6, 0x090012F4, 0x0A13020B, 0x0EFF0C0A, 0x130DEF0C, 0x070A0B04,
+0x0BFCF004, 0x02FF0BF7, 0xF9F1F209, 0xFFF5F008, 0x05F30C07, 0x03FCEE07, 0x11FCEE08, 0xF4F31514,
+0x040B06F2, 0xE400F9F3, 0x13090B1A, 0xF2F4FFE7, 0xF1EE06F9, 0xFA0DFF0D, 0xF3ED09F6, 0xF40305F8,
+0xF8FFF507, 0xF8FF1707, 0x0AFC030C, 0xF109F3F4, 0x0406FDF0, 0xEF04F50E, 0xF5FBF3FD, 0xF30704F4,
+0xF0ECFC1C, 0xFCECF0F5, 0xF911160F, 0x020B0C0D, 0xF90C060B, 0x03FA08E7, 0x0311FF0D, 0xF405F4FA,
+0x0DEBF7F2, 0x0EF6FAF2, 0x09F3ED0E, 0xFE08EFF2, 0x0F170008, 0x0DFF0FFC, 0x0BF0ED0E, 0x0D140E07,
+0xF2F611F3, 0x11E9020B, 0xEE03F3F7, 0xFCFD00EF, 0xF518090B, 0xF11510EE, 0xF5FB07FF, 0xFEFC11F0,
+0x100DF006, 0x0AF4F300, 0xED0A1200, 0xFEF7EDF5, 0xF7040101, 0x0FF2040E, 0xF01207F7, 0x0AF3FF10,
+0xF60B0D00, 0x07F8EFED, 0x060D03FB, 0xFA08FCF6, 0xEEF6FA04, 0x0806FFF9, 0xFF0B0FF0, 0x08F3F1F8,
+0xF0F5EFF3, 0xF1EE0D01, 0xFBFEF3F6, 0xF20D060B, 0xEFFE00EB, 0x080803EE, 0x0617120A, 0x1210050C,
+0xF010FA07, 0x0908EF0D, 0x030908F2, 0x01160610, 0x120BF415, 0xF9F40FF1, 0x0FF00C02, 0x0B110D0B,
+0x0CF9F10A, 0x0C06030D, 0xF20208F5, 0x0F07FAF1, 0xF0FAF50C, 0x08F8F7F0, 0x01EF0EEC, 0x0AEFE90C,
+0xEFFCF714, 0x05F2FF13, 0xECF6F9E7, 0xFEEFFD07, 0xF6ED0F0D, 0x060FF407, 0x0803F600, 0x0105EE06,
+0xF5F70D0B, 0x02EA110F, 0x070FF8F8, 0x0B040902, 0xF6F30AF0, 0x110C1AF9, 0xF61709F7, 0x0D0FF00E,
+0x09F5EFF7, 0x0F13FAFD, 0x0C02F1F3, 0xFBF0F8F7, 0x0DF8F5EB, 0xF1FEF904, 0xFAF1030D, 0x161211F6,
+0xFA0AF50B, 0xF316F60E, 0x100708EE, 0x0AF00A00, 0xFFF4F4EE, 0x0C0BFD18, 0xFCEDF7FE, 0xFB11080F,
+0x0DF70B08, 0xF90AF309, 0xF9FD0F08, 0x10FEFA0E, 0xEE161508, 0x04FCFFFB, 0x0B1009FE, 0x0CF40D0D,
+0xF800F1FC, 0x07080602, 0x1000F8F8, 0xF8F205FD, 0x0809F9F2, 0xF80C09FF, 0xF9F5F6F8, 0x05FE0EFE,
+0xFCF6F8F1, 0x09000A0B, 0x07080DFC, 0x09FBEDF0, 0xEF0CF4FA, 0xF8F6100A, 0xF5F4F1F9, 0xFFFC0E0B,
+0xEEF6F3EC, 0xF4EA09FE, 0xF7EFF70D, 0xEF0810FC, 0xF311FAFD, 0x0DF201EC, 0xFFF40EF3, 0x1304ED12,
+0xF4FCF304, 0x09EC1005, 0x09F80C09, 0x0C10FC0C, 0xF7F7FBFC, 0xF7F60808, 0x05F90308, 0xEC0A13F4,
+0xF20BF707, 0x04FE03F5, 0x10020FFE, 0x02F413ED, 0x050AF5FA, 0xF90E00E4, 0xFAFBF3F5, 0x0908140B,
+0xF00A0107, 0x13EFED0E, 0x04F5F8F5, 0xF104FF0F, 0xF7F0F6F5, 0x0DF7F704, 0xFF0CEB12, 0xFAF50C07,
+0x05EFF5F6, 0x12FA07F6, 0x0AFDF8F9, 0xEE050803, 0x0A04FBED, 0xF61312F2, 0xF10FF7E9, 0xFBFD0307,
+0x0AFEF5F7, 0x12FB12F3, 0xFA14F206, 0xFAF80EFB, 0xFAFDFAFC, 0xFAFC0DF6, 0xFD08F1EF, 0x0B0D0D14,
+0xF80EF90F, 0x0F0D0903, 0xF609ECF6, 0xF9EFF5F9, 0x0FFBFC06, 0x050A0A08, 0x01F30C03, 0xF9F8EE0A,
+0x0B02100A, 0xFDF3F607, 0x0EFF0D01, 0xF8EFF0FF, 0x11F511F7, 0x08F7F809, 0xEB00FE09, 0xF1FA08FF,
+0xFA0114F6, 0xF0090F10, 0xF3FBF6EF, 0x1209FE0E, 0xF7FCF309, 0x04F5F8FD, 0xF00203F2, 0xF510FB05,
+0x12F7080E, 0x08F10AFC, 0xEFF6F5FE, 0xFFFA0F08, 0x0714F612, 0xF30107F5, 0x06FD08F0, 0xFA0C08EE,
+0x05FA02F9, 0xF40108FF, 0xF90DF1F5, 0x17FC0300, 0x09F2080A, 0x10100BF0, 0x12020B10, 0xF5F80AF7,
+0xF902EBF0, 0x16E00312, 0xFEEA0600, 0xFFFAFA13, 0xF20206F9, 0x060BEF10, 0x15FAF005, 0xF603010A,
+0xF50AF110, 0xF1F903F9, 0xE508F40A, 0x0F0FF704, 0xF00B0AFC, 0xF30DFA02, 0x0202F3F9, 0xF60DEDF1,
+0x05FFFC04, 0xF402FFF8, 0xF1F9F807, 0xEF0E0508, 0xF8F6F80D, 0xF4F2FAF5, 0x031209EF, 0xF9FBF6F2,
+0x000AF6F5, 0xF6000D12, 0xF5FD0C08, 0x04FAEF00, 0x1103110B, 0xF1F50BF1, 0x08FD1104, 0xF80B0AF1,
+0x00160DF7, 0xFD05F3F8, 0x0D01F80B, 0x100502F3, 0xFC0309F6, 0xF41207F6, 0xF2100BFD, 0x040E04F7,
+0xE9080908, 0x06030EEA, 0xF40DF805, 0x09EE0608, 0x0C03F4FB, 0x080CFBF1, 0x100416F5, 0x0407F402,
+0xFDFBFDFD, 0x0BF4F806, 0xFC0B16FF, 0x08EBF3F5, 0xECF9F00B, 0xF8E9F300, 0x08F802F5, 0xF3EF10F4,
+0xFEF409F5, 0x15F7FA13, 0x070DF707, 0x0E0617F9, 0x0206F4FA, 0xF2FAFD0B, 0x10EB0F06, 0x1713EBFF,
+0x030A0BF3, 0xF7E30003, 0xECF50DEE, 0x14050506, 0x160AFC0A, 0x0EFD01F6, 0x02050BEB, 0x031615F4,
+0xF2F3FC09, 0xFA140704, 0x0AF20F07, 0xF7F9FE04, 0xF10EEC06, 0x130D0BFC, 0xF6F3ED0F, 0xF20D100D,
+0xF1F6F40C, 0x0E0BF1F2, 0x0C0FF513, 0xEBEE13FB, 0xF80EF409, 0xF608EC0A, 0xF9090DF1, 0xF602EF09,
+0x14F7F6EF, 0xF401F9F0, 0x130B10FB, 0x0FF31101, 0xEC0912ED, 0x0D03F9F8, 0xF4FAF103, 0xFEF4F10A,
+0xF60BE90A, 0xFFF0F7F1, 0xF801F2F0, 0x00150B1A, 0x09EE130F, 0x130DF7EA, 0x13FB0008, 0xF1F9F00E,
+0x0501F5F0, 0x03F60BF8, 0x090BFE05, 0xEBF8FAF3, 0xEA12F90A, 0xF4FCF4F0, 0x0DF81312, 0x01130DF8,
+0xF3060CF2, 0x00F10CF4, 0xE8F611F0, 0xF707FEF6, 0xF81013FC, 0xF0040AFD, 0xF60616FC, 0xFE1109ED,
+0xED140DED, 0x0303F812, 0xFDF4F4F8, 0x0CF60B14, 0x0DF11811, 0x0BF4FBFA, 0xF2F906F9, 0x09F3F806,
+0x030608FA, 0x0A14E20D, 0x0A08F5FA, 0xE7060DFB, 0x02FD050B, 0xF4F6FB07, 0x01F90BF7, 0x0CFA0FF3,
+0x0B04FD01, 0x0F090604, 0x060E0F0A, 0xF6F1FF06, 0xFC0C0611, 0x01030C0D, 0xF612F9F6, 0x120FF002,
+0xF0F0F9F0, 0x10FE0DFC, 0xEAFCF6E7, 0xF4F0FFFC, 0xEA080D01, 0x09F6020A, 0xF1EDF2F7, 0xF80609F8,
+0xF8F7F80F, 0xF8F7FEFB, 0x0AEE03F4, 0xF60F0406, 0x1309EF03, 0x1215F7FC, 0x0EED07ED, 0x08F30DF5,
+0x09E90D02, 0xF1FAFDF4, 0xFD0FFEF4, 0x0317F1F2, 0xF3111203, 0xF208FEFC, 0xF5FB0213, 0x15F20702,
+0x0FF918ED, 0xF3F8FF0B, 0x0F0A0A0B, 0xEE0C0A13, 0x0A0AF506, 0x1A0401F6, 0xF0F6080F, 0xEC091201,
+0xF9F90C02, 0xF10CF003, 0xF217F200, 0x0DF8FA11, 0x04F603F6, 0x03FB10FA, 0x0AF4090D, 0xF1FBF3EF,
+0x0DF00505, 0xFA0B0E0E, 0xFD030811, 0xFEEDF80A, 0xF1F1F40B, 0x050D0514, 0x0DFC0A10, 0xFF0D01EB,
+0x07F7010D, 0xF90D00F6, 0xFCEDF108, 0xFD10F30C, 0xF3F7FB06, 0xF009F8FF, 0xF808F8F5, 0xEF12F009,
+0x0C0E14F8, 0x02010E06, 0xFF00F50D, 0xF9F1F309, 0x0507EEF0, 0xF8EFFDFB, 0x05041303, 0xFC13EEF6,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0xFB0E01EF, 0xFF0C0B02, 0x07090AFB, 0x0BFBF3F1, 0x0B090F0D, 0xF10409F2,
+0xF80A0E0B, 0xECF60E09, 0x0610F2F9, 0xF4F9FBEF, 0x08ED0DF9, 0xFCF9FEFE, 0x0F0C12F8, 0xF9F317F4,
+0x0BF80213, 0xFFFD1710, 0x0BF80FFB, 0xEEF6F2EE, 0x0106F506, 0xF3091206, 0x00F504F0, 0x0B0C0018,
+0xFD02FAEF, 0x06ED0308, 0xF4F60215, 0x02F80BFC, 0xF20601ED, 0x06F7F5F3, 0x0111FAFC, 0xF2ECF2F8,
+0xFB050C0D, 0x0314EA0A, 0x09F4FCF8, 0xF0F80013, 0xF6E90D0A, 0xF307F415, 0xFB04F4F8, 0xF006F3F1,
+0xFAF9F808, 0x06F9F109, 0xED0A0A0C, 0xF3F6FC03, 0x0508120A, 0x0C0DF100, 0x02FF09FF, 0x00F80D01,
+0x04E50410, 0xF616130C, 0x0300F4EC, 0x090EF506, 0xFA0E0C14, 0x0EF10111, 0xF2030F09, 0x03F3030E,
+0x09EA0509, 0xFDFEF9FB, 0x06F4F702, 0x0C0D0BF3, 0xFFFBF906, 0xF7FBF512, 0x03110AF8, 0x0AF7F70D,
+0x17F60108, 0xF811FA05, 0xEE040700, 0x03FEEF01, 0xF706EC0B, 0x060C0AFA, 0xEC0EF910, 0x0804F207,
+0x09E902F7, 0xF7FDF610, 0x0C050C0B, 0xF8E7F609, 0xFB170A13, 0xF0080404, 0xE808F413, 0xF1F4EB07,
+0xEBFC01F7, 0x0B040AE8, 0x00F1020E, 0xF0F207EC, 0x0EFFF211, 0xF3F815F4, 0xF9020B0B, 0x0EF71201,
+0x0706FC0C, 0x06FDF6FA, 0xFBF7F80A, 0x08090EFD, 0x14FD05FF, 0xF403FE0A, 0xF5F8EF03, 0xFB0AF8F7,
+0x0F00F409, 0x0AEF0B03, 0x0FFB0210, 0x11070710, 0xF1080B0B, 0xF20E08E8, 0xF00CF5EB, 0xF0F30C0E,
+0xFCF0080D, 0x0900EE07, 0xFA01FCFE, 0xE712E70B, 0xF004FEF9, 0x0CF5090D, 0xF60EF606, 0xF8F4FAF8,
+0xED061507, 0xEF110506, 0xF90FF20C, 0xF911F813, 0xFC12F3EF, 0xF7F9F1FC, 0x0E07EAE9, 0x0EF8F1F8,
+0xF6070FEA, 0xF0FA0310, 0xF8FE1417, 0xF8F306F9, 0xFBFCF50E, 0xEC0D11F3, 0x0900F70A, 0xF80EFBF3,
+0x0B08F8F6, 0xEFF00F0C, 0xF709F8FA, 0x0E16EB13, 0x0BF415FE, 0xF4F20F0B, 0xEC0C0AF3, 0x13F8FB02,
+0x12F908FB, 0x0A090D12, 0xF110F0F5, 0xF40E021B, 0x0809F7F3, 0xEE000B0D, 0x0E0FF5F6, 0xF3F40BF6,
+0x05150BE7, 0x0DF809FE, 0x12030809, 0xFF13FC08, 0x0BF6F912, 0x13F90AF4, 0xFE03F2F1, 0x04FB0CF7,
+0x01FDE8F5, 0x0EF8F40D, 0xFE02F7ED, 0xE7EDF2FB, 0x04F9FF13, 0xF0F80A07, 0xF700F6F7, 0xF4080EF4,
+0xF2F7F80F, 0x0DFDEFF0, 0x11EFF902, 0xF2FC0703, 0x0AFD10F1, 0x17F70D07, 0x08F5EFEB, 0xF10B11F9,
+0xF610FFF8, 0x0C130B18, 0x080CFEF5, 0xFBF8F906, 0xF1080C08, 0xEAEEEE10, 0x0F11F6FD, 0x06F706F1,
+0xED0BEA0D, 0xEEF30C02, 0xF8F40D0F, 0x020D0DEC, 0x0CF40605, 0x07020C12, 0xF40C0EF2, 0x060115F2,
+0xF0E6F508, 0xF40DF9F0, 0x0F0A05F4, 0x0FF00B08, 0xEB08FEFC, 0xEE030AF1, 0x0DF9E806, 0xF2F7F5FD,
+0x0A12EEF0, 0x09F3EFF8, 0xFE05F6F8, 0x1CEDF4F5, 0x060512FB, 0x08F90AF0, 0x000107F9, 0x14FFF9FA,
+0x16F70B0B, 0xEEF2F704, 0x04F90BF1, 0x150302F3, 0xEBF8F8F3, 0xF6F90FEF, 0xFBF0F7FD, 0xF70D1000,
+0xECF70C12, 0x03FDF3F0, 0xE4F31604, 0x02FFF600, 0xF00C0105, 0xEC0D0F02, 0xFAFAF707, 0x0208F501,
+0xFFF809F5, 0xEEF70405, 0x050CFCF9, 0xF20BEBF7, 0xFA0E11F6, 0xF7F403F2, 0xF5F0F306, 0x00081A0F,
+0x02F6EE09, 0x0F0D0B0F, 0x0AF7EDF6, 0xECFA0FEB, 0xF000FBFC, 0xF91103F4, 0xF0F30001, 0x08FCF8EE,
+0x0CFEF30B, 0xFE040B02, 0xFC030FF3, 0x04F9F209, 0xF10E0705, 0x14F60B0C, 0x03ED1311, 0xED03EE13,
+0xF9F8F70F, 0xFB010504, 0xEDF70C08, 0x061802FE, 0xED0801F9, 0x06FCFA16, 0x0EF8FCF3, 0x0EF00C0E,
+0xF3F9170D, 0xFE010F05, 0xF31B0500, 0x07F50BF4, 0xEE09030A, 0xF401F400, 0x0C04090A, 0xFCF90F02,
+0x0D10FD0C, 0xF00FEA09, 0xF3F50BF7, 0xFCFCF7EF, 0x06FB0A12, 0x0200EC01, 0x02020A0E, 0xF3FCFE0D,
+0xFC0CF209, 0xFB06F2EE, 0xF90B0C10, 0xFDFCF40C, 0xFC06F80B, 0xEFF902F3, 0x0C110911, 0xF80AEFF3,
+0x0900F30C, 0xF8160E0F, 0xEE0D130D, 0x0BF00209, 0x0AF509EF, 0xF7F614FA, 0xF513070A, 0x09E512FD,
+0xF3050D0C, 0x0006020D, 0xFAED07FE, 0x07FE170B, 0x121300FF, 0x02F602FD, 0x0AF408FA, 0x06FAF7F1,
+0x0807F71A, 0xFBF20C0B, 0xF3FD05F7, 0x06F4090F, 0xF1FEF307, 0x0805EBFA, 0x0810070D, 0xF6F31214,
+0x02ED0607, 0x0D08010F, 0x09F60FF2, 0x0BF8F20C, 0x1BFCF6F4, 0xECFB070C, 0x13FAF3FD, 0xF8F7FCF4,
+0x0C09F7F4, 0xF001E9F9, 0x11F1F305, 0xFAEC08FA, 0xF8F8F40F, 0xF6F70B0A, 0x07F012F4, 0xFDF5FEF3,
+0x09070EF1, 0x09FFF7E9, 0xEAF60C0F, 0x04030106, 0xF5E70709, 0x0AF6F70C, 0xFA14FEF1, 0xF0E51903,
+0xF4EF0B11, 0xF0F80CF3, 0x12ED0307, 0xF301F405, 0xF9F4F3F5, 0x0B0EF809, 0xF7EBF9F8, 0xF10BF406,
+0xFBEEF2F6, 0xEC1111F2, 0x0716EEF6, 0x080910F0, 0xEE0D0010, 0x07ECF7F0, 0x09060005, 0x0DF5EB0B,
+0x0212110C, 0xF3F704FA, 0xEA02020C, 0x050811F1, 0x01FA07F7, 0xF60E0D0D, 0xF711F60C, 0x0108F4F1,
+0xF7F6FE01, 0x0F0FF7F9, 0xEFE7010A, 0x090902F6, 0x0FE809F8, 0xFDFE00F6, 0xEF0806F5, 0x10F80F0F,
+0x0419F40B, 0xEF08EEFD, 0x0711F507, 0xF20901FB, 0x0BFA130A, 0xFA120CF9, 0xE809F2F2, 0xFAF8FE00,
+0xF2FDFCF8, 0xF805F1FD, 0xF1F70912, 0x0903F80B, 0xF9EFF70B, 0x0D05F5F2, 0x0A08FF0E, 0x09F5EE00,
+0x08F91314, 0x0AFEF60A, 0xE51005F0, 0x041EECFA, 0x06FDFF05, 0x0D11F1EF, 0xF4F80912, 0x0D090106,
+0xFAF6F308, 0xFE14F8F1, 0x0D02EE03, 0xF0FDFAED, 0xF2F2E903, 0xE9040C0D, 0x0A00F8F8, 0xF4FA0909,
+0xF4EFFA1B, 0xFC0D0D0B, 0xF2EE08F5, 0x000E0F12, 0xF0F50F11, 0x04FEF9F4, 0x0BF914EB, 0x170CFBF9,
+0x03F30E06, 0x01F8F70F, 0x14F8EFFD, 0xF412F5F2, 0x0AF60C01, 0xF711090D, 0xF60DF90C, 0x09F0ECE8,
+0xEC06140C, 0xFD090DFA, 0xEA01F7EF, 0x030AF8F6, 0xF3F5FCFD, 0xF4F3F500, 0xF3EDECF5, 0xF3130AF6,
+0xF8EFFA0E, 0x0A0B0DF4, 0xF1F0F7F5, 0x0D0A09F4, 0x10EDEEF7, 0x0E0EEDFE, 0xF4F9F306, 0x05FCF8FF,
+0x13FBF7F2, 0xFF07F6F7, 0x0AF2F8F6, 0x0DFA1EFF, 0xF6EE0B09, 0xF113030B, 0xFAF9F3F5, 0xFA0C080C,
+0x0BF8F607, 0x09F902FB, 0xF50BFD08, 0xF7F515EF, 0x0BFA00FB, 0x01FAF009, 0xEA02FE05, 0x0CFBFC10,
+0xFBF7F214, 0x1305F1ED, 0xFA01F216, 0xFDFBFFF4, 0xEE0B040C, 0xFAFB05FD, 0xFEF8F7F4, 0xF60802EF,
+0xF301E603, 0x03EEFAF7, 0xF109EAF2, 0xEF0BFEF5, 0xFFF31115, 0xED09F309, 0x02FFEE0D, 0xF60D0FF9,
+0x030A07FA, 0xF5F4060A, 0x140FFEF1, 0xF6FCEEFF, 0x07030006, 0xFBEF04F7, 0x0AF009FC, 0xF90A0FF9,
+0xF2F702F8, 0xFFFBFB0E, 0x0907090B, 0x0B180F02, 0x0B0C0405, 0x12F80AF9, 0x09F400F0, 0xF010070A,
+0xEBF105F1, 0x05F90C11, 0xE805F30B, 0x12F70BF3, 0xEF11EFFC, 0xEFF7FC0F, 0xE709EF10, 0xF50CFBFD,
+0xF7F805F0, 0xF609FCF7, 0xEAF80F00, 0xFBF40B10, 0xF71106F5, 0xFA12FB01, 0x020BF30C, 0x0714FA04,
+0x06010708, 0xF2110D0D, 0xEEF6F2F8, 0xF009F1E8, 0x07FD06F7, 0x14F8EF0C, 0xF00DF9F6, 0xF20BF50B,
+0xF90C06F7, 0x06FB02F7, 0xF7F20A09, 0xFA051008, 0x0EFA0913, 0x05060D03, 0xFCF40CF6, 0x03E8FCFC,
+0xF3F31411, 0xFCF40906, 0xFB0BF9F7, 0xFC02F80D, 0xF20408F2, 0xEE0EEF0B, 0xF0000EF3, 0xFBF6EDF1,
+0xFAF50FEB, 0x06FC0C0B, 0xF009F80F, 0xF0F7F706, 0xF70507FC, 0x0AF00209, 0xFF0DF20F, 0xEA15FA06,
+0x0816EDF3, 0x000EF9F5, 0xEFF7FA04, 0x0FF60814, 0xF1FEFA02, 0x0805F306, 0xF610FDEE, 0xF8061606,
+0xFE0DFCEF, 0x07F8F613, 0x0C0809F9, 0x0DEBF0FB, 0xF00EF4F4, 0xF8E7F20A, 0xF3FAF20D, 0xF90D04EE,
+0xF1F40E00, 0x09EFFFEC, 0xFE0B0EE7, 0xF7FA0F0E, 0xF00CFEF4, 0xFAEEF9FC, 0x161AF703, 0xF70F10EC,
+0xF6F011FA, 0x10FDFB0B, 0xF60C03FE, 0x0AFF08F3, 0xF6F606F0, 0xF5F716F3, 0xFDFDEBF7, 0x0CF8EFF4,
+0xE3EF0910, 0xF7F6FF12, 0x001402F1, 0x03100EF2, 0x1117EBFF, 0x17FA1008, 0x0DF9F80E, 0xFCF0F511,
+0x1403EEFC, 0x0010F100, 0x110A0612, 0xF505FAEF, 0xF4F304F4, 0x061209EF, 0x090C150C, 0x04F41306,
+0x0B0C0DED, 0xF0F6F110, 0xFC0F1008, 0xF3EF0E08, 0x0B0AECF8, 0x0CF8FA0C, 0xF7FB0EFF, 0x0FF50FFC,
+0x0DF4EDF8, 0x02080C0B, 0xF510F2F2, 0x0208FDF1, 0x060B04F1, 0xF8F6E607, 0xF415EDFF, 0xE8FBEBEC,
+0x0805F30F, 0x00F30F09, 0xFA0DF6EB, 0x0BEEF806, 0x0408F00B, 0xF4F5FB09, 0x090EF310, 0x1006FBF9,
+0xF0F7F710, 0xFC070C0F, 0xFB12EAFA, 0x0BF007F1, 0x080100F1, 0xF700F709, 0x0A0D05F8, 0xEFF20D0C,
+0xF209F8F8, 0xF207FDF3, 0x0DEFEFEE, 0xFD020114, 0x0AF5050A, 0x0D0415FA, 0x0C12ED0F, 0x14F01005,
+0xF7F0EE06, 0x0F14F209, 0x080500F9, 0x08F5050E, 0x0DE7E901, 0x03FDF3FC, 0xF20403FD, 0xF7F2F60D,
+0xECF00D09, 0xFB09FF0A, 0xF306F9F2, 0x0E03F20E, 0x0C09F305, 0x11F710F8, 0xF4F217E4, 0x0E09090A,
+0x0A12F0F9, 0x06F312FE, 0xFDFBFDEE, 0xE9F0020D, 0x0DFB1005, 0x0200E90B, 0x0F0C02F5, 0xF8FF05F4,
+0x0AF303FD, 0x0BF4100E, 0x14F2040F, 0x0EF9EF0B, 0x0AED0801, 0x05F5EE08, 0xFF0A0514, 0xF8F2F0FF,
+0x0FFAF7F0, 0xE10E12F6, 0x13F1F4FA, 0xF3FC0B0B, 0xEFFEF4FD, 0xF9080708, 0x05FCF9F6, 0x040E06F4,
+0x020DF5F6, 0x13F50B11, 0x1513F1F6, 0x05F707ED, 0xF7FB01F7, 0xF1EF06FA, 0x09FB1102, 0x06FC0706,
+0xF7F80F14, 0x0EF3F002, 0x0AF8FE0A, 0x0BE8F5F9, 0xEEF609E9, 0x09E8EE02, 0x03090BFC, 0xF0F8F0F1,
+0xF8081009, 0x0F0002FA, 0xFCF202FD, 0x0DF106EF, 0xF70408F5, 0x02140C15, 0xF6F6F5EF, 0xF1080905,
+0xE902FDEC, 0xF3F4F6F6, 0xF904FCF2, 0xF906F5F3, 0xF7FB0A08, 0x08F4F0F1, 0x0EFDF6F1, 0x03F8F6F6,
+0xFF0C110C, 0xF1FDF7F8, 0xF814F502, 0x12FD1108, 0x0DF7F313, 0xF506FA11, 0x07FEF9F2, 0xEAF20D09,
+0xFCF40D0D, 0x06F1F709, 0xF7F21DFA, 0xFB00ED11, 0x0DFA0208, 0xF1FE1101, 0x0AF5F4F9, 0x060BF3F9,
+0x080CFD06, 0xF30EF409, 0x12EB02EF, 0x0BEF0D09, 0x1512F0F0, 0x18010700, 0x05070F05, 0xF306FC08,
+0x0001FD0E, 0x10FD0DF8, 0xF708F90A, 0x100D0D05, 0x04011414, 0x0AF90D0C, 0xF402F8EE, 0xFC11FAFF,
+0xF500F605, 0xF0EAF8F4, 0x120F0407, 0x1103F9EE, 0xF9F9F5F7, 0x10060EF8, 0x0609F504, 0xF20E080F,
+0x0EF3F109, 0xFB05F60E, 0x0E1C05FD, 0xF710FBEB, 0x16F2F90B, 0xF500FEF4, 0x0A13EEF7, 0x0EFF0CF6,
+0xFFF903F8, 0xF30A0BF0, 0xF7FCF004, 0x1613F70B, 0xF90506F5, 0xEB09F008, 0x05F30CF3, 0x0310EEF3,
+0xFD1002F4, 0x09070114, 0x040B0606, 0xE400F907, 0x13F40B1A, 0x06F4EBE7, 0xF1EE06F9, 0xFAF9130D,
+0xF3ED090A, 0x08EF05F8, 0xF814F507, 0xF8131707, 0x1EFCEF0C, 0xF1090708, 0x04F211F0, 0xEFF0090E,
+0x09FBF3FD, 0xF3F204F4, 0xF000FC1C, 0xFC00F009, 0xF9FD160F, 0x16F7F80D, 0x0DF8060B, 0x03FAF4FB,
+0x03FDFF0D, 0xF4F1F40E, 0xF9EBF7F2, 0x0EF6FA06, 0x09F3EDFA, 0xFEF4EFF2, 0x0F0300F4, 0x0DEBFBFC,
+0x1FF0010E, 0xF9140E07, 0xF2F6FD07, 0x11E9020B, 0xEE17070B, 0x10FD0003, 0x0904F5F7, 0x0515FCEE,
+0x090F07FF, 0x12FC1104, 0x10F9F0F1, 0x0A080700, 0x010A1200, 0x120B01F5, 0xF7F0ED01, 0xFB06040E,
+0xF0FEF30B, 0x0A0713FC, 0xF6F7F9EC, 0x07F803ED, 0xF2F9EF0F, 0xFAF4100A, 0x020AFA04, 0x0806130D,
+0xFF0B0F04, 0x080705F8, 0x04F503F3, 0x05EEF9ED, 0xFBFEF30A, 0xF2F9F20B, 0x03FEECEB, 0x08F40302,
+0x0617FE0A, 0xFE10050C, 0x0410FAF3, 0xF508EFF9, 0x030908F2, 0x010206FC, 0xFDF7F415, 0xF9080F05,
+0xFBF00CEE, 0x0BFD0D0B, 0xF7F9F10A, 0xF80603F9, 0xF202F4F5, 0x0F07FA05, 0x04FA09F8, 0x08F80B04,
+0xED030E00, 0x0A04FDF8, 0xEFFC0B14, 0x05F2FFFE, 0xECF60EFB, 0xFE04FD07, 0x0AEDFB0D, 0xF20FF407,
+0xF4030A00, 0x15F1EEF2, 0xF50B0D0B, 0x02FE11FB, 0xF3FBF8F8, 0xF7F0F516, 0xF6070A04, 0xFD0C1A0D,
+0xF603F50B, 0x0D0F04FA, 0xF5F5EFF7, 0xFB130FE9, 0x0C0205F3, 0xFB050CF7, 0xF9F809FF, 0xF1120DF0,
+0x0E0503F8, 0x16FEFDF6, 0xFA0AF5F7, 0xF302F6F9, 0xFC07F4EE, 0x0A040A00, 0xFFF409EE, 0xF8F7FD18,
+0xFC01F7EA, 0x0F11F40F, 0x0DF7F708, 0x0DF60809, 0x0DFD0F08, 0x1012FA0E, 0x021615F4, 0x04FCEBFB,
+0xF7FC09FE, 0x0C080DF9, 0xF8EB05FC, 0x0708F2EE, 0xFC14F80C, 0x0C06F111, 0x0809F9F2, 0x0CF809FF,
+0x0DF50AF8, 0x05EA0E12, 0xFCF6F805, 0xF5EC0A0B, 0xF2080D10, 0x09FBED04, 0xEFF7F40E, 0xF8F610F6,
+0x09F4F1F9, 0xFFFC0E0B, 0x020AF3EC, 0xF4EA09FE, 0xF7EFF70D, 0xEFF410FC, 0x07FD0EFD, 0x0D060100,
+0x13F4FAF3, 0xFFF001FE, 0x08FC07F0, 0x0900FC05, 0xF5F8F709, 0x0CFC100C, 0xF7F7FBFC, 0xF7F608F4,
+0x05F90308, 0xECF6FF08, 0xF2F70B07, 0x04FE03F5, 0xFC02FBFE, 0x02F41301, 0xF1F6F50E, 0xF9FA00E4,
+0x0EFB0709, 0xF50800F7, 0x040AEC07, 0x130301FA, 0x0409F809, 0xF104EA0F, 0xF7F00A09, 0xF80BF704,
+0x13F800FE, 0xFAF50CF3, 0xF103090A, 0x12FAF30A, 0xF611F8F9, 0x02F1F403, 0x0A040FED, 0x0AFFFEF2,
+0x05FBF7FD, 0x0FE903F3, 0xF6EA090B, 0x120FFE07, 0xFA1406F2, 0x0EF80EFB, 0x0EFDFAFC, 0x0EFC0D0A,
+0x120805EF, 0xF70DF900, 0x0C0EE5FB, 0x0F0DF503, 0xF609000A, 0x0D03F5F9, 0x0FFB1006, 0x05F60A08,
+0xED07F8EF, 0xF90CEE0A, 0x0B16100A, 0xFD07F607, 0x0EFF0D01, 0x0CEF04EB, 0x11F5FD0B, 0x080B0CF5,
+0xFF14FEF5, 0xF1FAF413, 0xFA0100F6, 0xF0090FFC, 0xF3FB0AEF, 0xFE09FE0E, 0xF710F3F5, 0x04090C11,
+0x04EEEFF2, 0x09FC0FF1, 0xFE0BF4F9, 0x08F10AFC, 0x030AF5FE, 0x13FA0FF4, 0x07000AFE, 0x071507F5,
+0x06FD08F0, 0x0F0C08EE, 0x190E020D, 0x08EDF4EB, 0x0D0DF109, 0x0210EF00, 0xF506080A, 0x1010F7F0,
+0xFE02F7FB, 0x09F8F6F7, 0xF902FF04, 0x16E003FE, 0x12EA1A00, 0x130E0FFF, 0x0702F2F9, 0xF10BEFFC,
+0x010E04F1, 0xF6EF15F6, 0xF50A0510, 0x050DEF0D, 0xF908F4F6, 0x0F0F0BF0, 0x04F7F6FC, 0x07F9FAEE,
+0x02EE07F9, 0xF6F90105, 0xF1FFFC04, 0x0802EB0C, 0xF10E0CF3, 0x030E0508, 0x0CF60CF9, 0x08F20EF5,
+0xEFFE09EF, 0xF9FB0A06, 0x14F6F6F5, 0xF6140DFE, 0xF511F8F4, 0xF0FAEF00, 0x1103FC0B, 0xF1090B05,
+0xF4FD11F0, 0xF80BF6F1, 0x14160D0B, 0x1105070C, 0x0DEDF80B, 0x1005EE07, 0xFCEFF5E2, 0x0812F3F6,
+0xF2100BFD, 0x04FAF00B, 0xFD08F508, 0x06030EEA, 0xF4F90C05, 0xF5EE0608, 0x0CEEF40F, 0xF4F8FB06,
+0xFCF01609, 0x0407F402, 0xFDFBFDFD, 0x0BF4F806, 0xFCF701EB, 0x08EB0709, 0xECF9040B, 0xF8E9F300,
+0x1C0CEEF5, 0x0703FC08, 0xFEF40909, 0x150B0EFF, 0xF30D0B07, 0xFAF203F9, 0x02F209FA, 0x060EFDF7,
+0xFCEB0FF2, 0x0313FF13, 0x030A0B07, 0x0BF70003, 0x00090D02, 0x1405F106, 0x020AFCF6, 0xFAFD01F6,
+0xEE05F7EB, 0x030201F4, 0x06071009, 0x0E000704, 0x0A060F07, 0x0C0DFE04, 0xF1FA001A, 0xFFF90B10,
+0xF607ED0F, 0x06F9100D, 0x05F6F40C, 0x0E0BF106, 0xF8FB09FF, 0xEBEE13FB, 0x0C0EF4F5, 0xF608EC0A,
+0xF9F5F905, 0x0AEE03F5, 0x000B0A03, 0x0815F904, 0x13F7100F, 0xFB0711ED, 0xECF5FD01, 0x0D03F90C,
+0xF4FA05EF, 0x1209050A, 0xF60BFD0A, 0xFF04F706, 0xF8ED06F0, 0x0001F71A, 0x09EEFFFA, 0xFF0D0BEA,
+0x130F00F4, 0xF1F904FA, 0x05EDF504, 0x030AF7F8, 0x09F712F1, 0xFF0C0E07, 0xFE12F9F6, 0x08FC08F0,
+0xF9F813FE, 0x01FF0D0C, 0xF3F10C06, 0xEC05F7F4, 0xFCF6FD04, 0x0B07FEF6, 0xF8FC13E8, 0xF004F611,
+0xF6060210, 0x12FDF5ED, 0x0100F9ED, 0xEE03F8FE, 0x11F4F40C, 0x0C0BF614, 0x0D050411, 0x0B080FFA,
+0xF2F906F9, 0xF5F3F8F2, 0xEF06080E, 0xF614F60D, 0x0A080A0E, 0xFBF2F9FB, 0x1612F1F7, 0xF4F60FF3,
+0x010D0B0B, 0x0C0EFB07, 0x0B04FDED, 0xFAF50604, 0xF2FAFB0A, 0x0AF1FFF2, 0x100C0611, 0x01EF0CF9,
+0x0B12F90A, 0x12FBF002, 0x04040D05, 0x10FEF910, 0xEAFC0AE7, 0xF404FFFC, 0xEA08F9ED, 0xF5F616F6,
+0xF10106F7, 0xF806F5F8, 0xF8F70CFA, 0x0CF7FEFB, 0x0AEEEF08, 0x0AFBF0F2, 0x13F5EFEF, 0xFD010BFC,
+0xFA01F3ED, 0x08F30D09, 0x09FEF902, 0x050FFDF4, 0x11FAFE08, 0x1703F1F2, 0xF3FCFE03, 0x06F4EA10,
+0x090FEE13, 0x00F20702, 0xFBF90401, 0x070CEBF7, 0x0FF6F50B, 0xEEF8F6FF, 0x0A0AF506, 0x06F0010A,
+0xF0F6F4FB, 0x00F51201, 0x0DF90C02, 0xF1F8F0EF, 0x061706EC, 0x0DF80EFD, 0xF0F6030A, 0x03FB100E,
+0xF608F50D, 0xF10F08EF, 0xF9F0F105, 0x0EF7FA0E, 0xFD030811, 0x12ED0CF6, 0x050508F7, 0x05F90514,
+0x0D100A10, 0xEAF901FF, 0x070B010D, 0xF90D140A, 0xFC02F1F4, 0xE9FCF3F8, 0x07F70FF2, 0x0409F8FF,
+0x0C080CF5, 0x03FEF0F5, 0xF80E000C, 0x0201FAF2, 0x1314090D, 0xF90507F5, 0x05F302F0, 0x0CEFFDFB,
+0xF11813EF, 0x10FFEEF6, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
+
+
+output0 =
+0x8EC35F65, 0xF1011E4E, 0x01283C76, 0x46C59B44, 0x66BD1E7E, 0x71CC3D13, 0xF54F7B59, 0xC2E51E78,
+0x878ACD1F, 0x0BB83AD9, 0xD6EB81F6, 0xDA98D960, 0x9583FF24, 0x84E13C2E, 0xB80A4BD9, 0x7546DA7D,
+0x61301F84, 0x4E8E7BCA, 0x0F9A1992, 0x84DE01C3, 0xFB1B38F1, 0x44764A25, 0x9525C193, 0xAD6AFC2C,
+0xEAC9CBE7, 0x822626C3, 0x6764F1E2, 0xB7080FC1, 0x92F0BF18, 0x2BE2A423, 0x6652CA22, 0x7E2B8B7D,
+0xDADC0042, 0x1684A5B0, 0x6AF80D1E, 0xDE4B11F8, 0x4C027AA7, 0x9B499047, 0xDF71DF9C, 0xE66B5211,
+0x0976A858, 0x97CCDFA6, 0xF921AC4D, 0x684DB77D, 0x2046F400, 0x66BF05FF, 0xCFE771B2, 0x7D285899,
+0xA6DD74A8, 0xD5AC14DF, 0xB4EE744D, 0x9BF75449, 0xBCCF7BE5, 0xD9B3E1C5, 0x04D5FEEA, 0xA91CED17,
+0x260A3E33, 0xB14FA433, 0xC7FB659B, 0xD847CBDD, 0xD4BAF083, 0x51A5AEB1, 0x39A13C7A, 0xC54DBA51,
+0x81DD7FFE, 0xE2A3941C, 0x386750AD, 0x85C6A1CF, 0x52E46581, 0x2DC58468, 0x4F8C204C, 0xCA6C89B8,
+0xD338F49E, 0xB71D9A1C, 0xAE5992A5, 0x461FFEB6, 0x0F724968, 0xD2D9A290, 0x4C0791D6, 0x8AA45E2A,
+0xBCE9EEF4, 0x769D6618, 0x71D659F8, 0xE9DC6A13, 0x99E831C3, 0x8AB8CFD6, 0x489E23C5, 0xBEFC2792,
+0x9E54E534, 0x54101DEF, 0x1F83D8D2, 0x69A8094D, 0x2DA8AAEB, 0x564C6C07, 0x4F2AADB5, 0x20CB1D7F,
+0x2D6E9D54, 0xB97A8BC9, 0x36365C67, 0x8D84329F, 0x4000A81C, 0x6326766B, 0xB9B50B8D, 0xF9D51D73,
+0x4D1A117F, 0x70486DEE, 0xBB19FFB6, 0x96929F46, 0x8E7C8D1C, 0x04B8D1F3, 0x204B8156, 0xA67E9C62,
+0x4534F672, 0x94B8C832, 0x38E7CFE4, 0x71F48255, 0x82181625, 0xF8C9EB50, 0xF3D38EF0, 0xB4DE79FB,
+0xF32452
+
+harq_output0 =
+0x14EFEB09, 0x16171D0B, 0xF210F3E8, 0xE4180EE6, 0xE40811F1, 0x0F1118EB, 0xE714EDF1, 0x09EA14EB,
+0x1AF71812, 0x121DE902, 0xE7DCF9EB, 0xF7E8EEE1, 0x19111BF4, 0xF2E92615, 0xE81704F7, 0xFE20FE1E,
+0x14EB181A, 0x0DFAEDDC, 0xE4EA0E0B, 0x1915F4EB, 0x1DE9DCE0, 0xE71C0722, 0x110714E0, 0x0B0FE719,
+0xDC0FF5F7, 0xEC1716EF, 0x0917DC11, 0xE1EE19EE, 0x101A1120, 0x0FE415F5, 0xF2E911E8, 0x0D1D0EED,
+0xDFECF70C, 0xEB14F7FA, 0xED0EEBEB, 0x15F11702, 0x110FE718, 0x0B06ED09, 0xECFAEB10, 0xE41EE916,
+0x031410F0, 0x0C13EDFF, 0xE4191816, 0xF8F1E0E4, 0xDEE41609, 0x1A17160C, 0x11DDE11B, 0xE8251517,
+0x0E1AEAE1, 0x17EB19E6, 0xF4F4EC27, 0xEBE30E00, 0x170B1BEA, 0x1ADBEBE2, 0x1005F11A, 0x0DF2EEED,
+0xED1318F9, 0x1CFB0314, 0xDD13150C, 0xE51E0CF5, 0xDF1118EB, 0x19ED0CEA, 0x11132407, 0xEAF9F2E8,
+0x060DEBE6, 0xDFF50E1B, 0x170B071C, 0xE7102017, 0xEB1BEBF7, 0x06F1ECE5, 0x111304EA, 0x0B1FEF1A,
+0xE7E8F2FB, 0xF305121D, 0xEC011815, 0x0C0D0BE2, 0xDE181915, 0xE9E615F9, 0xE9F4E9E6, 0xEAE814E7,
+0x0CE51F1B, 0xE906E310, 0x1221E61A, 0x13DF1BEA, 0xECE8E918, 0x1BF0EE17, 0x0C0EE20C, 0x0F14E10E,
+0xF9161ADC, 0xEBEF1D1F, 0x1809EFDF, 0xEE051F1A, 0x1FFE0E06, 0xF219F40B, 0xF01819EF, 0xF100F222,
+0x19F31922, 0x1B06E7EF, 0xE7EAE9E7, 0x0F19F6DB, 0x15F5E00A, 0x10EB0FEE, 0x07DF11F4, 0xEC1ED9F1,
+0x22EDD6EF, 0xD6FAE111, 0x151BE9E4, 0xFBEF19ED, 0x171BEEEC, 0xF40C17F5, 0x15E1EEEF, 0x17F81EF2,
+0x1E19E4F6, 0xEEEE1A16, 0x19F10B0B, 0x11F7E613, 0x17EB1309, 0x12ECF012, 0x15131CD7, 0x08F00820,
+0x1CF9FCF7, 0x13E21415, 0xF2F2E1F2, 0xE4191F14, 0x14E7F11D, 0x1B17F618, 0x18E8E517, 0xDDE4F317,
+0x1419EAEC, 0xE81EFC18, 0x11132D17, 0xECE8E1EA, 0x08210B06, 0x101B0EDA, 0xF2EA0FF6, 0xE2E8F41B,
+0xEB1D0E08, 0x141022F8, 0xE4E90FEA, 0xE2F5F2EE, 0xEFF5E8F2, 0x170E0617, 0xE12016E3, 0x1DEB1521,
+0x21ED0617, 0xE2EF180E, 0x13F722EF, 0x1E21ED11, 0x1CE8E3E9, 0x07ED1917, 0x07F20815, 0xECEB1AEC,
+0x1FF10E03, 0x0DEF0723, 0x0E16F0F5, 0x11E81FED, 0xEF12E31A, 0x1CE41E0D, 0x11E7E615, 0x1CFDE10D,
+0xF1E0E523, 0xE61AF8E8, 0x170C0DDE, 0xF2F414EF, 0x0EE50611, 0xE8E91CF2, 0xE2ECF815, 0x1BF4E2FA,
+0x0F12F70F, 0x1DE71314, 0x1111130D, 0x0F0D121C, 0xEF17F9CD, 0x1414E6E7, 0xE21DDAF2, 0x08E61E00,
+0xF5EF1EE9, 0xFF110F0E, 0x19EF16E2, 0xE116E11D, 0x171810E7, 0x1214F10E, 0xE6010C19, 0x13EDF513,
+0xFB100917, 0x1DE9E6EB, 0x09091A11, 0xDF21E4E4, 0xF8EFD8F2, 0x12110DE8, 0x19F8E508, 0xFEED16EE,
+0xE9F6EAF2, 0x23FD13EC, 0xE1031A20, 0xED15110C, 0x0511EC17, 0xEFF927EE, 0x0418ECED, 0x15E7EEED,
+0x19F810E7, 0xF2E6E008, 0xE2DFF912, 0x0FE815E9, 0x18131C13, 0x11F51706, 0xF718F326, 0x1118E3DE,
+0x0213EC22, 0xE4E7EB21, 0xDE161EDA, 0x09091118, 0xFD17EE03, 0xDE140DF2, 0xF71419E9, 0xE9E306EB,
+0xD91326F6, 0x1310DDE6, 0xF112F1EB, 0xE5F4FBF3, 0xEBE6E80A, 0xDD102314, 0xEB20D7E1, 0xEEEDEDF1,
+0xEF101110, 0xE5141806, 0xE723F118, 0x16F1070D, 0x12F0F61B, 0xE3F416E4, 0x1FF6F0EF, 0x17D9EE0E,
+0xE017F009, 0x161E17E9, 0x12F10EF0, 0x1D1019F5, 0xE1EBF817, 0xFFE1E71C, 0x1D14181C, 0xD90610E5,
+0x0CE929EE, 0x15EFDB23, 0xE616DBED, 0xE3E6F6EF, 0x1816DCEC, 0x140FEBF2, 0xE71929EB, 0xF1E7EF0E,
+0x191AF317, 0xEA0DF0E8, 0x17F207E6, 0x2016E7EC, 0x11E3180F, 0xDB130B0A, 0xE5E9FAF2, 0xEC200BED,
+0xEAE9F015, 0xF81DF0E0, 0xE2E81EFE, 0xE4E5E521, 0x0A18EE10, 0xEF21F8F8, 0x19F8E80E, 0x000412E2,
+0x1F1A1017, 0x2213150E, 0xF5EBEDED, 0x1313E813, 0x121AEA15, 0x12F0E317, 0x17F30C15, 0x1B1B191D,
+0xE800F0F6, 0xEEECE9E0, 0x200F160E, 0xEC0AFE16, 0xEBFE09ED, 0xEFD0F6F3, 0x1BEAE718, 0x07E8E511,
+0xF1E90BDA, 0x1DE92216, 0xF7F0DE08, 0xD8140619, 0x0FE7ECD9, 0xE1F6E50C, 0x1917E5FA, 0xEFE5F9F7,
+0xE31C0BE9, 0xD50816EE, 0xF007EA21, 0x0E0DFEE1, 0x0DEA0D1A, 0x181425F9, 0xE1DAE611, 0xED0BDEF3,
+0x15F518E5, 0x171F1DEB, 0x11E3E514, 0x0518E614, 0x0314F0ED, 0xD30FF1EE, 0x15F012F1, 0x0BDFD916,
+0xED05EFF9, 0xF6D8E4EF, 0xF11D1E1E, 0x2016EF17, 0x14E818EB, 0x1417F2DA, 0xE418F8EA, 0xE918EB0B,
+0x0B09EF15, 0xFE21FBE3, 0xEADAE017, 0x1C12E612, 0x1D03FEE5, 0x11D000EB, 0xFFDF0CF6, 0x1120F20E,
+0x180BEC0E, 0xEF131EE8, 0xE71FE614, 0x1B1FE40C, 0xECEFEEEF, 0xE2F7F008, 0xF0110DF5, 0xEAF922E2,
+0x17FBDEE7, 0xEA11EF04, 0xDBEEFE24, 0xF1E30CE5, 0x140AEDF2, 0xF4E7DBF1, 0xDEFC18EF, 0x1112EFF6,
+0x0821E7E4, 0xE400EC06, 0x1BF3E2F2, 0xF0161D17, 0xE5F218E8, 0xF5E61B12, 0xE215F9F1, 0xEF1610F1,
+0x08DCF0E9, 0x0EE324E3, 0xF6D2E8EE, 0x17F7F2ED, 0xDE1ADEE0, 0xEF14EA11, 0x0A301A15, 0x1518F31D,
+0xF721170E, 0xE7FDDC1C, 0x0EEFF2E8, 0xFB28EAF5, 0xE5140E1B, 0x1C14E5DD, 0x15ED1CE6, 0xEF1612F4,
+0xE8F00E1C, 0xEDF50F18, 0xEBDD1314, 0x1CF8EFE3, 0x0E16081A, 0x11ED0EF0, 0x09E82114, 0x14EDDF16,
+0xD4F81018, 0xE0FCFF21, 0x06F30DD8, 0x0B15EE0A, 0x120DF01F, 0xEBF0F5E5, 0xEEE411F4, 0xFF19100B,
+0xEE0D0FE6, 0xDEE71FE8, 0x0DEDE110, 0xE008ED23, 0xECF3EEE8, 0xF1F223EE, 0x121AEFFE, 0xF5F4E919,
+0xE70BE3EC, 0xFB21F5E7, 0x100BEBF0, 0xEBDA19EB, 0x1819F5FE, 0xF4F6F411, 0xFD0CE9EA, 0x171E1CF1,
+0x22160CF4, 0xE7001314, 0xF2E9ECDB, 0x1515130D, 0xF5ED17E6, 0x15E712EC, 0xE807F7E2, 0x201AED1D,
+0xE2F816E3, 0xE8141413, 0x14DE1FF0, 0x18F1EFFA, 0x09EF16E9, 0xE30FE11A, 0xEF13EF20, 0xEE131A15,
+0xE9DBE805, 0x14EA0FE2, 0xF8ED0E17, 0x1A14DEE6, 0x10EE14E4, 0xE9081526, 0xF8F01612, 0xDC0518F5,
+0xF210F00F, 0xEE0E280A, 0xE8E218F1, 0x0EFA04E7, 0x1219E717, 0xF216F0EE, 0x2814E7EC, 0xF41DE81A,
+0xE3EDF0E0, 0x13DFF6ED, 0xEEE9F71C, 0xDBEEEBF1, 0xDD13F8EE, 0xF115FDE8, 0x231314F3, 0xFE090613,
+0xEE110E1A, 0x1A0FFBE4, 0xE31710ED, 0x1A1FED1E, 0x1DEF1AF0, 0xEDEA1E0C, 0x0CE6E9E3, 0x17E42213,
+0x0BEC09E4, 0xDF1D01EA, 0xFB09F828, 0x03111A0A, 0x07E1E31B, 0xEFF3FB05, 0xE9F10E17, 0x12101AED,
+0x1819EAF8, 0xF5EBDBE5, 0x0BE420E7, 0xEC07031A, 0x1509EAF1, 0x1AEDF211, 0x191702F6, 0xF918F315,
+0x0E0A12ED, 0xF526160C, 0x15F5E812, 0xEC11EA10, 0x13E3E7DD, 0x0E23F110, 0xDC14E802, 0x14E20F18,
+0x06DBE816, 0x241A1DE6, 0x11250AEE, 0x1117F61E, 0x0906E9F8, 0xEF1CF41B, 0x1DEC0A07, 0xED16F5F7,
+0x0A1AE00F, 0x1E15ECEA, 0x15F20613, 0x1B151822, 0x111A17EA, 0x0C1EF0E4, 0x071CEB0B, 0xEBF5E6EF,
+0xF9F816ED, 0x161010DB, 0x152413F8, 0xF80F07E3, 0x15EEF615, 0x0E16EDEC, 0x0C20DCEC, 0x0BE10AF6,
+0xF1071EEB, 0x12E5F7F0, 0xEDF5EBED, 0x170FF725, 0xF3F01313, 0x07051CE5, 0xE309EFEF, 0xF1F0180B,
+0xF9161519, 0x181CDAF5, 0xE10E12F0, 0x15F412EB, 0xF7141819, 0xEE1FE0E6, 0xD8F217DB, 0xECF4EB0E,
+0x1DEF0FF4, 0xE40CEB05, 0xF0120DF1, 0x21EC191D, 0xF413E619, 0xE62519E2, 0x1AF00DEE, 0x09F2EFEC,
+0xE8F90DF4, 0x25D6F626, 0xEFE800DA, 0x1BEBEDF1, 0xE812170F, 0xE9E9F102, 0x271BEC08, 0x11E7F71D,
+0x15EAE61D, 0x120C08F4, 0xFD16E813, 0xF30A11E6, 0xE3F1E81D, 0x14F2FE04, 0x1B0A150D, 0xEBE8D8DD,
+0xEF1E1ED7, 0x13100E1A, 0x09F11EE7, 0x11E81218, 0xFA24EFE8, 0xEB151EE1, 0xE516F2E9, 0x1DE41911,
+0xF616E5F3, 0x14EBED19, 0xEB1B12E4, 0xE5191907, 0x22141016, 0xE9EDE60D, 0xFF15F114, 0x1715E1EF,
+0x28020F10, 0x14ED15EA, 0xF618E30A, 0x27EBEAE7, 0x1DE815DC, 0x1816E81B, 0x1A130DF9, 0x2CF609F7,
+0xE5EAE7F2, 0x0F08F401, 0x10ECE8E5, 0x0FECE7E3, 0x15E6F5F3, 0xE41522E2, 0xF3E823E2, 0x0811E5EA,
+0xF91E2119, 0x120C1AFA, 0x1BEDED0B, 0x14E3ED15, 0xE31C12F6, 0xF306EEFC, 0x01ECDB17, 0x09E3F413,
+0xDFF0E7E7, 0x17130BF0, 0xE518FB0C, 0xF21011EC, 0xE21BE1E4, 0x03F5E80B, 0xF0DCEE15, 0xEF1A0E1C,
+0xFD171506, 0xEED10C09, 0x04E9E90D, 0x1CE614E7, 0xF718EFF2, 0x1E03D4EF, 0x06E8EEE7, 0xEB1D21EF,
+0x1519E6EF, 0xF1F00E1E, 0xEAF3240C, 0xEE211D0D, 0x0FF3DDFE, 0x161318F4, 0xE8100DF2, 0xE41422EC,
+0xEA0DE3E6, 0x1FF9DD1A, 0x1618E6F5, 0xE4DE00F5, 0xF0F809F0, 0x1E0C10E7, 0x180D0FE3, 0x19EE09EA,
+0x1C10E2E8, 0xE81EEA12, 0x20DE0D10, 0xEAF01811, 0xDE0D15EA, 0x18F5EFF1, 0x0812EA0C, 0x211204EC,
+0xE9110AE8, 0x21DF1114, 0x18E10D09, 0xFDF8F226, 0xE9E002DE, 0x2116EBE0, 0xF4F918ED, 0x0BECEEF8,
+0xEDE81A06, 0x000EE519, 0x16F2FAE2, 0xD920E312, 0xE51EE713, 0x1423E50C, 0xEF1316FB, 0x20F3F5F2,
+0x1BE3E8ED, 0xE6EAE6EB, 0xDD0B1905, 0xE810ECE9, 0xF71A1810, 0x100A0E10, 0xF114F914, 0x071FF20C,
+0xEC19EDE7, 0x0AD6181D, 0xEC06E8F5, 0x191312F3, 0x121525F3, 0xE6EE2916, 0xF41A0F17, 0xF4E8EFEF,
+0x1819E518, 0xE71FD4E6, 0x15171F19, 0xD80913E0, 0x1FF816E5, 0x0E1A16E5, 0x0CF1F21F, 0xF11513E1,
+0x15FCE7E3, 0xF1DD0FE9, 0x08F018DF, 0x13D915E0, 0x13ED11E5, 0x050F10EA, 0x17F21D13, 0xF90FDEFC,
+0x000B2316, 0xF5EFEB13, 0x09ECEA05, 0x0A18E3FD, 0x0812EE05, 0x0E12F7E7, 0xDA17DB0B, 0x13E6EB16,
+0xF1E71CEC, 0xF111F316, 0x15E90DE8, 0xEA17E0E3, 0x21F20D09, 0x15F915F2, 0x210DF00D, 0xE5DCF0ED,
+0xEDE9EE04, 0xEFF7FAE8, 0xF61A191B, 0xF81DEBEF, 0x0E23F7E0, 0xDCE60BF1, 0x19EF0F20, 0x1B0B120B,
+0xF2130D0F, 0x160CD81C, 0xF3180CEB, 0xDF0AF2EC, 0x14EAD513, 0x20E7F4EF, 0x0CEE1A15, 0xDF17F2E2,
+0x1F0CFAF1, 0xE81011E3, 0x1B290ADC, 0xFDE515E9, 0xE0E9EA0F, 0x0BED0CEE, 0xE2E11AF2, 0xED2015E7,
+0x18E4EA0F, 0xF6F0F313, 0xD904F425, 0x1C0FF1EE, 0xE5F3140D, 0x29F6EB27, 0xEEFC1515, 0x04E3F907,
+0xF11A05EC, 0xF6E7F9E4, 0xF5E60E13, 0x0DEE1518, 0x0D1418E2, 0x0A17EC22, 0x1A0F11EA, 0xEA17E6EE,
+0xF22A191E, 0x2111F5DD, 0x29F216EF, 0x160519E9, 0x0F1A040F, 0x1A021D19, 0x1825EE0F, 0x171D0D0F,
+0x0BFCF004, 0x02FF0BF7, 0xF9F1F209, 0xFFF5F008, 0x05F30C07, 0x03FCEE07, 0x11FCEE08, 0xF4F31514,
+0x040B06F2, 0xE400F9F3, 0x13090B1A, 0xF2F4FFE7, 0xF1EE06F9, 0xFA0DFF0D, 0xF3ED09F6, 0xF40305F8,
+0xF8FFF507, 0xF8FF1707, 0x0AFC030C, 0xF109F3F4, 0x0406FDF0, 0xEF04F50E, 0xF5FBF3FD, 0xF30704F4,
+0xF0ECFC1C, 0xFCECF0F5, 0xF911160F, 0x020B0C0D, 0xF90C060B, 0x03FA08E7, 0x0311FF0D, 0xF405F4FA,
+0x0DEBF7F2, 0x0EF6FAF2, 0x09F3ED0E, 0xFE08EFF2, 0x0F170008, 0x0DFF0FFC, 0x0BF0ED0E, 0x0D140E07,
+0xF2F611F3, 0x11E9020B, 0xEE03F3F7, 0xFCFD00EF, 0xF518090B, 0xF11510EE, 0xF5FB07FF, 0xFEFC11F0,
+0x100DF006, 0x0AF4F300, 0xED0A1200, 0xFEF7EDF5, 0xF7040101, 0x0FF2040E, 0xF01207F7, 0x0AF3FF10,
+0xF60B0D00, 0x07F8EFED, 0x060D03FB, 0xFA08FCF6, 0xEEF6FA04, 0x0806FFF9, 0xFF0B0FF0, 0x08F3F1F8,
+0xF0F5EFF3, 0xF1EE0D01, 0xFBFEF3F6, 0xF20D060B, 0xEFFE00EB, 0x080803EE, 0x0617120A, 0x1210050C,
+0xF010FA07, 0x0908EF0D, 0x030908F2, 0x01160610, 0x120BF415, 0xF9F40FF1, 0x0FF00C02, 0x0B110D0B,
+0x0CF9F10A, 0x0C06030D, 0xF20208F5, 0x0F07FAF1, 0xF0FAF50C, 0x08F8F7F0, 0x01EF0EEC, 0x0AEFE90C,
+0xEFFCF714, 0x05F2FF13, 0xECF6F9E7, 0xFEEFFD07, 0xF6ED0F0D, 0x060FF407, 0x0803F600, 0x0105EE06,
+0xF5F70D0B, 0x02EA110F, 0x070FF8F8, 0x0B040902, 0xF6F30AF0, 0x110C1AF9, 0xF61709F7, 0x0D0FF00E,
+0x09F5EFF7, 0x0F13FAFD, 0x0C02F1F3, 0xFBF0F8F7, 0x0DF8F5EB, 0xF1FEF904, 0xFAF1030D, 0x161211F6,
+0xFA0AF50B, 0xF316F60E, 0x100708EE, 0x0AF00A00, 0xFFF4F4EE, 0x0C0BFD18, 0xFCEDF7FE, 0xFB11080F,
+0x0DF70B08, 0xF90AF309, 0xF9FD0F08, 0x10FEFA0E, 0xEE161508, 0x04FCFFFB, 0x0B1009FE, 0x0CF40D0D,
+0xF800F1FC, 0x07080602, 0x1000F8F8, 0xF8F205FD, 0x0809F9F2, 0xF80C09FF, 0xF9F5F6F8, 0x05FE0EFE,
+0xFCF6F8F1, 0x09000A0B, 0x07080DFC, 0x09FBEDF0, 0xEF0CF4FA, 0xF8F6100A, 0xF5F4F1F9, 0xFFFC0E0B,
+0xEEF6F3EC, 0xF4EA09FE, 0xF7EFF70D, 0xEF0810FC, 0xF311FAFD, 0x0DF201EC, 0xFFF40EF3, 0x1304ED12,
+0xF4FCF304, 0x09EC1005, 0x09F80C09, 0x0C10FC0C, 0xF7F7FBFC, 0xF7F60808, 0x05F90308, 0xEC0A13F4,
+0xF20BF707, 0x04FE03F5, 0x10020FFE, 0x02F413ED, 0x050AF5FA, 0xF90E00E4, 0xFAFBF3F5, 0x0908140B,
+0xF00A0107, 0x13EFED0E, 0x04F5F8F5, 0xF104FF0F, 0xF7F0F6F5, 0x0DF7F704, 0xFF0CEB12, 0xFAF50C07,
+0x05EFF5F6, 0x12FA07F6, 0x0AFDF8F9, 0xEE050803, 0x0A04FBED, 0xF61312F2, 0xF10FF7E9, 0xFBFD0307,
+0x0AFEF5F7, 0x12FB12F3, 0xFA14F206, 0xFAF80EFB, 0xFAFDFAFC, 0xFAFC0DF6, 0xFD08F1EF, 0x0B0D0D14,
+0xF80EF90F, 0x0F0D0903, 0xF609ECF6, 0xF9EFF5F9, 0x0FFBFC06, 0x050A0A08, 0x01F30C03, 0xF9F8EE0A,
+0x0B02100A, 0xFDF3F607, 0x0EFF0D01, 0xF8EFF0FF, 0x11F511F7, 0x08F7F809, 0xEB00FE09, 0xF1FA08FF,
+0xFA0114F6, 0xF0090F10, 0xF3FBF6EF, 0x1209FE0E, 0xF7FCF309, 0x04F5F8FD, 0xF00203F2, 0xF510FB05,
+0x12F7080E, 0x08F10AFC, 0xEFF6F5FE, 0xFFFA0F08, 0x0714F612, 0xF30107F5, 0x06FD08F0, 0xFA0C08EE,
+0x05FA02F9, 0xF40108FF, 0xF90DF1F5, 0x17FC0300, 0x09F2080A, 0x10100BF0, 0x12020B10, 0xF5F80AF7,
+0xF902EBF0, 0x16E00312, 0xFEEA0600, 0xFFFAFA13, 0xF20206F9, 0x060BEF10, 0x15FAF005, 0xF603010A,
+0xF50AF110, 0xF1F903F9, 0xE508F40A, 0x0F0FF704, 0xF00B0AFC, 0xF30DFA02, 0x0202F3F9, 0xF60DEDF1,
+0x05FFFC04, 0xF402FFF8, 0xF1F9F807, 0xEF0E0508, 0xF8F6F80D, 0xF4F2FAF5, 0x031209EF, 0xF9FBF6F2,
+0x000AF6F5, 0xF6000D12, 0xF5FD0C08, 0x04FAEF00, 0x1103110B, 0xF1F50BF1, 0x08FD1104, 0xF80B0AF1,
+0x00160DF7, 0xFD05F3F8, 0x0D01F80B, 0x100502F3, 0xFC0309F6, 0xF41207F6, 0xF2100BFD, 0x040E04F7,
+0xE9080908, 0x06030EEA, 0xF40DF805, 0x09EE0608, 0x0C03F4FB, 0x080CFBF1, 0x100416F5, 0x0407F402,
+0xFDFBFDFD, 0x0BF4F806, 0xFC0B16FF, 0x08EBF3F5, 0xECF9F00B, 0xF8E9F300, 0x08F802F5, 0xF3EF10F4,
+0xFEF409F5, 0x15F7FA13, 0x070DF707, 0x0E0617F9, 0x0206F4FA, 0xF2FAFD0B, 0x10EB0F06, 0x1713EBFF,
+0x030A0BF3, 0xF7E30003, 0xECF50DEE, 0x14050506, 0x160AFC0A, 0x0EFD01F6, 0x02050BEB, 0x031615F4,
+0xF2F3FC09, 0xFA140704, 0x0AF20F07, 0xF7F9FE04, 0xF10EEC06, 0x130D0BFC, 0xF6F3ED0F, 0xF20D100D,
+0xF1F6F40C, 0x0E0BF1F2, 0x0C0FF513, 0xEBEE13FB, 0xF80EF409, 0xF608EC0A, 0xF9090DF1, 0xF602EF09,
+0x14F7F6EF, 0xF401F9F0, 0x130B10FB, 0x0FF31101, 0xEC0912ED, 0x0D03F9F8, 0xF4FAF103, 0xFEF4F10A,
+0xF60BE90A, 0xFFF0F7F1, 0xF801F2F0, 0x00150B1A, 0x09EE130F, 0x130DF7EA, 0x13FB0008, 0xF1F9F00E,
+0x0501F5F0, 0x03F60BF8, 0x090BFE05, 0xEBF8FAF3, 0xEA12F90A, 0xF4FCF4F0, 0x0DF81312, 0x01130DF8,
+0xF3060CF2, 0x00F10CF4, 0xE8F611F0, 0xF707FEF6, 0xF81013FC, 0xF0040AFD, 0xF60616FC, 0xFE1109ED,
+0xED140DED, 0x0303F812, 0xFDF4F4F8, 0x0CF60B14, 0x0DF11811, 0x0BF4FBFA, 0xF2F906F9, 0x09F3F806,
+0x030608FA, 0x0A14E20D, 0x0A08F5FA, 0xE7060DFB, 0x02FD050B, 0xF4F6FB07, 0x01F90BF7, 0x0CFA0FF3,
+0x0B04FD01, 0x0F090604, 0x060E0F0A, 0xF6F1FF06, 0xFC0C0611, 0x01030C0D, 0xF612F9F6, 0x120FF002,
+0xF0F0F9F0, 0x10FE0DFC, 0xEAFCF6E7, 0xF4F0FFFC, 0xEA080D01, 0x09F6020A, 0xF1EDF2F7, 0xF80609F8,
+0xF8F7F80F, 0xF8F7FEFB, 0x0AEE03F4, 0xF60F0406, 0x1309EF03, 0x1215F7FC, 0x0EED07ED, 0x08F30DF5,
+0x09E90D02, 0xF1FAFDF4, 0xFD0FFEF4, 0x0317F1F2, 0xF3111203, 0xF208FEFC, 0xF5FB0213, 0x15F20702,
+0x0FF918ED, 0xF3F8FF0B, 0x0F0A0A0B, 0xEE0C0A13, 0x0A0AF506, 0x1A0401F6, 0xF0F6080F, 0xEC091201,
+0xF9F90C02, 0xF10CF003, 0xF217F200, 0x0DF8FA11, 0x04F603F6, 0x03FB10FA, 0x0AF4090D, 0xF1FBF3EF,
+0x0DF00505, 0xFA0B0E0E, 0xFD030811, 0xFEEDF80A, 0xF1F1F40B, 0x050D0514, 0x0DFC0A10, 0xFF0D01EB,
+0x07F7010D, 0xF90D00F6, 0xFCEDF108, 0xFD10F30C, 0xF3F7FB06, 0xF009F8FF, 0xF808F8F5, 0xEF12F009,
+0x0C0E14F8, 0x02010E06, 0xFF00F50D, 0xF9F1F309, 0x0507EEF0, 0xF8EFFDFB, 0x05041303, 0xFC13EEF6,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0xFB0E01EF, 0xFF0C0B02, 0x07090AFB, 0x0BFBF3F1, 0x0B090F0D, 0xF10409F2,
+0xF80A0E0B, 0xECF60E09, 0x0610F2F9, 0xF4F9FBEF, 0x08ED0DF9, 0xFCF9FEFE, 0x0F0C12F8, 0xF9F317F4,
+0x0BF80213, 0xFFFD1710, 0x0BF80FFB, 0xEEF6F2EE, 0x0106F506, 0xF3091206, 0x00F504F0, 0x0B0C0018,
+0xFD02FAEF, 0x06ED0308, 0xF4F60215, 0x02F80BFC, 0xF20601ED, 0x06F7F5F3, 0x0111FAFC, 0xF2ECF2F8,
+0xFB050C0D, 0x0314EA0A, 0x09F4FCF8, 0xF0F80013, 0xF6E90D0A, 0xF307F415, 0xFB04F4F8, 0xF006F3F1,
+0xFAF9F808, 0x06F9F109, 0xED0A0A0C, 0xF3F6FC03, 0x0508120A, 0x0C0DF100, 0x02FF09FF, 0x00F80D01,
+0x04E50410, 0xF616130C, 0x0300F4EC, 0x090EF506, 0xFA0E0C14, 0x0EF10111, 0xF2030F09, 0x03F3030E,
+0x09EA0509, 0xFDFEF9FB, 0x06F4F702, 0x0C0D0BF3, 0xFFFBF906, 0xF7FBF512, 0x03110AF8, 0x0AF7F70D,
+0x17F60108, 0xF811FA05, 0xEE040700, 0x03FEEF01, 0xF706EC0B, 0x060C0AFA, 0xEC0EF910, 0x0804F207,
+0x09E902F7, 0xF7FDF610, 0x0C050C0B, 0xF8E7F609, 0xFB170A13, 0xF0080404, 0xE808F413, 0xF1F4EB07,
+0xEBFC01F7, 0x0B040AE8, 0x00F1020E, 0xF0F207EC, 0x0EFFF211, 0xF3F815F4, 0xF9020B0B, 0x0EF71201,
+0x0706FC0C, 0x06FDF6FA, 0xFBF7F80A, 0x08090EFD, 0x14FD05FF, 0xF403FE0A, 0xF5F8EF03, 0xFB0AF8F7,
+0x0F00F409, 0x0AEF0B03, 0x0FFB0210, 0x11070710, 0xF1080B0B, 0xF20E08E8, 0xF00CF5EB, 0xF0F30C0E,
+0xFCF0080D, 0x0900EE07, 0xFA01FCFE, 0xE712E70B, 0xF004FEF9, 0x0CF5090D, 0xF60EF606, 0xF8F4FAF8,
+0xED061507, 0xEF110506, 0xF90FF20C, 0xF911F813, 0xFC12F3EF, 0xF7F9F1FC, 0x0E07EAE9, 0x0EF8F1F8,
+0xF6070FEA, 0xF0FA0310, 0xF8FE1417, 0xF8F306F9, 0xFBFCF50E, 0xEC0D11F3, 0x0900F70A, 0xF80EFBF3,
+0x0B08F8F6, 0xEFF00F0C, 0xF709F8FA, 0x0E16EB13, 0x0BF415FE, 0xF4F20F0B, 0xEC0C0AF3, 0x13F8FB02,
+0x12F908FB, 0x0A090D12, 0xF110F0F5, 0xF40E021B, 0x0809F7F3, 0xEE000B0D, 0x0E0FF5F6, 0xF3F40BF6,
+0x05150BE7, 0x0DF809FE, 0x12030809, 0xFF13FC08, 0x0BF6F912, 0x13F90AF4, 0xFE03F2F1, 0x04FB0CF7,
+0x01FDE8F5, 0x0EF8F40D, 0xFE02F7ED, 0xE7EDF2FB, 0x04F9FF13, 0xF0F80A07, 0xF700F6F7, 0xF4080EF4,
+0xF2F7F80F, 0x0DFDEFF0, 0x11EFF902, 0xF2FC0703, 0x0AFD10F1, 0x17F70D07, 0x08F5EFEB, 0xF10B11F9,
+0xF610FFF8, 0x0C130B18, 0x080CFEF5, 0xFBF8F906, 0xF1080C08, 0xEAEEEE10, 0x0F11F6FD, 0x06F706F1,
+0xED0BEA0D, 0xEEF30C02, 0xF8F40D0F, 0x020D0DEC, 0x0CF40605, 0x07020C12, 0xF40C0EF2, 0x060115F2,
+0xF0E6F508, 0xF40DF9F0, 0x0F0A05F4, 0x0FF00B08, 0xEB08FEFC, 0xEE030AF1, 0x0DF9E806, 0xF2F7F5FD,
+0x0A12EEF0, 0x09F3EFF8, 0xFE05F6F8, 0x1CEDF4F5, 0x060512FB, 0x08F90AF0, 0x000107F9, 0x14FFF9FA,
+0x16F70B0B, 0xEEF2F704, 0x04F90BF1, 0x150302F3, 0xEBF8F8F3, 0xF6F90FEF, 0xFBF0F7FD, 0xF70D1000,
+0xECF70C12, 0x03FDF3F0, 0xE4F31604, 0x02FFF600, 0xF00C0105, 0xEC0D0F02, 0xFAFAF707, 0x0208F501,
+0xFFF809F5, 0xEEF70405, 0x050CFCF9, 0xF20BEBF7, 0xFA0E11F6, 0xF7F403F2, 0xF5F0F306, 0x00081A0F,
+0x02F6EE09, 0x0F0D0B0F, 0x0AF7EDF6, 0xECFA0FEB, 0xF000FBFC, 0xF91103F4, 0xF0F30001, 0x08FCF8EE,
+0x0CFEF30B, 0xFE040B02, 0xFC030FF3, 0x04F9F209, 0xF10E0705, 0x14F60B0C, 0x03ED1311, 0xED03EE13,
+0xF9F8F70F, 0xFB010504, 0xEDF70C08, 0x061802FE, 0xED0801F9, 0x06FCFA16, 0x0EF8FCF3, 0x0EF00C0E,
+0xF3F9170D, 0xFE010F05, 0xF31B0500, 0x07F50BF4, 0xEE09030A, 0xF401F400, 0x0C04090A, 0xFCF90F02,
+0x0D10FD0C, 0xF00FEA09, 0xF3F50BF7, 0xFCFCF7EF, 0x06FB0A12, 0x0200EC01, 0x02020A0E, 0xF3FCFE0D,
+0xFC0CF209, 0xFB06F2EE, 0xF90B0C10, 0xFDFCF40C, 0xFC06F80B, 0xEFF902F3, 0x0C110911, 0xF80AEFF3,
+0x0900F30C, 0xF8160E0F, 0xEE0D130D, 0x0BF00209, 0x0AF509EF, 0xF7F614FA, 0xF513070A, 0x09E512FD,
+0xF3050D0C, 0x0006020D, 0xFAED07FE, 0x07FE170B, 0x121300FF, 0x02F602FD, 0x0AF408FA, 0x06FAF7F1,
+0x0807F71A, 0xFBF20C0B, 0xF3FD05F7, 0x06F4090F, 0xF1FEF307, 0x0805EBFA, 0x0810070D, 0xF6F31214,
+0x02ED0607, 0x0D08010F, 0x09F60FF2, 0x0BF8F20C, 0x1BFCF6F4, 0xECFB070C, 0x13FAF3FD, 0xF8F7FCF4,
+0x0C09F7F4, 0xF001E9F9, 0x11F1F305, 0xFAEC08FA, 0xF8F8F40F, 0xF6F70B0A, 0x07F012F4, 0xFDF5FEF3,
+0x09070EF1, 0x09FFF7E9, 0xEAF60C0F, 0x04030106, 0xF5E70709, 0x0AF6F70C, 0xFA14FEF1, 0xF0E51903,
+0xF4EF0B11, 0xF0F80CF3, 0x12ED0307, 0xF301F405, 0xF9F4F3F5, 0x0B0EF809, 0xF7EBF9F8, 0xF10BF406,
+0xFBEEF2F6, 0xEC1111F2, 0x0716EEF6, 0x080910F0, 0xEE0D0010, 0x07ECF7F0, 0x09060005, 0x0DF5EB0B,
+0x0212110C, 0xF3F704FA, 0xEA02020C, 0x050811F1, 0x01FA07F7, 0xF60E0D0D, 0xF711F60C, 0x0108F4F1,
+0xF7F6FE01, 0x0F0FF7F9, 0xEFE7010A, 0x090902F6, 0x0FE809F8, 0xFDFE00F6, 0xEF0806F5, 0x10F80F0F,
+0x0419F40B, 0xEF08EEFD, 0x0711F507, 0xF20901FB, 0x0BFA130A, 0xFA120CF9, 0xE809F2F2, 0xFAF8FE00,
+0xF2FDFCF8, 0xF805F1FD, 0xF1F70912, 0x0903F80B, 0xF9EFF70B, 0x0D05F5F2, 0x0A08FF0E, 0x09F5EE00,
+0x08F91314, 0x0AFEF60A, 0xE51005F0, 0x041EECFA, 0x06FDFF05, 0x0D11F1EF, 0xF4F80912, 0x0D090106,
+0xFAF6F308, 0xFE14F8F1, 0x0D02EE03, 0xF0FDFAED, 0xF2F2E903, 0xE9040C0D, 0x0A00F8F8, 0xF4FA0909,
+0xF4EFFA1B, 0xFC0D0D0B, 0xF2EE08F5, 0x000E0F12, 0xF0F50F11, 0x04FEF9F4, 0x0BF914EB, 0x170CFBF9,
+0x03F30E06, 0x01F8F70F, 0x14F8EFFD, 0xF412F5F2, 0x0AF60C01, 0xF711090D, 0xF60DF90C, 0x09F0ECE8,
+0xEC06140C, 0xFD090DFA, 0xEA01F7EF, 0x030AF8F6, 0xF3F5FCFD, 0xF4F3F500, 0xF3EDECF5, 0xF3130AF6,
+0xF8EFFA0E, 0x0A0B0DF4, 0xF1F0F7F5, 0x0D0A09F4, 0x10EDEEF7, 0x0E0EEDFE, 0xF4F9F306, 0x05FCF8FF,
+0x13FBF7F2, 0xFF07F6F7, 0x0AF2F8F6, 0x0DFA1EFF, 0xF6EE0B09, 0xF113030B, 0xFAF9F3F5, 0xFA0C080C,
+0x0BF8F607, 0x09F902FB, 0xF50BFD08, 0xF7F515EF, 0x0BFA00FB, 0x01FAF009, 0xEA02FE05, 0x0CFBFC10,
+0xFBF7F214, 0x1305F1ED, 0xFA01F216, 0xFDFBFFF4, 0xEE0B040C, 0xFAFB05FD, 0xFEF8F7F4, 0xF60802EF,
+0xF301E603, 0x03EEFAF7, 0xF109EAF2, 0xEF0BFEF5, 0xFFF31115, 0xED09F309, 0x02FFEE0D, 0xF60D0FF9,
+0x030A07FA, 0xF5F4060A, 0x140FFEF1, 0xF6FCEEFF, 0x07030006, 0xFBEF04F7, 0x0AF009FC, 0xF90A0FF9,
+0xF2F702F8, 0xFFFBFB0E, 0x0907090B, 0x0B180F02, 0x0B0C0405, 0x12F80AF9, 0x09F400F0, 0xF010070A,
+0xEBF105F1, 0x05F90C11, 0xE805F30B, 0x12F70BF3, 0xEF11EFFC, 0xEFF7FC0F, 0xE709EF10, 0xF50CFBFD,
+0xF7F805F0, 0xF609FCF7, 0xEAF80F00, 0xFBF40B10, 0xF71106F5, 0xFA12FB01, 0x020BF30C, 0x0714FA04,
+0x06010708, 0xF2110D0D, 0xEEF6F2F8, 0xF009F1E8, 0x07FD06F7, 0x14F8EF0C, 0xF00DF9F6, 0xF20BF50B,
+0xF90C06F7, 0x06FB02F7, 0xF7F20A09, 0xFA051008, 0x0EFA0913, 0x05060D03, 0xFCF40CF6, 0x03E8FCFC,
+0xF3F31411, 0xFCF40906, 0xFB0BF9F7, 0xFC02F80D, 0xF20408F2, 0xEE0EEF0B, 0xF0000EF3, 0xFBF6EDF1,
+0xFAF50FEB, 0x06FC0C0B, 0xF009F80F, 0xF0F7F706, 0xF70507FC, 0x0AF00209, 0xFF0DF20F, 0xEA15FA06,
+0x0816EDF3, 0x000EF9F5, 0xEFF7FA04, 0x0FF60814, 0xF1FEFA02, 0x0805F306, 0xF610FDEE, 0xF8061606,
+0xFE0DFCEF, 0x07F8F613, 0x0C0809F9, 0x0DEBF0FB, 0xF00EF4F4, 0xF8E7F20A, 0xF3FAF20D, 0xF90D04EE,
+0xF1F40E00, 0x09EFFFEC, 0xFE0B0EE7, 0xF7FA0F0E, 0xF00CFEF4, 0xFAEEF9FC, 0x161AF703, 0xF70F10EC,
+0xF6F011FA, 0x10FDFB0B, 0xF60C03FE, 0x0AFF08F3, 0xF6F606F0, 0xF5F716F3, 0xFDFDEBF7, 0x0CF8EFF4,
+0xE3EF0910, 0xF7F6FF12, 0x001402F1, 0x03100EF2, 0x1117EBFF, 0x17FA1008, 0x0DF9F80E, 0xFCF0F511,
+0x1403EEFC, 0x0010F100, 0x110A0612, 0xF505FAEF, 0xF4F304F4, 0x061209EF, 0x090C150C, 0x04F41306,
+0x0B0C0DED, 0xF0F6F110, 0xFC0F1008, 0xF3EF0E08, 0x0B0AECF8, 0x0CF8FA0C, 0xF7FB0EFF, 0x0FF50FFC,
+0x0DF4EDF8, 0x02080C0B, 0xF510F2F2, 0x0208FDF1, 0x060B04F1, 0xF8F6E607, 0xF415EDFF, 0xE8FBEBEC,
+0x0805F30F, 0x00F30F09, 0xFA0DF6EB, 0x0BEEF806, 0x0408F00B, 0xF4F5FB09, 0x090EF310, 0x1006FBF9,
+0xF0F7F710, 0xFC070C0F, 0xFB12EAFA, 0x0BF007F1, 0x080100F1, 0xF700F709, 0x0A0D05F8, 0xEFF20D0C,
+0xF209F8F8, 0xF207FDF3, 0x0DEFEFEE, 0xFD020114, 0x0AF5050A, 0x0D0415FA, 0x0C12ED0F, 0x14F01005,
+0xF7F0EE06, 0x0F14F209, 0x080500F9, 0x08F5050E, 0x0DE7E901, 0x03FDF3FC, 0xF20403FD, 0xF7F2F60D,
+0xECF00D09, 0xFB09FF0A, 0xF306F9F2, 0x0E03F20E, 0x0C09F305, 0x11F710F8, 0xF4F217E4, 0x0E09090A,
+0x0A12F0F9, 0x06F312FE, 0xFDFBFDEE, 0xE9F0020D, 0x0DFB1005, 0x0200E90B, 0x0F0C02F5, 0xF8FF05F4,
+0x0AF303FD, 0x0BF4100E, 0x14F2040F, 0x0EF9EF0B, 0x0AED0801, 0x05F5EE08, 0xFF0A0514, 0xF8F2F0FF,
+0x0FFAF7F0, 0xE10E12F6, 0x13F1F4FA, 0xF3FC0B0B, 0xEFFEF4FD, 0xF9080708, 0x05FCF9F6, 0x040E06F4,
+0x020DF5F6, 0x13F50B11, 0x1513F1F6, 0x05F707ED, 0xF7FB01F7, 0xF1EF06FA, 0x09FB1102, 0x06FC0706,
+0xF7F80F14, 0x0EF3F002, 0x0AF8FE0A, 0x0BE8F5F9, 0xEEF609E9, 0x09E8EE02, 0x03090BFC, 0xF0F8F0F1,
+0xF8081009, 0x0F0002FA, 0xFCF202FD, 0x0DF106EF, 0xF70408F5, 0x02140C15, 0xF6F6F5EF, 0xF1080905,
+0xE902FDEC, 0xF3F4F6F6, 0xF904FCF2, 0xF906F5F3, 0xF7FB0A08, 0x08F4F0F1, 0x0EFDF6F1, 0x03F8F6F6,
+0xFF0C110C, 0xF1FDF7F8, 0xF814F502, 0x12FD1108, 0x0DF7F313, 0xF506FA11, 0x07FEF9F2, 0xEAF20D09,
+0xFCF40D0D, 0x06F1F709, 0xF7F21DFA, 0xFB00ED11, 0x0DFA0208, 0xF1FE1101, 0x0AF5F4F9, 0x060BF3F9,
+0x080CFD06, 0xF30EF409, 0x12EB02EF, 0x0BEF0D09, 0x1512F0F0, 0x18010700, 0x05070F05, 0xF306FC08,
+0x0001FD0E, 0x10FD0DF8, 0xF708F90A, 0x100D0D05, 0x04011414, 0x0AF90D0C, 0xF402F8EE, 0xFC11FAFF,
+0xF500F605, 0xF0EAF8F4, 0x120F0407, 0x1103F9EE, 0xF9F9F5F7, 0x10060EF8, 0x0609F504, 0xF20E080F,
+0x0EF3F109, 0xFB05F60E, 0x0E1C05FD, 0xF710FBEB, 0x16F2F90B, 0xF500FEF4, 0x0A13EEF7, 0x0EFF0CF6,
+0xFFF903F8, 0xF30A0BF0, 0xF7FCF004, 0x1613F70B, 0xF90506F5, 0xEB09F008, 0x05F30CF3, 0x0310EEF3,
+0xFD1002F4, 0x09070114, 0x040B0606, 0xE400F907, 0x13F40B1A, 0x06F4EBE7, 0xF1EE06F9, 0xFAF9130D,
+0xF3ED090A, 0x08EF05F8, 0xF814F507, 0xF8131707, 0x1EFCEF0C, 0xF1090708, 0x04F211F0, 0xEFF0090E,
+0x09FBF3FD, 0xF3F204F4, 0xF000FC1C, 0xFC00F009, 0xF9FD160F, 0x16F7F80D, 0x0DF8060B, 0x03FAF4FB,
+0x03FDFF0D, 0xF4F1F40E, 0xF9EBF7F2, 0x0EF6FA06, 0x09F3EDFA, 0xFEF4EFF2, 0x0F0300F4, 0x0DEBFBFC,
+0x1FF0010E, 0xF9140E07, 0xF2F6FD07, 0x11E9020B, 0xEE17070B, 0x10FD0003, 0x0904F5F7, 0x0515FCEE,
+0x090F07FF, 0x12FC1104, 0x10F9F0F1, 0x0A080700, 0x010A1200, 0x120B01F5, 0xF7F0ED01, 0xFB06040E,
+0xF0FEF30B, 0x0A0713FC, 0xF6F7F9EC, 0x07F803ED, 0xF2F9EF0F, 0xFAF4100A, 0x020AFA04, 0x0806130D,
+0xFF0B0F04, 0x080705F8, 0x04F503F3, 0x05EEF9ED, 0xFBFEF30A, 0xF2F9F20B, 0x03FEECEB, 0x08F40302,
+0x0617FE0A, 0xFE10050C, 0x0410FAF3, 0xF508EFF9, 0x030908F2, 0x010206FC, 0xFDF7F415, 0xF9080F05,
+0xFBF00CEE, 0x0BFD0D0B, 0xF7F9F10A, 0xF80603F9, 0xF202F4F5, 0x0F07FA05, 0x04FA09F8, 0x08F80B04,
+0xED030E00, 0x0A04FDF8, 0xEFFC0B14, 0x05F2FFFE, 0xECF60EFB, 0xFE04FD07, 0x0AEDFB0D, 0xF20FF407,
+0xF4030A00, 0x15F1EEF2, 0xF50B0D0B, 0x02FE11FB, 0xF3FBF8F8, 0xF7F0F516, 0xF6070A04, 0xFD0C1A0D,
+0xF603F50B, 0x0D0F04FA, 0xF5F5EFF7, 0xFB130FE9, 0x0C0205F3, 0xFB050CF7, 0xF9F809FF, 0xF1120DF0,
+0x0E0503F8, 0x16FEFDF6, 0xFA0AF5F7, 0xF302F6F9, 0xFC07F4EE, 0x0A040A00, 0xFFF409EE, 0xF8F7FD18,
+0xFC01F7EA, 0x0F11F40F, 0x0DF7F708, 0x0DF60809, 0x0DFD0F08, 0x1012FA0E, 0x021615F4, 0x04FCEBFB,
+0xF7FC09FE, 0x0C080DF9, 0xF8EB05FC, 0x0708F2EE, 0xFC14F80C, 0x0C06F111, 0x0809F9F2, 0x0CF809FF,
+0x0DF50AF8, 0x05EA0E12, 0xFCF6F805, 0xF5EC0A0B, 0xF2080D10, 0x09FBED04, 0xEFF7F40E, 0xF8F610F6,
+0x09F4F1F9, 0xFFFC0E0B, 0x020AF3EC, 0xF4EA09FE, 0xF7EFF70D, 0xEFF410FC, 0x07FD0EFD, 0x0D060100,
+0x13F4FAF3, 0xFFF001FE, 0x08FC07F0, 0x0900FC05, 0xF5F8F709, 0x0CFC100C, 0xF7F7FBFC, 0xF7F608F4,
+0x05F90308, 0xECF6FF08, 0xF2F70B07, 0x04FE03F5, 0xFC02FBFE, 0x02F41301, 0xF1F6F50E, 0xF9FA00E4,
+0x0EFB0709, 0xF50800F7, 0x040AEC07, 0x130301FA, 0x0409F809, 0xF104EA0F, 0xF7F00A09, 0xF80BF704,
+0x13F800FE, 0xFAF50CF3, 0xF103090A, 0x12FAF30A, 0xF611F8F9, 0x02F1F403, 0x0A040FED, 0x0AFFFEF2,
+0x05FBF7FD, 0x0FE903F3, 0xF6EA090B, 0x120FFE07, 0xFA1406F2, 0x0EF80EFB, 0x0EFDFAFC, 0x0EFC0D0A,
+0x120805EF, 0xF70DF900, 0x0C0EE5FB, 0x0F0DF503, 0xF609000A, 0x0D03F5F9, 0x0FFB1006, 0x05F60A08,
+0xED07F8EF, 0xF90CEE0A, 0x0B16100A, 0xFD07F607, 0x0EFF0D01, 0x0CEF04EB, 0x11F5FD0B, 0x080B0CF5,
+0xFF14FEF5, 0xF1FAF413, 0xFA0100F6, 0xF0090FFC, 0xF3FB0AEF, 0xFE09FE0E, 0xF710F3F5, 0x04090C11,
+0x04EEEFF2, 0x09FC0FF1, 0xFE0BF4F9, 0x08F10AFC, 0x030AF5FE, 0x13FA0FF4, 0x07000AFE, 0x071507F5,
+0x06FD08F0, 0x0F0C08EE, 0x190E020D, 0x08EDF4EB, 0x0D0DF109, 0x0210EF00, 0xF506080A, 0x1010F7F0,
+0xFE02F7FB, 0x09F8F6F7, 0xF902FF04, 0x16E003FE, 0x12EA1A00, 0x130E0FFF, 0x0702F2F9, 0xF10BEFFC,
+0x010E04F1, 0xF6EF15F6, 0xF50A0510, 0x050DEF0D, 0xF908F4F6, 0x0F0F0BF0, 0x04F7F6FC, 0x07F9FAEE,
+0x02EE07F9, 0xF6F90105, 0xF1FFFC04, 0x0802EB0C, 0xF10E0CF3, 0x030E0508, 0x0CF60CF9, 0x08F20EF5,
+0xEFFE09EF, 0xF9FB0A06, 0x14F6F6F5, 0xF6140DFE, 0xF511F8F4, 0xF0FAEF00, 0x1103FC0B, 0xF1090B05,
+0xF4FD11F0, 0xF80BF6F1, 0x14160D0B, 0x1105070C, 0x0DEDF80B, 0x1005EE07, 0xFCEFF5E2, 0x0812F3F6,
+0xF2100BFD, 0x04FAF00B, 0xFD08F508, 0x06030EEA, 0xF4F90C05, 0xF5EE0608, 0x0CEEF40F, 0xF4F8FB06,
+0xFCF01609, 0x0407F402, 0xFDFBFDFD, 0x0BF4F806, 0xFCF701EB, 0x08EB0709, 0xECF9040B, 0xF8E9F300,
+0x1C0CEEF5, 0x0703FC08, 0xFEF40909, 0x150B0EFF, 0xF30D0B07, 0xFAF203F9, 0x11EC1EE9, 0x191AF4E5,
+0xEFDF19D9, 0xFA220619, 0xFA131A14, 0x10FB0909, 0x0C131B0D, 0x140FEB0F, 0xF41AEEEF, 0xEE0A10E5,
+0xE206F0E4, 0x13FBFFDE, 0x15132215, 0x1CF31EF8, 0x1512111A, 0x1F1E0114, 0xE8F20F29, 0xEDEF1112,
+0xE30DE215, 0x0DED2213, 0x19EBE410, 0x1917DD1E, 0xF5E818EE, 0xDDDB16EE, 0x1418F6F5, 0xE414E31A,
+0xEBE7E606, 0x10E50CE8, 0x011C1813, 0x0E15EB11, 0x22E81C1C, 0xEA1B0FE3, 0xE1E9F90D, 0x12FBF91F,
+0xEAE312E5, 0x19100D1F, 0xF10F0516, 0xEF1EEA0B, 0xF2E612E4, 0xF2FAE823, 0x0AE4F5F2, 0xF2171BD9,
+0x1817FEE9, 0xE9F209E6, 0x07D8EA03, 0x1716F0E5, 0x0DDC16ED, 0x09222113, 0x0126EDE2, 0x11F611E2,
+0xF3F21FFE, 0xFBF00E1D, 0xE5E01B0F, 0xEF0CE6EE, 0x05E0EE0D, 0x0819F7F1, 0xEAF01EEA, 0xE811ED18,
+0xE115FB16, 0x1DF8EAEB, 0x04FDEFE5, 0xE40EEFF7, 0x28EAF514, 0x181CF019, 0x0F09F711, 0x0E1A12FB,
+0xE9EB06F0, 0xE6EBEEEC, 0xDB14151E, 0xEA18FC14, 0x13050C19, 0x06EFEF0B, 0x2217E9EE, 0xECDD19E8,
+0xFC24151E, 0x1016EA0B, 0x08F8F1EB, 0xEBE9050B, 0xDDF6E815, 0x15E1F5DA, 0x10111C1F, 0x05E113E5,
+0x1925EB1B, 0x19F3F1F6, 0x11061810, 0x1EF5F725, 0xDDEE06DE, 0xE51509F6, 0xE513F1E2, 0xE9EB24F3,
+0xF1FE0BE2, 0xEC09F3EE, 0xEDEF0FE9, 0x1BEDF6F2, 0x19EEE311, 0x14EAE7F5, 0x22F0F1EB, 0xFAF412F8,
+0xEB09EAE4, 0x0EEC1505, 0x0D0AEE01, 0x0916F5EE, 0x21EAF215, 0x2003DFE5, 0xEDE9E616, 0x01F2D11B,
+0x0D13EC20, 0xF8E7100F, 0xF1F3FA07, 0x1414E5EF, 0x10E8F512, 0xDDF4FBF1, 0x1719E712, 0xFFEDF91D,
+0xECF4E7EA, 0x0BEE1711, 0x1BEC0AEB, 0xEBF0E1E7, 0x101E15D6, 0x11F211F9, 0xE8F41721, 0x0FEE161B,
+0xF118EA1B, 0xDD1C19E2, 0xEEDCE80F, 0x1AF1F516, 0x080B141B, 0x15DD1BEE, 0x100E14F1, 0xFFFB0427,
+0x18181F22, 0xDEEBFC0A, 0x07170B14, 0xF819230C, 0xFA0FE5EF, 0xDFF1ECF6, 0x0CF313E7, 0x0D17FA05,
+0x141117E8, 0x05FEE7EE, 0xF21DF516, 0xF509F1E8, 0x18291408, 0xF21110F3, 0x17E20AE5, 0x0BEEF9EF,
+0xE82220ED, 0x23F8E4EA, 0x1203F2F1, 0xF0FB0CF7, 0xED12FC09, 0xFAF808F9, 0xFE16F701, 0xFC01F20F,
+0xF00D13FF, 0xF00C0A07, 0x0BEC0AF7, 0x08F4FAF4, 0xF2F70C0F, 0xF912EF04, 0x11EFF902, 0xF2111BEF,
+0xF611FCF1, 0x170B0D07, 0x0809EF00, 0x060B110D, 0xF6FCFFF8, 0x0C13F718, 0x080C12F5, 0xFBF8F9F2,
+0xF1F40C08, 0xFE02EEFB, 0xFBFD0AFD, 0x060BF205, 0xED0BFEF9, 0x02070C16, 0xF8F4F9FB, 0x020DF801,
+0x0CF4F2F1, 0xF3EE0C12, 0x08F80E06, 0xF2ED00F2, 0x04FA09F4, 0x080DF905, 0xFBF6F1F4, 0xFBF00BF4,
+0xEBF41210, 0x02180A05, 0x0D0DE806, 0xF2F709FD, 0x0A120204, 0x09F304F8, 0xFE050AF8, 0x1C01080A,
+0xF205120F, 0xF40DF604, 0xECEDF3F9, 0x14FF0D0E, 0x020B0B0B, 0xEE06F704, 0xF00DF705, 0x1503EE07,
+0xEBE4F8F3, 0x0AF9FB03, 0x0FF0F711, 0x0BF9FC00, 0x000C0C12, 0x031108F0, 0xF8F30204, 0x02FFF600,
+0xF0F80105, 0x00F90F16, 0xFA0EF707, 0xEE08F501, 0xFF0C09F5, 0xEEF7F0F1, 0xF1F710F9, 0xF2F7EB0B,
+0xFA0E110A, 0xF7F40306, 0x0904F306, 0xEC081AFB, 0x02F6EE09, 0x0FF9F70F, 0xF6F701F6, 0xEC0E0FEB,
+0x0414FB10, 0xF9FDEFF4, 0x04070015, 0xF4FC0CEE, 0x0C1208F7, 0xFEF00BEE, 0xE803FB07, 0xEFF9F209,
+0x05FA0705, 0x00F6F7F8, 0x03EDFF11, 0x01EFEE13, 0x0DF8F7FB, 0xFB01F1F0, 0xEDF7F808, 0x06030212,
+0x0108010D, 0x06FCFA02, 0x0EF8FC07, 0x0EF00CF9, 0x07F9170D, 0x12EDFB05, 0x0707F114, 0xF3090B09,
+0xEE09030A, 0x0815F400, 0xF80409F6, 0xFC0DFBEE, 0xF910FDF8, 0xF00FEAF5, 0xF309F7F7, 0x1010F7EF,
+0xF2FB0A12, 0x02000001, 0x02020AFA, 0xF310120D, 0xFCF8F209, 0xE7060602, 0x0DF7F810, 0x111008F8,
+0x10F2F8F6, 0xEFF9EEF3, 0xF8FDF511, 0x0C0A04F3, 0x091407F8, 0xF8160EFB, 0x02F8FFF9, 0xF704EE09,
+0x0AF5F503, 0xF7F6000E, 0xF513F30A, 0xF5E5FE11, 0x08050DF8, 0x0006EEF9, 0xFA02F3EA, 0x07EA030B,
+0xFE13ECFF, 0x02F60211, 0xF6F4F4E6, 0xF20E0CF1, 0x0807F706, 0x0FF20C0B, 0xF3FDF00C, 0xF108F50F,
+0x05FE07F3, 0x08F1EBFA, 0x08FC070D, 0x0A07FE14, 0x02ED06F3, 0x0D08ED0F, 0x09F60F06, 0xF70CF2F8,
+0x1BFC0A08, 0x000F070C, 0x130E0711, 0xF8F710F4, 0x0CF50B08, 0xF0EDFD0D, 0x1105F3F1, 0x0E00080E,
+0xF80C080F, 0xF6F7F70A, 0x07041208, 0x11F5FE08, 0xF507F9F1, 0x09FFF7FD, 0xFE0AF80F, 0x041715F1,
+0xF5FBF3F5, 0x0AF6F7F8, 0x0E00FE05, 0x04E519EF, 0x0803F711, 0xF00C0CF3, 0xFEEDEF07, 0x071508F1,
+0x0DF407F5, 0x0BFAF809, 0xF7EB0D0C, 0xF1F7F406, 0x0FEEF20A, 0x00FDFC06, 0xF302EEF6, 0xF4F51004,
+0xEE0D14FB, 0x07EC0B04, 0x090614F1, 0xF909FFF7, 0x02FEFD0C, 0x070B04FA, 0xEA16EEF8, 0xF1081105,
+0x01FA07F7, 0xF60E0D0D, 0x0BFCF6F8, 0x01F40805, 0xF70A1201, 0xFBFBF7F9, 0x04E716F6, 0x09F502F6,
+0xFBE8090D, 0xFD12000A, 0x03F4F209, 0x100CFB0F, 0x0405F40B, 0x0308EE11, 0x07110907, 0xF20901FB,
+0x0BFAFE0A, 0x0EFEF80D, 0xFCF5F2F2, 0xFAF8EAEC, 0xF211FC0C, 0xF8F1F111, 0x05F709FE, 0x0903F80B,
+0xF9030B0B, 0xF919F5F2, 0xF608FFFA, 0x09F50300, 0xF4F91314, 0x0A120AF6, 0xE5FCF1F0, 0x041EECFA,
+0xF2FDFFF1, 0x0DFD05EF, 0xF40C0912, 0xF9090106, 0x0EF6071D, 0xFE140DF1, 0xF9EE0203, 0x04110EED,
+0x06F2E903, 0xFD04F8F9, 0x0A000C0D, 0x08FAF509, 0xF4EF0E1B, 0x10F9F9F7, 0x06EE0809, 0x140E0F12,
+0x04F50FFD, 0xF0EA0D08, 0x0B0D00FF, 0x17F80F0D, 0x17070E06, 0x01F8F7FB, 0x14F80312, 0xF4FEF506,
+0x0A0AF8ED, 0x0B1109F9, 0x0B0D0EF8, 0x09F0ECE8, 0x00F2140C, 0xFD090D0E, 0xEA16F703, 0x03F6F80A,
+0xF30910FD, 0xF4F3F514, 0xF302ECF5, 0xF3FF0A0A, 0x0CEFFAFA, 0xF60B0D08, 0xF104F7F5, 0xF90AF5F4,
+0xFC0102F7, 0xFAFA01FE, 0xF40DF3F2, 0x05FC0CFF, 0x13FBF706, 0xEBF30AF7, 0xF6F20CF6, 0xF90E1EEB,
+0xF6EE0BF5, 0xF11303F7, 0xFA0D0709, 0xFAF8080C, 0x1FF80A07, 0xF5F9EE0F, 0x09F7FD08, 0x0B0A1503,
+0xF7FA000F, 0x01FAF0F5, 0xEAEEFE05, 0xF8FBFC10, 0x100B0600, 0x13050501, 0xFA15F216, 0xFD0F13F4,
+0x030B04F8, 0xFA0FF1FD, 0x12F80BF4, 0x0A080204, 0x0701FA03, 0x17EEFAF7
+
+basegraph=
+1
+
+z_c=
+176
+
+n_cb=
+11616
+
+q_m=
+2
+
+n_filler=
+8
+
+e=
+4640
+
+rv_index=
+3
+
+code_block_mode=
+1
+
+iter_max=
+20
+
+expected_iter_count=
+3
+
+op_flags=
+RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE, RTE_BBDEV_LDPC_HQ_COMBINE_OUT_ENABLE, RTE_BBDEV_LDPC_HQ_COMBINE_IN_ENABLE
+
+expected_status=
+OK
diff --git a/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_v11835.data b/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_v11835.data
new file mode 100644
index 000000000..84a04e11c
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_v11835.data
@@ -0,0 +1,49 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2019 Intel Corporation
+
+op_type =
+RTE_BBDEV_OP_LDPC_DEC
+
+input0 =
+0x817F7F81, 0x817F817F, 0x7F818181, 0x7F818181, 0x7F817F81, 0x7F7F8181, 0x817F7F7F, 0x81817F81,
+0x7F7F6B7F, 0x7F7F817F, 0x7F7F8181, 0x817F8181, 0x81817F7F, 0x7F818192, 0x7F81817F, 0x817F7F7F,
+0x8181
+
+output0 =
+0x44FB08C0, 0x661CCC
+
+basegraph=
+2
+
+z_c=
+10
+
+n_cb=
+500
+
+q_m=
+6
+
+n_filler=
+44
+
+e=
+66
+
+rv_index=
+0
+
+code_block_mode=
+1
+
+iter_max=
+20
+
+expected_iter_count=
+4
+
+op_flags=
+RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE
+
+expected_status=
+OK
diff --git a/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_v2342_drop.data b/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_v2342_drop.data
new file mode 100644
index 000000000..f30726e46
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_v2342_drop.data
@@ -0,0 +1,745 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2019 Intel Corporation
+
+op_type =
+RTE_BBDEV_OP_LDPC_DEC
+
+input0 =
+0x7F817F81, 0x817F7F81, 0x8181817F, 0x7F817F81, 0x7F818181, 0x7F81817F, 0x7F817F81, 0x817F8181,
+0x817F8181, 0x817F8181, 0x7F818181, 0x81817F81, 0x81817F81, 0x7F7F817F, 0x817F7F7F, 0x7F7F8181,
+0x7F7F7F81, 0x7F7F817F, 0x7F81817F, 0x7F81817F, 0x7F818181, 0x8181817F, 0x8181817F, 0x7F7F817F,
+0x7F7F8181, 0x8181817F, 0x817F7F7F, 0x81818181, 0x817F7F81, 0x7F7F817F, 0x7F818181, 0x81817F7F,
+0x7F7F7F7F, 0x7F7F817F, 0x7F7F8181, 0x81817F7F, 0x817F8181, 0x7F817F81, 0x7F7F817F, 0x7F7F7F81,
+0x7F7F7F81, 0x817F8181, 0x817F7F7F, 0x817F7F81, 0x7F817F7F, 0x7F7F8181, 0x817F7F7F, 0x7F818181,
+0x7F7F7F7F, 0x7F7F7F81, 0x81817F81, 0x817F7F81, 0x7F7F7F81, 0x7F7F7F81, 0x81818181, 0x7F818181,
+0x817F8181, 0x7F818181, 0x7F817F81, 0x81817F7F, 0x7F817F7F, 0x817F7F7F, 0x7F818181, 0x7F7F8181,
+0x81817F81, 0x8181817F, 0x7F7F817F, 0x7F817F81, 0x81817F7F, 0x817F7F7F, 0x81817F81, 0x81818181,
+0x7F7F8181, 0x81817F81, 0x81817F7F, 0x817F8181, 0x7F7F817F, 0x7F818181, 0x7F81817F, 0x81817F7F,
+0x7F817F7F, 0x81817F7F, 0x7F7F817F, 0x7F818181, 0x7F817F81, 0x7F7F7F81, 0x7F7F7F7F, 0x817F8181,
+0x7F817F7F, 0x81817F81, 0x81817F81, 0x7F817F7F, 0x81817F81, 0x817F7F7F, 0x817F817F, 0x7F7F7F81,
+0x7F817F81, 0x7F7F7F7F, 0x81817F7F, 0x8181817F, 0x81817F81, 0x7F7F7F81, 0x7F7F7F7F, 0x7F817F7F,
+0x81817F7F, 0x7F7F7F81, 0x81817F81, 0x81818181, 0x7F7F7F7F, 0x7F7F817F, 0x7F7F7F81, 0x81817F81,
+0x7F817F7F, 0x7F81817F, 0x81817F81, 0x817F817F, 0x7F7F7F81, 0x817F8181, 0x81818181, 0x81817F81,
+0x7F818181, 0x817F7F81, 0x7F7F7F81, 0x7F817F7F, 0x81818181, 0x81818181, 0x817F7F7F, 0x81817F81,
+0x817F8181, 0x7F7F7F7F, 0x7F7F8181, 0x7F7F817F, 0x7F817F7F, 0x7F81817F, 0x7F7F817F, 0x7F817F7F,
+0x7F7F7F7F, 0x7F818181, 0x817F7F81, 0x817F817F, 0x7F817F81, 0x817F7F81, 0x81818181, 0x8181817F,
+0x81817F81, 0x7F817F7F, 0x817F8181, 0x7F7F7F7F, 0x7F817F81, 0x7F7F817F, 0x7F81817F, 0x817F8181,
+0x817F7F81, 0x817F817F, 0x817F817F, 0x81817F7F, 0x7F818181, 0x817F7F7F, 0x81817F7F, 0x7F7F7F81,
+0x8181817F, 0x817F7F81, 0x7F817F81, 0x81817F7F, 0x7F7F8181, 0x817F7F7F, 0x817F7F81, 0x7F7F817F,
+0x7F81817F, 0x7F81817F, 0x817F8181, 0x7F81817F, 0x81817F7F, 0x7F818181, 0x7F817F7F, 0x7F7F817F,
+0x81817F81, 0x81817F7F, 0x817F817F, 0x817F817F, 0x8181817F, 0x7F817F7F, 0x81817F7F, 0x7F818181,
+0x817F8181, 0x81817F81, 0x8181817F, 0x7F7F7F81, 0x81817F81, 0x81817F7F, 0x8181817F, 0x817F8181,
+0x8181817F, 0x8181817F, 0x817F7F7F, 0x81817F7F, 0x7F7F8181, 0x7F818181, 0x7F817F81, 0x81817F7F,
+0x817F7F81, 0x817F7F7F, 0x8181817F, 0x7F817F7F, 0x817F7F7F, 0x81817F7F, 0x7F818181, 0x7F7F7F7F,
+0x7F817F81, 0x7F7F8181, 0x817F817F, 0x7F7F7F7F, 0x817F8181, 0x81817F81, 0x7F7F817F, 0x7F817F7F,
+0x817F7F7F, 0x81817F7F, 0x7F7F7F7F, 0x7F817F81, 0x7F817F7F, 0x817F8181, 0x7F818181, 0x81817F81,
+0x7F7F817F, 0x7F817F81, 0x817F7F81, 0x7F7F817F, 0x817F817F, 0x817F817F, 0x7F7F8181, 0x7F817F81,
+0x7F818181, 0x7F7F7F7F, 0x81818181, 0x7F7F7F81, 0x81817F7F, 0x817F8181, 0x7F817F7F, 0x7F817F7F,
+0x7F7F8181, 0x81818181, 0x817F8181, 0x817F7F7F, 0x7F7F7F7F, 0x7F7F7F7F, 0x81817F81, 0x7F7F7F81,
+0x8181817F, 0x8181817F, 0x8181817F, 0x817F817F, 0x7F817F7F, 0x7F818181, 0x7F817F81, 0x7F817F81,
+0x7F7F8181, 0x817F817F, 0x81817F7F, 0x7F818181, 0x817F7F7F, 0x817F817F, 0x817F817F, 0x7F7F7F7F,
+0x817F817F, 0x8181817F, 0x7F7F7F81, 0x817F817F, 0x81817F7F, 0x7F7F8181, 0x817F817F, 0x7F818181,
+0x7F7F7F81, 0x81818181, 0x7F818181, 0x7F7F8181, 0x817F8181, 0x817F8181, 0x7F81817F, 0x81817F7F,
+0x81818181, 0x7F7F7F81, 0x817F817F, 0x7F81817F, 0x7F817F81, 0x7F817F7F, 0x7F7F817F, 0x817F7F81,
+0x817F817F, 0x7F81817F, 0x81818181, 0x817F8181, 0x7F817F81, 0x81817F81, 0x7F7F817F, 0x817F7F7F,
+0x817F8181, 0x8181817F, 0x7F817F81, 0x7F7F817F, 0x8181817F, 0x7F81817F, 0x7F818181, 0x81817F81,
+0x8181817F, 0x7F7F8181, 0x817F7F81, 0x7F7F8181, 0x7F7F817F, 0x7F818181, 0x7F7F817F, 0x81818181,
+0x81817F7F, 0x817F7F81, 0x817F8181, 0x7F817F81, 0x7F7F7F7F, 0x7F7F7F81, 0x81817F7F, 0x817F817F,
+0x7F817F81, 0x7F7F7F7F, 0x817F7F81, 0x817F8181, 0x7F7F7F7F, 0x81818181, 0x817F817F, 0x81817F7F,
+0x81817F7F, 0x7F817F7F, 0x7F7F7F7F, 0x7F818181, 0x817F8181, 0x7F817F7F, 0x81818181, 0x81818181,
+0x7F81817F, 0x81817F7F, 0x8181817F, 0x817F7F81, 0x817F817F, 0x81818181, 0x81817F7F, 0x817F7F81,
+0x81818181, 0x8181817F, 0x81817F81, 0x81817F7F, 0x7F7F817F, 0x7F7F7F81, 0x817F7F7F, 0x7F7F8181,
+0x7F7F8181, 0x8181817F, 0x7F817F7F, 0x817F7F81, 0x81817F81, 0x7F7F8181, 0x817F8181, 0x81817F7F,
+0x7F7F7F7F, 0x81818181, 0x817F8181, 0x817F7F81, 0x7F81817F, 0x7F818181, 0x7F7F817F, 0x817F8181,
+0x817F817F, 0x7F7F7F81, 0x7F818181, 0x81818181, 0x7F7F8181, 0x817F7F81, 0x7F7F8181, 0x817F7F7F,
+0x817F7F7F, 0x81817F7F, 0x7F7F817F, 0x7F817F81, 0x817F7F81, 0x817F8181, 0x817F7F81, 0x81817F81,
+0x7F81817F, 0x7F818181, 0x81818181, 0x81817F7F, 0x8181817F, 0x81817F81, 0x7F7F817F, 0x817F7F7F,
+0x817F8181, 0x7F7F7F81, 0x81818181, 0x817F8181, 0x81817F81, 0x817F817F, 0x817F7F7F, 0x81817F81,
+0x7F817F7F, 0x7F7F7F81, 0x81817F7F, 0x81818181, 0x8181817F, 0x817F7F81, 0x8181817F, 0x7F817F7F,
+0x7F817F81, 0x817F817F, 0x8181817F, 0x81818181, 0x7F817F7F, 0x817F7F81, 0x7F817F7F, 0x81818181,
+0x7F7F7F81, 0x7F7F7F81, 0x7F817F81, 0x817F7F81, 0x7F7F817F, 0x7F817F81, 0x7F817F7F, 0x7F7F7F7F,
+0x81817F7F, 0x7F81817F, 0x8181817F, 0x7F81817F, 0x81817F7F, 0x817F7F7F, 0x7F817F7F, 0x7F7F7F81,
+0x7F7F8181, 0x7F7F7F81, 0x7F7F7F81, 0x7F818181, 0x7F7F7F81, 0x8181817F, 0x7F7F7F81, 0x8181817F,
+0x817F7F81, 0x817F8181, 0x7F7F817F, 0x81818181, 0x7F7F7F7F, 0x7F817F7F, 0x81817F7F, 0x81817F7F,
+0x7F7F7F81, 0x7F818181, 0x81817F7F, 0x7F7F7F81, 0x817F817F, 0x817F7F7F, 0x7F818181, 0x7F81817F,
+0x7F81817F, 0x7F818181, 0x7F7F8181, 0x7F817F81, 0x7F7F7F7F, 0x7F817F81, 0x817F817F, 0x7F81817F,
+0x7F81817F, 0x7F7F817F, 0x7F7F7F7F, 0x81817F81, 0x81817F7F, 0x817F8181, 0x7F818181, 0x7F7F8181,
+0x7F817F81, 0x7F818181, 0x817F817F, 0x7F817F81, 0x817F817F, 0x817F7F7F, 0x7F7F8181, 0x81817F81,
+0x7F7F8181, 0x817F8181, 0x817F7F81, 0x7F818181, 0x7F817F7F, 0x81817F81, 0x7F818181, 0x7F7F817F,
+0x817F8181, 0x817F7F7F, 0x81817F81, 0x7F7F7F7F, 0x7F818181, 0x7F817F7F, 0x7F817F7F, 0x7F817F81,
+0x7F817F7F, 0x7F7F7F81, 0x817F7F81, 0x7F817F81, 0x7F81817F, 0x817F817F, 0x7F7F8181, 0x817F8181,
+0x817F8181, 0x7F7F7F81, 0x7F818181, 0x7F7F817F, 0x817F8181, 0x817F817F, 0x7F7F7F81, 0x81817F81,
+0x817F8181, 0x7F81817F, 0x7F7F7F81, 0x817F8181, 0x7F81817F, 0x817F7F7F, 0x7F7F7F7F, 0x817F8181,
+0x81817F81, 0x817F7F7F, 0x7F7F7F81, 0x817F8181, 0x7F7F8181, 0x81818181, 0x817F7F7F, 0x7F7F817F,
+0x81817F81, 0x7F81817F, 0x7F817F7F, 0x81817F81, 0x81818181, 0x7F7F7F81, 0x7F818181, 0x817F7F81,
+0x7F817F81, 0x7F7F817F, 0x817F817F, 0x7F7F7F7F, 0x7F7F7F81, 0x7F7F8181, 0x817F817F, 0x817F817F,
+0x7F7F7F81, 0x7F7F8181, 0x817F7F81, 0x81818181, 0x7F7F7F81, 0x7F7F7F7F, 0x7F817F81, 0x817F7F81,
+0x7F817F7F, 0x81817F7F, 0x7F81817F, 0x7F7F7F81, 0x7F81817F, 0x7F7F817F, 0x817F7F7F, 0x817F817F,
+0x7F817F7F, 0x8181817F, 0x817F8181, 0x81817F81, 0x81817F7F, 0x8181817F, 0x7F81817F, 0x7F7F7F7F,
+0x7F817F81, 0x7F817F81, 0x7F817F81, 0x81817F81, 0x7F817F81, 0x7F7F7F7F, 0x7F817F7F, 0x7F81817F,
+0x7F7F8181, 0x7F81817F, 0x7F7F817F, 0x7F817F81, 0x817F8181, 0x7F7F8181, 0x81818181, 0x7F7F7F81,
+0x7F7F8181, 0x817F7F81, 0x817F7F81, 0x7F7F817F, 0x81817F7F, 0x7F7F817F, 0x817F817F, 0x81817F7F,
+0x817F817F, 0x817F817F, 0x7F7F7F7F, 0x817F7F7F, 0x81818181, 0x7F81817F, 0x8181817F, 0x81817F81,
+0x7F7F7F7F, 0x817F817F, 0x7F81817F, 0x817F8181, 0x81817F81, 0x817F7F7F, 0x8181817F, 0x81817F81,
+0x81817F81, 0x7F817F81, 0x7F817F81, 0x817F7F7F, 0x81818181, 0x8181817F, 0x7F7F7F81, 0x817F7F81,
+0x7F7F7F7F, 0x7F81817F, 0x817F7F81, 0x7F81817F, 0x7F7F7F7F, 0x7F81817F, 0x7F7F8181, 0x81817F81,
+0x817F7F7F, 0x7F817F81, 0x817F8181, 0x8181817F, 0x8181817F, 0x7F817F7F, 0x7F81817F, 0x817F817F,
+0x7F818181, 0x81817F81, 0x817F7F7F, 0x8181817F, 0x817F7F7F, 0x817F7F81, 0x7F7F7F7F, 0x7F7F7F7F,
+0x81817F7F, 0x81817F81, 0x817F7F81, 0x817F7F7F, 0x817F817F, 0x81817F7F, 0x817F8181, 0x81817F7F,
+0x81817F81, 0x817F8181, 0x8181817F, 0x7F7F7F81, 0x7F7F7F81, 0x81818181, 0x817F7F7F, 0x7F817F7F,
+0x7F817F81, 0x81817F7F, 0x7F818181, 0x7F817F7F, 0x81817F81, 0x7F7F8181, 0x7F7F7F81, 0x81817F7F,
+0x7F81817F, 0x7F81817F, 0x817F817F, 0x7F817F7F, 0x7F7F7F7F, 0x7F81817F, 0x7F818181, 0x7F7F7F7F,
+0x7F7F7F81, 0x81818181, 0x7F81817F, 0x7F7F7F7F, 0x8181817F, 0x7F818181, 0x817F7F81, 0x7F818181,
+0x8181817F, 0x7F817F7F, 0x817F7F81, 0x7F7F817F, 0x7F7F7F81, 0x7F7F7F81, 0x7F817F7F, 0x817F817F,
+0x7F7F817F, 0x7F817F7F, 0x817F8181, 0x817F8181, 0x7F7F817F, 0x7F817F81, 0x817F7F7F, 0x7F7F7F81,
+0x817F7F81, 0x81817F81, 0x7F7F817F, 0x7F817F7F, 0x7F817F7F, 0x81817F81, 0x817F8181, 0x7F7F817F,
+0x817F7F7F, 0x81818181, 0x7F7F7F81, 0x7F81817F, 0x7F7F7F81, 0x817F8181, 0x8181817F, 0x7F817F81,
+0x81817F81, 0x7F7F7F81, 0x8181817F, 0x7F817F81, 0x7F7F8181, 0x817F7F81, 0x817F817F, 0x7F7F817F,
+0x7F817F7F, 0x817F7F81, 0x7F7F817F, 0x7F817F7F, 0x81817F81, 0x7F7F7F7F, 0x81817F81, 0x7F7F7F81,
+0x81817F7F, 0x7F817F81, 0x7F818181, 0x7F7F7F7F, 0x81817F7F, 0x817F8181, 0x817F8181, 0x81818181,
+0x817F7F7F, 0x7F818181, 0x81817F7F, 0x817F7F7F, 0x8181817F, 0x7F818181, 0x81817F81, 0x817F7F81,
+0x81818181, 0x7F7F7F81, 0x817F7F7F, 0x81818181, 0x7F817F7F, 0x7F817F81, 0x81817F81, 0x81817F81,
+0x817F817F, 0x81817F81, 0x7F7F7F81, 0x817F8181, 0x7F817F81, 0x7F7F8181, 0x817F817F, 0x81817F7F,
+0x817F8181, 0x7F7F8181, 0x81817F81, 0x817F817F, 0x7F817F7F, 0x817F817F, 0x817F7F7F, 0x7F7F7F81,
+0x817F7F81, 0x817F817F, 0x817F8181, 0x817F8181, 0x7F7F817F, 0x81817F7F, 0x817F7F81, 0x7F7F7F81,
+0x7F817F81, 0x7F81817F, 0x7F818181, 0x7F817F81, 0x817F7F7F, 0x7F7F817F, 0x7F7F7F7F, 0x7F817F7F,
+0x7F7F7F7F, 0x7F7F817F, 0x81818181, 0x817F817F, 0x817F7F7F, 0x7F7F8181, 0x81817F7F, 0x81817F81,
+0x7F81817F, 0x81818181, 0x81817F7F, 0x817F7F7F, 0x81817F81, 0x7F818181, 0x817F8181, 0x81817F7F,
+0x7F81817F, 0x7F7F817F, 0x81817F7F, 0x7F7F8181, 0x817F7F7F, 0x817F8181, 0x817F7F81, 0x81817F81,
+0x7F81817F, 0x7F7F7F81, 0x7F817F81, 0x7F817F7F, 0x81818181, 0x7F7F817F, 0x7F7F7F81, 0x7F818181,
+0x7F817F81, 0x817F8181, 0x7F7F8181, 0x817F7F81, 0x7F7F8181, 0x81817F81, 0x81818181, 0x7F817F81,
+0x81817F7F, 0x81818181, 0x7F7F7F7F, 0x81817F7F, 0x7F7F8181, 0x7F81817F, 0x817F8181, 0x7F7F8181,
+0x817F8181, 0x817F7F7F, 0x7F818181, 0x81817F7F, 0x7F7F7F7F, 0x817F7F7F, 0x81818181, 0x7F7F7F81,
+0x7F817F81, 0x817F7F7F, 0x7F818181, 0x81817F7F, 0x81818181, 0x81817F7F, 0x817F7F81, 0x7F817F7F,
+0x7F817F81, 0x7F7F8181, 0x7F817F7F, 0x817F7F7F, 0x7F7F8181, 0x817F7F7F, 0x817F7F7F, 0x7F818181,
+0x7F817F7F, 0x7F7F7F7F, 0x8181817F, 0x81818181, 0x8181817F, 0x7F7F817F, 0x7F817F81, 0x7F81817F,
+0x7F818181, 0x81818181, 0x81817F7F, 0x7F7F817F, 0x7F7F8181, 0x7F7F8181, 0x7F81817F, 0x7F817F81,
+0x7F7F8181, 0x7F7F7F7F, 0x817F7F7F, 0x817F8181, 0x7F81817F, 0x7F7F817F, 0x7F7F7F7F, 0x81818181,
+0x7F7F8181, 0x81817F7F, 0x81817F81, 0x817F7F81, 0x7F7F8181, 0x7F817F81, 0x7F7F817F, 0x7F817F7F,
+0x817F8181, 0x817F8181, 0x81817F7F, 0x7F81817F, 0x7F7F817F, 0x7F7F7F7F, 0x7F818181, 0x7F7F7F7F,
+0x7F7F7F81, 0x817F7F7F, 0x817F7F81, 0x81817F7F, 0x8181817F, 0x81817F7F, 0x817F7F81, 0x8181817F,
+0x7F7F7F7F, 0x7F7F817F, 0x7F817F81, 0x81817F7F, 0x7F7F817F, 0x81817F7F, 0x817F7F81, 0x7F7F7F81,
+0x81817F81, 0x8181817F, 0x817F7F81, 0x7F817F81, 0x817F7F81, 0x7F818181, 0x817F7F81, 0x7F817F7F,
+0x8181817F, 0x81818181, 0x7F7F7F7F, 0x817F817F, 0x7F7F7F7F, 0x7F818181, 0x7F81817F, 0x7F7F7F7F,
+0x817F7F7F, 0x81818181, 0x817F817F, 0x81818181, 0x7F817F7F, 0x817F8181, 0x7F7F7F81, 0x817F7F81,
+0x7F7F7F81, 0x817F7F7F, 0x7F7F7F81, 0x7F817F7F, 0x8181817F, 0x817F7F7F, 0x7F7F7F7F, 0x81818181,
+0x817F817F, 0x7F7F7F81, 0x7F817F81, 0x7F817F81, 0x7F7F817F, 0x817F817F, 0x817F8181, 0x81817F7F,
+0x7F7F8181, 0x7F7F817F, 0x817F7F7F, 0x817F817F, 0x817F7F81, 0x7F817F7F, 0x81818181, 0x81817F7F,
+0x817F817F, 0x817F7F7F, 0x7F7F7F7F, 0x81817F81, 0x7F817F81, 0x81817F81, 0x81817F81, 0x7F7F8181,
+0x81817F81, 0x7F7F7F7F, 0x7F817F81, 0x817F7F7F, 0x81817F81, 0x7F818181, 0x817F7F7F, 0x7F818181,
+0x8181817F, 0x817F7F7F, 0x817F817F, 0x7F7F817F, 0x7F7F7F81, 0x7F7F7F81, 0x7F81817F, 0x7F7F7F81,
+0x7F817F7F, 0x7F7F7F81, 0x817F8181, 0x8181817F, 0x817F7F81, 0x7F817F81, 0x81817F81, 0x81817F7F,
+0x8181817F, 0x7F7F7F7F, 0x7F7F7F7F, 0x7F7F817F, 0x81818181, 0x8181817F, 0x7F817F7F, 0x81818181,
+0x7F818181, 0x817F817F, 0x817F7F7F, 0x81818181, 0x817F8181, 0x7F7F7F7F, 0x7F7F7F81, 0x7F7F7F7F,
+0x7F7F8181, 0x7F7F7F7F, 0x817F7F81, 0x817F817F, 0x817F7F7F, 0x7F817F81, 0x81817F81, 0x7F7F817F,
+0x8181817F, 0x817F7F81, 0x7F7F7F81, 0x7F7F7F7F, 0x817F8181, 0x81817F81, 0x7F7F7F7F, 0x817F7F7F,
+0x7F81817F, 0x7F7F817F, 0x81818181, 0x81817F7F, 0x7F7F8181, 0x817F7F81, 0x7F817F81, 0x7F7F817F,
+0x817F7F7F, 0x7F817F81, 0x7F7F7F7F, 0x81818181, 0x7F7F7F81, 0x7F81817F, 0x7F7F817F, 0x817F7F7F,
+0x7F817F7F, 0x81817F81, 0x7F7F817F, 0x81818181, 0x7F818181, 0x7F817F7F, 0x7F818181, 0x81817F81,
+0x81818181, 0x7F7F7F7F, 0x81818181, 0x81818181, 0x7F81817F, 0x81817F81, 0x7F7F7F7F, 0x7F7F7F81,
+0x7F7F817F, 0x7F7F7F7F, 0x817F8181, 0x7F818181, 0x7F81817F, 0x7F81817F, 0x8181817F, 0x81817F81,
+0x817F8181, 0x7F81817F, 0x7F81817F, 0x817F817F, 0x81818181, 0x7F81817F, 0x81818181, 0x81818181,
+0x817F7F81, 0x7F817F7F, 0x7F7F817F, 0x8181817F, 0x81817F7F, 0x7F817F7F, 0x817F7F7F, 0x7F7F7F81,
+0x7F7F7F7F, 0x7F81817F, 0x81817F7F, 0x817F7F7F, 0x7F817F7F, 0x817F817F, 0x817F7F7F, 0x817F8181,
+0x81818181, 0x7F7F7F7F, 0x817F7F81, 0x81817F81, 0x817F7F7F, 0x81817F81, 0x7F7F8181, 0x7F7F817F,
+0x81817F81, 0x7F817F81, 0x7F7F817F, 0x8181817F, 0x817F7F81, 0x81817F7F, 0x7F7F8181, 0x8181817F,
+0x817F7F81, 0x7F81817F, 0x7F817F81, 0x81817F7F, 0x7F7F817F, 0x817F7F81, 0x7F81817F, 0x817F7F81,
+0x7F7F817F, 0x7F817F81, 0x8181817F, 0x7F817F81, 0x817F7F81, 0x7F818181, 0x7F817F7F, 0x8181817F,
+0x81817F7F, 0x81817F7F, 0x81817F81, 0x817F817F, 0x7F817F7F, 0x817F7F81, 0x7F7F817F, 0x7F7F7F7F,
+0x7F818181, 0x7F817F7F, 0x7F7F7F81, 0x7F817F7F, 0x81817F81, 0x81817F7F, 0x7F818181, 0x7F7F7F81,
+0x7F817F7F, 0x7F7F817F, 0x81817F7F, 0x7F818181, 0x8181817F, 0x7F7F7F81, 0x7F7F7F81, 0x817F7F81,
+0x8181817F, 0x7F7F817F, 0x817F817F, 0x7F7F8181, 0x817F7F81, 0x7F7F817F, 0x81817F7F, 0x817F8181,
+0x817F8181, 0x7F7F7F81, 0x8181817F, 0x817F817F, 0x81817F81, 0x817F8181, 0x7F7F817F, 0x817F7F81,
+0x7F817F81, 0x7F7F7F7F, 0x81817F7F, 0x817F7F7F, 0x817F8181, 0x8181817F, 0x81817F81, 0x7F817F81,
+0x7F817F81, 0x81817F81, 0x7F817F81, 0x81818181, 0x81817F81, 0x7F7F817F, 0x7F7F817F, 0x7F7F7F81,
+0x7F7F7F7F, 0x81817F7F, 0x81817F81, 0x817F7F81, 0x7F7F7F81, 0x81817F7F, 0x7F7F817F, 0x81817F7F,
+0x7F817F81, 0x7F81817F, 0x7F81817F, 0x7F81817F, 0x7F81817F, 0x817F7F81, 0x7F7F7F81, 0x7F817F81,
+0x817F817F, 0x7F7F7F81, 0x817F7F81, 0x817F7F81, 0x7F7F7F7F, 0x81817F81, 0x817F7F7F, 0x8181817F,
+0x81817F81, 0x7F81817F, 0x8181817F, 0x7F817F81, 0x81817F7F, 0x7F7F7F7F, 0x817F817F, 0x7F7F7F81,
+0x7F81817F, 0x81817F7F, 0x8181817F, 0x7F7F817F, 0x7F81817F, 0x7F817F7F, 0x81817F7F, 0x81817F81,
+0x7F818181, 0x7F817F81, 0x817F7F7F, 0x81817F81, 0x817F7F81, 0x7F7F7F81, 0x7F7F7F7F, 0x81817F81,
+0x81817F7F, 0x7F7F7F81, 0x7F817F81, 0x7F7F7F7F, 0x7F818181, 0x817F7F81, 0x817F8181, 0x7F7F7F81,
+0x7F818181, 0x8181817F, 0x817F7F7F, 0x817F7F81, 0x81817F7F, 0x7F817F7F, 0x8181817F, 0x7F817F7F,
+0x8181817F, 0x7F7F7F7F, 0x817F817F, 0x7F7F817F, 0x7F81817F, 0x7F818181, 0x7F7F817F, 0x81818181,
+0x817F7F81, 0x7F817F7F, 0x7F7F8181, 0x81818181, 0x81818181, 0x81817F7F, 0x7F818181, 0x7F7F817F,
+0x7F7F7F81, 0x7F817F81, 0x7F7F8181, 0x7F7F8181, 0x7F817F81, 0x7F817F81, 0x81817F7F, 0x8181817F,
+0x7F7F7F7F, 0x7F7F7F7F, 0x7F81817F, 0x817F817F, 0x7F818181, 0x7F7F817F, 0x7F817F81, 0x7F7F817F,
+0x81817F7F, 0x817F7F81, 0x817F8181, 0x7F817F81, 0x7F7F817F, 0x817F8181, 0x7F818181, 0x7F7F817F,
+0x7F7F7F81, 0x7F7F7F7F, 0x7F7F7F7F, 0x817F7F7F, 0x7F81817F, 0x817F7F81, 0x7F81817F, 0x7F7F7F81,
+0x7F7F817F, 0x8181817F, 0x81817F7F, 0x7F7F8181, 0x817F7F7F, 0x7F7F817F, 0x81817F7F, 0x81817F7F,
+0x81817F7F, 0x7F7F7F81, 0x7F818181, 0x7F7F817F, 0x7F81817F, 0x7F818181, 0x817F7F81, 0x7F817F81,
+0x7F817F7F, 0x81817F7F, 0x7F7F7F7F, 0x81818181, 0x7F817F81, 0x7F7F7F7F, 0x817F817F, 0x81818181,
+0x7F7F817F, 0x7F7F7F81, 0x7F818181, 0x7F817F7F, 0x7F7F8181, 0x7F818181, 0x817F8181, 0x7F817F7F,
+0x817F7F7F, 0x7F817F81, 0x7F7F7F7F, 0x817F8181, 0x7F7F7F7F, 0x817F7F81, 0x7F7F817F, 0x7F81817F,
+0x7F817F81, 0x7F818181, 0x817F7F81, 0x817F7F7F, 0x817F817F, 0x7F7F817F, 0x817F8181, 0x7F818181,
+0x81817F7F, 0x7F818181, 0x7F7F7F81, 0x817F817F, 0x8181817F, 0x817F8181, 0x7F7F817F, 0x817F7F7F,
+0x81817F7F, 0x817F7F7F, 0x81817F81, 0x8181817F, 0x7F7F7F7F, 0x8181817F, 0x7F7F8181, 0x7F81817F,
+0x7F7F8181, 0x81818181, 0x817F8181, 0x7F7F8181, 0x817F8181, 0x8181817F, 0x8181817F, 0x817F7F81,
+0x7F7F7F7F, 0x81817F7F, 0x7F7F7F7F, 0x7F7F8181, 0x7F817F7F, 0x7F7F7F7F, 0x817F7F7F, 0x81817F7F,
+0x7F818181, 0x817F7F81, 0x81817F81, 0x817F817F, 0x7F7F8181, 0x7F817F81, 0x7F7F7F7F, 0x8181817F,
+0x7F818181, 0x7F817F81, 0x7F817F7F, 0x817F817F, 0x817F7F81, 0x817F817F, 0x81817F81, 0x817F817F,
+0x7F817F81, 0x817F817F, 0x7F81817F, 0x7F81817F, 0x8181817F, 0x81817F81, 0x7F818181, 0x7F7F817F,
+0x7F817F81, 0x81817F81, 0x7F817F81, 0x7F817F81, 0x7F817F7F, 0x817F817F, 0x81817F81, 0x817F7F7F,
+0x7F7F7F7F, 0x8181817F, 0x81818181, 0x7F818181, 0x7F7F8181, 0x7F7F8181, 0x7F817F7F, 0x7F7F7F7F,
+0x7F818181, 0x7F7F7F81, 0x81818181, 0x7F7F817F, 0x81818181, 0x817F7F7F, 0x7F7F7F81, 0x7F817F7F,
+0x7F817F7F, 0x81817F81, 0x81817F81, 0x817F8181, 0x7F7F817F, 0x7F7F817F, 0x7F7F8181, 0x81818181,
+0x7F7F7F81, 0x817F8181, 0x817F8181, 0x817F817F, 0x7F81817F, 0x7F817F7F, 0x7F7F8181, 0x7F7F817F,
+0x81817F7F, 0x81817F81, 0x7F817F81, 0x8181817F, 0x7F817F81, 0x7F81817F, 0x7F81817F, 0x7F7F7F7F,
+0x817F7F7F, 0x7F817F7F, 0x7F817F81, 0x8181817F, 0x7F7F7F7F, 0x7F7F8181, 0x7F7F7F7F, 0x817F8181,
+0x7F817F7F, 0x7F817F7F, 0x7F817F7F, 0x817F7F81, 0x81817F7F, 0x7F7F817F, 0x81818181, 0x7F818181,
+0x817F7F7F, 0x8181817F, 0x81817F7F, 0x7F817F7F, 0x817F7F7F, 0x7F817F7F, 0x817F7F7F, 0x817F817F,
+0x817F7F81, 0x817F8181, 0x7F818181, 0x7F7F7F81, 0x7F7F7F7F, 0x7F817F7F, 0x8181817F, 0x7F817F81,
+0x817F817F, 0x817F7F81, 0x7F7F817F, 0x7F81817F, 0x81817F81, 0x7F7F817F, 0x7F7F817F, 0x817F7F81,
+0x817F817F, 0x7F7F817F, 0x7F817F81, 0x7F818181, 0x81818181, 0x81817F7F, 0x81817F81, 0x817F7F81,
+0x81817F81, 0x7F7F8181, 0x8181817F, 0x7F817F7F, 0x7F7F8181, 0x7F7F817F, 0x7F817F81, 0x81818181,
+0x7F81817F, 0x817F8181, 0x817F7F7F, 0x7F817F81, 0x7F817F81, 0x81818181, 0x8181817F, 0x817F7F81,
+0x817F817F, 0x817F7F81, 0x81817F81, 0x7F817F81, 0x81817F7F, 0x7F7F7F7F, 0x8181817F, 0x7F7F817F,
+0x817F7F7F, 0x7F7F8181, 0x81818181, 0x7F7F7F81, 0x817F7F7F, 0x81817F7F, 0x7F818181, 0x7F817F81,
+0x8181817F, 0x817F8181, 0x7F817F7F, 0x817F8181, 0x817F817F, 0x817F7F81, 0x81817F7F, 0x81817F7F,
+0x817F8181, 0x7F7F8181, 0x7F818181, 0x817F7F7F, 0x81818181, 0x817F7F7F, 0x817F7F7F, 0x7F818181,
+0x7F7F8181, 0x7F7F7F81, 0x81818181, 0x7F7F7F7F, 0x817F7F7F, 0x81818181, 0x81818181, 0x817F817F,
+0x8181817F, 0x7F818181, 0x81817F81, 0x7F7F7F7F, 0x81818181, 0x8181817F, 0x7F7F7F81, 0x7F7F7F7F,
+0x81817F81, 0x81817F81, 0x7F81817F, 0x7F818181, 0x817F817F, 0x81817F7F, 0x7F7F8181, 0x817F7F7F,
+0x817F7F7F, 0x817F8181, 0x81817F81, 0x7F7F817F, 0x7F81817F, 0x7F7F8181, 0x817F817F, 0x7F7F7F81,
+0x81817F7F, 0x7F7F8181, 0x7F7F7F81, 0x7F817F7F, 0x7F817F81, 0x81818181, 0x817F7F7F, 0x7F7F7F7F,
+0x8181817F, 0x817F7F7F, 0x7F817F81, 0x817F817F, 0x7F7F7F7F, 0x7F818181, 0x81817F7F, 0x817F7F81,
+0x7F7F7F7F, 0x7F817F7F, 0x7F7F8181, 0x81817F7F, 0x817F817F, 0x7F7F817F, 0x8181817F, 0x817F8181,
+0x81817F81, 0x7F818181, 0x7F818181, 0x7F7F8181, 0x7F7F817F, 0x817F7F81, 0x7F817F81, 0x7F7F7F7F,
+0x7F7F7F81, 0x817F7F7F, 0x81817F7F, 0x817F7F81, 0x7F7F7F81, 0x7F7F8181, 0x81817F7F, 0x7F81817F,
+0x7F818181, 0x7F818181, 0x7F817F7F, 0x81817F81, 0x81817F81, 0x8181817F, 0x81817F7F, 0x7F7F7F81,
+0x817F7F81, 0x7F7F7F81, 0x817F817F, 0x81818181, 0x81817F7F, 0x7F7F8181, 0x7F7F7F81, 0x81817F7F,
+0x7F81817F, 0x7F81817F, 0x817F8181, 0x7F7F7F7F, 0x817F7F7F, 0x7F7F7F81, 0x7F817F7F, 0x7F818181,
+0x817F8181, 0x7F817F7F, 0x81817F81, 0x7F7F7F7F, 0x7F7F817F, 0x7F817F7F, 0x817F817F, 0x8181817F,
+0x81817F81, 0x7F7F7F81, 0x81818181, 0x7F7F7F7F, 0x81818181, 0x817F817F, 0x7F817F81, 0x7F7F7F81,
+0x817F817F, 0x817F8181, 0x817F7F81, 0x81817F7F, 0x7F7F817F, 0x7F7F817F, 0x817F7F81, 0x817F7F7F,
+0x7F7F7F7F, 0x7F7F7F81, 0x7F817F81, 0x817F7F81, 0x817F7F81, 0x7F817F7F, 0x8181817F, 0x81817F7F,
+0x7F7F8181, 0x7F7F7F7F, 0x817F8181, 0x81817F81, 0x8181817F, 0x817F817F, 0x81817F7F, 0x817F7F7F,
+0x8181817F, 0x7F7F8181, 0x7F817F7F, 0x81818181, 0x7F817F81, 0x7F817F81, 0x7F817F7F, 0x817F7F81,
+0x8181817F, 0x81817F7F, 0x7F818181, 0x817F8181, 0x81817F7F, 0x81818181, 0x81818181, 0x817F817F,
+0x7F81817F, 0x81817F81, 0x7F817F7F, 0x81817F7F, 0x7F7F817F, 0x817F7F7F, 0x81818181, 0x7F818181,
+0x7F818181, 0x7F7F8181, 0x7F7F817F, 0x8181817F, 0x817F7F7F, 0x7F818181, 0x7F7F7F7F, 0x817F7F81,
+0x7F7F817F, 0x8181817F, 0x817F817F, 0x7F81817F, 0x817F7F7F, 0x817F7F81, 0x817F8181, 0x7F817F7F,
+0x81817F81, 0x817F817F, 0x7F817F81, 0x7F7F7F81, 0x7F817F81, 0x7F818181, 0x7F7F8181, 0x7F817F81,
+0x7F7F7F7F, 0x7F818181, 0x8181817F, 0x817F817F, 0x817F8181, 0x817F7F81, 0x7F7F7F7F, 0x7F818181,
+0x817F817F, 0x7F81817F, 0x8181817F, 0x7F7F817F, 0x7F7F7F7F, 0x7F817F7F, 0x81818181, 0x817F817F,
+0x7F7F7F81, 0x7F7F7F7F, 0x7F7F7F81, 0x8181817F, 0x7F7F7F81, 0x81817F7F, 0x81818181, 0x817F7F7F,
+0x7F818181, 0x7F818181, 0x7F818181, 0x7F7F7F81, 0x81818181, 0x81818181, 0x817F7F7F, 0x7F81817F,
+0x7F7F8181, 0x7F81817F, 0x7F81817F, 0x7F7F7F81, 0x817F7F7F, 0x817F817F, 0x7F817F81, 0x7F817F7F,
+0x7F817F81, 0x81818181, 0x81818181, 0x7F7F8181, 0x7F818181, 0x7F7F817F, 0x7F7F8181, 0x817F817F,
+0x7F7F817F, 0x81817F81, 0x7F7F817F, 0x7F7F8181, 0x7F7F8181, 0x7F817F7F, 0x7F817F7F, 0x8181817F,
+0x7F7F7F81, 0x7F818181, 0x817F7F81, 0x7F818181, 0x7F818181, 0x7F7F7F81, 0x81817F7F, 0x817F8181,
+0x7F7F8181, 0x7F81817F, 0x7F817F81, 0x817F8181, 0x7F81817F, 0x7F7F817F, 0x817F817F, 0x7F7F817F,
+0x817F7F81, 0x81817F7F, 0x7F7F7F81, 0x7F7F817F, 0x817F817F, 0x7F7F8181, 0x7F7F7F81, 0x7F81817F,
+0x817F7F81, 0x8181817F, 0x7F817F7F, 0x7F81817F, 0x7F7F7F7F, 0x81817F7F, 0x7F7F817F, 0x817F7F7F,
+0x8181817F, 0x817F817F, 0x7F817F7F, 0x7F7F7F7F, 0x81818181, 0x7F7F7F81, 0x817F8181, 0x817F817F,
+0x81818181, 0x8181817F, 0x8181817F, 0x7F817F81, 0x817F7F7F, 0x7F81817F, 0x7F7F817F, 0x817F7F81,
+0x817F817F, 0x7F7F8181, 0x7F817F81, 0x7F7F817F, 0x817F7F7F, 0x7F817F81, 0x7F818181, 0x817F8181,
+0x817F7F7F, 0x7F7F7F81, 0x7F7F7F7F, 0x7F7F7F7F, 0x81817F81, 0x7F817F7F, 0x7F817F81, 0x7F81817F,
+0x7F817F81, 0x817F7F81, 0x7F81817F, 0x81817F81, 0x8181817F, 0x8181817F, 0x81817F81, 0x817F7F7F,
+0x81817F81, 0x7F81817F, 0x7F817F7F, 0x817F7F81, 0x7F817F7F, 0x817F7F7F, 0x817F7F81, 0x81818181,
+0x8181817F, 0x817F8181, 0x7F7F817F, 0x817F7F7F, 0x817F7F7F, 0x7F7F8181, 0x7F81817F, 0x817F7F7F,
+0x81817F81, 0x7F81817F, 0x7F818181, 0x7F7F7F81, 0x8181817F, 0x7F817F7F, 0x81817F7F, 0x81817F81,
+0x7F817F7F, 0x7F817F7F, 0x817F8181, 0x81817F81, 0x7F817F81, 0x8181817F, 0x817F7F7F, 0x7F817F81,
+0x7F7F7F7F, 0x7F818181, 0x81818181, 0x7F7F817F, 0x7F817F81, 0x817F8181, 0x81818181, 0x7F7F817F,
+0x81818181, 0x81817F81, 0x7F7F7F81, 0x7F818181, 0x7F7F817F, 0x81817F81, 0x7F817F81, 0x7F817F7F,
+0x817F7F81, 0x817F8181, 0x817F817F, 0x81818181, 0x817F817F, 0x7F7F8181, 0x81818181, 0x7F817F7F,
+0x8181817F, 0x7F818181, 0x7F7F7F7F, 0x7F7F817F, 0x7F817F7F, 0x7F7F8181, 0x7F818181, 0x817F817F,
+0x7F817F7F, 0x7F81817F, 0x817F7F81, 0x7F817F81, 0x7F7F7F81, 0x7F7F8181, 0x81817F7F, 0x81817F81,
+0x7F818181, 0x7F7F817F, 0x7F81817F, 0x7F7F7F7F, 0x7F7F7F7F, 0x8181817F, 0x7F7F817F, 0x7F7F8181,
+0x7F7F7F7F, 0x7F818181, 0x8181817F, 0x7F7F8181, 0x7F7F7F7F, 0x7F817F7F, 0x8181817F, 0x81817F7F,
+0x817F8181, 0x7F7F7F81, 0x8181817F, 0x8181817F, 0x817F817F, 0x817F7F81, 0x817F7F7F, 0x81818181,
+0x817F7F81, 0x817F8181, 0x817F7F81, 0x8181817F, 0x7F817F81, 0x81818181, 0x7F81817F, 0x7F7F8181,
+0x817F7F81, 0x81818181, 0x8181817F, 0x817F7F7F, 0x81817F7F, 0x817F7F81, 0x7F818181, 0x81818181,
+0x7F81817F, 0x7F817F81, 0x817F7F81, 0x81818181, 0x817F7F7F, 0x7F817F7F, 0x8181817F, 0x7F7F7F7F,
+0x7F7F8181, 0x817F8181, 0x7F817F7F, 0x817F7F7F, 0x7F7F8181, 0x7F7F7F81, 0x7F7F7F7F, 0x7F7F8181,
+0x8181817F, 0x7F7F7F7F, 0x7F817F81, 0x7F818181, 0x817F817F, 0x81817F7F, 0x817F7F81, 0x7F7F7F81,
+0x7F818181, 0x817F817F, 0x7F817F7F, 0x7F7F817F, 0x7F818181, 0x81817F81, 0x7F7F8181, 0x81817F7F,
+0x7F817F7F, 0x7F7F7F81, 0x817F8181, 0x7F81817F, 0x7F818181, 0x7F818181, 0x7F818181, 0x7F7F817F,
+0x8181817F, 0x817F7F81, 0x7F7F817F, 0x817F817F, 0x817F7F81, 0x7F7F7F7F, 0x817F7F81, 0x81818181,
+0x817F7F81, 0x7F7F7F81, 0x7F7F7F7F, 0x81817F7F, 0x7F81817F, 0x7F7F7F81, 0x81818181, 0x817F8181,
+0x817F7F81, 0x7F817F7F, 0x817F8181, 0x81818181, 0x7F7F7F81, 0x7F7F817F, 0x7F817F7F, 0x7F7F8181,
+0x7F7F817F, 0x8181817F, 0x7F817F81, 0x817F7F7F, 0x7F817F7F, 0x817F8181, 0x81818181, 0x817F7F81,
+0x7F7F8181, 0x81817F7F, 0x7F7F8181, 0x8181817F, 0x81818181, 0x8181817F, 0x81817F81, 0x7F817F7F,
+0x81817F81, 0x7F81817F, 0x7F817F7F, 0x7F818181, 0x7F7F7F7F, 0x817F817F, 0x817F817F, 0x817F7F81,
+0x8181817F, 0x817F817F, 0x817F7F81, 0x81817F7F, 0x81818181, 0x7F7F7F81, 0x7F7F817F, 0x817F8181,
+0x817F817F, 0x7F7F7F81, 0x7F7F7F7F, 0x7F7F8181, 0x817F817F, 0x817F8181, 0x7F817F7F, 0x8181817F,
+0x817F7F81, 0x7F81817F, 0x817F8181, 0x7F817F81, 0x81817F7F, 0x7F817F7F, 0x81817F81, 0x7F818181,
+0x8181817F, 0x81818181, 0x7F7F817F, 0x7F7F8181, 0x81817F7F, 0x7F7F8181, 0x8181817F, 0x7F817F81,
+0x7F817F7F, 0x81818181, 0x81817F81, 0x7F7F7F7F, 0x7F7F8181, 0x7F817F7F, 0x7F7F8181, 0x817F817F,
+0x7F81817F, 0x817F817F, 0x7F817F7F, 0x7F81817F, 0x817F7F7F, 0x81817F81, 0x7F81817F, 0x817F817F,
+0x817F7F81, 0x81817F81, 0x817F8181, 0x7F7F8181, 0x7F818181, 0x817F817F, 0x81817F7F, 0x7F81817F,
+0x7F7F7F81, 0x81817F81, 0x81818181, 0x7F7F7F7F, 0x81817F81, 0x817F7F7F, 0x817F7F81, 0x7F7F7F81,
+0x7F818181, 0x7F7F7F7F, 0x817F817F, 0x7F817F81, 0x817F817F, 0x7F817F81, 0x817F7F7F, 0x8181817F,
+0x7F7F8181, 0x7F817F81, 0x817F817F, 0x7F7F7F81, 0x7F7F8181, 0x7F817F7F, 0x81817F81, 0x7F818181,
+0x7F7F7F81, 0x8181817F, 0x81817F81, 0x7F81817F, 0x81818181, 0x7F81817F, 0x817F8181, 0x817F8181,
+0x7F818181, 0x7F81817F, 0x817F8181, 0x81817F81, 0x7F818181, 0x81817F7F, 0x7F7F817F, 0x817F7F81,
+0x7F7F7F81, 0x7F7F7F7F, 0x7F7F8181, 0x8181817F, 0x7F7F8181, 0x817F7F7F, 0x7F7F7F7F, 0x8181817F,
+0x7F81817F, 0x817F7F7F, 0x81817F81, 0x7F7F7F81, 0x7F818181, 0x81817F7F, 0x7F81817F, 0x81817F7F,
+0x7F818181, 0x7F7F8181, 0x7F817F81, 0x7F817F81, 0x81818181, 0x817F8181, 0x7F7F7F7F, 0x817F817F,
+0x7F817F81, 0x7F7F817F, 0x81817F7F, 0x7F7F7F81, 0x8181817F, 0x7F7F8181, 0x81818181, 0x7F817F81,
+0x817F7F7F, 0x7F7F7F81, 0x81817F7F, 0x7F81817F, 0x7F818181, 0x817F7F81, 0x817F817F, 0x7F818181,
+0x7F817F7F, 0x81817F81, 0x7F7F7F81, 0x7F7F8181, 0x81817F81, 0x8181817F, 0x81818181, 0x7F7F7F81,
+0x81817F81, 0x8181817F, 0x81817F7F, 0x817F817F, 0x817F817F, 0x7F7F7F7F, 0x81817F81, 0x81817F81,
+0x7F7F8181, 0x7F7F7F81, 0x8181817F, 0x7F817F81, 0x7F817F7F, 0x817F7F81, 0x8181817F, 0x7F818181,
+0x81817F7F, 0x7F81817F, 0x8181817F, 0x7F81817F, 0x7F7F8181, 0x7F817F7F, 0x7F81817F, 0x7F7F8181,
+0x817F817F, 0x7F7F7F7F, 0x7F7F817F, 0x7F7F8181, 0x817F8181, 0x7F7F817F, 0x81817F7F, 0x7F7F7F7F,
+0x817F817F, 0x81817F81, 0x7F7F7F7F, 0x7F81817F, 0x81817F81, 0x817F7F7F, 0x7F818181, 0x7F7F8181,
+0x7F81817F, 0x7F818181, 0x81817F81, 0x817F7F81, 0x7F7F7F7F, 0x7F817F81, 0x81817F81, 0x7F7F7F7F,
+0x8181817F, 0x7F818181, 0x7F7F8181, 0x7F81817F, 0x81817F81, 0x81817F7F, 0x7F7F7F81, 0x8181817F,
+0x7F7F7F7F, 0x81817F7F, 0x817F7F7F, 0x7F7F817F, 0x7F817F81, 0x7F81817F, 0x7F7F7F7F, 0x7F817F81,
+0x7F7F7F81, 0x81817F81, 0x7F7F8181, 0x817F7F7F, 0x817F7F7F, 0x7F7F817F, 0x81818181, 0x817F817F,
+0x7F818181, 0x81817F81, 0x7F7F8181, 0x7F818181, 0x81818181, 0x81817F7F, 0x817F8181, 0x81817F81,
+0x7F7F8181, 0x817F7F7F, 0x7F817F81, 0x7F7F817F, 0x7F817F81, 0x7F7F8181, 0x7F81817F, 0x7F817F7F,
+0x817F7F81, 0x817F7F7F, 0x817F7F7F, 0x7F81817F, 0x7F7F7F7F, 0x817F8181, 0x817F7F81, 0x7F817F81,
+0x817F817F, 0x7F7F7F7F, 0x817F8181, 0x81818181, 0x7F818181, 0x81817F7F, 0x7F7F7F7F, 0x8181817F,
+0x7F818181, 0x7F7F7F81, 0x8181817F, 0x7F7F7F7F, 0x7F817F7F, 0x7F7F7F7F, 0x7F7F8181, 0x7F7F817F,
+0x81818181, 0x8181817F, 0x7F7F817F, 0x817F7F81, 0x81818181, 0x81817F7F, 0x817F7F81, 0x7F7F7F81,
+0x7F81817F, 0x7F817F7F, 0x7F81817F, 0x817F7F7F, 0x817F817F, 0x817F817F, 0x7F7F8181, 0x817F7F7F,
+0x7F7F7F7F, 0x817F7F81, 0x8181817F, 0x817F7F7F, 0x8181817F, 0x817F8181, 0x7F81817F, 0x81818181,
+0x817F7F7F, 0x817F817F, 0x81817F81, 0x7F817F7F, 0x7F7F8181, 0x8181817F, 0x81818181, 0x7F81817F,
+0x7F7F817F, 0x7F818181, 0x7F7F7F81, 0x81817F81, 0x8181817F, 0x7F7F817F, 0x8181817F, 0x81817F7F,
+0x81818181, 0x81818181, 0x817F817F, 0x81817F81, 0x817F7F81, 0x81818181, 0x7F817F81, 0x81818181,
+0x7F818181, 0x7F81817F, 0x7F7F7F81, 0x7F817F81, 0x817F7F7F, 0x81817F81, 0x817F8181, 0x817F8181,
+0x7F817F81, 0x7F817F81, 0x817F7F7F, 0x7F7F7F7F, 0x7F7F8181, 0x8181817F, 0x7F817F81, 0x817F7F81,
+0x817F8181, 0x7F817F81, 0x7F817F81, 0x7F7F817F, 0x7F81817F, 0x817F817F, 0x817F817F, 0x817F7F81,
+0x81817F7F, 0x7F7F7F81, 0x7F7F7F7F, 0x81818181, 0x7F817F7F, 0x7F817F81, 0x8181817F, 0x7F81817F,
+0x8181817F, 0x7F7F7F81, 0x8181817F, 0x817F817F, 0x7F817F7F, 0x7F7F8181, 0x817F8181, 0x7F7F817F,
+0x7F81817F, 0x817F8181, 0x7F7F8181, 0x7F81817F, 0x7F81817F, 0x817F7F81, 0x81817F81, 0x7F817F81,
+0x81817F81, 0x8181817F, 0x81817F81, 0x7F7F8181, 0x7F7F8181, 0x7F817F81, 0x7F817F7F, 0x7F7F8181,
+0x7F81817F, 0x817F817F, 0x8181817F, 0x7F7F7F7F, 0x7F817F7F, 0x7F818181, 0x817F7F81, 0x81817F7F,
+0x8181817F, 0x7F818181, 0x81818181, 0x81817F7F, 0x81818181, 0x81817F7F, 0x817F8181, 0x7F81817F,
+0x817F7F7F, 0x7F817F7F, 0x817F7F7F, 0x7F7F817F, 0x817F7F81, 0x81818181, 0x8181817F, 0x7F817F7F,
+0x7F7F7F7F, 0x8181817F, 0x7F818181, 0x81817F81, 0x7F818181, 0x7F817F81, 0x7F818181, 0x817F817F,
+0x817F7F81, 0x817F7F7F, 0x8181817F, 0x7F817F7F, 0x7F817F7F, 0x817F8181, 0x817F7F7F, 0x7F7F8181,
+0x7F7F8181, 0x817F7F81, 0x7F818181, 0x7F81817F, 0x7F818181, 0x817F817F, 0x7F7F7F7F, 0x8181817F,
+0x817F8181, 0x817F817F, 0x7F818181, 0x7F818181, 0x817F7F7F, 0x7F81817F, 0x7F7F8181, 0x7F817F81,
+0x7F7F7F81, 0x817F8181, 0x817F817F, 0x817F817F, 0x7F7F7F81, 0x7F7F7F81, 0x817F8181, 0x7F7F817F,
+0x7F818181, 0x81817F81, 0x817F7F7F, 0x817F7F7F, 0x817F817F, 0x7F7F8181, 0x7F817F7F, 0x81817F7F,
+0x7F7F8181, 0x7F817F81, 0x7F7F7F81, 0x81817F81, 0x817F7F81, 0x81817F81, 0x817F817F, 0x8181817F,
+0x817F817F, 0x7F7F7F7F, 0x7F817F7F, 0x7F817F7F, 0x81817F7F, 0x817F817F, 0x7F817F81, 0x7F7F8181,
+0x817F817F, 0x81817F7F, 0x817F8181, 0x817F817F, 0x7F7F7F81, 0x81817F81, 0x7F7F7F81, 0x817F817F,
+0x7F7F7F7F, 0x7F817F81, 0x7F818181, 0x817F817F, 0x7F7F8181, 0x81817F81, 0x7F818181, 0x7F7F8181,
+0x81818181, 0x7F7F7F7F, 0x7F817F7F, 0x817F7F7F, 0x7F7F7F7F, 0x7F7F817F, 0x81817F7F, 0x8181817F,
+0x7F817F7F, 0x81817F7F, 0x817F8181, 0x7F7F817F, 0x7F81817F, 0x7F7F8181, 0x7F817F81, 0x7F81817F,
+0x7F7F7F81, 0x7F7F817F, 0x7F7F8181, 0x81817F81, 0x7F817F7F, 0x7F7F817F, 0x817F7F7F, 0x7F7F817F,
+0x7F81817F, 0x817F817F, 0x81817F81, 0x7F818181, 0x7F81817F, 0x81818181, 0x7F817F7F, 0x7F7F7F81,
+0x7F818181, 0x817F7F81, 0x7F817F81, 0x817F7F7F, 0x81818181, 0x817F817F, 0x817F8181, 0x81818181,
+0x817F7F7F, 0x817F817F, 0x81817F81, 0x7F81817F, 0x7F817F81, 0x81817F81, 0x8181817F, 0x817F7F7F,
+0x817F7F7F, 0x8181817F, 0x817F7F7F, 0x7F817F7F, 0x81817F7F, 0x81817F7F, 0x7F817F81, 0x7F818181,
+0x7F817F81, 0x817F817F, 0x81817F7F, 0x81817F7F, 0x7F818181, 0x81817F7F, 0x7F818181, 0x7F7F7F81,
+0x8181817F, 0x817F8181, 0x7F7F817F, 0x81817F81, 0x7F7F7F7F, 0x7F7F817F, 0x817F7F81, 0x817F7F81,
+0x81817F7F, 0x7F7F7F7F, 0x7F7F817F, 0x7F818181, 0x7F817F7F, 0x7F81817F, 0x7F817F7F, 0x7F81817F,
+0x7F817F81, 0x817F7F7F, 0x81818181, 0x7F818181, 0x7F817F81, 0x8181817F, 0x81817F7F, 0x817F817F,
+0x8181817F, 0x817F7F81, 0x81817F7F, 0x81817F81, 0x817F7F81, 0x81817F7F, 0x81817F7F, 0x7F818181,
+0x7F817F81, 0x81817F7F, 0x817F8181, 0x7F7F7F81, 0x817F817F, 0x817F7F7F, 0x7F7F817F, 0x817F7F7F,
+0x817F8181, 0x7F81817F, 0x8181817F, 0x7F7F7F81, 0x7F817F7F, 0x817F8181, 0x7F81817F, 0x8181817F,
+0x817F7F81, 0x817F7F81, 0x7F7F8181, 0x817F7F81, 0x7F7F7F81, 0x7F81817F, 0x7F7F8181, 0x817F817F,
+0x7F81817F, 0x81818181, 0x81818181, 0x81818181, 0x81818181, 0x7F818181, 0x7F818181, 0x81818181,
+0x7F817F7F, 0x7F817F81, 0x7F7F7F7F, 0x7F7F7F81, 0x7F818181, 0x7F7F8181, 0x817F8181, 0x817F7F7F,
+0x817F7F81, 0x8181817F, 0x7F7F7F81, 0x8181817F, 0x81817F81, 0x81817F7F, 0x7F7F7F7F, 0x7F818181,
+0x817F7F7F, 0x7F7F7F7F, 0x8181817F, 0x8181817F, 0x81818181, 0x8181817F, 0x7F7F7F81, 0x817F817F,
+0x8181817F, 0x7F81817F, 0x7F818181, 0x7F7F7F81, 0x7F818181, 0x7F817F81, 0x817F817F, 0x81818181,
+0x7F818181, 0x7F817F7F, 0x7F818181, 0x7F7F817F, 0x81818181, 0x81817F81, 0x8181817F, 0x7F7F7F81,
+0x81817F7F, 0x7F817F81, 0x7F81817F, 0x7F81817F, 0x7F7F7F81, 0x7F7F817F, 0x7F81817F, 0x7F817F7F,
+0x7F817F81, 0x81818181, 0x81817F81, 0x7F7F7F7F, 0x817F817F, 0x7F7F817F, 0x7F81817F, 0x7F818181,
+0x81818181, 0x8181817F, 0x8181817F, 0x7F817F81, 0x817F7F7F, 0x7F7F7F7F, 0x817F817F, 0x7F7F8181,
+0x81818181, 0x8181817F, 0x817F817F, 0x817F8181, 0x7F7F7F7F, 0x7F7F7F7F, 0x7F817F7F, 0x7F7F817F,
+0x7F818181, 0x7F7F8181, 0x7F818181, 0x7F817F7F, 0x817F7F81, 0x7F7F817F, 0x7F817F81, 0x817F7F81,
+0x81818181, 0x81818181, 0x81817F81, 0x7F81817F, 0x817F8181, 0x817F8181, 0x7F817F81, 0x81818181,
+0x817F817F, 0x81817F7F, 0x817F7F81, 0x7F817F81, 0x7F7F7F7F, 0x817F7F7F, 0x8181817F, 0x817F7F81,
+0x7F817F7F, 0x81817F7F, 0x7F817F81, 0x817F7F7F, 0x81817F81, 0x7F7F7F81, 0x7F818181, 0x817F7F7F,
+0x817F7F81, 0x817F817F, 0x8181817F, 0x81817F81, 0x8181817F, 0x81817F81, 0x817F7F81, 0x817F7F81,
+0x7F818181, 0x81817F7F, 0x7F81817F, 0x81817F7F, 0x81818181, 0x7F7F8181, 0x817F7F81, 0x81817F81,
+0x7F7F7F7F, 0x7F7F8181, 0x81817F81, 0x7F7F817F, 0x7F818181, 0x7F818181, 0x7F818181, 0x7F817F81,
+0x7F818181, 0x7F81817F, 0x7F7F8181, 0x81818181, 0x7F817F81, 0x7F818181, 0x817F7F7F, 0x7F7F817F,
+0x81817F7F, 0x7F7F7F81, 0x81817F7F, 0x81818181, 0x817F7F81, 0x7F817F81, 0x7F7F8181, 0x7F817F7F,
+0x817F817F, 0x7F81817F, 0x81817F7F, 0x81817F7F, 0x7F7F7F81, 0x81817F7F, 0x7F817F7F, 0x817F7F7F,
+0x7F817F81, 0x7F7F8181, 0x817F8181, 0x7F817F81, 0x7F81817F, 0x817F817F, 0x7F81817F, 0x81817F81,
+0x81817F7F, 0x81818181, 0x817F8181, 0x7F817F81, 0x7F818181, 0x7F817F81, 0x817F7F81, 0x7F817F81,
+0x7F7F7F81, 0x7F817F7F, 0x7F817F7F, 0x817F8181, 0x817F817F, 0x7F7F7F81, 0x817F7F7F, 0x7F81817F,
+0x7F818181, 0x7F7F8181, 0x81817F81, 0x7F7F7F81, 0x7F818181, 0x8181817F, 0x817F8181, 0x7F81817F,
+0x7F81817F, 0x817F817F, 0x7F817F81, 0x81817F7F, 0x7F81817F, 0x8181817F, 0x7F818181, 0x7F818181,
+0x817F817F, 0x7F7F7F7F, 0x81818181, 0x817F8181, 0x81817F7F, 0x81817F7F, 0x81817F7F, 0x81818181,
+0x817F8181, 0x7F7F8181, 0x7F7F7F7F, 0x81817F7F, 0x817F8181, 0x7F81817F, 0x7F817F81, 0x81817F81,
+0x8181817F, 0x7F817F7F, 0x7F7F7F81, 0x817F8181, 0x7F817F81, 0x7F7F7F7F, 0x7F7F7F7F, 0x817F8181,
+0x81818181, 0x817F8181, 0x817F7F7F, 0x7F817F81, 0x7F818181, 0x7F7F7F7F, 0x7F81817F, 0x817F7F81,
+0x7F7F7F81, 0x7F818181, 0x81817F81, 0x817F817F, 0x7F81817F, 0x7F817F7F, 0x7F7F817F, 0x7F7F7F81,
+0x817F7F81, 0x7F7F7F81, 0x7F7F8181, 0x7F817F81, 0x817F8181, 0x81818181, 0x7F818181, 0x817F7F7F,
+0x8181817F, 0x817F7F81, 0x817F7F7F, 0x7F7F7F7F, 0x7F818181, 0x817F7F7F, 0x817F817F, 0x81818181,
+0x7F7F817F, 0x7F7F7F81, 0x7F817F7F, 0x7F818181, 0x817F7F81, 0x817F7F81, 0x7F7F817F, 0x7F7F7F7F,
+0x817F7F81, 0x81817F81, 0x7F81817F, 0x7F7F7F81, 0x7F7F7F81, 0x817F7F81, 0x7F7F7F7F, 0x817F817F,
+0x7F7F8181, 0x7F7F8181, 0x81818181, 0x7F817F81, 0x81817F7F, 0x7F81817F, 0x7F818181, 0x7F7F7F81,
+0x817F8181, 0x7F81817F, 0x817F8181, 0x7F7F817F, 0x81818181, 0x81818181, 0x7F7F7F81, 0x8181817F,
+0x8181817F, 0x7F7F7F7F, 0x81818181, 0x7F7F7F7F, 0x817F817F, 0x817F8181, 0x817F7F81, 0x81818181,
+0x7F817F7F, 0x7F7F7F7F, 0x817F7F81, 0x817F817F, 0x7F7F8181, 0x7F81817F, 0x7F81817F, 0x81817F81,
+0x7F7F7F81, 0x8181817F, 0x81818181, 0x7F7F7F7F, 0x81818181, 0x7F81817F, 0x817F817F, 0x7F7F8181,
+0x7F7F8181, 0x817F7F81, 0x81817F7F, 0x817F8181, 0x817F817F, 0x7F817F7F, 0x7F81817F, 0x7F81817F,
+0x7F817F81, 0x81817F7F, 0x7F818181, 0x7F818181, 0x817F8181, 0x7F7F7F7F, 0x817F817F, 0x7F7F817F,
+0x7F7F8181, 0x7F817F7F, 0x7F7F7F7F, 0x81818181, 0x7F7F7F81, 0x7F817F7F, 0x817F8181, 0x817F8181,
+0x7F7F7F81, 0x7F818181, 0x81818181, 0x7F817F81, 0x81817F7F, 0x81817F81, 0x7F81817F, 0x7F81817F,
+0x817F817F, 0x7F817F7F, 0x7F818181, 0x817F7F81, 0x7F81817F, 0x817F7F7F, 0x7F817F7F, 0x817F817F,
+0x81817F81, 0x7F7F7F81, 0x817F8181, 0x7F817F81, 0x7F817F7F, 0x7F818181, 0x7F817F81, 0x7F7F7F81,
+0x7F817F7F, 0x81817F81, 0x7F7F7F7F, 0x817F7F81, 0x7F7F8181, 0x817F7F7F, 0x81817F7F, 0x81818181,
+0x7F7F8181, 0x817F7F7F, 0x7F817F81, 0x7F817F7F, 0x817F7F81, 0x817F7F7F, 0x7F7F7F81, 0x817F817F,
+0x7F818181, 0x81818181, 0x7F81817F, 0x8181817F, 0x817F7F81, 0x7F818181, 0x7F7F7F7F, 0x7F818181,
+0x817F7F81, 0x7F7F8181, 0x7F7F817F, 0x817F8181, 0x81817F7F, 0x81817F7F, 0x7F7F817F, 0x7F817F81,
+0x7F81817F, 0x81818181, 0x81817F81, 0x817F7F7F, 0x8181817F, 0x81817F81, 0x7F7F7F81, 0x7F81817F,
+0x81817F7F, 0x81818181, 0x8181817F, 0x817F7F7F, 0x7F817F81, 0x817F7F7F, 0x81817F81, 0x7F81817F,
+0x81818181, 0x7F818181, 0x8181817F, 0x7F818181, 0x7F7F7F81, 0x817F8181, 0x7F818181, 0x817F8181,
+0x7F7F817F, 0x7F7F817F, 0x7F81817F, 0x7F7F8181, 0x817F7F81, 0x7F817F7F, 0x81818181, 0x7F817F7F,
+0x817F7F7F, 0x7F817F7F, 0x8181817F, 0x817F817F, 0x7F818181, 0x817F7F81, 0x817F8181, 0x7F817F7F,
+0x7F7F7F7F, 0x81817F7F, 0x817F7F7F, 0x817F7F7F, 0x81817F7F, 0x7F7F7F7F, 0x7F818181, 0x7F7F7F81,
+0x817F817F, 0x8181817F, 0x7F7F7F7F, 0x817F7F81, 0x817F8181, 0x81817F7F, 0x81817F7F, 0x817F8181,
+0x81817F7F, 0x81818181, 0x817F7F7F, 0x81817F81, 0x81817F81, 0x8181817F, 0x7F818181, 0x81818181,
+0x817F8181, 0x817F817F, 0x7F7F7F7F, 0x817F7F7F, 0x7F818181, 0x7F7F7F81, 0x7F7F817F, 0x7F817F81,
+0x81817F7F, 0x7F7F7F7F, 0x81818181, 0x8181817F, 0x8181817F, 0x817F817F, 0x7F7F7F81, 0x81818181,
+0x7F7F8181, 0x817F7F81, 0x81818181, 0x81817F81, 0x81817F7F, 0x7F7F817F, 0x7F7F7F7F, 0x7F7F8181,
+0x7F81817F, 0x7F7F7F81, 0x7F7F8181, 0x7F81817F, 0x7F81817F, 0x7F7F7F7F, 0x8181817F, 0x7F817F81,
+0x817F8181, 0x817F7F81, 0x7F7F7F81, 0x7F818181, 0x817F7F81, 0x7F7F7F7F, 0x8181817F, 0x8181817F,
+0x7F818181, 0x7F7F817F, 0x7F7F7F7F, 0x817F8181, 0x81817F7F, 0x7F7F8181, 0x817F7F81, 0x7F81817F,
+0x817F7F81, 0x7F7F8181, 0x7F818181, 0x7F817F7F, 0x8181817F, 0x817F7F81, 0x817F817F, 0x7F817F7F,
+0x817F817F, 0x81817F7F, 0x81817F81, 0x817F7F7F, 0x817F817F, 0x817F7F81, 0x7F81817F, 0x8181817F,
+0x8181817F, 0x81817F81, 0x817F817F, 0x7F818181, 0x8181817F, 0x7F818181, 0x8181817F, 0x7F7F817F,
+0x7F818181, 0x817F817F, 0x7F7F7F7F, 0x81817F81, 0x817F817F, 0x817F7F7F, 0x7F7F817F, 0x7F7F8181,
+0x81817F7F, 0x7F817F7F, 0x7F817F7F, 0x817F7F7F, 0x81817F81, 0x7F818181, 0x81817F7F, 0x7F817F7F,
+0x7F818181, 0x7F7F7F7F, 0x7F81817F, 0x817F7F7F, 0x81817F81, 0x81817F7F, 0x817F817F, 0x7F7F817F,
+0x817F7F7F, 0x7F81817F, 0x817F7F81, 0x7F81817F, 0x7F7F817F, 0x817F8181, 0x7F7F8181, 0x81817F81,
+0x7F817F81, 0x7F7F817F, 0x7F7F817F, 0x81817F81, 0x7F7F817F, 0x7F7F7F7F, 0x81817F7F, 0x7F7F8181,
+0x817F7F7F, 0x7F7F7F7F, 0x7F818181, 0x817F7F81, 0x7F817F81, 0x7F7F7F7F, 0x7F7F817F, 0x81817F81,
+0x817F8181, 0x817F7F7F, 0x7F81817F, 0x7F817F81, 0x81818181, 0x7F7F7F7F, 0x7F7F7F7F, 0x817F817F,
+0x817F817F, 0x7F7F8181, 0x81817F81, 0x7F7F8181, 0x81817F7F, 0x81818181, 0x7F817F81, 0x7F818181,
+0x81817F81, 0x7F7F817F, 0x7F7F7F7F, 0x81817F7F, 0x7F7F8181, 0x81817F81, 0x7F7F7F81, 0x7F817F7F,
+0x81818181, 0x81818181, 0x7F7F817F, 0x817F817F, 0x7F818181, 0x7F7F8181, 0x81818181, 0x7F7F7F7F,
+0x817F7F7F, 0x81817F81, 0x8181817F, 0x817F7F81, 0x7F7F7F81, 0x7F7F7F81, 0x817F7F81, 0x7F7F7F81,
+0x817F7F7F, 0x81817F7F, 0x817F7F81, 0x7F7F7F81, 0x7F7F817F, 0x81817F81, 0x817F8181, 0x7F818181,
+0x817F7F81, 0x7F7F7F7F, 0x7F7F817F, 0x7F7F7F7F, 0x81817F7F, 0x81817F81, 0x81818181, 0x7F7F7F81,
+0x7F817F7F, 0x7F7F7F81, 0x81817F81, 0x7F817F81, 0x7F7F8181, 0x7F7F817F, 0x81817F7F, 0x7F7F8181,
+0x817F817F, 0x7F7F817F, 0x7F7F7F81, 0x7F7F7F81, 0x81818181, 0x7F818181, 0x8181817F, 0x7F7F8181,
+0x817F7F81, 0x817F8181, 0x81817F81, 0x7F7F8181, 0x7F817F81, 0x8181817F, 0x817F7F81, 0x7F7F8181,
+0x81817F7F, 0x7F818181, 0x7F7F7F81, 0x7F7F817F, 0x7F7F817F, 0x817F7F7F, 0x7F7F7F7F, 0x7F818181,
+0x81818181, 0x7F81817F, 0x81817F7F, 0x817F817F, 0x7F817F7F, 0x817F817F, 0x81818181, 0x817F7F81,
+0x817F7F81, 0x817F7F81, 0x7F7F8181, 0x7F81817F, 0x817F7F81, 0x7F7F8181, 0x81818181, 0x817F7F7F,
+0x81818181, 0x7F7F817F, 0x7F7F8181, 0x81817F81, 0x7F817F7F, 0x817F7F7F, 0x7F7F7F7F, 0x7F7F7F81,
+0x7F7F7F81, 0x7F817F7F, 0x81817F7F, 0x81818181, 0x817F817F, 0x81818181, 0x81818181, 0x817F7F7F,
+0x7F7F817F, 0x7F7F8181, 0x7F7F8181, 0x817F7F7F, 0x7F81817F, 0x7F7F8181, 0x7F7F8181, 0x81818181,
+0x8181817F, 0x7F818181, 0x7F817F81, 0x817F817F, 0x8181817F, 0x817F8181, 0x81818181, 0x7F817F7F,
+0x7F7F7F81, 0x7F817F7F, 0x7F7F7F81, 0x817F7F81, 0x817F8181, 0x81817F81, 0x81817F81, 0x7F7F7F81,
+0x81817F7F, 0x817F8181, 0x7F817F7F, 0x7F81817F, 0x8181817F, 0x7F818181, 0x81818181, 0x7F7F8181,
+0x817F7F7F, 0x817F7F7F, 0x7F81817F, 0x817F7F7F, 0x7F7F8181, 0x81817F7F, 0x7F81817F, 0x81817F7F,
+0x81817F81, 0x7F817F81, 0x8181817F, 0x7F817F81, 0x817F817F, 0x7F7F7F81, 0x7F81817F, 0x817F7F7F,
+0x7F7F7F81, 0x817F8181, 0x81817F81, 0x817F7F7F, 0x8181817F, 0x7F7F8181, 0x81817F81, 0x7F7F7F81,
+0x7F81817F, 0x7F7F817F, 0x7F81817F, 0x7F817F81, 0x7F7F7F81, 0x7F7F7F7F, 0x7F817F7F, 0x7F7F8181,
+0x7F817F7F, 0x7F7F8181, 0x81818181, 0x81818181, 0x817F8181, 0x81818181, 0x817F8181, 0x7F7F7F81,
+0x8181817F, 0x8181817F, 0x7F7F7F7F, 0x7F818181, 0x817F817F, 0x7F7F817F, 0x7F7F8181, 0x7F7F7F81,
+0x7F7F7F81, 0x817F817F, 0x7F7F7F7F, 0x81817F81, 0x81817F7F, 0x7F7F817F, 0x817F7F7F, 0x7F817F81,
+0x8181817F, 0x81818181, 0x7F817F81, 0x817F7F81, 0x81818181, 0x81817F81, 0x81817F81, 0x7F81817F,
+0x7F7F7F81, 0x817F8181, 0x817F7F81, 0x817F817F, 0x7F817F81, 0x817F7F7F, 0x8181817F, 0x8181817F,
+0x7F818181, 0x7F7F7F81, 0x7F7F817F, 0x7F7F7F81, 0x817F7F81, 0x7F81817F, 0x7F7F817F, 0x817F7F7F,
+0x7F817F7F, 0x817F7F81, 0x817F817F, 0x8181817F, 0x7F817F81, 0x7F81817F, 0x7F7F7F81, 0x7F7F7F7F,
+0x7F7F817F, 0x817F7F7F, 0x817F7F7F, 0x817F7F7F, 0x7F818181, 0x7F7F8181, 0x7F7F8181, 0x81817F7F,
+0x7F7F7F7F, 0x81818181, 0x7F7F7F7F, 0x817F7F7F, 0x7F7F7F7F, 0x817F7F81, 0x81817F7F, 0x817F7F81,
+0x81817F7F, 0x7F7F817F, 0x7F7F8181, 0x817F817F, 0x81818181, 0x7F7F7F81, 0x7F7F7F81, 0x7F7F817F,
+0x7F7F7F81, 0x8181817F, 0x7F818181, 0x817F7F81, 0x7F818181, 0x817F8181, 0x7F817F7F, 0x81818181,
+0x7F7F8181, 0x7F7F7F81, 0x817F7F7F, 0x7F817F81, 0x7F7F7F81, 0x817F817F, 0x7F7F7F81, 0x81817F7F,
+0x7F7F817F, 0x817F7F7F, 0x81817F81, 0x7F7F7F81, 0x7F7F7F81, 0x7F7F7F81, 0x7F817F81, 0x7F818181,
+0x817F7F81, 0x7F817F7F, 0x7F7F817F, 0x7F81817F, 0x7F817F7F, 0x7F7F7F81, 0x7F818181, 0x7F7F7F81,
+0x7F7F817F, 0x81817F81, 0x81818181, 0x7F7F7F7F, 0x7F7F817F, 0x81817F7F, 0x81817F7F, 0x7F817F7F,
+0x7F7F7F81, 0x7F7F7F7F, 0x817F817F, 0x7F818181, 0x7F7F7F81, 0x7F7F817F, 0x817F7F81, 0x7F7F8181,
+0x7F817F7F, 0x7F818181, 0x7F7F8181, 0x817F817F, 0x8181817F, 0x81818181, 0x7F7F817F, 0x7F817F81,
+0x817F817F, 0x7F817F81, 0x7F7F7F7F, 0x81817F7F, 0x81817F81, 0x817F7F7F, 0x81818181, 0x7F81817F,
+0x8181817F, 0x7F81817F, 0x7F7F8181, 0x817F817F, 0x7F818181, 0x817F7F7F, 0x817F817F, 0x817F7F81,
+0x81817F81, 0x7F7F7F81, 0x7F7F7F7F, 0x7F7F8181, 0x7F81817F, 0x7F817F7F, 0x7F817F7F, 0x817F7F7F,
+0x7F81817F, 0x817F8181, 0x7F818181, 0x817F7F7F, 0x7F7F817F, 0x8181817F, 0x81818181, 0x7F7F7F7F,
+0x81817F81, 0x8181817F, 0x7F7F7F81, 0x7F7F817F, 0x817F7F81, 0x7F817F7F, 0x7F7F7F7F, 0x8181817F,
+0x817F817F, 0x817F817F, 0x7F7F8181, 0x817F7F81, 0x81817F81, 0x7F81817F, 0x7F7F7F7F, 0x7F7F7F7F,
+0x7F7F7F7F, 0x81817F7F, 0x817F7F81, 0x817F7F7F, 0x81817F81, 0x817F7F7F, 0x7F817F81, 0x8181817F,
+0x7F81817F, 0x817F7F81, 0x81817F81, 0x7F7F7F7F, 0x817F7F81, 0x7F818181, 0x8181817F, 0x81817F81,
+0x7F7F817F, 0x81817F7F, 0x7F817F7F, 0x7F7F817F, 0x81817F7F, 0x7F818181, 0x8181817F, 0x81817F7F,
+0x7F817F81, 0x7F818181, 0x7F81817F, 0x7F818181, 0x817F7F81, 0x7F817F81, 0x7F7F817F, 0x7F7F7F81,
+0x7F817F7F, 0x7F7F8181, 0x8181817F, 0x81817F81, 0x81817F81, 0x817F7F7F, 0x8181817F, 0x81817F81,
+0x7F7F817F, 0x7F7F7F81, 0x81818181, 0x7F7F7F81, 0x81817F81, 0x7F7F817F, 0x7F81817F, 0x7F817F81,
+0x7F817F81, 0x7F817F7F, 0x817F7F81, 0x817F7F81, 0x7F817F81, 0x7F817F7F, 0x7F818181, 0x81818181,
+0x7F7F817F, 0x7F817F7F, 0x81817F81, 0x7F818181, 0x7F81817F, 0x7F7F817F, 0x7F7F8181, 0x7F7F817F,
+0x7F7F8181, 0x817F817F, 0x8181817F, 0x81818181, 0x81818181, 0x7F817F7F, 0x81817F7F, 0x7F81817F,
+0x81817F81, 0x7F817F7F, 0x7F818181, 0x7F817F81, 0x7F7F7F7F, 0x7F7F8181, 0x7F818181, 0x8181817F,
+0x81817F7F, 0x817F7F7F, 0x7F7F817F, 0x7F7F7F7F, 0x7F7F8181, 0x81817F81, 0x7F81817F, 0x81818181,
+0x7F7F8181, 0x7F7F7F7F, 0x817F7F7F, 0x7F7F817F, 0x7F7F7F7F, 0x7F817F81, 0x817F7F81, 0x7F7F8181,
+0x7F817F81, 0x81817F7F, 0x7F817F81, 0x817F7F7F, 0x7F817F7F, 0x7F817F81, 0x7F81817F, 0x7F7F7F81,
+0x7F817F7F, 0x7F7F8181, 0x7F7F7F7F, 0x81817F7F, 0x7F818181, 0x8181817F, 0x81817F7F, 0x7F81817F,
+0x7F817F81, 0x7F7F7F81, 0x7F817F7F, 0x7F817F7F, 0x81817F81, 0x7F817F81, 0x817F817F, 0x8181817F,
+0x7F7F8181, 0x7F818181, 0x7F7F7F81, 0x7F7F7F81, 0x817F817F, 0x7F817F7F, 0x7F7F7F7F, 0x7F7F7F81,
+0x817F8181, 0x7F7F817F, 0x7F817F81, 0x817F8181, 0x7F81817F, 0x7F817F7F, 0x817F8181, 0x7F818181,
+0x7F7F7F7F, 0x8181817F, 0x7F7F7F81, 0x7F817F81, 0x817F7F7F, 0x81817F7F, 0x7F7F8181, 0x7F7F7F7F,
+0x81818181, 0x817F817F, 0x8181817F, 0x7F81817F, 0x817F817F, 0x817F817F, 0x7F7F817F, 0x7F817F81,
+0x7F818181, 0x81817F7F, 0x81817F7F, 0x817F8181, 0x81818181, 0x81817F7F, 0x7F7F8181, 0x7F7F7F7F,
+0x8181817F, 0x7F817F81, 0x7F7F8181, 0x7F817F81, 0x817F7F81, 0x7F818181, 0x817F7F81, 0x817F7F7F,
+0x7F7F7F81, 0x8181817F, 0x817F8181, 0x7F818181, 0x81818181, 0x81818181, 0x817F7F7F, 0x7F7F817F,
+0x7F817F81, 0x81818181, 0x817F7F81, 0x8181817F, 0x7F817F7F, 0x7F7F7F81, 0x81817F7F, 0x7F81817F,
+0x7F7F7F81, 0x81817F7F, 0x81818181, 0x7F81817F, 0x7F7F817F, 0x7F817F7F, 0x817F8181, 0x817F817F,
+0x81818181, 0x7F7F8181, 0x7F7F8181, 0x7F7F7F7F, 0x81818181, 0x81817F81, 0x7F7F7F81, 0x7F81817F,
+0x81817F7F, 0x7F818181, 0x817F8181, 0x817F8181, 0x817F8181, 0x7F81817F, 0x7F7F7F81, 0x7F7F8181,
+0x817F8181, 0x81818181, 0x7F817F7F, 0x7F818181, 0x7F7F7F81, 0x81817F7F, 0x7F817F7F, 0x817F817F,
+0x8181817F, 0x7F7F817F, 0x7F818181, 0x7F818181, 0x7F7F8181, 0x817F7F81, 0x7F7F8181, 0x7F817F7F,
+0x817F7F81, 0x81817F81, 0x7F817F81, 0x7F7F7F81, 0x7F7F817F, 0x7F7F817F, 0x81817F81, 0x7F817F7F,
+0x7F7F817F, 0x7F7F817F, 0x7F817F7F, 0x81818181, 0x7F817F81, 0x81818181, 0x81818181, 0x7F818181,
+0x817F7F7F, 0x8181817F, 0x817F7F7F, 0x7F817F7F, 0x7F81817F, 0x81817F7F, 0x817F7F7F, 0x817F8181,
+0x7F81817F, 0x8181817F, 0x7F817F7F, 0x7F817F7F, 0x81817F81, 0x7F817F81, 0x7F7F7F81, 0x7F7F7F7F,
+0x7F7F817F, 0x817F8181, 0x81817F7F, 0x81818181, 0x8181817F, 0x817F8181, 0x7F7F7F7F, 0x817F7F81,
+0x7F817F81, 0x7F7F8181, 0x7F81817F, 0x7F7F817F, 0x7F81817F, 0x7F817F7F, 0x7F7F817F, 0x7F7F7F7F,
+0x81818181, 0x81818181, 0x81817F81, 0x817F817F, 0x8181817F, 0x817F7F7F, 0x7F7F7F7F, 0x817F817F,
+0x8181817F, 0x7F7F7F7F, 0x7F7F7F81, 0x8181817F, 0x7F81817F, 0x817F817F, 0x817F817F, 0x817F817F,
+0x7F817F81, 0x81817F7F, 0x7F81817F, 0x7F817F81, 0x7F817F7F, 0x81818181, 0x7F818181, 0x817F7F7F,
+0x81817F7F, 0x817F7F7F, 0x817F7F81, 0x7F7F7F81, 0x7F81817F, 0x817F8181, 0x7F81817F, 0x7F81817F,
+0x7F7F7F7F, 0x7F81817F, 0x8181817F, 0x81817F7F, 0x7F818181, 0x817F7F7F, 0x81817F7F, 0x8181817F,
+0x7F817F81, 0x81817F81, 0x7F817F7F, 0x7F81817F, 0x817F8181, 0x817F7F81, 0x7F7F7F81, 0x7F7F7F81,
+0x817F8181, 0x817F7F81, 0x7F7F8181, 0x7F81817F, 0x7F7F7F7F, 0x7F7F8181, 0x81817F81, 0x81817F81,
+0x7F7F7F7F, 0x817F7F7F, 0x7F817F81, 0x7F817F7F, 0x817F817F, 0x8181817F, 0x7F817F81, 0x7F7F7F81,
+0x7F7F7F81, 0x7F817F7F, 0x817F817F, 0x7F817F81, 0x7F7F817F, 0x7F818181, 0x81817F81, 0x7F817F7F,
+0x7F817F81, 0x7F818181, 0x817F8181, 0x7F817F7F, 0x817F817F, 0x817F7F81, 0x81818181, 0x7F817F7F,
+0x7F817F81, 0x7F818181, 0x7F7F7F7F, 0x81818181, 0x817F7F81, 0x817F8181, 0x817F8181, 0x7F7F7F7F,
+0x817F817F, 0x7F7F7F7F, 0x81817F7F, 0x7F817F81, 0x81817F7F, 0x7F81817F, 0x7F7F7F81, 0x8181817F,
+0x7F7F8181, 0x817F7F81, 0x817F7F7F, 0x7F7F8181, 0x81817F7F, 0x81818181, 0x817F817F, 0x7F7F7F81,
+0x81818181, 0x81817F7F, 0x8181817F, 0x81817F7F, 0x81817F7F, 0x81818181, 0x7F81817F, 0x817F817F,
+0x7F7F7F7F, 0x81817F81, 0x817F7F81, 0x8181817F, 0x7F7F7F7F, 0x7F7F817F, 0x7F7F7F7F, 0x817F8181,
+0x7F817F7F, 0x7F817F7F, 0x81818181, 0x7F817F7F, 0x817F8181, 0x817F7F7F, 0x7F81817F, 0x7F7F817F,
+0x7F7F7F7F, 0x81817F81, 0x7F7F7F7F, 0x7F818181, 0x8181817F, 0x7F818181, 0x7F818181, 0x81818181,
+0x817F8181, 0x81817F81, 0x7F7F817F, 0x817F7F81, 0x817F817F, 0x817F8181, 0x8181817F, 0x81818181,
+0x817F8181, 0x817F7F81, 0x7F7F817F, 0x817F7F81, 0x7F7F817F, 0x817F817F, 0x7F817F81, 0x7F7F8181,
+0x7F7F8181, 0x81818181, 0x817F7F7F, 0x81818181, 0x8181817F, 0x817F8181, 0x8181817F, 0x7F7F7F7F,
+0x7F7F7F7F, 0x7F81817F, 0x817F7F7F, 0x7F7F8181, 0x817F7F7F, 0x817F817F, 0x81817F7F, 0x7F817F81,
+0x7F7F817F, 0x7F817F81, 0x7F818181, 0x7F7F8181, 0x817F817F, 0x817F8181, 0x81818181, 0x7F818181,
+0x81817F81, 0x7F817F81, 0x7F7F8181, 0x7F7F8181, 0x817F8181, 0x7F81817F, 0x7F818181, 0x81817F7F,
+0x817F7F81, 0x81817F81, 0x817F8181, 0x7F817F81, 0x7F817F81, 0x81817F7F, 0x7F7F7F7F, 0x7F817F81,
+0x7F7F8181, 0x817F817F, 0x7F7F8181, 0x81817F81, 0x7F81817F, 0x817F817F, 0x7F7F817F, 0x7F81817F,
+0x7F7F7F7F, 0x81818181, 0x7F7F8181, 0x817F8181, 0x8181817F, 0x81817F81, 0x817F8181, 0x81818181,
+0x81818181, 0x817F817F, 0x7F7F7F7F, 0x81818181, 0x817F8181, 0x817F8181, 0x7F81817F, 0x81817F7F,
+0x7F7F817F, 0x7F817F7F, 0x7F817F81, 0x7F81817F, 0x7F7F8181, 0x7F817F7F, 0x7F7F8181, 0x817F7F81,
+0x7F81817F, 0x817F8181, 0x817F817F, 0x817F7F7F, 0x7F7F7F7F, 0x81817F81, 0x81817F81, 0x7F7F817F,
+0x7F81817F, 0x817F817F, 0x7F817F81, 0x817F7F7F, 0x817F817F, 0x817F7F81, 0x7F818181, 0x7F817F7F,
+0x7F818181, 0x817F7F7F, 0x817F817F, 0x7F7F817F, 0x7F818181, 0x7F7F817F, 0x7F818181, 0x7F817F7F,
+0x817F8181, 0x817F8181, 0x7F7F817F, 0x7F818181, 0x81817F7F, 0x7F7F7F81, 0x7F7F7F7F, 0x7F817F81,
+0x7F7F7F81, 0x81818181, 0x7F7F7F7F, 0x817F7F7F, 0x7F7F7F81, 0x8181817F, 0x817F7F7F, 0x7F817F7F,
+0x81818181, 0x817F8181, 0x7F7F7F81, 0x817F8181, 0x8181817F, 0x7F817F81, 0x7F817F7F, 0x7F817F81,
+0x81818181, 0x817F7F7F, 0x81818181, 0x7F7F8181, 0x817F817F, 0x7F7F817F, 0x81818181, 0x7F7F7F81,
+0x7F7F817F, 0x7F818181, 0x7F817F81, 0x7F81817F, 0x7F7F8181, 0x7F817F81, 0x8181817F, 0x817F7F81,
+0x7F817F7F, 0x7F817F7F, 0x7F7F8181, 0x817F817F, 0x817F7F7F, 0x7F817F81, 0x81817F7F, 0x817F817F,
+0x7F817F7F, 0x8181817F, 0x7F7F8181, 0x817F817F, 0x7F81817F, 0x817F817F, 0x7F818181, 0x7F818181,
+0x817F817F, 0x817F7F7F, 0x7F7F7F7F, 0x7F818181, 0x817F7F7F, 0x7F81817F, 0x8181817F, 0x81818181,
+0x817F817F, 0x7F7F8181, 0x7F817F81, 0x81818181, 0x7F81817F, 0x817F817F, 0x81818181, 0x7F7F817F,
+0x7F7F817F, 0x81817F81, 0x817F7F81, 0x8181817F, 0x8181817F, 0x817F7F7F, 0x7F818181, 0x7F81817F,
+0x7F7F7F81, 0x817F8181, 0x7F7F8181, 0x7F817F81, 0x8181817F, 0x817F817F, 0x7F817F81, 0x81818181,
+0x7F817F7F, 0x817F7F81, 0x7F818181, 0x7F7F8181, 0x7F817F81, 0x817F817F, 0x7F7F817F, 0x8181817F,
+0x7F817F81, 0x817F8181, 0x7F7F8181, 0x7F7F7F81, 0x817F7F81, 0x81817F7F, 0x817F817F, 0x81818181,
+0x7F818181, 0x817F7F81, 0x817F8181, 0x7F7F817F, 0x7F817F7F, 0x7F7F7F7F, 0x7F81817F, 0x7F7F817F,
+0x817F7F7F, 0x7F7F7F7F, 0x7F7F817F, 0x7F81817F, 0x7F7F8181, 0x7F817F81, 0x7F817F81, 0x817F817F,
+0x81818181, 0x7F7F817F, 0x7F7F7F7F, 0x81817F81, 0x817F817F, 0x81818181, 0x7F817F7F, 0x7F81817F,
+0x7F81817F, 0x7F7F8181, 0x7F7F7F7F, 0x81817F7F, 0x7F817F7F, 0x7F817F7F, 0x7F81817F, 0x7F81817F,
+0x7F7F8181, 0x81817F81, 0x7F7F8181, 0x7F7F7F81, 0x7F7F817F, 0x7F817F7F, 0x81817F81, 0x817F817F,
+0x7F7F817F, 0x81818181, 0x81818181, 0x7F817F81, 0x817F8181, 0x817F7F7F, 0x817F8181, 0x81818181,
+0x817F7F7F, 0x817F7F81, 0x81817F81, 0x7F818181, 0x7F81817F, 0x817F7F81, 0x817F817F, 0x7F7F7F81,
+0x7F817F81, 0x7F818181, 0x817F817F, 0x7F818181, 0x7F81817F, 0x7F7F7F7F, 0x817F7F7F, 0x7F7F817F,
+0x7F817F81, 0x8181817F, 0x81818181, 0x7F818181, 0x81817F7F, 0x7F7F7F81, 0x7F817F81, 0x7F7F817F,
+0x81818181, 0x7F817F81, 0x81818181, 0x817F817F, 0x7F817F7F, 0x81817F7F, 0x817F7F81, 0x817F817F,
+0x7F817F7F, 0x81817F81, 0x7F7F8181, 0x81818181, 0x7F7F7F81, 0x81818181, 0x7F818181, 0x817F7F7F,
+0x81817F81, 0x817F7F7F, 0x81818181, 0x8181817F, 0x817F7F7F, 0x817F7F7F, 0x817F817F, 0x81818181,
+0x81817F81, 0x7F817F81, 0x7F7F7F7F, 0x7F818181, 0x8181817F, 0x817F7F81, 0x8181817F, 0x7F817F81,
+0x7F7F7F7F, 0x817F817F, 0x7F7F7F7F, 0x7F7F7F7F, 0x817F8181, 0x817F8181, 0x817F8181, 0x81817F81,
+0x7F7F7F81, 0x81817F81, 0x7F7F7F7F, 0x817F8181, 0x7F7F817F, 0x7F818181, 0x7F7F7F7F, 0x7F817F7F,
+0x7F7F7F81, 0x81817F81, 0x8181817F, 0x8181817F, 0x7F7F7F81, 0x8181817F, 0x7F7F8181, 0x81817F7F,
+0x8181817F, 0x7F7F817F, 0x817F7F7F, 0x7F817F7F, 0x7F7F7F7F, 0x81818181, 0x81817F7F, 0x7F7F8181,
+0x7F817F7F, 0x7F7F8181, 0x817F817F, 0x817F7F7F, 0x7F817F7F, 0x7F817F7F, 0x7F817F81, 0x8181817F,
+0x81818181, 0x81817F7F, 0x7F7F8181, 0x7F817F7F, 0x81817F81, 0x81817F7F, 0x7F818181, 0x7F817F81,
+0x81817F7F, 0x7F817F81, 0x817F817F, 0x81818181, 0x81817F81, 0x817F817F, 0x817F7F7F, 0x817F7F7F,
+0x817F8181, 0x7F81817F, 0x81817F81, 0x81817F81, 0x7F817F7F, 0x817F8181, 0x817F7F81, 0x7F7F8181,
+0x817F8181, 0x7F7F8181, 0x7F7F7F81, 0x7F7F7F7F, 0x7F81817F, 0x7F7F8181, 0x7F817F81, 0x8181817F,
+0x817F8181, 0x7F817F7F, 0x817F817F, 0x817F8181, 0x81817F7F, 0x7F817F81, 0x817F8181, 0x7F81817F,
+0x81818181, 0x7F817F7F, 0x8181817F, 0x7F817F81, 0x7F7F7F7F, 0x81818181, 0x81817F7F, 0x7F817F7F,
+0x7F7F817F, 0x7F7F8181, 0x817F817F, 0x7F7F817F, 0x7F7F7F7F, 0x8181817F, 0x7F817F81, 0x8181817F,
+0x817F817F, 0x7F7F7F81, 0x81817F7F, 0x7F7F8181, 0x817F7F81, 0x7F817F81, 0x7F7F7F81, 0x7F7F7F81,
+0x81817F81, 0x7F7F7F7F, 0x7F817F81, 0x81817F7F, 0x7F7F8181, 0x7F7F8181, 0x817F817F, 0x7F7F7F7F,
+0x7F7F817F, 0x7F7F7F81, 0x7F818181, 0x7F817F7F, 0x7F7F817F, 0x81818181, 0x817F8181, 0x817F817F,
+0x7F817F81, 0x81817F7F, 0x817F7F7F, 0x7F817F7F, 0x7F818181, 0x81818181, 0x7F817F7F, 0x7F817F7F,
+0x7F81817F, 0x7F7F817F, 0x81818181, 0x817F817F, 0x817F7F7F, 0x7F7F7F81, 0x81818181, 0x7F81817F,
+0x7F7F8181, 0x7F7F7F81, 0x7F81817F, 0x7F81817F, 0x817F7F81, 0x7F817F7F, 0x817F7F7F, 0x817F8181,
+0x7F7F817F, 0x7F81817F, 0x81818181, 0x81817F81, 0x7F7F7F7F, 0x7F7F7F81, 0x7F7F817F, 0x7F818181,
+0x7F818181, 0x81817F81, 0x7F7F817F, 0x817F7F7F, 0x817F7F7F, 0x817F8181, 0x7F81817F, 0x817F8181,
+0x817F7F81, 0x7F7F817F, 0x7F817F7F, 0x7F7F7F7F, 0x81818181, 0x81818181, 0x817F817F, 0x7F7F8181,
+0x817F7F81, 0x8181817F, 0x7F7F8181, 0x81817F81, 0x7F81817F, 0x7F818181, 0x817F7F7F, 0x817F7F7F,
+0x817F817F, 0x7F7F7F81, 0x7F7F817F, 0x7F7F7F7F, 0x81818181, 0x817F8181, 0x7F7F817F, 0x7F81817F,
+0x7F7F8181, 0x7F7F8181, 0x7F818181, 0x817F817F, 0x81818181, 0x81817F81, 0x81817F7F, 0x7F7F7F81,
+0x7F818181, 0x81818181, 0x7F818181, 0x7F7F7F81, 0x7F7F7F7F, 0x7F7F7F81, 0x7F818181, 0x7F7F7F7F,
+0x817F7F7F, 0x7F7F817F, 0x7F817F81, 0x81818181, 0x7F7F7F81, 0x81818181, 0x817F817F, 0x8181817F,
+0x817F8181, 0x817F7F81, 0x817F8181, 0x817F7F7F, 0x7F818181, 0x7F818181, 0x81817F7F, 0x81817F81,
+0x7F7F8181, 0x7F818181, 0x81817F81, 0x7F7F817F, 0x7F7F7F81, 0x817F7F81, 0x7F7F7F81, 0x7F7F8181,
+0x817F8181, 0x8181817F, 0x81817F7F, 0x81817F7F, 0x7F7F7F7F, 0x7F7F8181, 0x81818181, 0x7F7F8181,
+0x81818181, 0x7F7F7F81, 0x7F818181, 0x7F7F8181, 0x817F7F7F, 0x81817F7F, 0x7F7F7F7F, 0x817F7F81,
+0x817F8181, 0x817F7F7F, 0x7F7F817F, 0x8181817F, 0x7F7F7F81, 0x817F8181, 0x7F7F817F, 0x817F7F81,
+0x81817F81, 0x81817F7F, 0x7F817F81, 0x817F7F81, 0x7F7F817F, 0x7F7F817F, 0x817F817F, 0x7F81817F,
+0x81817F7F, 0x817F817F, 0x7F81817F, 0x8181817F, 0x7F817F81, 0x7F81817F, 0x7F81817F, 0x7F818181,
+0x7F7F7F7F, 0x817F7F81, 0x81817F81, 0x7F817F81, 0x81818181, 0x81817F7F, 0x7F817F81, 0x7F7F7F7F,
+0x7F7F7F81, 0x81818181, 0x7F817F7F, 0x817F817F, 0x7F7F7F81, 0x81817F81, 0x817F7F81, 0x7F7F817F,
+0x81817F81, 0x7F818181, 0x7F818181, 0x81817F7F, 0x7F7F7F81, 0x817F8181, 0x81818181, 0x7F817F81,
+0x7F7F817F, 0x817F817F, 0x81817F7F, 0x817F7F7F, 0x81817F81, 0x7F7F7F7F, 0x7F817F7F, 0x81818181,
+0x81817F81, 0x81817F7F, 0x7F81817F, 0x817F7F7F, 0x7F7F7F7F, 0x81817F81, 0x7F7F7F81, 0x817F8181,
+0x81817F7F, 0x817F8181, 0x81818181, 0x817F817F, 0x817F8181, 0x7F81817F, 0x7F7F817F, 0x7F817F7F,
+0x7F7F817F, 0x817F817F, 0x817F8181, 0x8181817F, 0x817F7F7F, 0x81818181, 0x7F7F7F7F, 0x81817F7F,
+0x81817F7F, 0x7F7F7F81, 0x7F7F8181, 0x817F7F81, 0x7F7F7F81, 0x7F81817F, 0x81818181, 0x81818181,
+0x8181817F, 0x817F7F7F, 0x81817F81, 0x7F7F817F, 0x7F817F7F, 0x81817F81, 0x7F817F81, 0x81817F7F,
+0x7F81817F, 0x817F7F81, 0x7F7F7F81, 0x817F7F81, 0x7F817F7F, 0x7F7F7F7F, 0x817F817F, 0x7F7F7F7F,
+0x7F7F8181, 0x817F7F81, 0x7F7F7F7F, 0x817F7F81, 0x7F81817F, 0x817F7F81, 0x817F7F81, 0x81818181,
+0x817F817F, 0x817F817F, 0x7F81817F, 0x817F8181, 0x7F7F7F7F, 0x7F7F8181, 0x7F81817F, 0x7F7F7F81,
+0x7F7F817F, 0x7F7F817F, 0x7F7F817F, 0x7F7F7F7F, 0x7F7F7F7F, 0x817F817F, 0x817F7F7F, 0x81817F7F,
+0x81818181, 0x8181817F, 0x81817F81, 0x7F818181, 0x817F8181, 0x7F818181, 0x817F8181, 0x81818181,
+0x7F7F7F81, 0x81817F7F, 0x7F7F7F7F, 0x7F818181, 0x7F81817F, 0x7F7F7F7F, 0x81817F7F, 0x817F817F,
+0x7F7F817F, 0x8181817F, 0x7F81817F, 0x7F7F8181, 0x81817F81, 0x7F817F7F, 0x7F817F81, 0x81818181,
+0x817F7F81, 0x81818181, 0x7F81817F, 0x81818181, 0x7F817F81, 0x7F7F7F81, 0x7F7F8181, 0x7F817F81,
+0x7F817F81, 0x8181817F, 0x7F81817F, 0x817F817F, 0x817F817F, 0x81817F81, 0x817F817F, 0x81817F81,
+0x7F7F8181, 0x81817F7F, 0x7F817F81, 0x7F7F7F7F, 0x817F7F81, 0x817F8181, 0x817F817F, 0x817F7F81,
+0x81817F7F, 0x817F7F7F, 0x7F7F8181, 0x817F7F81, 0x817F7F81, 0x7F818181, 0x8181817F, 0x7F7F7F81,
+0x817F8181, 0x7F7F817F, 0x817F8181, 0x7F81817F, 0x7F81817F, 0x81817F7F, 0x7F7F7F7F, 0x817F7F7F,
+0x8181817F, 0x817F7F7F, 0x7F817F81, 0x7F817F7F, 0x81817F81, 0x81817F81, 0x81818181, 0x8181817F,
+0x817F817F, 0x7F817F7F, 0x817F817F, 0x7F7F7F7F, 0x8181817F, 0x817F817F, 0x817F817F, 0x7F817F81,
+0x8181817F, 0x8181817F, 0x7F7F8181, 0x7F818181, 0x7F817F7F, 0x8181817F, 0x81818181, 0x7F817F81,
+0x817F7F7F, 0x817F7F7F, 0x817F8181, 0x817F7F7F, 0x7F81817F, 0x7F818181, 0x817F8181, 0x7F81817F,
+0x7F817F7F, 0x8181817F, 0x817F8181, 0x817F817F, 0x817F817F, 0x81817F81, 0x8181817F, 0x7F817F81,
+0x7F7F817F, 0x7F7F7F81, 0x81817F81, 0x817F7F81, 0x7F817F7F, 0x7F81817F, 0x817F7F7F, 0x81817F81,
+0x817F817F, 0x81817F81, 0x8181817F, 0x7F817F7F, 0x817F7F7F, 0x817F7F7F, 0x7F817F81, 0x7F817F81,
+0x7F817F81, 0x817F8181, 0x7F7F8181, 0x7F7F817F, 0x7F81817F, 0x7F817F81, 0x7F7F817F, 0x7F817F81,
+0x817F8181, 0x81818181, 0x7F817F81, 0x7F7F7F81, 0x7F7F7F81, 0x7F818181, 0x817F8181, 0x817F8181,
+0x817F8181, 0x81817F7F, 0x817F7F7F, 0x7F7F7F81, 0x7F7F8181, 0x7F81817F, 0x81818181, 0x7F7F7F7F,
+0x7F818181, 0x817F817F, 0x817F7F81, 0x817F7F81, 0x8181817F, 0x817F7F81, 0x81818181, 0x817F7F81,
+0x81817F7F, 0x7F7F7F81, 0x7F817F7F, 0x7F7F8181, 0x7F7F8181, 0x7F7F817F, 0x7F7F7F7F, 0x7F7F7F7F,
+0x7F7F7F7F, 0x7F81817F, 0x81817F81, 0x7F818181, 0x7F81817F, 0x817F817F, 0x7F7F7F81, 0x7F7F817F,
+0x7F7F8181, 0x817F7F81, 0x817F7F7F, 0x7F817F7F, 0x7F81817F, 0x817F7F81, 0x8181817F, 0x81817F81,
+0x8181817F, 0x7F7F7F7F, 0x81818181, 0x7F7F7F7F, 0x81818181, 0x817F7F7F, 0x7F7F817F, 0x7F817F81,
+0x81817F81, 0x7F7F7F7F, 0x7F818181, 0x7F818181, 0x817F7F81, 0x81817F7F, 0x7F7F817F, 0x81818181,
+0x81818181, 0x7F7F8181, 0x7F7F7F7F, 0x7F7F7F7F, 0x7F817F81, 0x7F7F817F, 0x817F7F7F, 0x817F7F81,
+0x7F7F817F, 0x7F7F817F, 0x7F81817F, 0x8181817F, 0x7F7F7F81, 0x7F817F81, 0x7F7F7F7F, 0x81818181,
+0x81818181, 0x7F817F7F, 0x7F7F817F, 0x7F817F7F, 0x817F8181, 0x7F81817F, 0x8181817F, 0x81818181,
+0x7F817F7F, 0x81818181, 0x81818181, 0x81817F7F, 0x7F818181, 0x7F7F7F81, 0x81817F7F, 0x7F817F81,
+0x817F8181, 0x7F817F81, 0x817F7F7F, 0x817F8181, 0x817F817F, 0x7F7F7F7F, 0x7F7F7F81, 0x7F7F817F,
+0x7F7F8181, 0x7F81817F, 0x7F81817F, 0x7F7F7F81, 0x817F7F81, 0x7F7F7F7F, 0x81817F81, 0x81817F7F,
+0x7F817F81, 0x7F81817F, 0x7F818181, 0x817F7F7F, 0x817F817F, 0x81817F81, 0x7F817F7F, 0x7F817F81,
+0x81818181, 0x7F7F7F7F, 0x81817F7F, 0x817F7F7F, 0x7F818181, 0x7F817F7F, 0x7F7F7F7F, 0x7F7F7F81,
+0x817F7F7F, 0x81817F7F, 0x7F7F817F, 0x817F8181, 0x7F817F7F, 0x81818181, 0x817F8181, 0x817F817F,
+0x7F818181, 0x7F7F7F7F, 0x7F81817F, 0x81817F81, 0x81817F7F, 0x7F817F7F, 0x7F7F7F81, 0x817F7F81,
+0x817F7F81, 0x7F7F7F7F, 0x817F8181, 0x817F8181, 0x7F7F7F81, 0x817F7F7F, 0x81817F7F, 0x817F7F81,
+0x7F7F817F, 0x8181817F, 0x81818181, 0x817F817F, 0x7F7F7F81, 0x7F81817F, 0x7F817F81, 0x817F7F81,
+0x7F818181, 0x7F7F7F81, 0x81817F81, 0x7F817F7F, 0x81818181, 0x817F7F7F, 0x7F817F81, 0x817F8181,
+0x81817F81, 0x7F81817F, 0x7F7F8181, 0x81818181, 0x81817F7F, 0x8181817F, 0x7F81817F, 0x81817F7F,
+0x7F7F8181, 0x7F7F7F7F, 0x7F7F8181, 0x81817F81, 0x817F817F, 0x81818181, 0x817F817F, 0x817F7F81,
+0x7F7F817F, 0x817F7F81, 0x7F7F817F, 0x8181817F, 0x8181817F, 0x8181817F, 0x7F817F7F, 0x817F8181,
+0x81818181, 0x817F7F7F, 0x817F817F, 0x81818181, 0x7F81817F, 0x7F7F8181, 0x817F7F7F, 0x817F8181,
+0x817F7F81, 0x7F7F7F7F, 0x7F7F8181, 0x7F818181, 0x7F7F7F7F, 0x81817F7F, 0x81818181, 0x7F7F817F,
+0x817F817F, 0x817F7F7F, 0x7F817F7F, 0x7F7F7F7F, 0x8181817F, 0x817F7F81, 0x817F7F7F, 0x7F81817F,
+0x8181817F, 0x817F8181, 0x7F7F7F81, 0x7F817F81, 0x7F817F7F, 0x7F7F817F, 0x7F7F8181, 0x7F818181,
+0x8181817F, 0x7F7F817F, 0x7F81817F, 0x8181817F, 0x7F818181, 0x8181817F, 0x7F7F817F, 0x81817F7F,
+0x7F7F817F, 0x7F817F81, 0x817F8181, 0x817F7F7F, 0x817F817F, 0x7F818181, 0x7F817F81, 0x7F7F7F81,
+0x7F81817F, 0x817F7F81, 0x7F818181, 0x81817F81, 0x81817F81, 0x817F8181, 0x7F7F8181, 0x81818181,
+0x81818181, 0x7F81817F, 0x817F7F81, 0x7F817F81, 0x817F817F, 0x817F817F, 0x817F8181, 0x81818181,
+0x817F8181, 0x817F7F7F, 0x81817F7F, 0x81817F7F, 0x81817F81, 0x81818181, 0x7F7F8181, 0x81817F7F,
+0x7F7F7F81, 0x7F81817F, 0x81817F81, 0x7F7F817F, 0x81817F7F, 0x81817F81, 0x81818181, 0x7F7F7F7F,
+0x81817F81, 0x7F7F7F7F, 0x7F7F7F7F, 0x7F7F817F, 0x8181817F, 0x817F8181, 0x817F7F7F, 0x7F7F7F7F,
+0x81817F7F, 0x7F817F7F, 0x817F7F81, 0x7F7F817F, 0x817F7F81, 0x7F818181, 0x817F7F81, 0x81817F81,
+0x7F7F8181, 0x7F7F817F, 0x81817F7F, 0x7F818181, 0x7F7F7F81, 0x8181817F, 0x7F818181, 0x7F7F817F,
+0x7F7F7F81, 0x817F7F81, 0x7F817F7F, 0x7F818181, 0x8181817F, 0x7F7F8181, 0x81818181, 0x817F8181,
+0x7F817F7F, 0x7F81817F, 0x81818181, 0x817F8181, 0x7F81817F, 0x817F7F81, 0x81818181, 0x7F817F81,
+0x7F817F7F, 0x817F817F, 0x7F7F7F81, 0x7F7F7F81, 0x7F7F817F, 0x81818181, 0x817F8181, 0x7F7F7F7F,
+0x817F7F7F, 0x81818181, 0x81818181, 0x81818181, 0x7F7F8181, 0x7F7F817F, 0x81817F81, 0x817F7F81,
+0x7F81817F, 0x7F7F8181, 0x7F7F7F81, 0x7F817F7F, 0x81818181, 0x7F7F7F7F, 0x81817F7F, 0x7F7F7F7F,
+0x81817F7F, 0x7F7F817F, 0x7F7F7F81, 0x7F817F81, 0x817F817F, 0x7F817F81, 0x7F7F7F81, 0x7F817F7F,
+0x817F8181, 0x7F7F8181, 0x7F7F817F, 0x7F817F81, 0x81817F81, 0x81817F81, 0x817F817F, 0x7F818181,
+0x81818181, 0x817F817F, 0x817F7F81, 0x81818181, 0x817F7F7F, 0x7F7F8181, 0x7F817F81, 0x8181817F,
+0x7F7F7F81, 0x7F817F81, 0x7F7F8181, 0x81818181, 0x7F7F7F7F, 0x7F818181, 0x7F818181, 0x817F7F81,
+0x7F7F7F7F, 0x81818181, 0x7F817F7F, 0x8181817F, 0x81818181, 0x81817F7F, 0x81818181, 0x7F818181,
+0x81817F81, 0x7F81817F, 0x7F817F7F, 0x7F817F81, 0x7F81817F, 0x817F7F7F, 0x7F817F7F, 0x817F817F,
+0x817F7F7F, 0x81818181, 0x7F7F7F7F, 0x7F7F8181, 0x817F817F, 0x7F81817F, 0x81818181, 0x7F7F7F81,
+0x7F7F8181, 0x7F818181, 0x817F7F81, 0x7F818181, 0x817F817F, 0x7F817F81, 0x7F81817F, 0x7F817F7F,
+0x7F817F7F, 0x81817F7F, 0x81817F81, 0x817F7F7F, 0x81817F81, 0x817F7F81, 0x817F7F7F, 0x7F817F7F,
+0x817F817F, 0x7F7F8181, 0x817F8181, 0x817F817F, 0x7F7F7F81, 0x817F7F7F, 0x7F817F81, 0x7F817F7F,
+0x7F7F817F, 0x7F817F81, 0x81817F7F, 0x81817F81, 0x7F81817F, 0x81818181, 0x7F817F7F, 0x8181817F,
+0x817F8181, 0x7F7F7F81, 0x817F7F81, 0x817F817F, 0x817F8181, 0x7F818181, 0x7F81817F, 0x7F7F8181,
+0x7F81817F, 0x7F81817F, 0x81818181, 0x7F7F7F81, 0x7F818181, 0x817F7F81, 0x8181817F, 0x7F818181,
+0x7F7F817F, 0x81818181, 0x817F7F81, 0x7F817F81, 0x8181817F, 0x7F81817F, 0x817F8181, 0x7F7F8181,
+0x81818181, 0x7F7F817F, 0x7F818181, 0x817F7F7F, 0x817F7F81, 0x7F7F7F7F, 0x7F7F8181, 0x817F817F,
+0x817F7F81, 0x7F81817F, 0x817F817F, 0x8181817F, 0x7F7F7F81, 0x7F7F817F, 0x7F818181, 0x7F817F81,
+0x817F7F81, 0x7F818181, 0x81818181, 0x817F8181, 0x81817F7F, 0x7F817F81, 0x7F7F7F7F, 0x817F7F7F,
+0x7F7F817F, 0x817F8181, 0x817F7F7F, 0x7F817F81, 0x7F7F7F81, 0x7F818181, 0x7F81817F, 0x81818181,
+0x7F818181, 0x817F7F7F, 0x817F7F7F, 0x7F7F7F81, 0x817F8181, 0x81818181, 0x81817F81, 0x7F818181,
+0x81817F81, 0x817F8181, 0x7F81817F, 0x8181817F, 0x7F7F8181, 0x817F817F, 0x7F817F7F, 0x7F7F8181,
+0x817F7F81, 0x817F8181, 0x7F817F81, 0x7F818181, 0x7F7F8181, 0x81817F81, 0x817F817F, 0x7F81817F,
+0x7F818181, 0x7F7F7F81, 0x817F7F7F, 0x7F81817F, 0x817F7F7F, 0x8181817F, 0x81818181, 0x7F7F7F81,
+0x7F817F81, 0x7F818181, 0x7F7F817F, 0x7F817F81, 0x7F7F7F81, 0x81817F7F, 0x7F7F7F81, 0x7F7F7F81,
+0x7F817F81, 0x7F818181, 0x7F817F81, 0x7F7F7F7F, 0x7F81817F, 0x8181817F, 0x817F7F7F, 0x7F7F8181,
+0x81817F7F, 0x81817F7F, 0x7F818181, 0x81817F81, 0x81817F81, 0x7F7F817F, 0x817F8181, 0x817F8181,
+0x7F818181, 0x7F81817F, 0x8181817F, 0x7F7F817F, 0x81818181, 0x7F7F7F81, 0x81818181, 0x7F7F7F7F,
+0x817F817F, 0x7F7F7F7F, 0x7F7F8181, 0x817F817F, 0x7F818181, 0x817F7F81, 0x7F7F817F, 0x817F8181,
+0x7F817F81, 0x817F8181, 0x8181817F, 0x81817F7F, 0x7F817F81, 0x7F7F8181, 0x7F7F8181, 0x7F818181,
+0x817F8181, 0x7F7F7F81, 0x7F7F7F7F, 0x81818181, 0x7F7F7F81, 0x7F7F7F7F, 0x817F817F, 0x7F7F8181,
+0x817F7F7F, 0x7F817F81, 0x81817F81, 0x7F81817F, 0x81817F7F, 0x817F7F7F, 0x7F81817F, 0x7F817F81,
+0x7F7F7F7F, 0x817F7F7F, 0x7F817F81, 0x817F817F, 0x81817F81, 0x81817F7F, 0x7F817F81, 0x7F7F7F81,
+0x7F7F7F7F, 0x8181817F, 0x817F7F81, 0x7F81817F, 0x7F81817F, 0x81817F7F, 0x8181817F, 0x81817F7F,
+0x7F817F81, 0x7F818181, 0x817F817F, 0x81817F81, 0x7F7F8181, 0x817F7F81
+
+output0 =
+0x02524C20, 0xB9B1FEA2, 0xC1BAB7E5, 0xEF5714CB, 0x7DE6A64D, 0xA05F9DC9, 0x0747D1E3, 0x3B20BC86,
+0x6FCBDB0F, 0xF2FB7A23, 0x79D5E062, 0x5BF4E7C3, 0xD4A68A37, 0x07B4A6AD, 0x37E911F9, 0x7FE7B30A,
+0xBBC284A2, 0xD38D6136, 0x25FAB76B, 0xBEBBF534, 0x9A88F9DB, 0xE37FD52D, 0x691DD493, 0xED2F738C,
+0x89A96EA0, 0xD981246A, 0x17CC820E, 0x07E3B463, 0xC9FC2590, 0x7475A33C, 0xA5151BB4, 0x1F7E759E,
+0x9554F964, 0xD0FA01F4, 0xD31774D2, 0xEB73A9F6, 0x8C9FBCB1, 0xF83010FB, 0x1909E09F, 0xC46023EB,
+0x02AEDC62, 0xC6352CC7, 0x674BDC6D, 0xE17CD747, 0x4E25B0B3, 0x4BFF6B17, 0x12C9AAA3, 0xC2BC91CD,
+0x44BE23A2, 0x8A72A157, 0x6E0DAD1F, 0x6CA69A09, 0xB55B582E, 0x01818B31, 0x5CA5CAB6, 0x1917AB24,
+0x38F98BCD, 0x01917487, 0x05906FDD, 0x760AFCBA, 0x19671085, 0x64E3546E, 0xEC10F922, 0x3CF286CA,
+0x68E273EA, 0xF1001325, 0x5DCB3B49, 0xE9547370, 0x65D26AE6, 0xF621256C, 0x25D6D99C, 0x7862EBA0,
+0x43365DB0, 0x4DBF06C5, 0x92FCAA02, 0xB0FD58FA, 0x910E80A6, 0x93D24A67, 0x6E39B144, 0x3D46D6F6,
+0xEDC55081, 0x33CD70C7, 0xC74B6E8E, 0x91AA27B9, 0x55B3542D, 0xEBF8046A, 0xB9ABDB94, 0x97FC38A8,
+0xD5837B4D, 0x764B1809, 0xFBE2096A, 0xC23887AC, 0x2A45029B, 0xCBB7DF70, 0x674654E1, 0x0C6A06BD,
+0xB3E8853E, 0x03FCC4CE, 0x26806F2E, 0x2CEB35B0, 0x10538B03, 0x94B059B8, 0xA95E7FFA, 0x48AD3D0A,
+0xEB9091E1, 0x972E31EF, 0x5EBC6F8F, 0x947FF108, 0xCB3123FA, 0xFEE1D939, 0xF3DC5C49, 0xA92927AE,
+0xF49BB8D0, 0xAA59F730, 0x4A66D1CD, 0x030E1ADF, 0x238D5B19, 0x96F861F1, 0x915424E4, 0x9127880C,
+0x8E779839, 0x87375FCE, 0x61FB3D79, 0x96B1EE83, 0x47BF6667, 0x19E7D408, 0x7E91137F, 0x0E4AD8E8,
+0xDABD2E45, 0x9B60873F, 0xD0294A65, 0x2A38A862, 0x59DD046D, 0x9832BB79, 0xA5870DB6, 0xB3F1CC48,
+0x7E9A8132, 0xEEA2E4BC, 0xF23ED87B, 0x550E011F, 0x9620E0C0, 0xE7CF0834, 0xDEE69623, 0x6184D512,
+0xD3D55728, 0xFA7711D4, 0x9C77B0F9, 0x8A26462B, 0xB3F5C8D5, 0x1123246D, 0x78F36272, 0x940EE0F9,
+0x757BF240, 0x7EE2B6D0, 0xD40FD5A1, 0xAB4205CA, 0x96E6B758, 0xAC5F4294, 0xC9268C66, 0xB48DC535,
+0x3CF6ED4C, 0xF187EFED, 0x7A09B08D, 0x8709EFCE, 0x267B2468, 0x0015D770, 0xDF1B90BF, 0xA03DAD85,
+0x2633012E, 0xE5437125, 0x58B79AFF, 0xB929C532, 0x6D890DC9, 0x89A59AD2, 0x2BB99316, 0x41B5B0EB,
+0x7304B295, 0xB37F6708, 0x2F84A68E, 0x3637D79A, 0xDD36687B, 0x904BF7B6, 0x6A2CF453, 0x733DED54,
+0x5DF48BAA, 0xC3FCC99F, 0x8E3BE1DB, 0x61D9CF2D, 0xB7DC202B, 0xA959FF95, 0x860D0F14, 0x4008C478,
+0xD9325A51, 0x27A29D4C, 0x308FE6D4, 0x7A1AA889, 0x5BD38393, 0xCBFA5D
+
+basegraph=
+1
+
+z_c=
+320
+
+n_cb=
+21120
+
+q_m=
+4
+
+n_filler=
+688
+
+e =
+21592
+
+rv_index =
+0
+
+code_block_mode =
+1
+
+iter_max =
+20
+
+expected_iter_count =
+3
+
+op_flags =
+RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE, RTE_BBDEV_LDPC_CRC_TYPE_24B_CHECK, RTE_BBDEV_LDPC_CRC_TYPE_24B_DROP
+
+expected_status =
+OK
diff --git a/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_v7813.data b/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_v7813.data
new file mode 100644
index 000000000..c656fd3e4
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_v7813.data
@@ -0,0 +1,48 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2019 Intel Corporation
+
+op_type =
+RTE_BBDEV_OP_LDPC_DEC
+
+input0 =
+0x7F817F81, 0x7F81817F, 0x7F7F7F7F, 0x81818181, 0x7F81817F, 0x817F8181, 0x817F7F7F, 0x7F817F81,
+0x817F7F7F, 0x8181817F, 0x8181817F
+
+output0 =
+0x8C4DEB9F, 0x52
+
+basegraph=
+2
+
+z_c=
+7
+
+n_cb=
+350
+
+q_m=
+2
+
+n_filler=
+30
+
+e =
+44
+
+rv_index =
+0
+
+code_block_mode =
+1
+
+iter_max =
+8
+
+expected_iter_count =
+6
+
+op_flags =
+RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE
+
+expected_status =
+OK
diff --git a/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_v8480.data b/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_v8480.data
new file mode 100644
index 000000000..ddebf7bee
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_v8480.data
@@ -0,0 +1,74 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2019 Intel Corporation
+
+op_type =
+RTE_BBDEV_OP_LDPC_DEC
+
+input0 =
+0x81817F81, 0x817F7F7F, 0x7F817F7F, 0x7F817F7F, 0x8181817F, 0x817F817F, 0x817F817F, 0x7F818181,
+0x7F817F7F, 0x81817F81, 0x81817F7F, 0x7F7F7F81, 0x7F817F81, 0x81817F7F, 0x8181817F, 0x81818181,
+0x817F8181, 0x7F7F7F81, 0x7F818181, 0x817F7F7F, 0x7F7F7F7F, 0x7F7F7F81, 0x7F817F81, 0x817F7F81,
+0x7F7F7F81, 0x817F8181, 0x7F818181, 0x817F817F, 0x7F7F817F, 0x7F817F7F, 0x7F817F7F, 0x7F81817F,
+0x7F818181, 0x7F81817F, 0x81817F7F, 0x81817F7F, 0x7F81817F, 0x817F7F81, 0x81817F81, 0x817F817F,
+0x7F7F8181, 0x817F7F81, 0x81818181, 0x7F7F7F7F, 0x7F7F7F7F, 0x817F817F, 0x7F81817F, 0x7F7F817F,
+0x8181817F, 0x817F8181, 0x7F817F81, 0x817F8181, 0x8181817F, 0x817F8181, 0x7F817F81, 0x8181817F,
+0x7F7F8181, 0x7F7F817F, 0x7F81817F, 0x81817F7F, 0x7F7F8181, 0x8181817F, 0x7F818181, 0x81817F81,
+0x7F7F817F, 0x7F7F8181, 0x7F817F81, 0x7F81817F, 0x817F7F81, 0x81818181, 0x7F817F81, 0x7F7F7F7F,
+0x7F817F7F, 0x81817F7F, 0x817F7F7F, 0x7F818181, 0x7F7F817F, 0x81817F81, 0x8181817F, 0x7F81817F,
+0x8181817F, 0x817F8181, 0x7F817F7F, 0x817F817F, 0x81818181, 0x7F81817F, 0x817F817F, 0x81817F81,
+0x7F7F8181, 0x817F7F7F, 0x7F818181, 0x7F7F8181, 0x81817F81, 0x7F81817F, 0x7F817F81, 0x81818181,
+0x81817F81, 0x817F7F7F, 0x817F7F81, 0x7F7F817F, 0x7F818181, 0x7F817F7F, 0x817F817F, 0x7F7F817F,
+0x81817F7F, 0x7F7F817F, 0x817F8181, 0x817F8181, 0x7F81817F, 0x817F817F, 0x817F7F7F, 0x81817F81,
+0x81817F7F, 0x8181817F, 0x817F7F81, 0x81817F81, 0x7F7F817F, 0x7F7F8181, 0x7F7F817F, 0x81817F81,
+0x81817F7F, 0x817F7F7F, 0x817F7F7F, 0x7F817F81, 0x8181817F, 0x81818181, 0x7F817F7F, 0x7F7F8181,
+0x7F7F7F81, 0x7F7F7F81, 0x817F8181, 0x7F817F81, 0x81818181, 0x8181817F, 0x7F81817F, 0x7F818181,
+0x7F7F817F, 0x7F7F7F81, 0x817F7F7F, 0x817F817F, 0x7F817F81, 0x817F7F7F, 0x7F81817F, 0x7F7F7F7F,
+0x7F818181, 0x7F817F7F, 0x817F7F81, 0x7F81817F, 0x7F7F8181, 0x7F7F8181, 0x8181817F, 0x7F7F817F,
+0x7F81817F, 0x7F81817F, 0x817F8181, 0x7F7F7F7F, 0x817F7F81, 0x7F7F8181, 0x817F8181, 0x817F7F7F,
+0x7F7F817F, 0x817F8181, 0x81817F81, 0x81818181, 0x7F7F7F7F, 0x7F818181, 0x7F81817F, 0x81817F81,
+0x7F7F817F, 0x8181817F, 0x817F817F, 0x7F7F7F7F, 0x7F818181, 0x7F7F817F, 0x7F818181, 0x817F7F81,
+0x7F7F7F7F, 0x7F81817F, 0x817F7F7F, 0x81817F81, 0x7F817F81, 0x81818181, 0x7F7F8181, 0x817F817F,
+0x7F817F81, 0x81817F81, 0x7F817F7F, 0x7F7F7F81, 0x7F7F7F7F, 0x81817F81, 0x817F7F81, 0x7F7F817F,
+0x81818181, 0x7F7F7F7F, 0x817F817F, 0x817F7F81, 0x7F818181, 0x817F8181, 0x817F817F, 0x7F7F817F,
+0x7F817F81
+
+output0 =
+0x76332859, 0x417B1254, 0xEC8A8CFE, 0xE7EFCD06, 0x43C5BDA2, 0x2EACD776, 0x6CD515AC, 0x6D6E04AC,
+0xBC2D9F85, 0xD3643553, 0xD0C8DF8E, 0x235B434A, 0xD7AB7643, 0xA4D9C420, 0x372FA858, 0xF813CE10,
+0xE0C238F6, 0x07853FD4, 0xE04E40F2, 0x0EE765A9, 0x6EEAFCBC, 0xA7059C68, 0xFBBC
+
+basegraph=
+2
+
+z_c=
+72
+
+n_cb=
+3600
+
+q_m=
+2
+
+n_filler=
+0
+
+e =
+804
+
+rv_index =
+0
+
+code_block_mode =
+1
+
+iter_max =
+8
+
+expected_iter_count =
+3
+
+op_flags =
+RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE
+
+expected_status =
+OK
diff --git a/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_v8568.data b/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_v8568.data
new file mode 100644
index 000000000..0b95e4e0f
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_v8568.data
@@ -0,0 +1,255 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2019 Intel Corporation
+
+op_type =
+RTE_BBDEV_OP_LDPC_DEC
+
+input0 =
+0x7F7F7F7F, 0x7F7F7F7F, 0x8181817F, 0x7F7F8181, 0x817F7F7F, 0x7F817F81, 0x7F7F7F81, 0x81818181,
+0x7F818181, 0x817F817F, 0x81818181, 0x7F7F7F7F, 0x7F81817F, 0x7F7F8181, 0x7F7F7F81, 0x81817F7F,
+0x7F817F7F, 0x817F8181, 0x7F818181, 0x817F817F, 0x8181817F, 0x7F7F8181, 0x8181817F, 0x817F7F7F,
+0x7F7F817F, 0x7F7F817F, 0x81818181, 0x81817F81, 0x7F7F7F81, 0x7F81817F, 0x7F818181, 0x7F818181,
+0x7F817F7F, 0x817F817F, 0x817F7F7F, 0x7F818181, 0x7F81817F, 0x7F817F7F, 0x7F817F7F, 0x817F7F7F,
+0x81817F81, 0x817F817F, 0x817F817F, 0x7F817F81, 0x7F7F817F, 0x7F817F7F, 0x817F817F, 0x7F7F7F81,
+0x7F7F817F, 0x817F817F, 0x81818181, 0x7F81817F, 0x7F817F81, 0x7F7F7F7F, 0x7F818181, 0x7F7F8181,
+0x7F818181, 0x7F81817F, 0x7F81817F, 0x81817F7F, 0x817F7F81, 0x7F818181, 0x7F817F81, 0x7F818181,
+0x81817F81, 0x7F7F8181, 0x7F7F7F81, 0x7F7F817F, 0x8181817F, 0x817F8181, 0x7F817F7F, 0x7F7F7F81,
+0x7F7F7F7F, 0x817F7F7F, 0x7F817F81, 0x7F7F817F, 0x817F7F7F, 0x817F7F81, 0x817F7F81, 0x81818181,
+0x7F817F81, 0x81817F7F, 0x7F7F817F, 0x7F7F8181, 0x7F7F7F81, 0x7F7F8181, 0x817F8181, 0x7F81817F,
+0x817F817F, 0x7F817F81, 0x7F7F8181, 0x7F817F81, 0x7F7F817F, 0x7F817F81, 0x81817F7F, 0x817F817F,
+0x81818181, 0x7F7F7F81, 0x8181817F, 0x81818181, 0x7F7F7F81, 0x817F8181, 0x817F8181, 0x7F81817F,
+0x7F7F817F, 0x817F817F, 0x7F7F817F, 0x7F81817F, 0x7F817F81, 0x7F7F7F81, 0x81818181, 0x7F817F81,
+0x7F817F7F, 0x7F7F7F81, 0x81817F81, 0x7F7F8181, 0x7F7F7F7F, 0x817F8181, 0x7F7F8181, 0x81818181,
+0x81818181, 0x7F7F7F7F, 0x817F817F, 0x7F7F7F7F, 0x81817F7F, 0x7F7F8181, 0x7F81817F, 0x817F7F81,
+0x81817F7F, 0x7F7F8181, 0x817F8181, 0x7F817F7F, 0x81817F7F, 0x7F7F8181, 0x817F7F81, 0x7F817F81,
+0x7F817F7F, 0x7F7F7F7F, 0x8181817F, 0x817F817F, 0x7F818181, 0x817F7F81, 0x817F817F, 0x8181817F,
+0x817F7F81, 0x7F7F7F7F, 0x7F817F81, 0x81818181, 0x817F7F81, 0x81817F81, 0x817F7F81, 0x7F817F7F,
+0x817F8181, 0x7F7F7F81, 0x7F817F81, 0x8181817F, 0x7F817F7F, 0x81817F81, 0x7F7F7F81, 0x7F818181,
+0x7F7F7F81, 0x7F817F81, 0x81818181, 0x81817F81, 0x81818181, 0x7F7F7F7F, 0x817F817F, 0x7F818181,
+0x817F817F, 0x81817F7F, 0x81817F81, 0x817F7F7F, 0x7F818181, 0x8181817F, 0x81818181, 0x81818181,
+0x8181817F, 0x7F7F817F, 0x7F7F817F, 0x7F7F7F7F, 0x817F7F7F, 0x7F81817F, 0x817F7F81, 0x7F818181,
+0x7F817F81, 0x7F817F7F, 0x81818181, 0x7F7F7F7F, 0x7F7F7F7F, 0x7F81817F, 0x7F7F817F, 0x817F8181,
+0x817F817F, 0x81817F81, 0x7F7F7F81, 0x7F818181, 0x7F7F8181, 0x7F81817F, 0x7F81817F, 0x81817F81,
+0x7F7F7F81, 0x8181817F, 0x7F7F817F, 0x817F817F, 0x7F817F7F, 0x8181817F, 0x81817F81, 0x7F7F7F81,
+0x81818181, 0x7F7F8181, 0x817F7F7F, 0x817F8181, 0x7F81817F, 0x7F7F817F, 0x7F81817F, 0x817F7F81,
+0x7F817F81, 0x7F7F7F7F, 0x7F7F7F81, 0x817F7F81, 0x817F8181, 0x7F7F8181, 0x81818181, 0x817F817F,
+0x817F7F7F, 0x7F7F8181, 0x8181817F, 0x7F7F817F, 0x7F7F7F81, 0x7F818181, 0x7F7F817F, 0x81818181,
+0x817F8181, 0x7F817F81, 0x7F7F7F81, 0x7F817F7F, 0x81817F81, 0x7F81817F, 0x817F7F7F, 0x7F7F8181,
+0x817F7F7F, 0x7F7F817F, 0x7F818181, 0x817F7F81, 0x81817F7F, 0x7F81817F, 0x7F818181, 0x81818181,
+0x81817F7F, 0x7F7F7F7F, 0x81817F81, 0x7F817F81, 0x817F8181, 0x7F818181, 0x7F7F7F81, 0x81817F81,
+0x7F818181, 0x7F817F7F, 0x8181817F, 0x8181817F, 0x7F81817F, 0x8181817F, 0x7F7F817F, 0x81817F81,
+0x7F7F817F, 0x7F7F8181, 0x817F8181, 0x817F7F7F, 0x81817F81, 0x81818181, 0x7F818181, 0x81818181,
+0x7F81817F, 0x8181817F, 0x817F8181, 0x81818181, 0x81818181, 0x7F7F7F7F, 0x7F7F7F81, 0x817F817F,
+0x7F7F7F7F, 0x817F7F7F, 0x817F8181, 0x7F817F7F, 0x817F8181, 0x81817F81, 0x817F817F, 0x817F817F,
+0x817F7F7F, 0x7F817F81, 0x7F817F81, 0x7F7F7F7F, 0x7F817F7F, 0x817F7F81, 0x7F7F8181, 0x81818181,
+0x8181817F, 0x81817F7F, 0x817F8181, 0x7F817F7F, 0x7F817F7F, 0x81817F81, 0x7F7F7F81, 0x7F81817F,
+0x7F817F81, 0x81818181, 0x7F7F8181, 0x81818181, 0x7F7F817F, 0x81817F7F, 0x817F7F7F, 0x81818181,
+0x7F818181, 0x817F7F81, 0x7F817F7F, 0x7F7F7F81, 0x81817F81, 0x817F7F7F, 0x817F817F, 0x7F7F8181,
+0x817F817F, 0x7F7F817F, 0x7F817F7F, 0x7F81817F, 0x81817F7F, 0x7F817F7F, 0x817F7F81, 0x7F7F8181,
+0x8181817F, 0x7F817F81, 0x7F818181, 0x7F7F817F, 0x7F818181, 0x7F7F817F, 0x81818181, 0x7F7F7F81,
+0x7F7F7F7F, 0x7F81817F, 0x817F7F7F, 0x7F7F7F81, 0x7F7F8181, 0x817F8181, 0x7F7F7F7F, 0x81818181,
+0x7F7F8181, 0x8181817F, 0x7F81817F, 0x81817F81, 0x8181817F, 0x81817F81, 0x7F7F7F7F, 0x7F7F8181,
+0x7F7F7F81, 0x7F817F81, 0x8181817F, 0x7F7F817F, 0x81817F81, 0x817F7F81, 0x81818181, 0x8181817F,
+0x817F7F81, 0x7F817F7F, 0x817F8181, 0x817F817F, 0x7F818181, 0x817F817F, 0x7F81817F, 0x817F8181,
+0x8181817F, 0x81817F7F, 0x817F7F81, 0x81817F7F, 0x817F7F7F, 0x817F7F7F, 0x7F7F7F7F, 0x817F8181,
+0x7F7F7F81, 0x7F7F8181, 0x7F7F8181, 0x7F817F7F, 0x8181817F, 0x817F8181, 0x817F817F, 0x81818181,
+0x81817F7F, 0x817F7F81, 0x7F81817F, 0x81818181, 0x81818181, 0x7F817F7F, 0x7F81817F, 0x7F7F7F81,
+0x7F7F7F81, 0x7F817F81, 0x7F818181, 0x817F7F7F, 0x7F7F817F, 0x8181817F, 0x7F817F81, 0x7F817F81,
+0x7F817F81, 0x81818181, 0x817F8181, 0x7F817F81, 0x817F7F81, 0x7F7F8181, 0x7F7F817F, 0x8181817F,
+0x81817F81, 0x81817F7F, 0x7F7F8181, 0x81817F81, 0x817F7F81, 0x817F8181, 0x7F818181, 0x817F7F7F,
+0x817F817F, 0x817F8181, 0x7F7F817F, 0x8181817F, 0x7F817F7F, 0x81817F81, 0x7F817F81, 0x8181817F,
+0x817F8181, 0x7F7F817F, 0x817F7F7F, 0x7F818181, 0x8181817F, 0x7F7F7F81, 0x7F817F7F, 0x7F818181,
+0x7F7F7F7F, 0x7F817F81, 0x817F7F81, 0x817F7F7F, 0x81817F81, 0x81817F81, 0x7F7F817F, 0x7F7F8181,
+0x817F7F7F, 0x817F8181, 0x817F817F, 0x7F817F81, 0x817F817F, 0x7F817F81, 0x817F817F, 0x7F818181,
+0x7F817F7F, 0x817F7F7F, 0x7F7F7F81, 0x7F81817F, 0x7F81817F, 0x7F81817F, 0x7F817F7F, 0x81818181,
+0x7F818181, 0x817F7F7F, 0x817F7F81, 0x81818181, 0x81817F81, 0x817F8181, 0x7F7F7F81, 0x7F81817F,
+0x7F818181, 0x817F817F, 0x817F7F7F, 0x7F817F7F, 0x817F8181, 0x7F7F8181, 0x81818181, 0x817F7F7F,
+0x7F7F8181, 0x817F7F7F, 0x7F818181, 0x7F817F7F, 0x817F817F, 0x7F817F7F, 0x81817F81, 0x7F81817F,
+0x817F7F81, 0x817F7F81, 0x7F7F8181, 0x817F7F7F, 0x7F7F7F7F, 0x7F817F81, 0x7F817F7F, 0x7F818181,
+0x7F7F8181, 0x7F7F817F, 0x7F7F817F, 0x81817F7F, 0x817F7F81, 0x7F818181, 0x7F7F7F7F, 0x817F817F,
+0x817F7F7F, 0x7F818181, 0x81817F81, 0x817F817F, 0x81818181, 0x817F7F81, 0x817F7F7F, 0x7F7F817F,
+0x7F7F8181, 0x817F817F, 0x8181817F, 0x7F7F7F81, 0x7F817F81, 0x81817F7F, 0x8181817F, 0x817F8181,
+0x817F817F, 0x81818181, 0x7F7F817F, 0x817F8181, 0x7F7F817F, 0x7F818181, 0x7F817F7F, 0x817F7F7F,
+0x817F817F, 0x817F7F7F, 0x7F818181, 0x8181817F, 0x7F818181, 0x7F7F8181, 0x8181817F, 0x7F817F7F,
+0x7F7F7F7F, 0x7F81817F, 0x7F817F81, 0x817F7F7F, 0x817F7F81, 0x8181817F, 0x81818181, 0x817F7F81,
+0x7F81817F, 0x7F817F7F, 0x7F817F7F, 0x81818181, 0x81817F7F, 0x7F81817F, 0x81817F7F, 0x81818181,
+0x7F7F7F81, 0x817F817F, 0x7F7F8181, 0x7F817F81, 0x817F817F, 0x817F8181, 0x7F7F7F7F, 0x7F7F817F,
+0x7F7F7F81, 0x7F818181, 0x7F817F81, 0x817F817F, 0x7F817F7F, 0x8181817F, 0x7F817F81, 0x817F8181,
+0x817F7F81, 0x7F7F7F7F, 0x7F7F817F, 0x81817F7F, 0x81817F7F, 0x81817F81, 0x81817F81, 0x8181817F,
+0x817F8181, 0x7F817F7F, 0x7F7F8181, 0x817F817F, 0x8181817F, 0x7F81817F, 0x7F818181, 0x81817F81,
+0x8181817F, 0x7F7F7F81, 0x7F7F7F81, 0x81817F81, 0x7F7F8181, 0x7F818181, 0x817F817F, 0x7F7F7F81,
+0x7F818181, 0x7F817F81, 0x817F8181, 0x817F7F7F, 0x7F817F81, 0x817F7F7F, 0x8181817F, 0x81817F7F,
+0x7F818181, 0x7F7F817F, 0x7F7F8181, 0x7F7F7F81, 0x7F7F7F7F, 0x817F817F, 0x817F7F81, 0x8181817F,
+0x7F818181, 0x7F7F7F81, 0x7F7F7F7F, 0x81817F7F, 0x7F7F817F, 0x8181817F, 0x7F817F7F, 0x7F817F7F,
+0x7F7F7F81, 0x817F817F, 0x8181817F, 0x7F7F7F81, 0x817F8181, 0x7F818181, 0x7F817F81, 0x7F7F7F7F,
+0x7F818181, 0x7F7F7F7F, 0x81817F81, 0x7F818181, 0x817F8181, 0x81817F81, 0x817F7F81, 0x7F7F8181,
+0x7F7F7F81, 0x817F817F, 0x7F817F81, 0x7F818181, 0x7F817F81, 0x81818181, 0x81817F81, 0x7F817F81,
+0x7F7F7F81, 0x7F817F81, 0x81818181, 0x81817F81, 0x817F817F, 0x7F7F8181, 0x817F7F7F, 0x81817F81,
+0x7F7F7F7F, 0x817F7F81, 0x817F817F, 0x7F817F7F, 0x7F81817F, 0x81817F81, 0x81818181, 0x7F81817F,
+0x81817F81, 0x81817F81, 0x81817F7F, 0x817F817F, 0x817F7F81, 0x81817F7F, 0x817F7F81, 0x8181817F,
+0x7F818181, 0x7F817F7F, 0x7F7F8181, 0x8181817F, 0x7F817F81, 0x7F81817F, 0x7F817F7F, 0x7F817F81,
+0x7F818181, 0x8181817F, 0x817F817F, 0x7F7F7F81, 0x81817F7F, 0x817F7F81, 0x8181817F, 0x7F818181,
+0x7F7F8181, 0x7F7F7F7F, 0x7F7F7F81, 0x81817F81, 0x817F7F81, 0x81818181, 0x817F8181, 0x81817F7F,
+0x7F7F817F, 0x81817F7F, 0x7F818181, 0x7F817F81, 0x81817F7F, 0x81817F81, 0x817F8181, 0x8181817F,
+0x81817F7F, 0x7F818181, 0x7F7F817F, 0x817F8181, 0x7F7F8181, 0x8181817F, 0x7F817F7F, 0x7F7F817F,
+0x817F8181, 0x8181817F, 0x7F7F8181, 0x7F817F7F, 0x8181817F, 0x7F817F7F, 0x817F7F81, 0x81817F7F,
+0x8181817F, 0x7F7F7F7F, 0x7F7F817F, 0x7F81817F, 0x7F7F7F81, 0x7F7F7F7F, 0x7F7F817F, 0x817F7F81,
+0x81818181, 0x7F7F8181, 0x7F7F7F81, 0x81817F7F, 0x7F817F81, 0x817F7F81, 0x81817F81, 0x81817F7F,
+0x7F81817F, 0x7F817F7F, 0x81817F81, 0x7F81817F, 0x7F81817F, 0x817F8181, 0x81818181, 0x7F817F81,
+0x817F817F, 0x7F7F7F7F, 0x8181817F, 0x817F817F, 0x7F81817F, 0x817F817F, 0x7F7F817F, 0x7F818181,
+0x7F7F8181, 0x7F817F7F, 0x817F817F, 0x8181817F, 0x81818181, 0x8181817F, 0x817F8181, 0x817F8181,
+0x7F818181, 0x8181817F, 0x817F817F, 0x817F8181, 0x7F817F7F, 0x7F81817F, 0x7F817F81, 0x8181817F,
+0x7F817F81, 0x7F81817F, 0x7F817F81, 0x817F7F7F, 0x81817F81, 0x81818181, 0x817F817F, 0x817F7F7F,
+0x817F817F, 0x817F8181, 0x81817F7F, 0x7F817F7F, 0x7F818181, 0x817F7F7F, 0x7F81817F, 0x81817F7F,
+0x817F817F, 0x81817F7F, 0x7F818181, 0x817F7F81, 0x817F8181, 0x81817F81, 0x817F7F7F, 0x81818181,
+0x817F8181, 0x81817F81, 0x7F7F7F81, 0x7F818181, 0x81817F7F, 0x7F7F817F, 0x817F7F7F, 0x8181817F,
+0x7F7F8181, 0x7F7F7F7F, 0x7F7F8181, 0x817F817F, 0x7F81817F, 0x817F8181, 0x7F81817F, 0x81817F81,
+0x7F817F7F, 0x81817F81, 0x8181817F, 0x8181817F, 0x81817F7F, 0x817F817F, 0x7F818181, 0x81817F7F,
+0x817F7F7F, 0x8181817F, 0x7F817F7F, 0x7F81817F, 0x7F81817F, 0x817F7F7F, 0x81817F7F, 0x7F817F7F,
+0x7F818181, 0x81817F81, 0x7F81817F, 0x81817F7F, 0x81817F7F, 0x81817F81, 0x7F7F8181, 0x817F7F7F,
+0x817F7F7F, 0x7F817F81, 0x7F7F7F81, 0x817F7F81, 0x7F7F817F, 0x7F7F7F7F, 0x7F7F7F81, 0x7F7F8181,
+0x817F817F, 0x7F7F817F, 0x7F81817F, 0x817F7F7F, 0x817F817F, 0x7F81817F, 0x81818181, 0x81817F7F,
+0x81817F7F, 0x81817F7F, 0x817F817F, 0x817F7F81, 0x81817F7F, 0x7F7F817F, 0x81818181, 0x817F817F,
+0x7F7F7F7F, 0x7F7F7F7F, 0x81817F81, 0x7F7F7F81, 0x817F7F81, 0x7F817F81, 0x7F817F81, 0x817F8181,
+0x7F7F817F, 0x817F7F7F, 0x7F817F7F, 0x81817F81, 0x81818181, 0x817F7F81, 0x7F7F817F, 0x7F7F8181,
+0x8181817F, 0x81817F7F, 0x7F817F7F, 0x7F81817F, 0x81817F81, 0x81817F7F, 0x81818181, 0x81817F7F,
+0x8181817F, 0x817F7F81, 0x8181817F, 0x7F7F7F81, 0x817F817F, 0x8181817F, 0x7F7F7F81, 0x7F7F7F7F,
+0x7F7F7F7F, 0x7F818181, 0x81817F81, 0x81817F81, 0x81818181, 0x7F7F7F81, 0x817F7F7F, 0x817F7F81,
+0x7F7F7F81, 0x81817F7F, 0x8181817F, 0x7F7F817F, 0x7F81817F, 0x8181817F, 0x7F817F81, 0x817F8181,
+0x7F7F8181, 0x8181817F, 0x7F818181, 0x817F8181, 0x81817F81, 0x7F817F7F, 0x7F817F7F, 0x817F7F7F,
+0x7F818181, 0x7F817F7F, 0x7F7F8181, 0x7F7F7F81, 0x817F7F81, 0x7F81817F, 0x81817F7F, 0x81818181,
+0x81817F81, 0x8181817F, 0x817F7F7F, 0x817F7F7F, 0x817F7F81, 0x7F817F7F, 0x8181817F, 0x81817F81,
+0x7F7F7F7F, 0x817F7F7F, 0x817F7F81, 0x817F7F7F, 0x817F7F81, 0x7F7F7F7F, 0x817F7F7F, 0x817F7F7F,
+0x81818181, 0x817F817F, 0x817F7F81, 0x81817F81, 0x817F7F81, 0x817F8181, 0x7F81817F, 0x7F817F81,
+0x7F7F7F7F, 0x8181817F, 0x7F818181, 0x7F7F817F, 0x7F817F81, 0x7F7F7F7F, 0x7F7F8181, 0x7F7F817F,
+0x7F817F7F, 0x7F7F7F7F, 0x81817F7F, 0x7F7F7F81, 0x7F7F7F7F, 0x817F7F7F, 0x817F817F, 0x81817F81,
+0x81817F7F, 0x817F7F7F, 0x7F817F7F, 0x7F7F8181, 0x817F7F7F, 0x7F7F7F7F, 0x817F8181, 0x7F817F7F,
+0x7F7F7F81, 0x7F817F81, 0x817F817F, 0x7F7F817F, 0x7F81817F, 0x81818181, 0x817F8181, 0x7F7F8181,
+0x7F817F7F, 0x7F817F81, 0x81817F81, 0x8181817F, 0x81818181, 0x7F81817F, 0x7F817F81, 0x7F7F817F,
+0x817F7F81, 0x817F7F7F, 0x817F7F81, 0x817F7F81, 0x81818181, 0x817F7F7F, 0x8181817F, 0x817F7F81,
+0x81817F7F, 0x7F7F8181, 0x81817F81, 0x7F818181, 0x7F817F7F, 0x817F7F7F, 0x7F81817F, 0x7F817F81,
+0x7F817F81, 0x817F817F, 0x81818181, 0x8181817F, 0x817F817F, 0x7F7F8181, 0x7F817F7F, 0x7F818181,
+0x7F7F817F, 0x81817F81, 0x81817F7F, 0x7F7F7F81, 0x81817F81, 0x81817F81, 0x817F8181, 0x7F7F8181,
+0x7F7F817F, 0x817F7F81, 0x817F817F, 0x7F81817F, 0x817F817F, 0x81817F81, 0x81817F81, 0x7F7F7F7F,
+0x81818181, 0x817F7F7F, 0x7F7F8181, 0x7F7F8181, 0x7F81817F, 0x817F7F7F, 0x817F7F7F, 0x817F8181,
+0x81818181, 0x81817F7F, 0x7F817F7F, 0x7F817F7F, 0x7F7F8181, 0x817F7F7F, 0x817F7F81, 0x817F8181,
+0x7F7F7F81, 0x7F817F7F, 0x7F81817F, 0x7F817F81, 0x7F7F8181, 0x7F817F81, 0x7F7F7F7F, 0x7F7F7F7F,
+0x81818181, 0x7F7F7F7F, 0x7F7F8181, 0x817F8181, 0x7F7F8181, 0x7F818181, 0x81817F81, 0x8181817F,
+0x7F817F81, 0x81817F7F, 0x817F817F, 0x7F817F7F, 0x817F817F, 0x7F817F7F, 0x7F81817F, 0x7F7F7F7F,
+0x817F7F81, 0x7F7F7F81, 0x81817F81, 0x7F7F817F, 0x7F7F7F7F, 0x7F7F7F7F, 0x7F7F7F7F, 0x817F817F,
+0x817F7F7F, 0x7F7F7F81, 0x817F7F7F, 0x7F81817F, 0x7F817F81, 0x7F817F81, 0x7F81817F, 0x817F7F7F,
+0x7F818181, 0x81818181, 0x7F7F7F81, 0x7F7F7F81, 0x817F7F81, 0x8181817F, 0x7F81817F, 0x7F81817F,
+0x817F7F81, 0x81818181, 0x817F817F, 0x817F7F81, 0x817F8181, 0x81817F81, 0x81818181, 0x7F7F7F7F,
+0x7F7F817F, 0x7F817F81, 0x7F7F817F, 0x7F7F8181, 0x817F8181, 0x7F7F7F7F, 0x81817F7F, 0x7F818181,
+0x817F7F7F, 0x7F818181, 0x8181817F, 0x81818181, 0x81817F7F, 0x7F7F7F81, 0x817F7F7F, 0x8181817F,
+0x817F817F, 0x7F817F7F, 0x8181817F, 0x81817F81, 0x7F817F81, 0x7F7F8181, 0x81817F81, 0x817F8181,
+0x7F7F7F7F, 0x817F8181, 0x817F7F7F, 0x7F818181, 0x8181817F, 0x817F8181, 0x7F818181, 0x7F818181,
+0x7F817F7F, 0x7F7F8181, 0x7F817F7F, 0x817F7F7F, 0x7F817F81, 0x81818181, 0x817F817F, 0x7F7F7F81,
+0x81818181, 0x7F7F7F81, 0x7F81817F, 0x7F7F817F, 0x81817F81, 0x7F7F7F7F, 0x7F7F7F7F, 0x7F7F8181,
+0x817F8181, 0x81817F81, 0x81817F7F, 0x817F7F81, 0x7F81817F, 0x7F817F7F, 0x7F81817F, 0x7F7F817F,
+0x7F7F817F, 0x817F7F81, 0x817F7F81, 0x817F817F, 0x7F7F8181, 0x81818181, 0x7F7F7F81, 0x7F7F7F81,
+0x817F817F, 0x7F817F7F, 0x7F7F8181, 0x7F81817F, 0x7F7F8181, 0x8181817F, 0x817F8181, 0x81817F7F,
+0x817F8181, 0x81817F81, 0x7F7F7F7F, 0x817F7F81, 0x7F817F7F, 0x817F7F7F, 0x81817F81, 0x7F7F7F81,
+0x7F7F817F, 0x7F7F817F, 0x817F817F, 0x7F817F7F, 0x7F817F7F, 0x7F817F7F, 0x7F817F7F, 0x7F817F7F,
+0x7F7F7F81, 0x7F7F817F, 0x7F7F7F81, 0x81817F7F, 0x817F817F, 0x81818181, 0x81817F7F, 0x7F7F7F7F,
+0x817F8181, 0x817F817F, 0x7F81817F, 0x7F81817F, 0x7F7F817F, 0x817F7F7F, 0x817F7F81, 0x81817F81,
+0x7F7F817F, 0x817F817F, 0x7F817F81, 0x7F7F817F, 0x7F7F817F, 0x81818181, 0x8181817F, 0x7F7F7F7F,
+0x7F817F81, 0x817F817F, 0x7F7F7F7F, 0x7F7F8181, 0x7F81817F, 0x7F817F81, 0x817F7F81, 0x817F817F,
+0x7F7F7F7F, 0x8181817F, 0x81817F7F, 0x817F8181, 0x817F7F81, 0x7F81817F, 0x7F7F7F81, 0x817F7F81,
+0x7F817F81, 0x81817F81, 0x817F7F7F, 0x81818181, 0x81818181, 0x7F81817F, 0x817F817F, 0x7F818181,
+0x7F7F7F7F, 0x7F81817F, 0x7F817F81, 0x817F8181, 0x817F7F7F, 0x7F818181, 0x81818181, 0x8181817F,
+0x817F7F7F, 0x7F7F817F, 0x81817F81, 0x7F7F7F81, 0x8181817F, 0x81818181, 0x7F817F81, 0x7F7F817F,
+0x817F817F, 0x7F7F8181, 0x817F7F7F, 0x7F817F81, 0x817F817F, 0x7F7F7F81, 0x7F7F7F81, 0x7F81817F,
+0x7F7F817F, 0x817F817F, 0x817F7F81, 0x7F7F817F, 0x817F7F7F, 0x81817F81, 0x81817F81, 0x7F7F7F81,
+0x7F7F7F81, 0x7F818181, 0x7F81817F, 0x7F7F7F7F, 0x7F7F8181, 0x817F8181, 0x7F7F817F, 0x7F818181,
+0x7F817F81, 0x81817F7F, 0x7F818181, 0x817F7F81, 0x7F81817F, 0x817F7F81, 0x7F818181, 0x81817F7F,
+0x7F818181, 0x817F817F, 0x7F7F7F7F, 0x7F818181, 0x81817F81, 0x7F7F7F81, 0x81818181, 0x7F818181,
+0x7F7F7F7F, 0x7F817F7F, 0x7F817F81, 0x81817F81, 0x817F7F81, 0x817F7F81, 0x817F7F7F, 0x81817F7F,
+0x7F818181, 0x7F817F81, 0x7F7F817F, 0x81817F81, 0x7F817F81, 0x8181817F, 0x81817F7F, 0x7F7F7F7F,
+0x7F7F817F, 0x7F7F7F81, 0x81817F81, 0x817F7F81, 0x7F7F7F7F, 0x7F7F7F81, 0x7F7F8181, 0x81818181,
+0x7F817F7F, 0x7F7F7F81, 0x8181817F, 0x7F7F7F7F, 0x7F7F7F81, 0x817F817F, 0x81817F81, 0x7F7F7F7F,
+0x817F8181, 0x7F7F7F81, 0x7F7F7F81, 0x7F7F8181, 0x817F7F7F, 0x81818181, 0x7F7F8181, 0x7F7F7F81,
+0x7F817F7F, 0x81817F7F, 0x81817F7F, 0x7F81817F, 0x7F818181, 0x817F7F7F, 0x7F81817F, 0x7F7F817F,
+0x81818181, 0x817F817F, 0x7F817F7F, 0x8181817F, 0x81818181, 0x817F7F81, 0x7F817F81, 0x81818181,
+0x7F817F7F, 0x817F7F81, 0x8181817F, 0x7F81817F, 0x7F817F7F, 0x817F8181, 0x817F817F, 0x817F7F81,
+0x7F7F7F7F, 0x7F817F7F, 0x817F8181, 0x7F818181, 0x817F7F81, 0x817F817F, 0x8181817F, 0x7F817F7F,
+0x7F7F7F7F, 0x7F7F817F, 0x7F817F7F, 0x81818181, 0x7F7F7F81, 0x7F818181, 0x7F818181, 0x817F7F81,
+0x7F817F7F, 0x7F7F7F81, 0x7F7F8181, 0x7F7F7F81, 0x7F7F7F7F, 0x8181817F, 0x8181817F, 0x7F7F817F,
+0x7F7F817F, 0x8181817F, 0x817F7F81, 0x7F817F81, 0x7F818181, 0x7F818181, 0x7F7F7F81, 0x817F817F,
+0x8181817F, 0x817F7F7F, 0x81818181, 0x7F81817F, 0x81817F81, 0x7F81817F, 0x81818181, 0x817F7F81,
+0x81818181, 0x7F7F7F7F, 0x7F7F7F7F, 0x817F8181, 0x81818181, 0x7F7F817F, 0x8181817F, 0x8181817F,
+0x7F817F81, 0x817F7F7F, 0x8181817F, 0x817F8181, 0x7F7F8181, 0x7F818181, 0x7F7F7F81, 0x817F7F7F,
+0x817F817F, 0x81818181, 0x7F817F7F, 0x817F8181, 0x8181817F, 0x81817F7F, 0x81817F81, 0x7F7F7F81,
+0x7F817F7F, 0x7F818181, 0x8181817F, 0x7F7F817F, 0x7F817F81, 0x7F7F8181, 0x7F7F8181, 0x8181817F,
+0x81817F7F, 0x7F81817F, 0x81817F7F, 0x7F7F7F81, 0x7F81817F, 0x7F817F7F, 0x81818181, 0x7F7F7F81,
+0x7F81817F, 0x7F81817F, 0x7F7F817F, 0x7F818181, 0x7F7F7F81, 0x81818181, 0x7F818181, 0x7F81817F,
+0x81817F81, 0x817F7F81, 0x817F7F81, 0x81817F81, 0x81818181, 0x7F817F7F, 0x817F7F7F, 0x7F7F7F81,
+0x817F817F, 0x7F7F7F7F, 0x81817F7F, 0x81817F7F, 0x8181817F, 0x7F818181, 0x81818181, 0x817F817F,
+0x817F7F81, 0x7F7F8181, 0x81817F7F, 0x817F7F81, 0x817F7F7F, 0x7F7F817F, 0x7F7F7F7F, 0x7F818181,
+0x7F817F81, 0x817F7F7F, 0x7F7F8181, 0x81818181, 0x7F7F817F, 0x7F817F81, 0x817F7F7F, 0x817F7F7F,
+0x7F817F81, 0x7F817F81, 0x81817F81, 0x817F8181, 0x7F7F8181, 0x81818181, 0x81818181, 0x7F818181,
+0x817F7F81, 0x7F7F817F, 0x7F7F817F, 0x7F81817F, 0x7F7F7F81, 0x817F7F81, 0x81817F81, 0x7F7F7F7F,
+0x7F817F7F, 0x81817F7F, 0x7F81817F, 0x817F8181, 0x817F8181, 0x81818181, 0x7F7F8181, 0x7F7F7F81,
+0x817F7F7F, 0x7F7F7F81, 0x81818181, 0x81817F81, 0x8181817F, 0x817F7F7F, 0x8181817F, 0x7F7F8181,
+0x81818181, 0x7F817F7F, 0x7F7F7F7F, 0x7F7F8181, 0x81818181, 0x7F7F7F7F, 0x817F7F81, 0x817F7F7F,
+0x817F817F, 0x7F817F7F, 0x81817F81, 0x7F7F8181, 0x7F7F817F, 0x817F817F, 0x7F81817F, 0x7F817F81,
+0x7F817F7F, 0x817F8181, 0x817F7F81, 0x7F81817F, 0x817F7F81, 0x817F7F81, 0x81818181, 0x7F818181,
+0x81817F7F, 0x817F8181, 0x81817F81, 0x7F817F81, 0x81818181, 0x7F818181, 0x7F7F817F, 0x817F7F7F,
+0x817F7F81, 0x817F7F81, 0x81817F81, 0x7F7F817F, 0x817F7F7F, 0x81817F81, 0x817F817F, 0x7F7F8181,
+0x817F7F81, 0x817F7F7F, 0x7F7F7F7F, 0x817F817F, 0x7F818181, 0x817F817F, 0x817F817F, 0x817F7F7F,
+0x817F8181, 0x7F818181, 0x7F7F8181, 0x817F8181, 0x817F8181, 0x817F7F81, 0x7F7F7F7F, 0x7F7F817F,
+0x7F7F7F81, 0x7F7F7F7F, 0x81817F81, 0x81817F81, 0x81817F7F, 0x81818181, 0x817F817F, 0x7F7F7F7F,
+0x7F818181, 0x7F818181, 0x81817F81, 0x7F7F817F, 0x7F7F7F81, 0x7F7F7F81, 0x7F817F7F, 0x8181817F,
+0x817F8181, 0x7F7F7F81, 0x7F7F817F, 0x817F817F, 0x7F817F81, 0x817F817F, 0x7F7F7F81, 0x7F817F7F,
+0x817F817F, 0x817F8181, 0x817F8181, 0x7F7F817F, 0x7F81817F, 0x817F8181, 0x817F817F, 0x81818181,
+0x7F818181, 0x7F817F7F, 0x7F7F7F81, 0x81817F81, 0x7F818181, 0x7F7F817F, 0x8181817F, 0x7F817F81,
+0x817F7F7F, 0x817F7F81, 0x81817F7F, 0x7F7F817F, 0x7F81817F, 0x817F817F, 0x7F7F817F, 0x7F7F8181,
+0x7F7F7F81, 0x7F7F8181, 0x817F8181, 0x817F817F, 0x81817F7F, 0x7F817F7F, 0x81817F7F, 0x7F7F8181,
+0x8181817F, 0x817F7F7F, 0x7F7F7F81, 0x7F7F8181, 0x8181817F, 0x7F7F7F81, 0x7F7F817F, 0x7F7F7F81,
+0x7F817F81, 0x81817F7F, 0x817F817F, 0x7F7F817F, 0x7F817F81, 0x7F7F7F7F, 0x817F7F81, 0x8181817F,
+0x81817F81, 0x7F7F817F, 0x7F7F817F, 0x81817F7F, 0x7F7F8181, 0x7F7F817F, 0x8181817F, 0x81818181,
+0x817F7F81, 0x7F818181, 0x81818181, 0x81818181, 0x817F817F, 0x817F8181, 0x7F7F7F81, 0x7F7F7F7F,
+0x7F7F8181, 0x7F81817F, 0x817F8181, 0x7F817F7F, 0x7F7F7F7F, 0x8181817F, 0x7F817F81, 0x7F81817F,
+0x7F7F8181, 0x7F817F7F, 0x7F7F7F81, 0x7F817F7F, 0x817F8181, 0x7F817F81, 0x7F7F7F7F, 0x7F817F7F,
+0x7F7F8181, 0x817F817F, 0x7F81817F, 0x7F7F817F, 0x7F7F817F, 0x7F81817F, 0x7F7F7F81, 0x7F7F7F81
+
+output0 =
+0xB6D49CE2, 0x3E96B93F, 0xF02009F6, 0x2DF3D30D, 0x3B06C160, 0x646C69CC, 0x54439F0F, 0xCE0D12C3,
+0x66E8BFD5, 0xA9D22B0C, 0xA9E7343B, 0x2B6EEF01, 0x6B6966C0, 0xB98FE144, 0xC3BF7BAD, 0x1B40DF1C,
+0x973B12DC, 0x46E25E90, 0xB324ACCA, 0x5F0ED2B9, 0xBB4F
+
+basegraph=
+2
+
+z_c=
+72
+
+n_cb=
+3600
+
+q_m=
+2
+
+n_filler=
+64
+
+e =
+6624
+
+rv_index =
+0
+
+code_block_mode =
+1
+
+iter_max =
+20
+
+expected_iter_count =
+6
+
+op_flags =
+RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE
+
+expected_status =
+OK
diff --git a/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_v9503.data b/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_v9503.data
new file mode 100644
index 000000000..7699ae315
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_dec_v9503.data
@@ -0,0 +1,1215 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2019 Intel Corporation
+
+op_type =
+RTE_BBDEV_OP_LDPC_DEC
+
+input0 =
+0x81818181, 0x7F818181, 0x7F81817F, 0x7F817F7F, 0x817F8181, 0x7F7F817F, 0x7F81817F, 0x7F818181,
+0x8181817F, 0x7F7F7F7F, 0x7F81817F, 0x7F7F817F, 0x8181817F, 0x7F817F7F, 0x7F817F7F, 0x817F7F81,
+0x7F7F8181, 0x817F7F7F, 0x7F7F7F81, 0x8181817F, 0x817F7F81, 0x7F7F8181, 0x7F818181, 0x7F7F817F,
+0x817F817F, 0x7F818181, 0x8181817F, 0x7F817F7F, 0x817F7F81, 0x7F7F817F, 0x7F81817F, 0x817F817F,
+0x7F818181, 0x817F7F7F, 0x817F7F7F, 0x7F817F81, 0x7F7F8181, 0x7F7F7F81, 0x7F81817F, 0x7F7F817F,
+0x7F7F8181, 0x7F817F7F, 0x817F7F81, 0x817F7F7F, 0x7F7F7F7F, 0x7F7F8181, 0x7F817F81, 0x81817F7F,
+0x7F817F81, 0x81817F81, 0x7F81817F, 0x817F7F7F, 0x7F7F817F, 0x7F817F7F, 0x817F817F, 0x81817F81,
+0x7F817F81, 0x7F7F817F, 0x7F818181, 0x81817F7F, 0x7F7F817F, 0x7F7F817F, 0x8181817F, 0x7F817F81,
+0x7F7F8181, 0x7F7F7F81, 0x81817F7F, 0x817F8181, 0x81817F81, 0x817F8181, 0x7F817F81, 0x7F7F8181,
+0x81817F7F, 0x7F7F7F7F, 0x81818181, 0x817F817F, 0x817F7F81, 0x7F817F81, 0x81817F7F, 0x817F7F7F,
+0x7F7F8181, 0x817F7F7F, 0x817F7F7F, 0x7F818181, 0x81817F81, 0x7F817F7F, 0x81818181, 0x81817F7F,
+0x817F7F7F, 0x817F7F7F, 0x7F7F7F7F, 0x7F7F7F7F, 0x817F7F7F, 0x7F7F7F81, 0x7F817F81, 0x7F7F8181,
+0x81818181, 0x817F7F81, 0x817F7F81, 0x81818181, 0x81817F7F, 0x817F7F7F, 0x7F817F7F, 0x7F81817F,
+0x81818181, 0x817F8181, 0x81818181, 0x81817F81, 0x7F7F817F, 0x7F81817F, 0x817F817F, 0x817F7F81,
+0x817F7F81, 0x7F817F81, 0x817F7F81, 0x817F817F, 0x81817F7F, 0x817F7F7F, 0x7F81817F, 0x81818181,
+0x817F8181, 0x817F7F81, 0x7F7F7F7F, 0x817F7F7F, 0x817F7F7F, 0x817F817F, 0x817F817F, 0x8181817F,
+0x81817F81, 0x8181817F, 0x7F81817F, 0x7F817F7F, 0x817F7F7F, 0x81818181, 0x81818181, 0x81817F81,
+0x81817F7F, 0x7F81817F, 0x7F81817F, 0x7F7F8181, 0x817F7F81, 0x81818181, 0x81818181, 0x817F7F7F,
+0x7F7F817F, 0x7F817F81, 0x7F81817F, 0x7F7F8181, 0x7F7F817F, 0x81817F7F, 0x7F7F817F, 0x81817F7F,
+0x81817F7F, 0x7F81817F, 0x81818181, 0x7F7F817F, 0x7F817F81, 0x817F817F, 0x7F7F7F81, 0x7F7F8181,
+0x81817F81, 0x7F7F817F, 0x817F7F81, 0x817F7F7F, 0x7F817F81, 0x81818181, 0x817F7F7F, 0x7F7F7F81,
+0x817F7F81, 0x81818181, 0x817F8181, 0x8181817F, 0x7F81817F, 0x7F818181, 0x817F8181, 0x7F7F7F81,
+0x817F7F81, 0x7F7F8181, 0x817F8181, 0x7F817F7F, 0x81817F7F, 0x7F817F7F, 0x7F7F7F81, 0x8181817F,
+0x817F817F, 0x817F7F81, 0x81817F81, 0x817F817F, 0x7F818181, 0x81817F7F, 0x7F81817F, 0x7F7F8181,
+0x7F817F7F, 0x81818181, 0x8181817F, 0x817F7F7F, 0x7F818181, 0x7F817F81, 0x7F817F7F, 0x817F8181,
+0x817F7F7F, 0x7F817F81, 0x7F818181, 0x7F817F7F, 0x7F7F8181, 0x7F817F7F, 0x817F817F, 0x7F817F7F,
+0x7F7F817F, 0x7F7F8181, 0x7F7F7F81, 0x7F7F7F81, 0x7F7F817F, 0x7F818181, 0x817F817F, 0x7F7F8181,
+0x7F7F7F7F, 0x7F7F7F7F, 0x7F7F7F7F, 0x817F817F, 0x81818181, 0x817F817F, 0x817F8181, 0x7F817F7F,
+0x7F7F817F, 0x7F7F7F81, 0x7F818181, 0x7F7F7F81, 0x7F7F817F, 0x7F7F7F7F, 0x7F817F7F, 0x817F7F7F,
+0x7F81817F, 0x7F81817F, 0x8181817F, 0x7F7F7F7F, 0x7F818181, 0x7F7F817F, 0x7F817F81, 0x81817F81,
+0x7F7F817F, 0x7F81817F, 0x81818181, 0x7F7F8181, 0x7F818181, 0x81817F7F, 0x7F7F7F81, 0x7F817F81,
+0x817F7F81, 0x817F7F81, 0x7F7F7F81, 0x817F7F81, 0x7F817F7F, 0x817F7F81, 0x81818181, 0x7F7F7F7F,
+0x7F7F7F81, 0x7F7F817F, 0x7F818181, 0x817F7F7F, 0x817F7F81, 0x81818181, 0x7F7F7F81, 0x7F817F7F,
+0x7F81817F, 0x81817F81, 0x81817F7F, 0x81817F81, 0x817F8181, 0x817F817F, 0x817F817F, 0x817F7F7F,
+0x81817F7F, 0x7F7F8181, 0x817F8181, 0x7F7F7F7F, 0x7F7F817F, 0x7F81817F, 0x8181817F, 0x817F817F,
+0x817F8181, 0x7F817F81, 0x7F817F7F, 0x7F817F7F, 0x7F7F8181, 0x81817F81, 0x81818181, 0x817F7F7F,
+0x7F81817F, 0x7F81817F, 0x81818181, 0x817F7F81, 0x817F8181, 0x7F81817F, 0x81817F81, 0x817F7F81,
+0x817F7F7F, 0x81818181, 0x7F7F7F7F, 0x7F817F81, 0x7F81817F, 0x7F81817F, 0x7F7F7F81, 0x817F817F,
+0x7F81817F, 0x7F81817F, 0x7F81817F, 0x817F817F, 0x7F817F7F, 0x817F7F81, 0x7F7F8181, 0x817F7F7F,
+0x817F7F7F, 0x7F81817F, 0x7F817F7F, 0x7F818181, 0x817F7F7F, 0x7F817F7F, 0x81817F81, 0x7F817F7F,
+0x7F817F7F, 0x817F817F, 0x7F7F7F81, 0x7F7F8181, 0x7F817F81, 0x81817F7F, 0x7F817F7F, 0x7F817F81,
+0x81818181, 0x7F7F8181, 0x817F7F7F, 0x7F7F7F81, 0x7F817F81, 0x81818181, 0x817F8181, 0x8181817F,
+0x7F7F8181, 0x817F817F, 0x817F8181, 0x817F8181, 0x817F7F81, 0x81817F81, 0x7F7F817F, 0x7F7F7F81,
+0x817F7F81, 0x8181817F, 0x81817F7F, 0x7F7F7F7F, 0x817F7F7F, 0x7F7F7F81, 0x817F7F81, 0x81817F7F,
+0x81817F7F, 0x7F7F8181, 0x7F7F817F, 0x7F817F81, 0x7F81817F, 0x817F7F81, 0x7F7F817F, 0x7F7F8181,
+0x81818181, 0x7F7F7F81, 0x7F817F7F, 0x817F817F, 0x81817F81, 0x81817F7F, 0x7F7F817F, 0x7F7F7F7F,
+0x81817F81, 0x7F817F7F, 0x817F8181, 0x7F817F81, 0x7F7F7F7F, 0x817F817F, 0x7F818181, 0x7F818181,
+0x817F7F81, 0x7F7F7F7F, 0x7F7F8181, 0x817F7F81, 0x7F818181, 0x7F7F7F7F, 0x7F817F81, 0x7F81817F,
+0x817F817F, 0x81817F7F, 0x8181817F, 0x8181817F, 0x817F7F81, 0x7F817F81, 0x7F7F7F81, 0x81817F7F,
+0x7F7F7F7F, 0x8181817F, 0x817F8181, 0x7F817F7F, 0x817F817F, 0x817F7F7F, 0x7F7F7F7F, 0x7F817F7F,
+0x81817F81, 0x817F817F, 0x7F7F8181, 0x7F81817F, 0x817F7F7F, 0x7F818181, 0x817F817F, 0x7F818181,
+0x8181817F, 0x7F81817F, 0x81817F7F, 0x7F7F7F7F, 0x817F817F, 0x7F817F7F, 0x7F818181, 0x817F8181,
+0x81817F7F, 0x7F817F81, 0x7F818181, 0x7F817F7F, 0x7F7F7F81, 0x817F817F, 0x817F8181, 0x817F7F81,
+0x817F817F, 0x817F7F81, 0x7F7F7F81, 0x7F817F7F, 0x7F817F81, 0x7F7F7F81, 0x7F7F7F81, 0x7F7F8181,
+0x817F8181, 0x7F7F817F, 0x81818181, 0x7F81817F, 0x7F818181, 0x81818181, 0x81817F81, 0x7F7F7F7F,
+0x817F7F81, 0x81817F81, 0x8181817F, 0x7F7F817F, 0x817F8181, 0x8181817F, 0x7F817F81, 0x817F7F81,
+0x7F7F7F7F, 0x7F818181, 0x7F81817F, 0x81818181, 0x7F7F8181, 0x7F817F81, 0x81817F7F, 0x7F817F7F,
+0x817F7F81, 0x8181817F, 0x7F7F817F, 0x7F818181, 0x7F817F81, 0x7F7F7F81, 0x7F817F81, 0x7F817F81,
+0x7F7F7F81, 0x81817F7F, 0x8181817F, 0x81817F81, 0x817F7F7F, 0x81817F7F, 0x7F7F7F7F, 0x81818181,
+0x8181817F, 0x817F817F, 0x81817F7F, 0x817F7F7F, 0x81817F7F, 0x7F7F8181, 0x7F818181, 0x8181817F,
+0x817F8181, 0x7F817F81, 0x7F7F7F7F, 0x81818181, 0x817F7F81, 0x7F7F817F, 0x7F817F81, 0x81817F7F,
+0x7F817F7F, 0x817F7F7F, 0x81817F81, 0x817F7F7F, 0x8181817F, 0x7F7F7F81, 0x817F8181, 0x7F7F7F81,
+0x7F818181, 0x7F7F8181, 0x817F8181, 0x7F817F7F, 0x7F7F8181, 0x7F7F7F81, 0x81818181, 0x81818181,
+0x7F817F81, 0x7F7F8181, 0x7F81817F, 0x817F817F, 0x7F7F8181, 0x81817F81, 0x817F7F81, 0x817F817F,
+0x7F7F817F, 0x7F81817F, 0x7F818181, 0x7F7F817F, 0x7F7F8181, 0x81817F81, 0x81817F81, 0x817F7F7F,
+0x7F7F817F, 0x817F7F81, 0x7F7F7F7F, 0x7F7F817F, 0x817F817F, 0x7F817F7F, 0x8181817F, 0x81817F7F,
+0x817F7F7F, 0x7F81817F, 0x817F7F81, 0x81818181, 0x817F7F81, 0x7F817F7F, 0x8181817F, 0x817F8181,
+0x81817F7F, 0x7F7F8181, 0x7F7F7F81, 0x8181817F, 0x817F8181, 0x817F7F7F, 0x7F81817F, 0x817F7F81,
+0x7F7F7F7F, 0x817F7F7F, 0x7F7F7F7F, 0x7F7F8181, 0x7F81817F, 0x7F7F817F, 0x7F7F7F81, 0x817F817F,
+0x7F817F7F, 0x7F7F817F, 0x7F7F7F81, 0x7F7F7F7F, 0x7F817F7F, 0x7F817F7F, 0x81818181, 0x7F817F7F,
+0x7F81817F, 0x817F7F7F, 0x7F7F7F7F, 0x7F7F817F, 0x817F817F, 0x7F818181, 0x7F7F7F7F, 0x7F817F81,
+0x81817F7F, 0x7F817F81, 0x817F7F81, 0x81817F7F, 0x81817F81, 0x7F7F7F7F, 0x817F817F, 0x7F7F7F81,
+0x8181817F, 0x817F817F, 0x7F817F7F, 0x81817F7F, 0x8181817F, 0x7F818181, 0x817F8181, 0x81817F7F,
+0x7F818181, 0x81818181, 0x7F818181, 0x7F7F8181, 0x7F7F8181, 0x7F818181, 0x81817F7F, 0x7F81817F,
+0x81818181, 0x7F7F7F81, 0x7F7F817F, 0x7F7F7F81, 0x8181817F, 0x7F817F81, 0x7F818181, 0x817F817F,
+0x7F7F8181, 0x817F7F81, 0x81817F81, 0x817F817F, 0x81817F7F, 0x817F817F, 0x7F7F817F, 0x7F817F81,
+0x7F817F81, 0x7F7F7F7F, 0x817F7F7F, 0x7F81817F, 0x7F81817F, 0x7F817F81, 0x7F7F7F7F, 0x817F7F7F,
+0x81817F7F, 0x7F7F7F7F, 0x7F7F8181, 0x81818181, 0x817F7F81, 0x81817F81, 0x7F81817F, 0x81818181,
+0x817F8181, 0x7F7F7F7F, 0x81817F7F, 0x81817F81, 0x8181817F, 0x7F7F8181, 0x7F818181, 0x81817F81,
+0x81818181, 0x7F818181, 0x7F817F7F, 0x8181817F, 0x7F817F81, 0x81818181, 0x81817F81, 0x817F7F7F,
+0x7F81817F, 0x7F7F7F7F, 0x817F7F81, 0x81817F7F, 0x81817F7F, 0x7F7F7F81, 0x817F7F81, 0x7F7F8181,
+0x7F7F817F, 0x7F817F7F, 0x7F817F7F, 0x817F7F7F, 0x817F7F7F, 0x81818181, 0x7F817F81, 0x817F7F81,
+0x817F8181, 0x81817F7F, 0x817F7F7F, 0x7F7F7F81, 0x7F818181, 0x7F81817F, 0x817F817F, 0x817F7F7F,
+0x817F7F81, 0x8181817F, 0x817F817F, 0x7F81817F, 0x7F7F7F7F, 0x7F7F817F, 0x817F817F, 0x81818181,
+0x7F7F817F, 0x817F7F81, 0x7F81817F, 0x7F817F81, 0x7F7F817F, 0x7F7F8181, 0x7F81817F, 0x817F817F,
+0x7F7F7F7F, 0x7F7F8181, 0x7F818181, 0x81817F7F, 0x81817F7F, 0x7F7F7F81, 0x7F817F7F, 0x7F818181,
+0x7F81817F, 0x81817F7F, 0x817F7F7F, 0x7F818181, 0x7F7F7F81, 0x81818181, 0x817F7F81, 0x7F818181,
+0x7F7F7F81, 0x7F81817F, 0x817F817F, 0x7F81817F, 0x81817F81, 0x7F817F7F, 0x81818181, 0x817F7F7F,
+0x7F7F7F7F, 0x7F817F7F, 0x81818181, 0x81817F81, 0x7F7F8181, 0x817F8181, 0x7F817F81, 0x7F7F7F7F,
+0x817F817F, 0x817F8181, 0x7F81817F, 0x7F7F7F7F, 0x7F818181, 0x7F7F8181, 0x817F8181, 0x7F817F81,
+0x8181817F, 0x817F7F81, 0x7F7F7F7F, 0x81817F81, 0x817F7F81, 0x817F7F7F, 0x7F818181, 0x817F8181,
+0x7F7F817F, 0x817F7F7F, 0x7F817F81, 0x81817F7F, 0x7F818181, 0x817F7F7F, 0x7F817F81, 0x7F7F7F81,
+0x7F817F81, 0x81817F7F, 0x817F8181, 0x7F7F7F7F, 0x7F81817F, 0x81817F81, 0x7F817F81, 0x817F8181,
+0x7F7F7F7F, 0x817F8181, 0x81817F81, 0x81817F81, 0x81817F81, 0x7F817F81, 0x7F7F7F7F, 0x81817F7F,
+0x817F817F, 0x7F7F8181, 0x81817F7F, 0x817F817F, 0x817F817F, 0x817F7F81, 0x7F7F817F, 0x7F7F7F7F,
+0x7F7F817F, 0x7F81817F, 0x7F7F7F81, 0x7F81817F, 0x7F7F8181, 0x81817F81, 0x817F817F, 0x7F818181,
+0x7F7F8181, 0x7F81817F, 0x7F818181, 0x7F7F7F7F, 0x817F8181, 0x817F7F81, 0x81818181, 0x817F8181,
+0x817F8181, 0x7F817F7F, 0x7F81817F, 0x81818181, 0x817F7F7F, 0x7F7F7F7F, 0x7F81817F, 0x817F7F81,
+0x8181817F, 0x7F818181, 0x7F7F7F81, 0x817F817F, 0x81817F81, 0x81818181, 0x7F7F817F, 0x8181817F,
+0x817F7F7F, 0x81817F7F, 0x7F81817F, 0x81817F7F, 0x7F7F7F7F, 0x81818181, 0x8181817F, 0x7F7F817F,
+0x81818181, 0x81818181, 0x7F818181, 0x817F7F7F, 0x817F7F7F, 0x817F817F, 0x7F817F81, 0x81817F81,
+0x7F817F7F, 0x817F817F, 0x817F7F7F, 0x7F817F7F, 0x81817F81, 0x7F817F7F, 0x817F7F81, 0x7F7F817F,
+0x81818181, 0x81817F7F, 0x7F818181, 0x817F8181, 0x7F7F7F7F, 0x81818181, 0x7F81817F, 0x7F7F7F7F,
+0x8181817F, 0x817F7F7F, 0x81817F7F, 0x7F817F81, 0x81818181, 0x7F7F7F81, 0x817F7F7F, 0x7F818181,
+0x7F818181, 0x7F818181, 0x817F817F, 0x7F81817F, 0x7F81817F, 0x817F7F81, 0x7F7F8181, 0x7F818181,
+0x8181817F, 0x817F8181, 0x81818181, 0x7F7F8181, 0x81817F7F, 0x7F7F7F81, 0x7F818181, 0x817F817F,
+0x7F818181, 0x7F7F7F7F, 0x7F7F7F7F, 0x81817F81, 0x817F817F, 0x7F817F7F, 0x7F7F817F, 0x8181817F,
+0x81818181, 0x7F817F7F, 0x7F7F7F7F, 0x7F7F8181, 0x7F817F81, 0x7F817F7F, 0x7F817F81, 0x817F7F7F,
+0x817F7F81, 0x817F7F7F, 0x7F817F7F, 0x81817F81, 0x7F7F817F, 0x817F817F, 0x7F7F8181, 0x81817F81,
+0x81817F7F, 0x7F7F8181, 0x817F7F81, 0x7F818181, 0x7F7F8181, 0x81817F81, 0x7F818181, 0x7F817F81,
+0x81817F7F, 0x7F7F817F, 0x7F817F7F, 0x7F817F81, 0x7F817F7F, 0x7F7F817F, 0x81817F81, 0x7F817F81,
+0x7F81817F, 0x7F7F7F81, 0x817F7F7F, 0x7F7F7F81, 0x7F7F8181, 0x7F7F7F81, 0x817F7F7F, 0x81817F7F,
+0x8181817F, 0x817F7F7F, 0x81817F81, 0x7F817F7F, 0x7F7F7F81, 0x7F817F81, 0x7F817F81, 0x817F817F,
+0x7F7F7F7F, 0x817F8181, 0x81817F7F, 0x817F817F, 0x7F7F817F, 0x81817F81, 0x8181817F, 0x7F817F7F,
+0x7F7F7F81, 0x7F81817F, 0x817F7F7F, 0x7F817F7F, 0x817F7F7F, 0x81817F7F, 0x817F7F81, 0x817F817F,
+0x7F81817F, 0x817F7F7F, 0x817F8181, 0x817F8181, 0x8181817F, 0x7F7F817F, 0x7F7F8181, 0x81818181,
+0x817F7F7F, 0x81817F81, 0x81818181, 0x7F7F817F, 0x7F7F7F7F, 0x7F7F8181, 0x817F7F7F, 0x817F8181,
+0x817F8181, 0x7F817F7F, 0x7F7F817F, 0x7F81817F, 0x817F8181, 0x7F7F7F7F, 0x81817F7F, 0x7F7F7F81,
+0x7F7F7F81, 0x817F8181, 0x8181817F, 0x7F7F7F7F, 0x7F7F7F7F, 0x817F7F81, 0x81817F81, 0x8181817F,
+0x7F817F81, 0x7F7F7F81, 0x817F7F81, 0x7F817F81, 0x7F7F817F, 0x8181817F, 0x7F7F817F, 0x817F8181,
+0x817F7F7F, 0x8181817F, 0x7F81817F, 0x7F7F7F81, 0x81817F81, 0x81818181, 0x81817F7F, 0x7F7F8181,
+0x8181817F, 0x8181817F, 0x817F817F, 0x8181817F, 0x817F7F7F, 0x817F7F7F, 0x817F8181, 0x81818181,
+0x817F817F, 0x7F7F7F7F, 0x81817F81, 0x7F7F7F81, 0x7F81817F, 0x817F7F81, 0x81817F81, 0x7F818181,
+0x7F7F817F, 0x7F7F8181, 0x7F817F7F, 0x81817F81, 0x817F7F7F, 0x7F817F81, 0x7F7F7F7F, 0x8181817F,
+0x817F817F, 0x7F81817F, 0x7F81817F, 0x81817F81, 0x7F817F7F, 0x7F7F817F, 0x81818181, 0x81817F7F,
+0x7F817F81, 0x7F7F7F7F, 0x7F7F8181, 0x81817F81, 0x7F7F7F81, 0x817F7F7F, 0x7F817F7F, 0x7F7F7F81,
+0x7F7F7F81, 0x8181817F, 0x7F7F7F81, 0x7F818181, 0x817F7F7F, 0x817F817F, 0x7F817F81, 0x7F818181,
+0x81817F81, 0x7F7F7F7F, 0x7F7F7F81, 0x7F7F8181, 0x817F817F, 0x81817F7F, 0x81817F7F, 0x7F81817F,
+0x817F7F81, 0x8181817F, 0x817F7F81, 0x817F7F7F, 0x7F7F7F81, 0x8181817F, 0x7F818181, 0x81818181,
+0x7F7F8181, 0x8181817F, 0x7F7F8181, 0x817F7F7F, 0x7F817F81, 0x817F7F81, 0x817F8181, 0x81817F81,
+0x817F817F, 0x7F817F81, 0x7F817F7F, 0x81817F7F, 0x81818181, 0x8181817F, 0x7F7F817F, 0x7F818181,
+0x8181817F, 0x7F7F7F7F, 0x7F7F7F7F, 0x7F81817F, 0x817F7F7F, 0x7F817F7F, 0x817F817F, 0x7F81817F,
+0x7F7F8181, 0x8181817F, 0x81817F81, 0x7F818181, 0x7F817F7F, 0x817F8181, 0x7F7F8181, 0x7F817F7F,
+0x817F817F, 0x7F7F8181, 0x7F817F81, 0x7F7F7F7F, 0x8181817F, 0x817F7F7F, 0x8181817F, 0x7F7F7F7F,
+0x817F8181, 0x7F7F817F, 0x817F8181, 0x81817F81, 0x7F81817F, 0x7F817F81, 0x81817F7F, 0x8181817F,
+0x81818181, 0x7F7F8181, 0x7F7F7F81, 0x7F81817F, 0x817F8181, 0x817F817F, 0x817F817F, 0x817F8181,
+0x7F817F7F, 0x817F7F7F, 0x7F817F81, 0x7F81817F, 0x81817F7F, 0x7F7F7F81, 0x7F817F81, 0x7F81817F,
+0x7F817F7F, 0x7F817F81, 0x7F817F81, 0x817F7F81, 0x7F7F817F, 0x817F7F81, 0x7F81817F, 0x817F8181,
+0x7F817F7F, 0x817F817F, 0x7F7F8181, 0x817F7F81, 0x81818181, 0x7F7F7F7F, 0x7F81817F, 0x7F81817F,
+0x817F8181, 0x7F818181, 0x7F7F8181, 0x817F7F81, 0x81817F7F, 0x81818181, 0x7F7F7F7F, 0x7F817F7F,
+0x81817F7F, 0x7F81817F, 0x817F7F7F, 0x817F8181, 0x7F7F8181, 0x7F817F81, 0x81818181, 0x8181817F,
+0x7F7F7F81, 0x81817F81, 0x7F817F81, 0x817F7F7F, 0x817F7F7F, 0x817F7F81, 0x7F817F81, 0x81818181,
+0x817F7F81, 0x7F817F7F, 0x8181817F, 0x8181817F, 0x8181817F, 0x7F7F7F81, 0x7F817F7F, 0x7F817F81,
+0x817F8181, 0x8181817F, 0x81817F7F, 0x7F7F7F81, 0x7F7F7F81, 0x817F7F81, 0x817F817F, 0x817F7F7F,
+0x7F7F817F, 0x7F817F81, 0x8181817F, 0x81817F81, 0x817F8181, 0x7F818181, 0x7F817F7F, 0x817F817F,
+0x817F7F7F, 0x7F7F7F7F, 0x817F7F81, 0x7F7F7F7F, 0x81817F81, 0x817F8181, 0x817F8181, 0x7F818181,
+0x7F7F7F81, 0x817F8181, 0x817F817F, 0x817F817F, 0x7F7F7F81, 0x81817F7F, 0x817F7F81, 0x7F81817F,
+0x7F7F8181, 0x8181817F, 0x817F7F81, 0x7F7F817F, 0x817F817F, 0x7F81817F, 0x817F7F81, 0x7F7F8181,
+0x817F8181, 0x7F7F7F7F, 0x817F817F, 0x7F7F7F81, 0x7F817F7F, 0x817F817F, 0x7F7F7F81, 0x81817F81,
+0x7F817F7F, 0x817F7F7F, 0x817F8181, 0x817F7F7F, 0x7F7F7F7F, 0x7F7F8181, 0x8181817F, 0x817F7F81,
+0x817F8181, 0x7F7F7F81, 0x7F7F8181, 0x7F7F7F7F, 0x81817F7F, 0x817F817F, 0x7F7F7F7F, 0x7F817F81,
+0x7F818181, 0x817F8181, 0x81817F81, 0x7F7F8181, 0x7F7F817F, 0x81818181, 0x7F7F8181, 0x817F8181,
+0x8181817F, 0x817F817F, 0x81817F7F, 0x7F817F7F, 0x817F7F81, 0x81818181, 0x81817F81, 0x7F7F7F81,
+0x817F817F, 0x817F817F, 0x817F7F81, 0x7F81817F, 0x7F817F81, 0x7F7F817F, 0x7F81817F, 0x7F7F817F,
+0x7F817F81, 0x817F7F7F, 0x817F7F81, 0x7F817F7F, 0x8181817F, 0x817F7F81, 0x7F818181, 0x817F8181,
+0x817F8181, 0x7F7F7F7F, 0x7F817F81, 0x7F7F817F, 0x81817F81, 0x7F7F7F7F, 0x7F817F81, 0x81818181,
+0x817F7F7F, 0x81817F81, 0x7F818181, 0x81817F81, 0x7F817F81, 0x817F7F81, 0x7F817F7F, 0x817F7F81,
+0x7F7F8181, 0x7F7F7F7F, 0x81817F81, 0x7F817F7F, 0x7F7F817F, 0x7F7F817F, 0x817F7F81, 0x7F817F7F,
+0x7F7F817F, 0x817F817F, 0x7F7F7F81, 0x81818181, 0x817F8181, 0x7F7F7F81, 0x7F817F7F, 0x7F7F8181,
+0x7F7F7F81, 0x7F818181, 0x7F818181, 0x817F7F81, 0x7F817F81, 0x817F7F7F, 0x7F7F817F, 0x7F817F81,
+0x81817F7F, 0x7F7F8181, 0x7F7F8181, 0x7F7F8181, 0x81817F7F, 0x7F817F7F, 0x7F7F7F81, 0x7F818181,
+0x8181817F, 0x81817F81, 0x817F8181, 0x7F7F8181, 0x7F818181, 0x817F817F, 0x7F7F7F81, 0x81817F81,
+0x7F817F7F, 0x7F7F817F, 0x7F7F7F81, 0x81817F81, 0x817F7F81, 0x7F7F8181, 0x8181817F, 0x817F817F,
+0x81817F81, 0x7F818181, 0x817F7F7F, 0x817F7F81, 0x7F817F81, 0x817F7F7F, 0x7F7F7F81, 0x7F817F81,
+0x7F81817F, 0x817F817F, 0x7F817F81, 0x7F7F7F7F, 0x81818181, 0x7F818181, 0x817F7F81, 0x7F7F8181,
+0x81818181, 0x817F8181, 0x7F7F7F81, 0x7F81817F, 0x817F7F7F, 0x81818181, 0x7F7F7F7F, 0x8181817F,
+0x7F7F7F81, 0x817F7F7F, 0x7F7F7F81, 0x817F7F7F, 0x81817F7F, 0x81818181, 0x81817F81, 0x7F7F7F81,
+0x81818181, 0x81817F81, 0x81818181, 0x7F817F7F, 0x7F7F817F, 0x81818181, 0x7F81817F, 0x7F7F7F7F,
+0x817F7F81, 0x7F7F817F, 0x7F7F8181, 0x81817F7F, 0x7F7F8181, 0x817F8181, 0x7F817F81, 0x7F817F81,
+0x81818181, 0x817F817F, 0x8181817F, 0x7F817F7F, 0x7F7F8181, 0x7F7F8181, 0x7F7F7F7F, 0x81817F81,
+0x817F7F7F, 0x817F7F81, 0x7F7F8181, 0x81817F81, 0x7F7F8181, 0x7F7F7F7F, 0x7F818181, 0x817F7F81,
+0x817F817F, 0x81818181, 0x7F818181, 0x817F7F7F, 0x7F818181, 0x7F817F81, 0x817F817F, 0x7F81817F,
+0x7F818181, 0x81818181, 0x7F7F7F81, 0x817F8181, 0x81817F7F, 0x81817F81, 0x817F8181, 0x81817F7F,
+0x7F7F7F7F, 0x8181817F, 0x81817F81, 0x7F7F7F7F, 0x7F817F81, 0x817F7F7F, 0x7F7F7F7F, 0x817F7F7F,
+0x7F817F81, 0x81817F7F, 0x7F7F8181, 0x817F7F7F, 0x817F8181, 0x8181817F, 0x81817F81, 0x7F818181,
+0x7F7F817F, 0x817F7F81, 0x7F7F7F81, 0x7F818181, 0x8181817F, 0x7F7F7F81, 0x817F7F7F, 0x7F7F7F81,
+0x81817F7F, 0x7F7F7F7F, 0x7F818181, 0x7F817F81, 0x7F81817F, 0x817F817F, 0x81817F81, 0x817F817F,
+0x817F7F7F, 0x817F7F81, 0x81818181, 0x7F81817F, 0x7F81817F, 0x817F7F81, 0x7F7F8181, 0x7F817F7F,
+0x7F817F7F, 0x7F7F817F, 0x81817F81, 0x7F7F7F7F, 0x81818181, 0x817F7F7F, 0x817F7F7F, 0x7F7F8181,
+0x817F817F, 0x817F7F81, 0x817F7F81, 0x81818181, 0x8181817F, 0x7F818181, 0x7F7F7F7F, 0x7F81817F,
+0x81817F81, 0x7F7F817F, 0x817F7F7F, 0x7F817F81, 0x7F818181, 0x7F81817F, 0x8181817F, 0x7F7F7F81,
+0x81817F81, 0x81817F81, 0x7F7F8181, 0x81818181, 0x7F7F817F, 0x7F81817F, 0x81817F7F, 0x817F8181,
+0x7F7F7F7F, 0x81817F81, 0x817F7F81, 0x817F7F7F, 0x7F7F7F81, 0x7F818181, 0x7F818181, 0x817F817F,
+0x817F817F, 0x81817F7F, 0x7F7F8181, 0x81818181, 0x8181817F, 0x7F817F81, 0x7F7F7F81, 0x7F818181,
+0x817F817F, 0x817F8181, 0x7F7F8181, 0x817F7F7F, 0x81817F81, 0x817F7F81, 0x817F7F7F, 0x7F818181,
+0x81817F81, 0x81818181, 0x7F7F817F, 0x81817F7F, 0x81817F7F, 0x7F7F8181, 0x7F7F817F, 0x7F818181,
+0x7F817F7F, 0x7F7F7F7F, 0x7F7F7F81, 0x81818181, 0x81817F7F, 0x817F8181, 0x7F818181, 0x81818181,
+0x81817F7F, 0x7F7F7F7F, 0x7F817F81, 0x7F7F7F7F, 0x7F7F8181, 0x7F7F7F7F, 0x817F817F, 0x7F7F8181,
+0x7F818181, 0x8181817F, 0x7F818181, 0x7F7F817F, 0x7F7F7F7F, 0x7F817F81, 0x7F818181, 0x817F7F7F,
+0x7F7F817F, 0x817F7F7F, 0x7F7F817F, 0x817F7F81, 0x7F818181, 0x7F817F7F, 0x7F817F81, 0x81817F81,
+0x7F7F817F, 0x7F81817F, 0x7F7F817F, 0x7F7F7F7F, 0x7F7F7F7F, 0x7F7F8181, 0x817F7F81, 0x7F817F81,
+0x7F7F8181, 0x81818181, 0x817F7F81, 0x7F7F7F7F, 0x7F818181, 0x7F7F7F7F, 0x7F817F7F, 0x7F7F817F,
+0x817F7F7F, 0x7F7F817F, 0x7F7F8181, 0x7F7F817F, 0x7F7F817F, 0x7F7F7F81, 0x81817F7F, 0x7F817F7F,
+0x7F7F7F7F, 0x81818181, 0x817F817F, 0x7F81817F, 0x8181817F, 0x7F81817F, 0x7F817F81, 0x81818181,
+0x7F81817F, 0x7F7F8181, 0x817F7F7F, 0x7F7F7F7F, 0x817F7F7F, 0x81817F81, 0x7F7F8181, 0x817F8181,
+0x817F8181, 0x7F7F817F, 0x7F7F7F81, 0x7F817F81, 0x7F7F817F, 0x81817F7F, 0x8181817F, 0x7F7F7F7F,
+0x81817F81, 0x7F7F7F7F, 0x817F8181, 0x7F7F7F81, 0x7F81817F, 0x81817F7F, 0x81817F7F, 0x7F7F817F,
+0x81818181, 0x7F818181, 0x7F81817F, 0x7F7F7F7F, 0x817F817F, 0x7F7F7F81, 0x817F8181, 0x7F7F7F81,
+0x817F817F, 0x8181817F, 0x7F7F7F7F, 0x817F8181, 0x817F8181, 0x81818181, 0x81818181, 0x7F7F8181,
+0x817F7F81, 0x7F818181, 0x7F7F8181, 0x7F7F7F7F, 0x817F8181, 0x81817F81, 0x7F817F81, 0x7F817F7F,
+0x7F7F8181, 0x817F7F7F, 0x7F817F7F, 0x7F7F7F81, 0x7F7F8181, 0x8181817F, 0x7F7F817F, 0x7F7F817F,
+0x81817F7F, 0x7F818181, 0x7F818181, 0x8181817F, 0x81818181, 0x7F818181, 0x817F8181, 0x7F7F7F81,
+0x7F817F81, 0x817F817F, 0x81817F81, 0x7F7F817F, 0x7F818181, 0x7F81817F, 0x81817F81, 0x817F7F7F,
+0x7F7F8181, 0x817F8181, 0x817F7F81, 0x817F817F, 0x7F7F8181, 0x7F7F8181, 0x817F8181, 0x7F7F7F7F,
+0x7F81817F, 0x81818181, 0x817F7F7F, 0x7F7F7F81, 0x7F818181, 0x81818181, 0x7F7F8181, 0x7F7F8181,
+0x817F7F81, 0x7F7F7F81, 0x817F817F, 0x817F8181, 0x7F817F81, 0x7F7F8181, 0x8181817F, 0x7F7F7F7F,
+0x7F81817F, 0x8181817F, 0x817F7F7F, 0x7F817F7F, 0x817F8181, 0x7F817F7F, 0x817F817F, 0x8181817F,
+0x7F7F817F, 0x7F81817F, 0x81818181, 0x7F7F817F, 0x7F7F817F, 0x81817F7F, 0x7F7F7F81, 0x817F817F,
+0x7F817F81, 0x817F7F81, 0x7F818181, 0x7F817F81, 0x7F7F8181, 0x7F7F7F81, 0x817F7F7F, 0x817F817F,
+0x817F8181, 0x7F7F817F, 0x817F817F, 0x8181817F, 0x817F8181, 0x81817F7F, 0x7F7F7F7F, 0x817F8181,
+0x817F7F81, 0x7F7F7F7F, 0x7F7F8181, 0x7F7F7F7F, 0x7F818181, 0x817F7F81, 0x7F7F817F, 0x7F7F8181,
+0x817F8181, 0x81818181, 0x81818181, 0x7F817F81, 0x817F7F81, 0x817F7F7F, 0x7F7F817F, 0x7F818181,
+0x7F817F7F, 0x8181817F, 0x7F7F7F81, 0x7F818181, 0x7F81817F, 0x817F817F, 0x7F818181, 0x7F7F7F7F,
+0x817F8181, 0x7F81817F, 0x7F817F81, 0x817F817F, 0x8181817F, 0x7F817F81, 0x81818181, 0x81818181,
+0x7F817F7F, 0x81817F7F, 0x817F8181, 0x8181817F, 0x7F81817F, 0x7F818181, 0x817F7F7F, 0x8181817F,
+0x7F7F8181, 0x81817F81, 0x7F7F7F7F, 0x817F7F81, 0x817F8181, 0x7F7F7F7F, 0x8181817F, 0x7F7F7F7F,
+0x7F817F81, 0x7F817F81, 0x817F8181, 0x81817F81, 0x7F81817F, 0x7F817F81, 0x7F7F817F, 0x817F7F7F,
+0x817F817F, 0x817F8181, 0x7F7F7F81, 0x7F81817F, 0x7F7F817F, 0x817F817F, 0x817F7F7F, 0x7F7F8181,
+0x7F7F7F7F, 0x7F818181, 0x81817F7F, 0x7F817F81, 0x817F817F, 0x81818181, 0x817F7F7F, 0x7F7F7F7F,
+0x817F817F, 0x7F7F7F7F, 0x7F7F7F7F, 0x7F7F817F, 0x8181817F, 0x81817F7F, 0x817F7F7F, 0x7F7F817F,
+0x7F7F8181, 0x817F7F81, 0x817F7F7F, 0x7F817F81, 0x81818181, 0x7F817F81, 0x817F8181, 0x7F7F7F7F,
+0x7F7F7F81, 0x7F7F8181, 0x7F817F7F, 0x7F81817F, 0x7F81817F, 0x81818181, 0x81817F81, 0x8181817F,
+0x7F7F7F81, 0x817F7F81, 0x817F817F, 0x7F817F7F, 0x7F7F7F7F, 0x8181817F, 0x8181817F, 0x81817F81,
+0x817F7F81, 0x7F81817F, 0x817F817F, 0x8181817F, 0x7F7F817F, 0x817F817F, 0x7F817F81, 0x817F7F81,
+0x81817F7F, 0x7F818181, 0x7F817F7F, 0x81818181, 0x7F818181, 0x7F7F7F7F, 0x7F81817F, 0x817F817F,
+0x81818181, 0x7F817F7F, 0x7F817F7F, 0x817F7F7F, 0x7F7F817F, 0x817F817F, 0x81817F81, 0x8181817F,
+0x7F7F8181, 0x8181817F, 0x7F817F81, 0x7F81817F, 0x7F7F8181, 0x7F817F81, 0x81818181, 0x7F81817F,
+0x7F817F81, 0x817F8181, 0x81818181, 0x817F8181, 0x7F817F81, 0x81817F81, 0x817F7F81, 0x7F7F817F,
+0x7F7F7F81, 0x8181817F, 0x817F7F7F, 0x7F7F7F7F, 0x7F81817F, 0x817F8181, 0x817F7F7F, 0x7F818181,
+0x817F817F, 0x8181817F, 0x817F7F81, 0x7F817F7F, 0x817F817F, 0x7F817F81, 0x7F7F8181, 0x7F817F7F,
+0x7F817F81, 0x7F7F817F, 0x81818181, 0x817F7F81, 0x81818181, 0x7F817F81, 0x7F7F7F81, 0x8181817F,
+0x81818181, 0x7F817F81, 0x7F817F81, 0x7F7F7F7F, 0x7F7F7F81, 0x7F7F817F, 0x817F817F, 0x817F7F7F,
+0x817F8181, 0x8181817F, 0x7F817F7F, 0x81817F7F, 0x7F7F7F7F, 0x7F7F7F7F, 0x7F817F7F, 0x7F7F817F,
+0x7F7F817F, 0x817F817F, 0x7F818181, 0x817F8181, 0x7F818181, 0x7F7F7F7F, 0x8181817F, 0x7F817F81,
+0x81817F7F, 0x7F7F7F81, 0x7F817F81, 0x7F7F7F81, 0x7F818181, 0x7F7F7F7F, 0x7F7F7F7F, 0x7F81817F,
+0x81817F7F, 0x817F7F7F, 0x7F7F7F81, 0x81818181, 0x7F7F7F7F, 0x817F7F7F, 0x81817F81, 0x81817F81,
+0x817F8181, 0x817F817F, 0x81817F7F, 0x7F81817F, 0x7F817F81, 0x7F7F7F81, 0x7F7F7F7F, 0x81818181,
+0x7F818181, 0x7F7F8181, 0x7F81817F, 0x7F817F81, 0x7F7F8181, 0x81818181, 0x7F7F7F7F, 0x817F7F81,
+0x81817F81, 0x7F817F7F, 0x81818181, 0x7F817F7F, 0x7F7F8181, 0x7F7F817F, 0x817F7F81, 0x81817F81,
+0x81817F81, 0x7F817F81, 0x817F8181, 0x817F817F, 0x817F7F81, 0x7F817F7F, 0x7F817F81, 0x7F818181,
+0x7F81817F, 0x7F818181, 0x7F7F7F7F, 0x81817F7F, 0x7F817F7F, 0x7F7F817F, 0x7F818181, 0x8181817F,
+0x817F8181, 0x7F818181, 0x7F81817F, 0x817F8181, 0x7F81817F, 0x7F7F7F7F, 0x7F818181, 0x817F817F,
+0x81818181, 0x817F7F81, 0x7F7F817F, 0x7F7F7F81, 0x817F7F7F, 0x7F7F817F, 0x7F81817F, 0x81817F7F,
+0x7F7F7F81, 0x7F817F7F, 0x81817F81, 0x8181817F, 0x817F817F, 0x817F7F81, 0x81818181, 0x817F8181,
+0x7F818181, 0x7F7F817F, 0x817F817F, 0x7F817F7F, 0x8181817F, 0x7F7F7F7F, 0x81818181, 0x817F7F7F,
+0x817F817F, 0x7F7F7F7F, 0x7F7F817F, 0x7F7F8181, 0x7F818181, 0x7F817F81, 0x7F81817F, 0x7F81817F,
+0x7F81817F, 0x7F7F7F81, 0x817F7F7F, 0x8181817F, 0x7F817F7F, 0x7F7F8181, 0x81818181, 0x8181817F,
+0x7F818181, 0x7F7F8181, 0x7F818181, 0x7F7F8181, 0x7F817F7F, 0x7F7F817F, 0x817F817F, 0x7F7F8181,
+0x817F7F7F, 0x7F7F7F81, 0x81817F81, 0x817F7F7F, 0x7F7F7F7F, 0x817F7F7F, 0x7F81817F, 0x81817F81,
+0x7F817F81, 0x81817F81, 0x7F817F81, 0x81817F7F, 0x81818181, 0x7F7F7F81, 0x7F7F7F81, 0x817F7F81,
+0x7F81817F, 0x7F817F7F, 0x81818181, 0x7F7F817F, 0x817F817F, 0x81818181, 0x7F7F817F, 0x7F81817F,
+0x7F7F7F7F, 0x7F7F7F7F, 0x7F81817F, 0x7F817F81, 0x7F7F7F81, 0x817F7F81, 0x7F7F8181, 0x81817F7F,
+0x7F7F7F7F, 0x7F7F817F, 0x7F81817F, 0x7F7F7F7F, 0x7F7F8181, 0x7F7F7F7F, 0x81818181, 0x7F818181,
+0x7F7F7F7F, 0x7F7F8181, 0x7F7F8181, 0x8181817F, 0x817F8181, 0x81818181, 0x7F818181, 0x7F817F7F,
+0x7F7F7F81, 0x81818181, 0x81817F7F, 0x81817F7F, 0x7F7F8181, 0x81818181, 0x81817F7F, 0x7F817F81,
+0x817F8181, 0x7F7F7F7F, 0x7F818181, 0x817F7F81, 0x817F817F, 0x7F817F7F, 0x817F7F7F, 0x817F817F,
+0x8181817F, 0x8181817F, 0x817F7F81, 0x81817F81, 0x7F81817F, 0x817F7F81, 0x817F7F81, 0x81818181,
+0x7F817F7F, 0x817F7F81, 0x7F81817F, 0x817F8181, 0x7F817F81, 0x7F7F8181, 0x7F81817F, 0x7F7F7F7F,
+0x81817F7F, 0x7F7F7F81, 0x81818181, 0x817F8181, 0x7F7F817F, 0x8181817F, 0x81817F81, 0x81818181,
+0x7F817F81, 0x7F7F7F81, 0x7F7F7F7F, 0x7F7F8181, 0x7F81817F, 0x81817F81, 0x7F7F7F81, 0x7F817F7F,
+0x7F817F81, 0x7F7F8181, 0x7F817F81, 0x8181817F, 0x817F7F7F, 0x817F817F, 0x7F7F7F7F, 0x817F817F,
+0x7F817F7F, 0x7F817F7F, 0x7F817F81, 0x7F817F7F, 0x7F7F7F81, 0x7F7F7F7F, 0x817F7F7F, 0x81817F7F,
+0x7F817F81, 0x7F7F7F7F, 0x7F7F817F, 0x7F818181, 0x7F7F7F7F, 0x817F817F, 0x8181817F, 0x817F8181,
+0x7F7F8181, 0x7F7F7F7F, 0x7F7F8181, 0x7F818181, 0x817F7F7F, 0x81817F81, 0x81817F7F, 0x817F8181,
+0x81818181, 0x81817F7F, 0x7F81817F, 0x7F7F8181, 0x7F817F81, 0x81817F81, 0x7F817F7F, 0x817F7F7F,
+0x817F7F7F, 0x817F817F, 0x7F818181, 0x817F7F81, 0x7F7F7F81, 0x817F7F81, 0x7F817F81, 0x7F7F7F81,
+0x817F817F, 0x7F81817F, 0x817F7F81, 0x8181817F, 0x817F7F81, 0x817F8181, 0x81818181, 0x7F7F7F7F,
+0x817F7F81, 0x7F817F81, 0x817F817F, 0x817F7F7F, 0x81817F81, 0x7F817F81, 0x7F7F7F7F, 0x7F7F7F81,
+0x817F8181, 0x81817F7F, 0x7F81817F, 0x81817F81, 0x81818181, 0x81817F81, 0x7F7F8181, 0x81818181,
+0x81818181, 0x817F7F81, 0x81818181, 0x7F7F817F, 0x817F817F, 0x7F818181, 0x8181817F, 0x817F8181,
+0x7F7F817F, 0x7F817F7F, 0x7F818181, 0x817F7F81, 0x7F817F81, 0x7F7F7F7F, 0x81817F7F, 0x7F7F817F,
+0x7F817F7F, 0x8181817F, 0x7F817F81, 0x81817F7F, 0x7F81817F, 0x817F7F81, 0x7F7F7F81, 0x817F817F,
+0x7F81817F, 0x817F7F81, 0x817F817F, 0x7F817F7F, 0x817F8181, 0x7F7F8181, 0x81818181, 0x817F8181,
+0x7F7F817F, 0x81817F7F, 0x817F8181, 0x817F817F, 0x817F8181, 0x7F7F7F81, 0x7F81817F, 0x7F7F7F7F,
+0x7F7F7F81, 0x7F7F7F81, 0x7F7F817F, 0x81817F81, 0x81817F81, 0x81817F7F, 0x7F7F7F81, 0x7F7F7F81,
+0x817F7F7F, 0x7F7F7F7F, 0x7F817F81, 0x7F817F81, 0x817F8181, 0x7F818181, 0x817F817F, 0x7F7F7F7F,
+0x817F7F7F, 0x81818181, 0x81817F7F, 0x7F818181, 0x817F817F, 0x7F81817F, 0x817F8181, 0x7F7F7F7F,
+0x7F817F7F, 0x81817F81, 0x817F7F7F, 0x7F817F7F, 0x7F7F8181, 0x817F8181, 0x7F7F7F81, 0x7F7F7F7F,
+0x8181817F, 0x81818181, 0x7F81817F, 0x7F7F7F7F, 0x817F7F7F, 0x817F7F7F, 0x817F8181, 0x7F7F8181,
+0x7F7F7F7F, 0x817F817F, 0x8181817F, 0x7F818181, 0x817F7F81, 0x817F8181, 0x7F7F8181, 0x817F8181,
+0x7F7F7F7F, 0x7F818181, 0x817F817F, 0x817F7F7F, 0x81818181, 0x81817F7F, 0x7F7F8181, 0x7F7F7F7F,
+0x7F7F817F, 0x817F817F, 0x8181817F, 0x817F817F, 0x7F7F817F, 0x7F817F81, 0x7F7F817F, 0x817F7F7F,
+0x817F817F, 0x8181817F, 0x817F7F7F, 0x817F817F, 0x7F817F7F, 0x817F7F7F, 0x81817F81, 0x7F7F7F81,
+0x817F817F, 0x81817F7F, 0x7F81817F, 0x81818181, 0x81817F7F, 0x7F818181, 0x817F7F7F, 0x7F7F7F7F,
+0x8181817F, 0x7F817F7F, 0x8181817F, 0x7F81817F, 0x7F817F81, 0x7F7F817F, 0x7F7F7F7F, 0x7F7F7F81,
+0x817F7F81, 0x817F7F7F, 0x7F7F8181, 0x81817F7F, 0x817F8181, 0x817F7F81, 0x7F7F7F7F, 0x7F7F817F,
+0x817F817F, 0x7F7F8181, 0x81818181, 0x7F817F7F, 0x7F7F7F81, 0x817F7F7F, 0x81817F7F, 0x7F817F7F,
+0x817F8181, 0x7F817F7F, 0x7F817F81, 0x7F817F81, 0x7F817F7F, 0x7F81817F, 0x8181817F, 0x817F817F,
+0x81817F7F, 0x81817F81, 0x81817F81, 0x7F7F817F, 0x7F7F7F81, 0x817F7F81, 0x81817F7F, 0x7F7F8181,
+0x817F817F, 0x817F7F81, 0x8181817F, 0x7F818181, 0x8181817F, 0x7F81817F, 0x81817F81, 0x7F817F81,
+0x7F817F81, 0x7F7F8181, 0x7F7F7F81, 0x7F818181, 0x8181817F, 0x7F7F7F81, 0x7F817F81, 0x7F817F7F,
+0x81817F7F, 0x817F8181, 0x817F8181, 0x81818181, 0x81818181, 0x817F7F81, 0x817F817F, 0x7F818181,
+0x7F818181, 0x7F81817F, 0x81817F81, 0x81817F81, 0x8181817F, 0x7F817F7F, 0x7F7F7F81, 0x81818181,
+0x7F817F7F, 0x81817F81, 0x7F817F7F, 0x7F817F81, 0x81817F81, 0x817F817F, 0x7F7F8181, 0x7F7F817F,
+0x7F818181, 0x817F7F81, 0x7F7F7F81, 0x7F7F7F7F, 0x817F7F7F, 0x7F817F81, 0x7F818181, 0x7F7F7F81,
+0x817F8181, 0x817F817F, 0x7F817F7F, 0x7F7F817F, 0x7F81817F, 0x81817F81, 0x7F7F8181, 0x817F8181,
+0x817F817F, 0x817F7F7F, 0x7F7F817F, 0x8181817F, 0x817F7F81, 0x81817F7F, 0x7F7F817F, 0x81818181,
+0x81817F81, 0x817F817F, 0x7F7F8181, 0x7F817F7F, 0x81818181, 0x7F7F8181, 0x7F817F81, 0x81817F7F,
+0x7F817F7F, 0x7F817F81, 0x81817F81, 0x817F7F7F, 0x7F7F817F, 0x81818181, 0x817F7F7F, 0x7F7F8181,
+0x7F7F817F, 0x817F817F, 0x81817F7F, 0x7F818181, 0x81817F7F, 0x7F81817F, 0x8181817F, 0x7F7F8181,
+0x81817F7F, 0x7F817F81, 0x81817F81, 0x7F81817F, 0x8181817F, 0x7F7F8181, 0x7F817F7F, 0x81817F7F,
+0x81818181, 0x817F8181, 0x817F8181, 0x7F81817F, 0x7F817F7F, 0x7F81817F, 0x817F7F7F, 0x81818181,
+0x7F81817F, 0x817F7F7F, 0x81818181, 0x7F818181, 0x81818181, 0x81817F7F, 0x7F817F81, 0x7F817F81,
+0x7F817F81, 0x7F7F7F81, 0x81817F81, 0x81817F7F, 0x817F8181, 0x81817F7F, 0x7F7F817F, 0x7F7F7F81,
+0x7F7F7F81, 0x817F7F7F, 0x8181817F, 0x7F817F81, 0x7F817F81, 0x8181817F, 0x7F817F81, 0x7F817F7F,
+0x81817F81, 0x7F7F817F, 0x7F7F817F, 0x7F817F81, 0x7F7F8181, 0x81818181, 0x7F817F81, 0x817F8181,
+0x81817F81, 0x7F7F817F, 0x81818181, 0x817F7F81, 0x817F7F81, 0x7F7F817F, 0x817F8181, 0x81818181,
+0x81817F7F, 0x7F7F7F81, 0x7F817F81, 0x7F7F7F81, 0x817F817F, 0x7F818181, 0x7F7F817F, 0x7F81817F,
+0x817F817F, 0x7F7F8181, 0x7F817F81, 0x817F7F7F, 0x7F7F817F, 0x81817F81, 0x7F7F8181, 0x7F818181,
+0x817F817F, 0x7F817F81, 0x7F81817F, 0x81818181, 0x7F7F7F81, 0x7F817F7F, 0x8181817F, 0x817F817F,
+0x7F817F7F, 0x7F7F8181, 0x7F818181, 0x81817F7F, 0x81817F7F, 0x8181817F, 0x817F8181, 0x817F817F,
+0x7F7F8181, 0x817F8181, 0x81818181, 0x7F818181, 0x81818181, 0x7F7F7F81, 0x7F7F7F81, 0x817F817F,
+0x817F7F7F, 0x7F7F8181, 0x7F817F81, 0x81817F81, 0x8181817F, 0x7F7F8181, 0x817F8181, 0x7F7F7F7F,
+0x817F7F7F, 0x7F7F7F7F, 0x817F7F7F, 0x81817F7F, 0x81818181, 0x817F7F81, 0x81817F7F, 0x7F7F817F,
+0x7F7F8181, 0x7F817F81, 0x81817F7F, 0x7F81817F, 0x7F7F7F7F, 0x81817F81, 0x7F7F8181, 0x7F7F817F,
+0x8181817F, 0x7F818181, 0x7F817F7F, 0x817F7F81, 0x7F818181, 0x7F7F7F7F, 0x7F7F8181, 0x7F7F8181,
+0x817F7F7F, 0x7F7F7F7F, 0x7F81817F, 0x7F81817F, 0x7F817F7F, 0x8181817F, 0x81818181, 0x81817F81,
+0x7F818181, 0x7F7F8181, 0x7F7F7F81, 0x7F817F7F, 0x817F8181, 0x81818181, 0x7F81817F, 0x8181817F,
+0x7F817F81, 0x7F817F81, 0x7F7F7F81, 0x81818181, 0x81817F81, 0x817F817F, 0x7F7F7F81, 0x81817F81,
+0x7F7F8181, 0x7F817F7F, 0x81817F81, 0x817F8181, 0x7F817F81, 0x81817F7F, 0x7F7F8181, 0x7F818181,
+0x7F81817F, 0x7F7F7F81, 0x817F7F7F, 0x817F8181, 0x81817F81, 0x7F817F7F, 0x7F7F7F7F, 0x7F817F7F,
+0x7F81817F, 0x7F7F8181, 0x7F7F7F81, 0x7F817F81, 0x817F7F7F, 0x81818181, 0x7F7F8181, 0x7F7F8181,
+0x7F7F817F, 0x7F818181, 0x7F817F81, 0x81818181, 0x7F7F7F7F, 0x7F817F7F, 0x81818181, 0x817F7F81,
+0x7F818181, 0x7F817F81, 0x7F817F7F, 0x7F7F7F81, 0x817F7F7F, 0x7F7F7F81, 0x7F817F7F, 0x8181817F,
+0x7F7F7F81, 0x7F817F81, 0x7F817F7F, 0x817F7F81, 0x7F817F7F, 0x7F7F7F81, 0x817F7F81, 0x7F7F7F7F,
+0x817F817F, 0x7F81817F, 0x7F7F7F7F, 0x817F7F7F, 0x81817F81, 0x81818181, 0x81817F81, 0x817F817F,
+0x7F7F7F81, 0x7F7F7F81, 0x81817F7F, 0x817F7F7F, 0x81817F7F, 0x81817F81, 0x817F817F, 0x7F817F81,
+0x7F7F7F7F, 0x7F81817F, 0x7F81817F, 0x7F7F7F81, 0x7F7F8181, 0x81817F81, 0x7F81817F, 0x7F7F8181,
+0x7F817F81, 0x7F817F7F, 0x7F817F81, 0x7F7F817F, 0x81818181, 0x81817F7F, 0x7F818181, 0x7F817F7F,
+0x81817F81, 0x817F7F81, 0x7F81817F, 0x81817F81, 0x8181817F, 0x8181817F, 0x81817F7F, 0x81817F81,
+0x817F7F81, 0x7F7F7F7F, 0x817F7F7F, 0x8181817F, 0x817F8181, 0x7F7F7F7F, 0x7F81817F, 0x7F81817F,
+0x817F7F7F, 0x7F7F817F, 0x7F817F7F, 0x7F7F817F, 0x81817F7F, 0x81818181, 0x817F7F7F, 0x81817F7F,
+0x8181817F, 0x817F8181, 0x81818181, 0x7F818181, 0x7F7F817F, 0x817F817F, 0x817F7F7F, 0x7F7F817F,
+0x817F817F, 0x81817F81, 0x817F7F81, 0x7F818181, 0x7F7F8181, 0x8181817F, 0x817F817F, 0x7F7F8181,
+0x7F7F7F7F, 0x81818181, 0x817F8181, 0x81817F7F, 0x817F817F, 0x81818181, 0x81817F81, 0x817F7F81,
+0x7F7F8181, 0x817F817F, 0x817F7F7F, 0x81818181, 0x817F7F81, 0x8181817F, 0x817F817F, 0x7F7F7F7F,
+0x7F7F8181, 0x7F817F81, 0x81818181, 0x7F818181, 0x7F81817F, 0x7F817F81, 0x7F7F7F81, 0x817F8181,
+0x8181817F, 0x7F7F8181, 0x7F7F817F, 0x7F817F7F, 0x81817F81, 0x7F817F7F, 0x81817F7F, 0x81818181,
+0x7F818181, 0x7F7F8181, 0x7F7F7F81, 0x7F7F7F7F, 0x7F817F81, 0x817F7F81, 0x7F7F8181, 0x817F7F7F,
+0x7F817F81, 0x81818181, 0x81818181, 0x7F817F7F, 0x7F7F8181, 0x817F7F81, 0x817F817F, 0x7F7F817F,
+0x81818181, 0x81817F7F, 0x817F7F81, 0x817F8181, 0x817F817F, 0x7F7F7F7F, 0x7F7F7F7F, 0x81818181,
+0x7F817F81, 0x7F7F817F, 0x7F7F7F7F, 0x7F817F81, 0x817F7F81, 0x817F817F, 0x817F7F7F, 0x81817F81,
+0x817F7F81, 0x7F81817F, 0x817F7F7F, 0x817F817F, 0x817F817F, 0x81817F81, 0x817F7F7F, 0x7F818181,
+0x81817F81, 0x817F7F81, 0x8181817F, 0x7F7F817F, 0x7F818181, 0x817F7F81, 0x817F7F81, 0x81817F7F,
+0x7F7F7F7F, 0x81818181, 0x817F7F7F, 0x7F817F81, 0x817F8181, 0x817F817F, 0x8181817F, 0x817F7F7F,
+0x817F8181, 0x817F8181, 0x81818181, 0x7F7F817F, 0x8181817F, 0x81817F7F, 0x7F7F8181, 0x817F7F81,
+0x7F817F81, 0x7F81817F, 0x7F81817F, 0x7F817F7F, 0x81817F81, 0x81818181, 0x8181817F, 0x817F7F81,
+0x81818181, 0x817F7F81, 0x817F817F, 0x7F7F7F81, 0x7F817F7F, 0x81818181, 0x7F7F8181, 0x8181817F,
+0x817F8181, 0x7F81817F, 0x8181817F, 0x7F7F7F81, 0x817F8181, 0x7F7F817F, 0x7F7F8181, 0x7F817F81,
+0x7F7F8181, 0x8181817F, 0x81817F7F, 0x7F81817F, 0x8181817F, 0x7F7F8181, 0x7F7F7F7F, 0x81818181,
+0x7F7F7F81, 0x817F7F7F, 0x7F7F7F81, 0x7F7F817F, 0x817F8181, 0x7F7F7F7F, 0x7F7F7F7F, 0x817F817F,
+0x7F81817F, 0x8181817F, 0x7F7F7F81, 0x817F8181, 0x817F7F81, 0x817F817F, 0x7F7F817F, 0x81817F7F,
+0x817F7F7F, 0x7F817F81, 0x817F7F7F, 0x7F818181, 0x81818181, 0x817F7F7F, 0x817F7F81, 0x81817F7F,
+0x7F81817F, 0x7F817F7F, 0x7F7F8181, 0x7F818181, 0x817F8181, 0x817F8181, 0x817F8181, 0x7F7F8181,
+0x7F81817F, 0x7F817F7F, 0x7F817F81, 0x7F7F8181, 0x817F817F, 0x8181817F, 0x81817F81, 0x7F7F817F,
+0x7F81817F, 0x7F7F7F81, 0x7F7F7F81, 0x7F817F7F, 0x7F817F81, 0x817F7F81, 0x817F8181, 0x7F7F817F,
+0x817F7F7F, 0x7F817F81, 0x7F7F817F, 0x8181817F, 0x817F7F81, 0x81817F7F, 0x7F817F81, 0x8181817F,
+0x7F818181, 0x7F7F7F7F, 0x81817F7F, 0x8181817F, 0x81817F81, 0x7F81817F, 0x8181817F, 0x7F817F81,
+0x7F81817F, 0x7F7F8181, 0x7F817F81, 0x7F7F7F81, 0x817F7F81, 0x81817F81, 0x817F7F7F, 0x81817F81,
+0x81818181, 0x8181817F, 0x817F817F, 0x7F818181, 0x7F81817F, 0x81817F81, 0x7F7F817F, 0x817F817F,
+0x817F7F7F, 0x817F7F7F, 0x817F817F, 0x8181817F, 0x7F818181, 0x8181817F, 0x817F8181, 0x7F817F7F,
+0x7F7F8181, 0x817F8181, 0x7F81817F, 0x81817F81, 0x817F817F, 0x7F818181, 0x81818181, 0x817F7F81,
+0x7F81817F, 0x8181817F, 0x81817F7F, 0x7F7F817F, 0x7F7F7F7F, 0x7F7F817F, 0x817F8181, 0x81817F7F,
+0x7F817F7F, 0x817F7F7F, 0x817F7F7F, 0x7F81817F, 0x7F81817F, 0x81818181, 0x7F7F7F7F, 0x817F817F,
+0x7F7F817F, 0x7F818181, 0x7F7F7F81, 0x817F8181, 0x817F8181, 0x817F817F, 0x7F817F7F, 0x817F7F7F,
+0x8181817F, 0x7F818181, 0x81818181, 0x817F817F, 0x817F7F81, 0x7F818181, 0x7F7F7F7F, 0x7F7F8181,
+0x81817F81, 0x817F7F7F, 0x7F7F817F, 0x817F817F, 0x81817F81, 0x7F81817F, 0x817F7F81, 0x7F81817F,
+0x7F7F817F, 0x7F7F7F7F, 0x7F7F7F7F, 0x81817F7F, 0x7F817F81, 0x7F7F7F81, 0x81818181, 0x817F817F,
+0x8181817F, 0x7F817F81, 0x7F7F817F, 0x7F7F8181, 0x817F7F81, 0x7F817F81, 0x81817F81, 0x817F8181,
+0x7F7F7F7F, 0x817F817F, 0x7F817F81, 0x81817F7F, 0x817F7F81, 0x7F7F817F, 0x7F7F817F, 0x817F8181,
+0x81817F81, 0x7F7F817F, 0x81818181, 0x817F7F81, 0x817F8181, 0x7F7F7F7F, 0x817F817F, 0x817F7F81,
+0x81818181, 0x817F7F81, 0x817F817F, 0x7F81817F, 0x81817F7F, 0x81818181, 0x817F7F7F, 0x817F7F7F,
+0x81817F81, 0x817F817F, 0x7F7F817F, 0x7F7F7F81, 0x7F817F81, 0x817F7F81, 0x7F818181, 0x7F7F7F7F,
+0x817F7F81, 0x817F7F81, 0x7F817F7F, 0x7F817F7F, 0x817F7F81, 0x7F7F7F81, 0x81817F81, 0x81818181,
+0x7F817F81, 0x817F7F7F, 0x817F7F7F, 0x7F818181, 0x817F817F, 0x817F8181, 0x7F817F81, 0x7F7F7F7F,
+0x7F7F7F81, 0x7F817F81, 0x7F7F7F7F, 0x81818181, 0x7F7F8181, 0x817F817F, 0x7F818181, 0x817F7F81,
+0x7F7F7F7F, 0x7F7F817F, 0x7F7F7F81, 0x81818181, 0x7F81817F, 0x81817F81, 0x7F817F81, 0x81818181,
+0x817F817F, 0x7F818181, 0x7F7F817F, 0x7F7F7F81, 0x7F7F7F7F, 0x817F817F, 0x7F81817F, 0x81817F81,
+0x7F7F7F81, 0x7F817F81, 0x7F7F817F, 0x817F817F, 0x817F8181, 0x817F8181, 0x817F7F7F, 0x8181817F,
+0x7F81817F, 0x7F7F817F, 0x817F7F81, 0x7F7F817F, 0x7F7F7F81, 0x817F7F7F, 0x81818181, 0x81817F81,
+0x817F7F7F, 0x81818181, 0x81818181, 0x7F81817F, 0x7F818181, 0x7F817F7F, 0x817F817F, 0x7F7F8181,
+0x7F7F817F, 0x7F7F7F81, 0x817F817F, 0x81818181, 0x81818181, 0x817F7F81, 0x7F818181, 0x7F7F8181,
+0x7F817F81, 0x7F817F7F, 0x81818181, 0x81817F81, 0x7F81817F, 0x7F7F8181, 0x7F817F81, 0x7F817F7F,
+0x7F7F7F7F, 0x81818181, 0x817F8181, 0x7F7F7F7F, 0x7F7F7F7F, 0x81818181, 0x7F81817F, 0x7F817F81,
+0x7F7F7F7F, 0x81818181, 0x7F7F8181, 0x81817F81, 0x7F817F81, 0x7F817F7F, 0x7F817F81, 0x8181817F,
+0x7F7F7F81, 0x817F8181, 0x8181817F, 0x7F81817F, 0x817F7F7F, 0x7F7F7F7F, 0x81818181, 0x7F818181,
+0x7F7F817F, 0x81817F7F, 0x7F7F7F81, 0x8181817F, 0x7F817F7F, 0x817F817F, 0x7F7F817F, 0x7F817F81,
+0x817F7F7F, 0x7F817F81, 0x7F7F8181, 0x7F7F817F, 0x81818181, 0x7F817F7F, 0x81817F81, 0x81817F81,
+0x7F818181, 0x7F818181, 0x817F8181, 0x81817F81, 0x817F7F7F, 0x817F7F81, 0x81818181, 0x817F817F,
+0x81817F81, 0x7F81817F, 0x8181817F, 0x7F81817F, 0x7F817F81, 0x7F81817F, 0x817F7F81, 0x817F8181,
+0x7F7F8181, 0x817F7F81, 0x7F7F817F, 0x817F7F81, 0x817F7F81, 0x7F7F817F, 0x7F818181, 0x7F7F7F81,
+0x7F818181, 0x817F817F, 0x7F818181, 0x81817F81, 0x817F7F7F, 0x81817F7F, 0x81817F7F, 0x7F818181,
+0x7F817F81, 0x817F817F, 0x7F7F817F, 0x7F817F7F, 0x7F7F817F, 0x7F817F81, 0x7F7F817F, 0x7F817F81,
+0x7F7F7F81, 0x7F817F7F, 0x81817F7F, 0x817F7F7F, 0x7F81817F, 0x7F81817F, 0x7F7F817F, 0x7F817F7F,
+0x7F817F81, 0x81817F81, 0x7F7F7F81, 0x817F817F, 0x7F817F81, 0x81818181, 0x817F8181, 0x7F817F81,
+0x7F7F8181, 0x81817F81, 0x817F7F7F, 0x81817F81, 0x7F81817F, 0x8181817F, 0x7F7F8181, 0x7F7F8181,
+0x7F818181, 0x7F818181, 0x817F7F81, 0x817F7F7F, 0x8181817F, 0x7F7F817F, 0x7F817F7F, 0x817F7F7F,
+0x81818181, 0x7F817F7F, 0x81817F81, 0x7F81817F, 0x7F7F8181, 0x817F7F81, 0x817F8181, 0x7F7F8181,
+0x7F818181, 0x7F817F81, 0x7F817F81, 0x8181817F, 0x7F817F81, 0x81817F7F, 0x7F818181, 0x817F7F7F,
+0x81818181, 0x817F7F81, 0x81818181, 0x7F817F7F, 0x817F7F7F, 0x81817F7F, 0x8181817F, 0x81817F81,
+0x817F7F81, 0x81818181, 0x81817F81, 0x7F7F8181, 0x81818181, 0x7F7F8181, 0x7F7F8181, 0x81818181,
+0x7F7F7F81, 0x8181817F, 0x81818181, 0x81817F7F, 0x7F7F7F81, 0x81818181, 0x81817F7F, 0x817F8181,
+0x7F7F7F81, 0x7F7F7F81, 0x7F817F81, 0x7F7F7F81, 0x7F817F81, 0x81817F81, 0x8181817F, 0x817F7F7F,
+0x7F7F8181, 0x817F7F7F, 0x7F818181, 0x7F7F817F, 0x81817F7F, 0x81818181, 0x7F817F7F, 0x817F8181,
+0x817F8181, 0x7F7F8181, 0x81817F81, 0x81817F7F, 0x817F7F7F, 0x7F817F81, 0x7F7F7F7F, 0x7F7F7F81,
+0x7F7F817F, 0x81817F81, 0x81817F81, 0x7F817F81, 0x7F817F7F, 0x817F7F7F, 0x81817F81, 0x81818181,
+0x7F7F7F7F, 0x7F7F7F7F, 0x7F7F7F7F, 0x81818181, 0x7F7F8181, 0x7F818181, 0x7F7F817F, 0x7F817F81,
+0x817F7F81, 0x7F817F7F, 0x81817F81, 0x817F817F, 0x817F817F, 0x7F817F81, 0x7F81817F, 0x81818181,
+0x7F7F7F81, 0x7F7F8181, 0x81818181, 0x7F7F7F7F, 0x7F817F7F, 0x7F7F7F81, 0x817F8181, 0x81817F7F,
+0x7F818181, 0x817F7F81, 0x7F7F7F81, 0x7F7F7F81, 0x7F817F7F, 0x81817F7F, 0x817F817F, 0x7F7F817F,
+0x8181817F, 0x7F817F81, 0x817F7F7F, 0x817F817F, 0x7F817F81, 0x7F7F817F, 0x7F818181, 0x8181817F,
+0x817F817F, 0x7F81817F, 0x7F817F7F, 0x7F7F7F81, 0x817F817F, 0x81817F7F, 0x7F818181, 0x7F7F7F81,
+0x7F7F7F81, 0x7F818181, 0x817F817F, 0x7F817F7F, 0x817F8181, 0x7F7F8181, 0x7F818181, 0x7F7F7F81,
+0x7F817F81, 0x7F818181, 0x817F817F, 0x7F81817F, 0x7F817F7F, 0x81817F7F, 0x81817F7F, 0x81818181,
+0x7F7F7F81, 0x7F817F7F, 0x8181817F, 0x7F7F7F81, 0x7F7F7F81, 0x7F81817F, 0x8181817F, 0x7F81817F,
+0x817F8181, 0x7F7F7F7F, 0x7F818181, 0x7F81817F, 0x817F7F7F, 0x817F7F7F, 0x7F818181, 0x7F7F8181,
+0x817F817F, 0x8181817F, 0x817F8181, 0x7F817F7F, 0x7F817F7F, 0x817F8181, 0x7F7F7F7F, 0x7F7F8181,
+0x817F817F, 0x7F7F7F81, 0x7F7F8181, 0x817F817F, 0x7F817F81, 0x8181817F, 0x7F7F817F, 0x7F7F7F7F,
+0x817F817F, 0x7F7F8181, 0x7F7F7F81, 0x7F7F7F81, 0x7F7F817F, 0x81818181, 0x81817F7F, 0x817F817F,
+0x817F817F, 0x8181817F, 0x7F7F7F7F, 0x8181817F, 0x7F817F7F, 0x7F818181, 0x7F817F7F, 0x7F817F81,
+0x817F7F81, 0x817F817F, 0x7F81817F, 0x817F8181, 0x7F7F7F7F, 0x7F817F81, 0x7F81817F, 0x7F7F8181,
+0x7F7F7F7F, 0x817F7F81, 0x81817F7F, 0x7F817F81, 0x7F7F8181, 0x7F817F7F, 0x7F818181, 0x7F7F7F7F,
+0x81818181, 0x8181817F, 0x7F817F7F, 0x81818181, 0x81818181, 0x81817F7F, 0x817F8181, 0x817F7F7F,
+0x7F817F7F, 0x7F818181, 0x7F7F7F81, 0x7F7F817F, 0x7F817F7F, 0x8181817F, 0x8181817F, 0x7F818181,
+0x8181817F, 0x7F818181, 0x817F8181, 0x817F7F81, 0x817F8181, 0x81818181, 0x81817F7F, 0x7F7F8181,
+0x81818181, 0x81817F81, 0x7F7F7F7F, 0x8181817F, 0x7F81817F, 0x7F7F7F81, 0x7F817F7F, 0x81818181,
+0x81817F81, 0x817F8181, 0x7F7F7F7F, 0x8181817F, 0x7F818181, 0x817F8181, 0x817F8181, 0x81817F81,
+0x817F817F, 0x81817F81, 0x7F81817F, 0x7F7F817F, 0x81817F7F, 0x817F7F81, 0x7F817F81, 0x7F7F7F7F,
+0x817F817F, 0x817F817F, 0x7F7F7F7F, 0x817F7F81, 0x7F7F817F, 0x81817F81, 0x81817F7F, 0x7F817F7F,
+0x7F817F7F, 0x8181817F, 0x7F7F7F7F, 0x817F8181, 0x7F81817F, 0x7F817F7F, 0x8181817F, 0x81817F7F,
+0x817F817F, 0x81818181, 0x817F8181, 0x8181817F, 0x7F7F817F, 0x8181817F, 0x7F7F7F7F, 0x7F7F8181,
+0x8181817F, 0x7F817F81, 0x817F8181, 0x81817F7F, 0x817F7F7F, 0x81817F81, 0x817F817F, 0x817F7F7F,
+0x7F7F817F, 0x7F7F817F, 0x7F7F817F, 0x7F7F8181, 0x7F7F7F7F, 0x7F7F8181, 0x7F818181, 0x7F7F7F81,
+0x81818181, 0x7F818181, 0x8181817F, 0x7F817F81, 0x817F8181, 0x8181817F, 0x7F817F81, 0x81817F7F,
+0x81817F7F, 0x817F8181, 0x817F817F, 0x7F7F7F7F, 0x7F7F7F81, 0x81817F81, 0x7F7F7F7F, 0x817F817F,
+0x7F7F7F81, 0x8181817F, 0x7F7F8181, 0x817F7F7F, 0x817F7F7F, 0x7F817F81, 0x81817F7F, 0x817F7F81,
+0x7F7F7F7F, 0x81817F81, 0x817F817F, 0x81818181, 0x7F7F817F, 0x7F817F7F, 0x817F8181, 0x8181817F,
+0x7F81817F, 0x817F817F, 0x7F81817F, 0x8181817F, 0x7F7F7F81, 0x8181817F, 0x817F7F81, 0x81817F7F,
+0x7F7F817F, 0x7F7F8181, 0x817F8181, 0x81818181, 0x7F7F8181, 0x7F817F81, 0x817F7F7F, 0x7F7F7F7F,
+0x817F7F81, 0x7F817F81, 0x817F817F, 0x81817F7F, 0x81818181, 0x81817F7F, 0x7F7F8181, 0x7F7F817F,
+0x7F81817F, 0x7F7F8181, 0x8181817F, 0x8181817F, 0x8181817F, 0x81817F81, 0x81818181, 0x817F7F7F,
+0x81818181, 0x7F817F81, 0x817F8181, 0x7F818181, 0x8181817F, 0x81817F81, 0x7F7F7F7F, 0x817F7F7F,
+0x817F7F7F, 0x81818181, 0x7F81817F, 0x817F817F, 0x81818181, 0x7F7F817F, 0x8181817F, 0x7F7F817F,
+0x7F818181, 0x817F817F, 0x7F7F8181, 0x817F7F7F, 0x81818181, 0x81817F81, 0x7F81817F, 0x817F817F,
+0x81817F81, 0x7F81817F, 0x7F7F8181, 0x7F81817F, 0x817F817F, 0x7F7F8181, 0x81818181, 0x817F817F,
+0x817F7F7F, 0x7F817F81, 0x7F7F817F, 0x7F7F7F7F, 0x817F817F, 0x7F817F7F, 0x817F7F7F, 0x8181817F,
+0x81817F7F, 0x7F7F817F, 0x7F81817F, 0x7F7F817F, 0x81818181, 0x81817F81, 0x7F7F7F81, 0x817F817F,
+0x7F7F7F7F, 0x7F81817F, 0x7F7F7F7F, 0x81818181, 0x81818181, 0x817F8181, 0x81817F81, 0x7F7F7F81,
+0x81818181, 0x81818181, 0x7F7F7F81, 0x7F7F7F7F, 0x7F7F7F7F, 0x817F8181, 0x7F7F817F, 0x817F8181,
+0x7F7F7F81, 0x817F8181, 0x7F7F817F, 0x81817F7F, 0x817F8181, 0x7F7F7F81, 0x7F7F7F7F, 0x817F8181,
+0x81817F81, 0x8181817F, 0x7F7F817F, 0x7F7F817F, 0x817F817F, 0x7F7F7F81, 0x817F7F7F, 0x7F7F8181,
+0x7F81817F, 0x81817F81, 0x81818181, 0x7F81817F, 0x7F818181, 0x7F7F8181, 0x81817F7F, 0x817F7F7F,
+0x7F817F7F, 0x7F7F7F81, 0x81817F81, 0x817F817F, 0x7F817F81, 0x7F7F7F81, 0x81818181, 0x7F7F7F81,
+0x8181817F, 0x81817F7F, 0x7F7F7F7F, 0x81817F7F, 0x81817F81, 0x7F818181, 0x7F817F81, 0x817F7F81,
+0x81818181, 0x7F7F8181, 0x7F7F8181, 0x8181817F, 0x7F7F7F7F, 0x817F7F7F, 0x7F7F8181, 0x7F7F817F,
+0x81818181, 0x7F7F817F, 0x81818181, 0x81818181, 0x7F817F81, 0x817F7F7F, 0x81817F7F, 0x81817F81,
+0x81817F81, 0x817F8181, 0x7F81817F, 0x81817F81, 0x817F7F81, 0x7F7F817F, 0x7F81817F, 0x81817F7F,
+0x817F7F81, 0x81817F7F, 0x7F7F817F, 0x7F7F7F81, 0x817F817F, 0x817F7F7F, 0x7F7F7F81, 0x7F817F7F,
+0x817F8181, 0x7F81817F, 0x7F7F7F7F, 0x81817F7F, 0x7F818181, 0x81817F7F, 0x817F7F81, 0x7F7F8181,
+0x7F7F7F81, 0x7F7F817F, 0x7F817F7F, 0x7F7F817F, 0x7F818181, 0x7F817F81, 0x817F817F, 0x817F7F7F,
+0x7F817F81, 0x7F817F7F, 0x7F817F81, 0x7F7F8181, 0x7F7F817F, 0x7F7F8181, 0x7F7F7F7F, 0x817F817F,
+0x81817F7F, 0x7F817F7F, 0x7F817F7F, 0x81817F81, 0x7F7F7F81, 0x817F7F7F, 0x81817F7F, 0x81818181,
+0x81817F7F, 0x81818181, 0x7F81817F, 0x7F7F7F7F, 0x81817F7F, 0x7F7F8181, 0x7F7F7F7F, 0x81818181,
+0x81817F81, 0x7F81817F, 0x7F7F7F81, 0x7F81817F, 0x81817F7F, 0x817F8181, 0x7F7F817F, 0x81817F81,
+0x817F817F, 0x7F7F7F7F, 0x817F817F, 0x817F7F81, 0x81817F7F, 0x81818181, 0x817F8181, 0x81817F7F,
+0x7F7F8181, 0x7F7F7F7F, 0x81817F81, 0x81818181, 0x7F7F817F, 0x7F7F7F7F, 0x81817F7F, 0x81817F7F,
+0x817F7F81, 0x817F8181, 0x81817F81, 0x8181817F, 0x7F7F8181, 0x7F818181, 0x7F7F817F, 0x8181817F,
+0x81817F7F, 0x7F7F8181, 0x817F817F, 0x817F8181, 0x7F817F81, 0x81817F81, 0x817F7F7F, 0x7F7F8181,
+0x81817F81, 0x817F817F, 0x8181817F, 0x7F818181, 0x7F7F7F81, 0x817F7F81, 0x8181817F, 0x7F7F817F,
+0x7F81817F, 0x817F8181, 0x7F7F7F7F, 0x817F8181, 0x81817F7F, 0x7F817F7F, 0x817F7F7F, 0x7F7F8181,
+0x817F8181, 0x7F817F7F, 0x7F7F7F81, 0x7F7F7F7F, 0x7F7F7F7F, 0x7F7F817F, 0x7F7F7F81, 0x81818181,
+0x817F7F7F, 0x81817F81, 0x81817F7F, 0x81817F7F, 0x7F7F7F81, 0x7F7F817F, 0x817F7F7F, 0x81817F7F,
+0x81817F81, 0x81817F7F, 0x7F817F81, 0x8181817F, 0x7F81817F, 0x81817F7F, 0x7F7F7F81, 0x81817F7F,
+0x7F7F7F7F, 0x7F7F817F, 0x817F7F81, 0x817F817F, 0x7F7F817F, 0x81817F7F, 0x7F817F81, 0x817F817F,
+0x7F7F7F81, 0x7F7F7F7F, 0x7F817F81, 0x7F817F81, 0x7F7F7F7F, 0x7F81817F, 0x7F7F7F7F, 0x7F818181,
+0x817F817F, 0x7F7F8181, 0x81818181, 0x817F817F, 0x81817F81, 0x81818181, 0x7F7F817F, 0x81817F81,
+0x81818181, 0x81817F7F, 0x817F7F81, 0x7F7F817F, 0x7F7F7F7F, 0x7F7F7F7F, 0x7F7F817F, 0x8181817F,
+0x7F817F81, 0x7F817F81, 0x7F818181, 0x817F7F81, 0x7F818181, 0x7F7F7F81, 0x7F7F7F81, 0x817F8181,
+0x817F7F81, 0x7F81817F, 0x7F817F7F, 0x8181817F, 0x7F817F81, 0x8181817F, 0x7F817F81, 0x81817F81,
+0x7F81817F, 0x81817F7F, 0x81817F81, 0x7F817F7F, 0x81817F7F, 0x81817F7F, 0x7F7F817F, 0x81817F7F,
+0x7F818181, 0x81817F81, 0x7F7F7F7F, 0x7F7F817F, 0x7F818181, 0x81818181, 0x7F81817F, 0x81818181,
+0x7F817F7F, 0x7F817F7F, 0x7F7F8181, 0x8181817F, 0x7F817F7F, 0x817F7F7F, 0x81818181, 0x817F7F81,
+0x7F7F8181, 0x7F7F7F81, 0x81817F81, 0x7F7F817F, 0x817F7F81, 0x817F7F81, 0x817F7F81, 0x817F817F,
+0x817F817F, 0x7F817F81, 0x81818181, 0x817F817F, 0x7F818181, 0x81818181, 0x81817F81, 0x81818181,
+0x7F7F7F7F, 0x7F817F7F, 0x7F817F81, 0x817F817F, 0x817F7F81, 0x7F817F81, 0x81818181, 0x7F7F7F81,
+0x817F7F7F, 0x7F7F7F81, 0x817F817F, 0x7F817F7F, 0x7F818181, 0x7F7F7F81, 0x817F8181, 0x81818181,
+0x81817F7F, 0x7F7F7F7F, 0x817F817F, 0x817F7F81, 0x7F818181, 0x817F7F7F, 0x7F7F7F7F, 0x7F818181,
+0x81818181, 0x7F7F7F81, 0x7F817F81, 0x8181817F, 0x7F817F7F, 0x7F817F81, 0x7F7F7F81, 0x81817F81,
+0x7F817F7F, 0x81817F7F, 0x81817F7F, 0x7F7F7F81, 0x81817F81, 0x7F7F7F7F, 0x817F8181, 0x817F8181,
+0x7F7F8181, 0x7F817F7F, 0x7F817F81, 0x81817F7F, 0x7F817F7F, 0x8181817F, 0x8181817F, 0x7F7F817F,
+0x817F817F, 0x7F81817F, 0x81818181, 0x817F817F, 0x7F7F817F, 0x7F817F81, 0x7F7F7F81, 0x7F818181,
+0x7F7F7F7F, 0x7F818181, 0x7F81817F, 0x7F7F817F, 0x7F817F81, 0x817F7F81, 0x7F81817F, 0x7F81817F,
+0x7F817F81, 0x7F818181, 0x8181817F, 0x817F7F7F, 0x7F817F81, 0x7F817F7F, 0x7F817F7F, 0x7F818181,
+0x7F7F7F7F, 0x7F7F8181, 0x81817F81, 0x817F817F, 0x817F817F, 0x81817F81, 0x81818181, 0x7F7F8181,
+0x81817F7F, 0x7F817F7F, 0x81817F81, 0x7F7F817F, 0x817F817F, 0x7F7F7F7F, 0x817F8181, 0x7F7F8181,
+0x817F8181, 0x7F81817F, 0x81817F81, 0x81817F7F, 0x7F7F7F81, 0x81817F81, 0x81818181, 0x8181817F,
+0x817F8181, 0x7F818181, 0x817F817F, 0x7F81817F, 0x7F81817F, 0x817F7F7F, 0x7F817F81, 0x7F7F7F7F,
+0x7F7F817F, 0x7F7F7F7F, 0x8181817F, 0x7F817F81, 0x8181817F, 0x817F8181, 0x817F817F, 0x7F817F81,
+0x81817F81, 0x81818181, 0x8181817F, 0x7F7F817F, 0x81817F81, 0x817F8181, 0x7F7F817F, 0x7F7F7F7F,
+0x817F7F81, 0x81817F81, 0x7F7F8181, 0x817F7F7F, 0x7F817F7F, 0x7F7F8181, 0x7F7F7F81, 0x7F7F7F81,
+0x7F7F817F, 0x81817F7F, 0x7F81817F, 0x817F7F7F, 0x7F817F7F, 0x81817F81, 0x817F8181, 0x81817F81,
+0x7F81817F, 0x7F7F8181, 0x7F81817F, 0x7F7F7F81, 0x81817F7F, 0x7F817F7F, 0x817F817F, 0x817F817F,
+0x7F817F7F, 0x7F7F7F7F, 0x817F817F, 0x81817F7F, 0x817F8181, 0x7F81817F, 0x7F817F81, 0x7F81817F,
+0x7F817F7F, 0x7F817F81, 0x81817F81, 0x81817F7F, 0x81817F81, 0x817F817F, 0x7F81817F, 0x7F817F81,
+0x81817F7F, 0x817F817F, 0x817F7F81, 0x817F817F, 0x817F7F7F, 0x7F817F7F, 0x81817F7F, 0x7F7F817F,
+0x7F817F7F, 0x81818181, 0x817F8181, 0x817F7F81, 0x7F7F817F, 0x817F7F7F, 0x817F7F81, 0x7F818181,
+0x7F7F7F81, 0x817F817F, 0x7F817F81, 0x7F7F7F7F, 0x7F7F7F81, 0x7F81817F, 0x81817F7F, 0x817F8181,
+0x7F7F8181, 0x817F7F7F, 0x7F818181, 0x7F7F7F7F, 0x8181817F, 0x817F8181, 0x7F817F81, 0x7F817F7F,
+0x817F7F7F, 0x817F7F7F, 0x7F818181, 0x7F7F8181, 0x81818181, 0x81817F81, 0x7F81817F, 0x81818181,
+0x7F7F7F81, 0x817F7F7F, 0x81817F81, 0x7F818181, 0x7F817F81, 0x7F7F817F, 0x8181817F, 0x8181817F,
+0x7F7F7F81, 0x7F81817F, 0x81818181, 0x7F7F7F81, 0x817F7F7F, 0x817F8181, 0x7F7F8181, 0x7F818181,
+0x81817F81, 0x7F817F81, 0x817F7F81, 0x7F81817F, 0x7F7F7F81, 0x7F818181, 0x81817F7F, 0x817F7F7F,
+0x7F7F7F81, 0x7F7F817F, 0x7F7F817F, 0x81817F81, 0x7F7F8181, 0x7F7F7F81, 0x7F7F7F81, 0x7F817F7F,
+0x7F7F817F, 0x81818181, 0x7F7F7F81, 0x8181817F, 0x81817F81, 0x817F7F81, 0x7F7F817F, 0x7F7F7F7F,
+0x7F817F81, 0x817F7F81, 0x81818181, 0x817F7F81, 0x81818181, 0x817F7F81, 0x81817F7F, 0x817F7F81,
+0x7F7F8181, 0x81817F81, 0x7F817F81, 0x7F817F81, 0x7F818181, 0x7F7F7F7F, 0x7F817F7F, 0x817F7F7F,
+0x817F817F, 0x7F7F7F81, 0x7F7F8181, 0x7F7F7F81, 0x8181817F, 0x81818181, 0x7F817F7F, 0x81817F7F,
+0x7F817F7F, 0x817F8181, 0x7F7F7F7F, 0x7F818181, 0x8181817F, 0x7F7F7F7F, 0x81818181, 0x81818181,
+0x7F7F7F81, 0x817F8181, 0x817F817F, 0x817F7F7F, 0x7F7F817F, 0x7F7F7F7F, 0x7F817F81, 0x7F7F7F81,
+0x7F7F7F81, 0x81817F7F, 0x817F8181, 0x817F817F, 0x817F817F, 0x7F818181, 0x817F817F, 0x7F818181,
+0x7F7F817F, 0x7F818181, 0x7F7F8181, 0x81817F81, 0x817F7F7F, 0x817F7F7F, 0x8181817F, 0x81817F81,
+0x8181817F, 0x81818181, 0x81817F7F, 0x81817F81, 0x8181817F, 0x81817F7F, 0x817F7F81, 0x817F7F81,
+0x7F817F81, 0x817F7F81, 0x81818181, 0x8181817F, 0x7F817F81, 0x7F817F81, 0x81818181, 0x81818181,
+0x81817F81, 0x8181817F, 0x817F7F7F, 0x81817F7F, 0x7F7F8181, 0x81817F81, 0x81817F81, 0x7F7F7F81,
+0x817F817F, 0x7F7F8181, 0x7F818181, 0x7F7F817F, 0x8181817F, 0x7F817F81, 0x7F818181, 0x7F81817F,
+0x7F7F8181, 0x7F817F7F, 0x7F817F7F, 0x81818181, 0x817F8181, 0x7F817F81, 0x81818181, 0x81818181,
+0x817F8181, 0x8181817F, 0x7F7F7F81, 0x81817F81, 0x817F8181, 0x7F7F7F7F, 0x7F7F817F, 0x8181817F,
+0x81818181, 0x7F81817F, 0x7F817F81, 0x7F7F8181, 0x7F7F7F81, 0x81817F81, 0x817F8181, 0x7F81817F,
+0x7F818181, 0x817F8181, 0x81817F7F, 0x7F7F7F7F, 0x7F817F81, 0x7F818181, 0x817F8181, 0x7F817F81,
+0x7F817F81, 0x81818181, 0x817F817F, 0x7F7F8181, 0x8181817F, 0x81817F7F, 0x817F7F81, 0x817F817F,
+0x7F81817F, 0x817F817F, 0x81817F81, 0x817F7F7F, 0x817F7F81, 0x7F81817F, 0x81818181, 0x7F7F7F81,
+0x7F7F817F, 0x7F818181, 0x7F7F8181, 0x817F7F81, 0x817F817F, 0x81817F81, 0x81817F7F, 0x817F7F81,
+0x81817F81, 0x7F7F7F7F, 0x7F7F7F7F, 0x81817F7F, 0x81818181, 0x7F7F7F81, 0x7F817F81, 0x817F8181,
+0x7F7F817F, 0x817F8181, 0x7F817F7F, 0x81818181, 0x81817F81, 0x7F7F7F81, 0x8181817F, 0x7F81817F,
+0x81817F7F, 0x81817F7F, 0x817F8181, 0x817F8181, 0x817F7F7F, 0x7F817F7F, 0x81818181, 0x81817F7F,
+0x817F7F81, 0x817F8181, 0x7F817F81, 0x7F7F817F, 0x817F8181, 0x7F7F7F7F, 0x7F7F7F7F, 0x817F8181,
+0x817F817F, 0x7F818181, 0x81817F81, 0x81817F7F, 0x817F817F, 0x7F817F7F, 0x7F7F7F7F, 0x7F7F7F81,
+0x7F81817F, 0x7F81817F, 0x7F7F817F, 0x81817F7F, 0x81818181, 0x817F7F7F, 0x7F7F817F, 0x817F8181,
+0x8181817F, 0x817F7F81, 0x7F7F8181, 0x8181817F, 0x7F7F7F7F, 0x817F7F7F, 0x81817F81, 0x7F817F81,
+0x81818181, 0x7F817F81, 0x7F817F81, 0x7F7F7F81, 0x817F7F7F, 0x817F817F, 0x817F7F7F, 0x7F7F817F,
+0x7F817F7F, 0x817F817F, 0x81818181, 0x817F817F, 0x817F7F7F, 0x7F7F7F7F, 0x817F8181, 0x7F7F8181,
+0x7F7F7F81, 0x7F7F7F7F, 0x7F81817F, 0x817F8181, 0x7F818181, 0x7F7F7F7F, 0x817F7F7F, 0x7F7F8181,
+0x7F818181, 0x7F81817F, 0x7F7F7F81, 0x817F7F81, 0x81817F7F, 0x7F7F7F7F, 0x817F7F81, 0x817F817F,
+0x7F818181, 0x817F817F, 0x81817F7F, 0x7F818181, 0x81817F7F, 0x7F7F8181, 0x817F7F81, 0x81817F7F,
+0x7F817F7F, 0x7F817F7F, 0x817F7F7F, 0x7F7F7F7F, 0x7F7F7F81, 0x81817F81, 0x7F7F8181, 0x817F7F7F,
+0x8181817F, 0x817F7F7F, 0x817F7F7F, 0x817F8181, 0x817F8181, 0x817F7F7F, 0x81818181, 0x7F817F81,
+0x81817F81, 0x81818181, 0x817F7F81, 0x7F817F7F, 0x7F818181, 0x7F817F81, 0x7F817F81, 0x817F7F7F,
+0x817F7F81, 0x7F7F7F81, 0x817F7F7F, 0x8181817F, 0x7F818181, 0x7F81817F, 0x7F817F7F, 0x7F817F81,
+0x7F7F8181, 0x81818181, 0x7F7F8181, 0x7F7F7F7F, 0x817F8181, 0x7F7F7F7F, 0x7F81817F, 0x81817F7F,
+0x81817F7F, 0x7F7F817F, 0x7F7F8181, 0x7F817F81, 0x81818181, 0x7F7F7F81, 0x817F7F7F, 0x7F7F8181,
+0x81818181, 0x81817F81, 0x7F7F7F81, 0x7F817F81, 0x8181817F, 0x7F7F817F, 0x817F8181, 0x81818181,
+0x817F7F81, 0x8181817F, 0x7F818181, 0x7F7F7F81, 0x81818181, 0x817F8181, 0x81818181, 0x7F7F7F7F,
+0x817F7F81, 0x817F7F81, 0x7F7F817F, 0x81817F7F, 0x81818181, 0x7F7F8181, 0x7F817F7F, 0x7F81817F,
+0x7F7F8181, 0x817F817F, 0x81818181, 0x81818181, 0x7F81817F, 0x81817F7F, 0x7F818181, 0x817F817F,
+0x817F7F7F, 0x7F7F7F81, 0x7F818181, 0x7F817F7F, 0x7F817F81, 0x81818181, 0x7F818181, 0x7F81817F,
+0x7F7F817F, 0x81817F81, 0x7F817F7F, 0x817F817F, 0x7F818181, 0x81817F7F, 0x817F817F, 0x7F818181,
+0x7F7F7F7F, 0x7F7F7F81, 0x817F817F, 0x7F818181, 0x817F817F, 0x7F81817F, 0x8181817F, 0x7F81817F,
+0x81817F81, 0x7F818181, 0x7F818181, 0x81818181, 0x81818181, 0x817F817F, 0x8181817F, 0x7F7F7F7F,
+0x817F7F81, 0x7F817F81, 0x7F817F81, 0x7F7F8181, 0x7F81817F, 0x7F81817F, 0x81817F81, 0x817F8181,
+0x81817F81, 0x817F7F7F, 0x81817F7F, 0x7F7F8181, 0x7F7F7F81, 0x817F817F, 0x817F7F81, 0x7F7F7F7F,
+0x817F817F, 0x817F817F, 0x7F7F8181, 0x7F818181, 0x7F7F7F7F, 0x7F817F7F, 0x7F817F81, 0x7F7F7F7F,
+0x81818181, 0x7F7F817F, 0x7F81817F, 0x81817F7F, 0x7F818181, 0x7F817F7F, 0x7F817F81, 0x81818181,
+0x7F817F81, 0x817F817F, 0x7F817F81, 0x817F817F, 0x7F7F817F, 0x817F8181, 0x7F7F7F81, 0x7F7F7F7F,
+0x817F7F81, 0x817F817F, 0x817F7F7F, 0x81818181, 0x817F7F81, 0x8181817F, 0x81817F81, 0x81817F81,
+0x7F7F817F, 0x7F81817F, 0x817F8181, 0x7F818181, 0x817F817F, 0x81817F81, 0x8181817F, 0x8181817F,
+0x817F817F, 0x81818181, 0x817F817F, 0x81817F81, 0x7F817F81, 0x817F7F7F, 0x7F818181, 0x817F8181,
+0x81818181, 0x7F818181, 0x7F817F7F, 0x7F7F8181, 0x817F817F, 0x7F817F81, 0x81817F7F, 0x817F8181,
+0x817F817F, 0x81817F7F, 0x7F818181, 0x817F7F81, 0x817F7F81, 0x81818181, 0x7F81817F, 0x817F8181,
+0x81818181, 0x817F817F, 0x7F7F817F, 0x817F7F7F, 0x7F7F817F, 0x817F817F, 0x7F818181, 0x7F7F7F81,
+0x7F817F7F, 0x817F7F81, 0x81818181, 0x81817F81, 0x8181817F, 0x7F7F817F, 0x7F81817F, 0x817F817F,
+0x7F81817F, 0x817F7F81, 0x817F8181, 0x7F7F8181, 0x81817F7F, 0x7F817F81, 0x81818181, 0x817F8181,
+0x7F818181, 0x817F8181, 0x817F8181, 0x817F8181, 0x7F817F81, 0x7F818181, 0x817F7F7F, 0x81817F81,
+0x7F7F8181, 0x7F817F7F, 0x817F7F7F, 0x7F7F7F7F, 0x81818181, 0x7F7F7F81, 0x7F818181, 0x81817F7F,
+0x8181817F, 0x7F7F8181, 0x7F7F7F81, 0x817F8181, 0x7F7F8181, 0x7F7F8181, 0x7F7F7F81, 0x8181817F,
+0x817F7F81, 0x7F7F817F, 0x81818181, 0x7F7F7F81, 0x7F817F7F, 0x81817F7F, 0x817F8181, 0x7F7F8181,
+0x817F8181, 0x7F7F8181, 0x7F817F81, 0x7F81817F, 0x81817F7F, 0x817F817F, 0x8181817F, 0x7F81817F,
+0x817F7F7F, 0x81817F81, 0x817F7F7F, 0x81817F7F, 0x7F7F817F, 0x7F818181, 0x7F817F7F, 0x817F7F81,
+0x8181817F, 0x817F7F7F, 0x7F7F817F, 0x7F7F817F, 0x81818181, 0x7F817F81, 0x7F81817F, 0x7F817F7F,
+0x7F7F7F7F, 0x7F818181, 0x7F7F7F81, 0x8181817F, 0x817F8181, 0x81817F7F, 0x7F7F7F81, 0x81817F7F,
+0x7F817F7F, 0x7F7F817F, 0x817F7F81, 0x81817F7F, 0x7F817F7F, 0x81817F81, 0x81818181, 0x7F7F7F81,
+0x7F7F7F7F, 0x7F7F817F, 0x81817F7F, 0x7F818181, 0x7F7F817F, 0x817F7F81, 0x7F7F7F81, 0x7F817F81,
+0x8181817F, 0x817F817F, 0x817F8181, 0x81818181, 0x81818181, 0x7F7F8181, 0x7F817F81, 0x7F7F7F81,
+0x7F7F7F81, 0x7F7F7F7F, 0x81817F7F, 0x7F817F81, 0x817F817F, 0x7F7F7F81, 0x7F817F7F, 0x7F7F7F7F,
+0x7F7F817F, 0x7F818181, 0x7F7F817F, 0x7F817F7F, 0x817F7F81, 0x7F7F817F, 0x817F817F, 0x7F817F81,
+0x7F7F7F7F, 0x7F81817F, 0x817F8181, 0x817F7F81, 0x7F7F8181, 0x7F818181, 0x817F7F7F, 0x7F7F7F81,
+0x7F7F817F, 0x7F817F81, 0x81818181, 0x7F817F7F, 0x817F7F7F, 0x8181817F, 0x81817F81, 0x7F7F817F,
+0x7F7F817F, 0x817F7F7F, 0x817F7F81, 0x81817F7F, 0x7F7F7F7F, 0x7F7F7F81, 0x7F7F817F, 0x8181817F,
+0x7F7F8181, 0x7F7F7F7F, 0x81817F7F, 0x7F817F7F, 0x7F817F81, 0x7F7F817F, 0x7F81817F, 0x7F817F7F,
+0x81818181, 0x817F8181, 0x8181817F, 0x817F8181, 0x7F7F8181, 0x817F7F7F, 0x81818181, 0x817F8181,
+0x817F8181, 0x7F817F7F, 0x7F7F8181, 0x7F81817F, 0x7F7F7F81, 0x817F7F81, 0x817F817F, 0x81817F81,
+0x81817F7F, 0x8181817F, 0x7F818181, 0x817F8181, 0x7F7F8181, 0x7F7F7F81, 0x7F7F8181, 0x7F7F7F81,
+0x81817F81, 0x817F7F7F, 0x81817F7F, 0x7F7F7F81, 0x7F7F817F, 0x817F8181, 0x817F8181, 0x7F7F817F,
+0x7F817F7F, 0x7F7F8181, 0x81818181, 0x81818181, 0x7F81817F, 0x817F8181, 0x817F7F81, 0x7F817F81,
+0x7F81817F, 0x817F817F, 0x7F7F8181, 0x81817F81, 0x817F817F, 0x7F818181, 0x8181817F, 0x7F7F8181,
+0x817F817F, 0x7F7F7F7F, 0x7F7F817F, 0x7F7F8181, 0x7F7F7F81, 0x817F7F7F, 0x8181817F, 0x7F81817F,
+0x81817F7F, 0x81817F7F, 0x7F81817F, 0x7F817F81, 0x817F8181, 0x817F817F, 0x81817F81, 0x81817F7F,
+0x81818181, 0x7F7F7F81, 0x7F817F7F, 0x7F7F817F, 0x81818181, 0x817F7F7F, 0x817F817F, 0x817F8181,
+0x817F8181, 0x817F7F81, 0x7F817F81, 0x817F817F, 0x817F7F81, 0x7F817F7F, 0x817F8181, 0x81817F81,
+0x7F7F7F7F, 0x817F8181, 0x7F817F7F, 0x7F818181, 0x7F7F7F7F, 0x81818181, 0x7F817F7F, 0x817F7F7F,
+0x817F7F7F, 0x81817F81, 0x81818181, 0x81818181, 0x81818181, 0x81818181, 0x817F817F, 0x7F7F7F7F,
+0x817F7F81, 0x7F7F7F7F, 0x7F7F8181, 0x817F8181, 0x8181817F, 0x7F818181, 0x817F7F7F, 0x81817F81,
+0x81818181, 0x7F818181, 0x817F8181, 0x7F817F7F, 0x817F7F7F, 0x7F818181, 0x7F7F817F, 0x7F7F7F81,
+0x7F818181, 0x7F7F7F81, 0x7F817F81, 0x7F7F7F81, 0x7F7F817F, 0x817F8181, 0x7F7F7F7F, 0x817F7F81,
+0x81818181, 0x7F817F81, 0x81818181, 0x7F7F7F81, 0x817F7F7F, 0x817F7F7F, 0x81818181, 0x817F7F7F,
+0x817F8181, 0x81818181, 0x8181817F, 0x7F817F7F, 0x8181817F, 0x7F7F7F81, 0x7F817F81, 0x7F7F8181,
+0x7F7F817F, 0x7F7F7F7F, 0x7F818181, 0x7F817F7F, 0x7F7F7F81, 0x81818181, 0x7F7F817F, 0x81817F81,
+0x81818181, 0x817F8181, 0x7F7F7F7F, 0x817F7F7F, 0x7F7F8181, 0x81818181, 0x7F817F81, 0x8181817F,
+0x817F7F7F, 0x81817F81, 0x7F817F81, 0x81818181, 0x7F817F81, 0x81818181, 0x8181817F, 0x7F817F7F,
+0x8181817F, 0x7F818181, 0x8181817F, 0x81818181, 0x81817F81, 0x7F818181, 0x7F817F7F, 0x8181817F,
+0x81817F7F, 0x7F7F817F, 0x7F817F7F, 0x81817F81, 0x81818181, 0x7F7F817F, 0x7F818181, 0x817F817F,
+0x817F7F81, 0x7F81817F, 0x8181817F, 0x7F817F7F, 0x7F7F7F81, 0x7F7F7F7F, 0x7F7F7F7F, 0x7F817F7F,
+0x81818181, 0x7F81817F, 0x817F7F81, 0x7F7F8181, 0x817F817F, 0x81818181, 0x81817F7F, 0x7F817F7F,
+0x817F7F81, 0x7F817F7F, 0x817F7F7F, 0x7F7F8181, 0x7F818181, 0x7F818181, 0x817F7F81, 0x8181817F,
+0x817F817F, 0x7F7F8181, 0x81818181, 0x7F81817F, 0x7F818181, 0x7F81817F, 0x817F8181, 0x817F817F,
+0x7F7F7F7F, 0x81818181, 0x7F7F817F, 0x817F7F81, 0x7F817F81, 0x7F817F7F, 0x8181817F, 0x7F818181,
+0x817F817F, 0x817F7F7F, 0x81817F7F, 0x7F7F817F, 0x7F81817F, 0x7F818181, 0x7F81817F, 0x7F81817F,
+0x7F7F817F, 0x81817F7F, 0x7F81817F, 0x7F817F81, 0x8181817F, 0x7F818181, 0x81817F81, 0x817F7F7F,
+0x7F81817F, 0x7F818181, 0x7F818181, 0x7F7F817F, 0x81818181, 0x81817F81, 0x817F7F7F, 0x7F817F81,
+0x817F7F7F, 0x81817F81, 0x7F7F7F81, 0x8181817F, 0x7F817F7F, 0x81817F81, 0x7F7F7F81, 0x817F8181,
+0x817F7F81, 0x7F818181, 0x817F7F7F, 0x7F817F81, 0x7F817F7F, 0x7F817F81, 0x817F8181, 0x817F817F,
+0x817F7F7F, 0x817F7F7F, 0x7F817F81, 0x8181817F, 0x7F818181, 0x81817F81, 0x7F7F817F, 0x817F7F7F,
+0x7F81817F, 0x81817F81, 0x817F7F81, 0x7F7F7F7F, 0x7F7F817F, 0x81817F81, 0x817F7F81, 0x817F8181,
+0x81818181, 0x7F81817F, 0x7F817F81, 0x7F817F7F, 0x81817F81, 0x817F817F, 0x7F817F81, 0x7F818181,
+0x7F818181, 0x8181817F, 0x81817F7F, 0x7F7F7F7F, 0x7F7F8181, 0x817F817F, 0x8181817F, 0x7F818181,
+0x8181817F, 0x7F818181, 0x7F7F8181, 0x7F7F7F81, 0x81817F7F, 0x81818181, 0x7F7F7F7F, 0x7F81817F,
+0x81817F7F, 0x7F817F7F, 0x7F7F7F7F, 0x8181817F, 0x7F7F7F81, 0x81817F7F, 0x7F7F817F, 0x7F7F7F81,
+0x7F817F7F, 0x817F817F, 0x7F817F7F, 0x81817F81, 0x7F818181, 0x7F7F8181, 0x7F818181, 0x817F817F,
+0x7F817F7F, 0x7F81817F, 0x7F7F7F7F, 0x81818181, 0x8181817F, 0x81817F81, 0x7F817F81, 0x817F7F7F,
+0x8181817F, 0x7F7F7F81, 0x7F817F81, 0x7F7F7F81, 0x7F81817F, 0x81817F7F, 0x7F817F7F, 0x7F7F8181,
+0x7F817F81, 0x817F7F7F, 0x7F81817F, 0x7F817F7F, 0x817F7F7F, 0x81817F7F, 0x8181817F, 0x7F817F81,
+0x81817F7F, 0x817F7F7F, 0x817F8181, 0x7F818181, 0x81817F81, 0x7F7F817F, 0x7F81817F, 0x7F7F7F81,
+0x8181817F, 0x7F818181, 0x7F7F817F, 0x81817F81, 0x7F7F8181, 0x817F7F7F, 0x7F81817F, 0x7F818181,
+0x7F7F7F7F, 0x817F817F, 0x81817F7F, 0x81817F81, 0x817F817F, 0x7F7F8181, 0x7F818181, 0x7F81817F,
+0x7F818181, 0x7F7F8181, 0x817F817F, 0x7F817F7F, 0x81817F81, 0x7F7F817F, 0x7F7F7F81, 0x7F818181,
+0x7F7F8181, 0x7F817F81, 0x817F7F81, 0x7F7F817F, 0x817F8181, 0x817F8181, 0x81817F81, 0x7F81817F,
+0x7F7F8181, 0x817F817F, 0x817F7F81, 0x7F817F7F, 0x7F7F8181, 0x817F817F, 0x7F7F7F81, 0x817F8181,
+0x81817F81, 0x7F818181, 0x7F817F81, 0x7F7F7F81, 0x7F817F7F, 0x7F818181, 0x7F7F817F, 0x7F7F7F7F,
+0x817F7F7F, 0x81817F81, 0x817F7F7F, 0x81817F7F, 0x817F7F81, 0x81818181, 0x7F81817F, 0x7F7F7F81,
+0x817F8181, 0x817F7F7F, 0x817F817F, 0x7F7F817F, 0x81817F7F, 0x7F817F81, 0x817F8181, 0x7F817F81,
+0x7F817F81, 0x7F7F8181, 0x7F81817F, 0x7F7F817F, 0x817F8181, 0x7F817F7F, 0x7F7F817F, 0x817F7F7F,
+0x7F7F8181, 0x81818181, 0x7F7F7F7F, 0x7F818181, 0x817F7F7F, 0x817F817F, 0x7F817F81, 0x817F8181,
+0x817F7F81, 0x7F7F7F7F, 0x7F7F7F7F, 0x8181817F, 0x8181817F, 0x817F817F, 0x817F8181, 0x8181817F,
+0x7F817F81, 0x7F7F7F7F, 0x7F818181, 0x7F817F7F, 0x7F7F817F, 0x7F81817F, 0x81817F81, 0x817F8181,
+0x7F7F7F81, 0x8181817F, 0x8181817F, 0x81818181, 0x7F7F8181, 0x817F7F81, 0x7F817F7F, 0x817F8181,
+0x7F817F81, 0x7F818181, 0x81818181, 0x7F81817F, 0x8181817F, 0x7F81817F, 0x7F817F7F, 0x7F7F817F,
+0x7F7F7F81, 0x7F818181, 0x8181817F, 0x8181817F, 0x81818181, 0x7F7F817F, 0x7F817F7F, 0x7F7F7F81,
+0x817F817F, 0x7F817F81, 0x7F818181, 0x8181817F, 0x81817F81, 0x817F7F81, 0x81817F81, 0x7F7F817F,
+0x817F8181, 0x7F81817F, 0x7F817F7F, 0x7F817F81, 0x817F817F, 0x81817F7F, 0x7F818181, 0x817F817F,
+0x7F7F7F81, 0x817F817F, 0x8181817F, 0x7F7F817F, 0x7F7F7F81, 0x7F817F81, 0x7F818181, 0x817F817F,
+0x817F817F, 0x81817F7F, 0x7F817F7F, 0x817F817F, 0x817F8181, 0x817F8181, 0x817F8181, 0x81818181,
+0x817F7F81, 0x817F7F7F, 0x81817F7F, 0x81818181, 0x817F7F81, 0x817F8181, 0x8181817F, 0x8181817F,
+0x81817F7F, 0x81817F7F, 0x81817F7F, 0x7F7F7F7F, 0x817F7F81, 0x81818181, 0x817F8181, 0x7F7F7F81,
+0x817F817F, 0x7F817F7F, 0x7F7F817F, 0x817F7F7F, 0x81817F81, 0x81817F81, 0x7F7F817F, 0x7F817F7F,
+0x7F7F7F7F, 0x817F7F7F, 0x81818181, 0x81817F81, 0x7F81817F, 0x7F818181, 0x7F817F7F, 0x81818181,
+0x81817F81, 0x81817F81, 0x7F7F817F, 0x81817F7F, 0x7F817F7F, 0x7F7F8181, 0x81818181, 0x8181817F,
+0x7F81817F, 0x81817F7F, 0x7F7F7F81, 0x7F81817F, 0x817F8181, 0x81817F81, 0x81818181, 0x817F7F7F,
+0x7F818181, 0x7F817F7F, 0x7F817F7F, 0x817F817F, 0x7F817F81, 0x7F81817F, 0x817F817F, 0x81817F81,
+0x817F7F7F, 0x8181817F, 0x7F7F7F7F, 0x7F7F7F7F, 0x817F7F7F, 0x7F7F7F81, 0x817F7F7F, 0x8181817F,
+0x81817F81, 0x81817F7F, 0x7F7F7F7F, 0x81817F7F, 0x817F7F7F, 0x81818181, 0x817F7F7F, 0x817F817F,
+0x8181817F, 0x7F817F7F, 0x817F7F81, 0x8181817F, 0x817F8181, 0x7F817F81, 0x8181817F, 0x81818181,
+0x7F7F7F81, 0x817F8181, 0x7F817F7F, 0x81818181, 0x7F818181, 0x81817F81, 0x817F7F7F, 0x817F8181,
+0x7F818181, 0x7F818181, 0x7F818181, 0x817F817F, 0x7F7F7F81, 0x817F8181, 0x817F7F7F, 0x8181817F,
+0x7F7F8181, 0x7F817F81, 0x7F7F7F7F, 0x7F817F81, 0x81818181, 0x817F7F7F, 0x817F8181, 0x81818181,
+0x7F817F7F, 0x7F817F81, 0x817F7F81, 0x81818181, 0x7F7F8181, 0x7F817F7F, 0x7F817F7F, 0x817F8181,
+0x7F7F817F, 0x7F81817F, 0x8181817F, 0x81817F7F, 0x8181817F, 0x817F7F81, 0x81818181, 0x7F817F7F,
+0x817F817F, 0x817F8181, 0x817F817F, 0x81817F7F, 0x817F7F81, 0x7F7F7F81, 0x7F7F8181, 0x7F817F7F,
+0x81817F7F, 0x817F817F, 0x817F7F7F, 0x817F8181, 0x7F81817F, 0x7F7F8181, 0x81817F81, 0x817F817F,
+0x7F7F7F81, 0x81817F81, 0x817F7F7F, 0x81817F7F, 0x7F7F7F81, 0x817F7F81, 0x7F81817F, 0x81817F7F,
+0x7F817F81, 0x7F818181, 0x81817F7F, 0x7F817F7F, 0x81817F81, 0x8181817F, 0x817F817F, 0x7F7F817F,
+0x817F817F, 0x7F7F7F81, 0x817F7F81, 0x817F7F81, 0x7F817F81, 0x81818181, 0x81817F7F, 0x81818181,
+0x817F817F, 0x7F817F7F, 0x81817F7F, 0x7F818181, 0x81818181, 0x7F818181, 0x81817F7F, 0x81817F81,
+0x81817F7F, 0x7F818181, 0x817F8181, 0x7F7F7F81, 0x817F7F7F, 0x817F7F7F, 0x7F817F81, 0x81817F7F,
+0x81817F81, 0x817F8181, 0x81817F81, 0x7F7F7F7F, 0x7F818181, 0x8181817F, 0x817F817F, 0x7F7F7F7F,
+0x81817F81, 0x7F7F817F, 0x817F7F81, 0x8181817F, 0x7F7F7F81, 0x81818181, 0x7F7F8181, 0x7F817F7F,
+0x81817F81, 0x8181817F, 0x7F817F81, 0x7F817F81, 0x817F7F7F, 0x81818181, 0x7F7F7F81, 0x7F7F8181,
+0x817F817F, 0x81817F7F, 0x817F8181, 0x7F7F817F, 0x7F817F7F, 0x81817F81, 0x817F8181, 0x7F817F7F,
+0x7F81817F, 0x817F817F, 0x7F7F817F, 0x817F8181, 0x7F81817F, 0x7F817F81, 0x7F7F817F, 0x7F818181,
+0x817F817F, 0x817F7F7F, 0x7F81817F, 0x7F817F7F, 0x7F81817F, 0x81817F81, 0x7F81817F, 0x7F817F7F,
+0x7F81817F, 0x7F7F8181, 0x8181817F, 0x81818181, 0x817F817F, 0x7F7F817F, 0x817F7F7F, 0x81818181,
+0x7F817F81, 0x7F7F7F7F, 0x7F7F7F7F, 0x817F817F, 0x7F7F7F81, 0x817F7F7F, 0x7F818181, 0x81818181,
+0x81817F81, 0x7F81817F, 0x7F81817F, 0x7F817F7F, 0x7F817F81, 0x7F7F7F7F, 0x81817F81, 0x8181817F,
+0x7F7F8181, 0x8181817F, 0x817F817F, 0x7F7F8181, 0x81817F7F, 0x7F817F7F, 0x7F818181, 0x817F7F7F,
+0x7F817F81, 0x7F817F7F, 0x7F818181, 0x8181817F, 0x7F7F7F7F, 0x8181817F, 0x7F7F7F81, 0x7F817F7F,
+0x817F8181, 0x7F81817F, 0x7F818181, 0x7F7F7F7F, 0x7F817F81, 0x817F7F81, 0x81817F81, 0x7F7F7F7F,
+0x7F7F8181, 0x817F7F7F, 0x8181817F, 0x7F7F7F81, 0x8181817F, 0x81817F81, 0x7F7F7F7F, 0x817F7F81,
+0x8181817F, 0x7F81817F, 0x7F7F817F, 0x817F7F7F, 0x817F7F7F, 0x817F8181, 0x7F7F8181, 0x7F7F817F,
+0x81817F7F, 0x7F7F8181, 0x817F817F, 0x8181817F, 0x817F8181, 0x81817F81, 0x817F7F7F, 0x81817F7F,
+0x817F7F81, 0x7F7F7F81, 0x7F818181, 0x817F817F, 0x817F7F81, 0x817F7F7F, 0x817F817F, 0x7F817F7F,
+0x81817F81, 0x7F7F817F, 0x7F817F81, 0x81818181, 0x817F8181, 0x817F7F7F, 0x81818181, 0x7F7F817F,
+0x8181817F, 0x7F7F7F7F, 0x7F818181, 0x817F7F81, 0x81817F7F, 0x81818181, 0x7F817F81, 0x817F7F81,
+0x817F8181, 0x7F7F7F81, 0x7F7F817F, 0x7F817F7F, 0x81817F7F, 0x7F7F7F7F, 0x7F81817F, 0x8181817F,
+0x817F817F, 0x7F817F81, 0x7F817F81, 0x81817F7F, 0x817F7F81, 0x7F7F7F81, 0x7F7F8181, 0x7F7F8181,
+0x7F818181, 0x817F817F, 0x7F7F817F, 0x7F817F81, 0x81817F81, 0x817F8181, 0x7F7F8181, 0x7F818181,
+0x81817F7F, 0x817F7F81, 0x81817F81, 0x81817F81, 0x81817F81, 0x7F7F7F81, 0x7F7F817F, 0x8181817F,
+0x7F7F817F, 0x7F818181, 0x7F817F7F, 0x817F7F81, 0x7F7F7F81, 0x7F817F81, 0x817F817F, 0x81818181,
+0x7F7F7F81, 0x817F7F7F, 0x7F817F81, 0x7F7F7F81, 0x81818181, 0x817F8181, 0x81817F7F, 0x8181817F,
+0x81817F81, 0x817F8181, 0x817F8181, 0x817F817F, 0x7F7F7F81, 0x817F7F7F, 0x817F7F81, 0x7F818181,
+0x817F8181, 0x817F7F7F, 0x817F7F7F, 0x81817F81, 0x7F81817F, 0x817F7F81, 0x7F7F817F, 0x8181817F,
+0x81818181, 0x7F7F7F81, 0x81818181, 0x81817F81, 0x817F7F81, 0x7F817F7F, 0x81818181, 0x81817F81,
+0x7F7F7F81, 0x817F8181, 0x7F7F7F81, 0x817F7F81, 0x7F817F81, 0x7F817F81, 0x7F817F7F, 0x7F7F817F,
+0x7F817F7F, 0x817F7F81, 0x817F817F, 0x81817F81, 0x7F7F7F7F, 0x81817F81, 0x7F7F7F7F, 0x817F8181,
+0x7F817F7F, 0x7F7F7F81, 0x817F7F7F, 0x817F7F81, 0x7F818181, 0x817F7F7F, 0x7F818181, 0x817F817F,
+0x81817F7F, 0x8181817F, 0x7F81817F, 0x7F81817F, 0x81817F7F, 0x817F817F, 0x8181817F, 0x817F8181,
+0x7F7F7F7F, 0x7F818181, 0x817F817F, 0x817F8181, 0x817F817F, 0x7F817F7F, 0x7F7F8181, 0x7F7F817F,
+0x7F7F7F81, 0x817F7F7F, 0x7F818181, 0x8181817F, 0x7F817F81, 0x81818181, 0x8181817F, 0x7F817F7F,
+0x7F7F8181, 0x817F8181, 0x81817F7F, 0x81818181, 0x7F818181, 0x817F817F, 0x7F818181, 0x81817F81,
+0x817F7F81, 0x7F7F8181, 0x7F817F7F, 0x817F7F81, 0x81817F81, 0x81817F81, 0x81817F81, 0x7F7F8181,
+0x817F8181, 0x81817F7F, 0x7F817F7F, 0x7F81817F, 0x7F7F7F7F, 0x81817F81, 0x7F7F8181, 0x7F7F817F,
+0x7F81817F, 0x81817F7F, 0x817F7F81, 0x7F817F81, 0x7F7F7F7F, 0x7F7F817F, 0x817F7F7F, 0x7F7F8181,
+0x81818181, 0x7F7F7F81, 0x7F7F8181, 0x8181817F, 0x7F817F7F, 0x817F7F7F, 0x7F7F817F, 0x7F81817F,
+0x81817F7F, 0x817F7F7F, 0x8181817F, 0x817F817F, 0x81817F7F, 0x81817F7F, 0x817F8181, 0x81817F7F,
+0x7F7F7F81, 0x7F7F7F7F, 0x7F817F81, 0x7F818181, 0x7F7F8181, 0x7F7F8181, 0x81818181, 0x817F817F,
+0x81817F81, 0x8181817F, 0x7F7F7F7F, 0x81817F81, 0x81817F7F, 0x817F8181, 0x817F817F, 0x817F8181,
+0x817F7F7F, 0x8181817F, 0x81817F81, 0x817F8181, 0x7F7F817F, 0x7F81817F, 0x7F817F7F, 0x7F817F7F,
+0x81818181, 0x817F7F81, 0x817F8181, 0x7F7F817F, 0x817F817F, 0x7F7F7F81, 0x81818181, 0x817F7F7F,
+0x7F817F81, 0x7F817F7F, 0x817F817F, 0x7F7F7F81, 0x7F7F8181, 0x81817F81, 0x7F818181, 0x817F817F,
+0x7F818181, 0x817F7F7F, 0x81818181, 0x817F7F7F, 0x81818181, 0x817F817F, 0x7F7F7F7F, 0x8181817F,
+0x7F7F817F, 0x7F81817F, 0x7F7F7F7F, 0x81817F7F, 0x7F7F817F, 0x7F817F7F, 0x817F7F81, 0x817F8181,
+0x7F81817F, 0x81817F81, 0x817F7F7F, 0x7F7F7F81, 0x7F817F7F, 0x7F7F8181, 0x817F7F81, 0x817F817F,
+0x7F817F7F, 0x8181817F, 0x7F817F7F, 0x7F817F7F, 0x81817F81, 0x81817F81, 0x817F7F81, 0x817F8181,
+0x81817F7F, 0x817F7F81, 0x817F7F7F, 0x7F81817F, 0x81817F7F, 0x817F8181, 0x7F817F7F, 0x7F7F7F7F,
+0x7F817F81, 0x817F8181, 0x817F8181, 0x7F7F7F81, 0x7F817F7F, 0x7F817F7F, 0x7F7F8181, 0x7F7F7F7F,
+0x817F8181, 0x817F8181, 0x81818181, 0x81817F7F, 0x817F7F81, 0x817F7F7F, 0x8181817F, 0x7F817F81,
+0x8181817F, 0x81817F81, 0x7F7F8181, 0x81817F81, 0x7F817F7F, 0x7F81817F, 0x817F7F81, 0x81817F7F,
+0x81818181, 0x7F817F81, 0x81818181, 0x81817F7F, 0x8181817F, 0x817F7F7F, 0x7F817F7F, 0x817F7F81,
+0x7F7F817F, 0x81817F81, 0x7F7F8181, 0x817F7F7F, 0x81818181, 0x7F7F7F81, 0x8181817F, 0x7F818181,
+0x817F8181, 0x7F817F81, 0x7F81817F, 0x7F7F7F81, 0x81817F81, 0x7F7F817F, 0x81817F81, 0x8181817F,
+0x7F7F7F7F, 0x7F7F817F, 0x817F7F81, 0x817F7F7F, 0x7F7F7F7F, 0x7F817F81, 0x7F7F7F81, 0x7F7F817F,
+0x7F7F817F, 0x7F7F7F81, 0x817F7F7F, 0x7F7F8181, 0x7F7F7F81, 0x817F7F7F, 0x7F81817F, 0x81818181,
+0x7F7F7F7F, 0x81817F81, 0x7F7F8181, 0x7F7F817F, 0x817F8181, 0x7F817F81, 0x7F7F8181, 0x7F7F7F7F,
+0x7F7F7F81, 0x817F7F7F, 0x817F817F, 0x7F817F7F, 0x817F8181, 0x8181817F, 0x7F81817F, 0x7F7F7F81,
+0x817F8181, 0x7F7F7F81, 0x81817F81, 0x7F817F7F, 0x817F8181, 0x7F7F8181, 0x81817F81, 0x8181817F,
+0x817F817F, 0x7F7F817F, 0x7F81817F, 0x7F7F8181, 0x7F817F7F, 0x817F7F7F, 0x817F7F81, 0x7F817F81,
+0x81817F81, 0x817F7F81, 0x7F7F7F7F, 0x817F8181, 0x8181817F, 0x817F7F7F, 0x7F818181, 0x7F818181,
+0x7F7F8181, 0x7F81817F, 0x817F8181, 0x7F817F81, 0x7F817F81, 0x817F8181, 0x817F817F, 0x7F7F817F,
+0x7F7F8181, 0x81818181, 0x817F7F7F, 0x7F818181, 0x81818181, 0x8181817F, 0x81818181, 0x7F81817F,
+0x7F7F7F81, 0x81817F7F, 0x7F7F7F7F, 0x817F8181, 0x817F7F7F, 0x7F818181, 0x7F81817F, 0x81818181,
+0x7F7F7F7F, 0x817F8181, 0x7F7F8181, 0x7F817F81, 0x817F817F, 0x7F818181, 0x817F8181, 0x7F818181,
+0x817F7F81, 0x81817F7F, 0x817F8181, 0x7F818181, 0x7F7F817F, 0x7F7F7F7F, 0x7F818181, 0x7F817F81,
+0x7F818181, 0x8181817F, 0x7F81817F, 0x7F7F7F7F, 0x7F817F7F, 0x817F8181, 0x817F7F81, 0x7F81817F,
+0x7F817F7F, 0x817F7F81, 0x817F817F, 0x7F818181, 0x817F817F, 0x8181817F, 0x7F81817F, 0x81817F81,
+0x8181817F, 0x8181817F, 0x7F81817F, 0x7F81817F, 0x7F7F8181, 0x7F7F8181, 0x81818181, 0x81818181,
+0x817F7F81, 0x7F817F7F, 0x817F7F81, 0x7F81817F, 0x7F7F7F81, 0x8181817F, 0x7F7F7F7F, 0x817F8181,
+0x7F817F7F, 0x7F7F817F, 0x81817F81, 0x7F818181, 0x7F7F7F81, 0x7F7F8181, 0x8181817F, 0x7F817F7F,
+0x81818181, 0x7F7F7F81, 0x81817F81, 0x81817F7F, 0x817F7F7F, 0x817F7F7F, 0x817F7F81, 0x7F7F7F7F,
+0x817F7F81, 0x7F818181, 0x7F7F7F7F, 0x81818181, 0x7F817F7F, 0x7F81817F, 0x7F817F81, 0x81817F81,
+0x7F7F8181, 0x7F817F81, 0x7F818181, 0x7F817F7F, 0x8181817F, 0x817F7F7F, 0x817F817F, 0x817F8181,
+0x817F7F7F, 0x81817F7F, 0x7F81817F, 0x7F81817F, 0x817F7F7F, 0x81818181, 0x817F817F, 0x7F7F7F7F,
+0x8181817F, 0x817F817F, 0x7F818181, 0x7F818181, 0x817F7F7F, 0x7F81817F, 0x817F817F, 0x81818181,
+0x8181817F, 0x7F7F817F, 0x7F818181, 0x817F7F81, 0x81817F7F, 0x81817F7F, 0x7F7F7F7F, 0x817F8181,
+0x7F818181, 0x7F7F7F81, 0x81817F81, 0x81817F81, 0x7F81817F, 0x817F817F, 0x7F7F7F81, 0x7F7F7F81,
+0x7F817F81, 0x7F81817F, 0x817F817F, 0x7F818181, 0x7F7F817F, 0x817F7F81, 0x817F7F7F, 0x7F7F7F7F,
+0x7F817F81, 0x81817F81, 0x81817F7F, 0x7F817F7F, 0x81817F7F, 0x7F7F7F7F, 0x81817F7F, 0x817F7F81,
+0x7F81817F, 0x817F7F7F, 0x7F7F817F, 0x7F817F81, 0x8181817F, 0x81818181, 0x7F81817F, 0x7F7F8181,
+0x817F817F, 0x7F817F7F, 0x817F8181, 0x817F7F7F, 0x7F7F7F81, 0x817F817F, 0x81817F81, 0x7F81817F,
+0x7F817F81, 0x7F7F817F, 0x7F817F7F, 0x817F7F81, 0x817F8181, 0x7F7F817F, 0x7F817F7F, 0x817F7F81,
+0x81817F7F, 0x81817F7F, 0x8181817F, 0x7F818181, 0x7F7F8181, 0x7F817F81, 0x7F817F7F, 0x7F7F817F,
+0x81818181, 0x7F817F7F, 0x81818181, 0x81817F7F, 0x7F817F7F, 0x7F81817F, 0x7F7F8181, 0x817F8181,
+0x8181817F, 0x7F7F7F81, 0x817F817F, 0x7F7F7F7F, 0x817F8181, 0x7F7F7F81, 0x8181817F, 0x7F7F7F81,
+0x7F817F81, 0x81817F7F, 0x7F7F7F7F, 0x81817F81, 0x7F817F81, 0x817F7F81, 0x7F7F7F7F, 0x81817F81,
+0x7F7F817F, 0x7F7F817F, 0x81817F81, 0x8181817F, 0x7F7F7F7F, 0x7F7F8181, 0x81817F7F, 0x7F81817F,
+0x7F81817F, 0x7F7F7F81, 0x817F7F81, 0x817F7F7F, 0x817F7F81, 0x817F7F81, 0x817F8181, 0x81818181,
+0x7F7F817F, 0x7F7F817F, 0x81817F7F, 0x7F81817F, 0x7F7F7F7F, 0x81817F81, 0x81817F81, 0x7F81817F,
+0x817F7F81, 0x7F817F81, 0x817F8181, 0x7F7F817F, 0x7F818181, 0x7F818181, 0x81817F7F, 0x817F7F81,
+0x7F7F817F, 0x7F817F81, 0x7F7F817F, 0x7F818181, 0x8181817F, 0x817F7F81, 0x7F7F817F, 0x7F817F81,
+0x81817F81, 0x81818181, 0x817F7F7F, 0x817F817F, 0x7F81817F, 0x8181817F, 0x81817F7F, 0x81817F81,
+0x7F7F8181, 0x817F7F81, 0x817F817F, 0x817F8181, 0x817F8181, 0x81817F7F, 0x817F7F81, 0x7F817F7F,
+0x81817F81, 0x7F81817F, 0x7F817F81, 0x817F8181, 0x7F7F817F, 0x7F7F7F7F, 0x81818181, 0x7F81817F,
+0x81817F7F, 0x817F8181, 0x7F818181, 0x81818181, 0x817F7F81, 0x7F81817F, 0x81818181, 0x7F817F81,
+0x817F8181, 0x817F7F7F, 0x7F817F7F, 0x7F817F81, 0x7F7F8181, 0x7F817F7F, 0x7F7F7F7F, 0x817F8181,
+0x7F81817F, 0x7F7F7F81, 0x7F817F7F, 0x7F818181, 0x7F817F7F, 0x7F81817F, 0x7F7F817F, 0x7F7F7F81,
+0x81817F7F, 0x8181817F, 0x7F7F7F7F, 0x81818181, 0x7F81817F, 0x7F817F7F, 0x7F81817F, 0x81818181,
+0x7F7F817F, 0x7F817F7F, 0x7F818181, 0x7F817F7F, 0x7F817F7F, 0x817F7F81, 0x7F81817F, 0x81817F81,
+0x81817F81, 0x7F81817F, 0x7F818181, 0x7F818181, 0x81818181, 0x81817F81, 0x7F7F8181, 0x7F81817F,
+0x817F8181, 0x817F7F81, 0x7F817F81, 0x7F7F7F7F, 0x81817F7F, 0x7F7F817F, 0x81817F7F, 0x7F7F7F7F,
+0x7F7F817F, 0x81818181, 0x81818181, 0x7F7F817F, 0x7F817F7F, 0x7F818181, 0x817F7F7F, 0x7F817F7F,
+0x817F8181, 0x81818181, 0x7F81817F, 0x817F7F7F, 0x7F818181, 0x81818181, 0x8181817F, 0x7F818181,
+0x7F817F7F, 0x7F7F7F7F, 0x7F7F817F, 0x817F8181, 0x7F7F7F81, 0x817F817F, 0x81818181, 0x81817F7F,
+0x817F8181, 0x81817F81, 0x7F7F8181, 0x817F7F7F, 0x7F7F7F81, 0x7F7F817F, 0x7F7F7F7F, 0x81818181,
+0x81817F81, 0x81818181, 0x7F7F7F7F, 0x7F7F817F, 0x7F818181, 0x817F817F, 0x7F7F7F7F, 0x817F8181,
+0x7F818181, 0x817F8181, 0x7F81817F, 0x81817F7F, 0x7F818181, 0x8181817F, 0x7F7F7F81, 0x7F817F81,
+0x817F817F, 0x81818181, 0x817F8181, 0x81817F7F, 0x817F7F81, 0x7F817F81, 0x81817F7F, 0x7F81817F,
+0x7F7F817F, 0x81817F7F, 0x81817F81, 0x7F81817F, 0x7F817F81, 0x8181817F, 0x7F7F7F81, 0x81817F81,
+0x81817F81, 0x817F817F, 0x81817F7F, 0x81817F81, 0x817F7F81, 0x81817F7F, 0x7F7F817F, 0x7F7F817F,
+0x817F817F, 0x8181817F, 0x7F81817F, 0x81817F7F, 0x7F818181, 0x817F7F81, 0x7F7F817F, 0x817F7F81,
+0x7F7F7F81, 0x7F7F817F, 0x817F7F81, 0x7F7F7F81, 0x8181817F, 0x81818181, 0x7F7F817F, 0x7F7F8181,
+0x817F7F81, 0x817F7F7F, 0x81818181, 0x7F7F817F, 0x817F817F, 0x81817F81, 0x7F817F7F, 0x7F817F81,
+0x7F7F8181, 0x7F817F7F, 0x7F7F8181, 0x817F8181, 0x7F7F7F81, 0x817F8181, 0x81817F81, 0x81817F81,
+0x81818181, 0x817F817F, 0x7F7F8181, 0x817F817F, 0x8181817F, 0x81817F7F, 0x81817F7F, 0x7F7F7F81,
+0x7F817F7F, 0x7F81817F, 0x7F817F81, 0x81817F81, 0x81817F81, 0x817F7F7F, 0x7F7F7F7F, 0x817F8181,
+0x7F7F7F81, 0x7F817F81, 0x817F7F7F, 0x7F7F7F81, 0x81818181, 0x81818181, 0x7F7F7F7F, 0x817F7F81,
+0x7F7F7F7F, 0x817F8181, 0x817F7F7F, 0x7F7F7F81, 0x817F8181, 0x7F818181, 0x817F7F81, 0x81817F7F,
+0x7F817F81, 0x7F7F8181, 0x8181817F, 0x7F7F8181, 0x8181817F, 0x817F817F, 0x81817F81, 0x7F817F81,
+0x7F818181, 0x7F81817F, 0x81818181, 0x81817F81, 0x7F817F81, 0x81818181, 0x7F7F7F7F, 0x7F81817F,
+0x7F7F7F81, 0x7F817F7F, 0x8181817F, 0x81818181, 0x81817F81, 0x81817F7F, 0x817F7F7F, 0x7F817F7F,
+0x81817F7F, 0x7F7F817F, 0x81817F7F, 0x7F817F7F, 0x7F7F7F7F, 0x817F8181, 0x817F7F7F, 0x817F817F,
+0x817F7F7F, 0x7F818181, 0x7F817F81, 0x81817F81, 0x7F7F8181, 0x7F7F7F7F, 0x7F7F8181, 0x7F817F7F,
+0x81818181, 0x81817F7F, 0x817F8181, 0x7F7F7F81, 0x81817F81, 0x7F7F817F, 0x7F7F8181, 0x7F7F7F81,
+0x817F7F81, 0x7F81817F, 0x81817F81, 0x81817F81, 0x81817F81, 0x8181817F, 0x7F81817F, 0x817F817F,
+0x81817F81, 0x7F7F7F81, 0x817F817F, 0x817F7F7F, 0x81818181, 0x817F7F81, 0x81817F81, 0x81817F81,
+0x7F7F817F, 0x7F7F817F, 0x81817F7F, 0x7F7F8181, 0x7F817F81, 0x7F7F7F7F, 0x7F7F8181, 0x7F7F817F,
+0x81817F81, 0x7F81817F, 0x81818181, 0x817F7F81, 0x7F817F7F, 0x81818181, 0x8181817F, 0x7F818181,
+0x7F817F7F, 0x8181817F, 0x7F817F7F, 0x7F7F7F81, 0x817F817F, 0x817F7F81, 0x7F7F7F81, 0x7F81817F,
+0x817F7F7F, 0x81817F81, 0x81817F81, 0x7F818181, 0x7F818181, 0x7F7F7F7F, 0x7F818181, 0x7F7F8181,
+0x7F81817F, 0x817F817F, 0x7F817F7F, 0x7F7F7F81, 0x81817F81, 0x81817F7F, 0x7F7F7F7F, 0x817F8181,
+0x8181817F, 0x81817F7F, 0x7F7F8181, 0x817F8181, 0x7F7F8181, 0x7F817F7F, 0x817F817F, 0x81818181,
+0x817F7F7F, 0x7F81817F, 0x7F817F7F, 0x817F8181, 0x7F817F81, 0x817F8181, 0x81817F7F, 0x7F7F817F,
+0x7F817F81, 0x8181817F, 0x817F817F, 0x8181817F, 0x7F817F7F, 0x7F7F7F7F, 0x81817F7F, 0x81817F81,
+0x81817F7F, 0x81818181, 0x7F81817F, 0x7F81817F, 0x7F817F7F, 0x7F7F8181, 0x7F7F8181, 0x81817F7F,
+0x7F818181, 0x81817F81, 0x817F8181, 0x817F7F7F, 0x817F817F, 0x7F7F8181, 0x7F817F81, 0x7F7F7F81,
+0x81818181, 0x81817F7F, 0x81817F81, 0x7F7F8181, 0x817F8181, 0x817F817F, 0x7F818181, 0x81817F81,
+0x81818181, 0x81818181, 0x7F7F8181, 0x7F817F7F, 0x817F7F81, 0x817F8181, 0x7F7F817F, 0x81817F7F,
+0x7F817F81, 0x7F818181, 0x817F7F81, 0x7F7F8181, 0x81817F7F, 0x8181817F, 0x817F7F81, 0x81817F7F,
+0x7F7F7F81, 0x7F7F817F, 0x81817F7F, 0x817F7F81, 0x7F817F7F, 0x8181817F, 0x817F7F81, 0x817F7F81,
+0x817F7F7F, 0x81818181, 0x7F817F81, 0x817F7F7F, 0x817F817F, 0x817F7F81, 0x81817F7F, 0x7F81817F,
+0x81817F81, 0x817F8181, 0x817F817F, 0x81817F7F, 0x81818181, 0x81818181, 0x817F8181, 0x817F817F,
+0x7F7F817F, 0x81817F7F, 0x7F7F817F, 0x7F7F8181, 0x8181817F, 0x7F7F7F7F, 0x81817F7F, 0x7F7F7F81,
+0x81817F7F, 0x7F817F7F, 0x7F817F7F, 0x817F817F, 0x8181817F, 0x7F7F7F81, 0x81817F7F, 0x817F8181,
+0x7F817F7F, 0x817F7F81, 0x7F81817F, 0x8181817F, 0x81817F7F, 0x7F7F7F7F, 0x817F8181, 0x8181817F,
+0x817F7F81, 0x81818181, 0x817F7F81, 0x7F7F7F7F, 0x7F7F7F7F, 0x7F818181, 0x7F7F817F, 0x7F817F7F,
+0x81818181, 0x81817F7F, 0x7F7F8181, 0x817F817F, 0x7F7F817F, 0x7F7F7F7F, 0x7F7F817F, 0x7F7F7F81,
+0x7F7F7F81, 0x817F8181, 0x817F8181, 0x81818181, 0x7F7F7F81, 0x7F7F7F7F, 0x817F8181, 0x7F817F81,
+0x7F7F7F7F, 0x7F7F817F, 0x817F817F, 0x7F818181, 0x81817F7F, 0x817F7F81, 0x817F817F, 0x81817F7F,
+0x7F7F8181, 0x81818181, 0x7F7F7F7F, 0x817F8181, 0x7F81817F, 0x817F7F81, 0x7F818181, 0x81818181,
+0x81817F7F, 0x817F7F7F, 0x7F7F7F81, 0x817F7F81, 0x8181817F, 0x81817F7F, 0x81818181, 0x817F7F81,
+0x7F81817F, 0x817F817F, 0x8181817F, 0x7F7F7F7F, 0x817F7F7F, 0x81818181, 0x7F818181, 0x817F7F81,
+0x7F817F81, 0x7F7F7F81, 0x7F7F7F7F, 0x817F7F7F, 0x81817F81, 0x817F7F81, 0x817F817F, 0x7F818181,
+0x7F817F7F, 0x7F7F8181, 0x7F81817F, 0x7F817F81, 0x7F81817F, 0x7F7F8181, 0x817F7F7F, 0x8181817F,
+0x7F817F81, 0x7F818181, 0x7F81817F, 0x7F817F7F, 0x817F8181, 0x7F7F7F7F, 0x7F817F7F, 0x817F817F,
+0x817F7F81, 0x817F817F, 0x7F7F8181, 0x81817F81, 0x7F7F8181, 0x7F7F8181, 0x7F818181, 0x7F7F817F,
+0x8181817F, 0x8181817F, 0x8181817F, 0x7F817F7F, 0x7F7F8181, 0x7F7F7F81, 0x817F7F81, 0x81817F7F,
+0x817F7F7F, 0x7F7F8181, 0x817F7F81, 0x817F7F7F, 0x81818181, 0x81818181, 0x81818181, 0x7F7F7F81,
+0x7F7F7F7F, 0x7F81817F, 0x7F81817F, 0x8181817F, 0x7F817F81, 0x7F818181, 0x817F8181, 0x8181817F,
+0x7F7F7F7F, 0x7F818181, 0x7F817F81, 0x7F7F817F, 0x7F7F7F7F, 0x7F7F817F, 0x7F818181, 0x8181817F,
+0x7F7F817F, 0x81817F81, 0x81818181, 0x7F81817F, 0x81817F81, 0x7F7F8181, 0x81817F7F, 0x7F7F7F81,
+0x81818181, 0x817F8181, 0x81818181, 0x817F7F81, 0x81818181, 0x81818181, 0x817F8181, 0x817F8181,
+0x7F7F7F81, 0x817F7F7F, 0x7F818181, 0x81817F7F, 0x81817F81, 0x817F8181, 0x817F8181, 0x817F7F7F,
+0x7F7F7F7F, 0x81817F81, 0x81817F7F, 0x7F817F81, 0x81817F7F, 0x817F7F7F, 0x7F817F81, 0x7F7F817F,
+0x7F817F7F, 0x7F7F7F7F, 0x7F817F81, 0x817F817F, 0x817F8181, 0x817F8181, 0x7F7F817F, 0x7F7F7F81,
+0x7F818181, 0x81817F7F, 0x817F8181, 0x817F7F7F, 0x7F81817F, 0x7F7F817F, 0x817F8181, 0x7F7F7F7F,
+0x7F818181, 0x7F7F8181, 0x7F81817F, 0x817F7F7F, 0x81818181, 0x817F8181, 0x817F8181, 0x81817F81,
+0x817F7F81, 0x7F817F81, 0x8181817F, 0x7F818181, 0x7F817F81, 0x7F7F7F81, 0x8181817F, 0x7F818181,
+0x81818181, 0x817F8181, 0x7F817F81, 0x7F817F81, 0x817F7F81, 0x7F7F817F, 0x81818181, 0x7F7F7F81,
+0x7F81817F, 0x7F7F7F81, 0x817F817F, 0x81817F7F, 0x817F817F, 0x7F81817F, 0x81817F81, 0x817F817F,
+0x81817F7F, 0x817F8181, 0x817F7F81, 0x81817F7F, 0x81817F7F, 0x7F7F817F, 0x7F817F7F, 0x7F7F8181,
+0x7F818181, 0x817F7F81, 0x7F7F7F7F, 0x817F8181, 0x81818181, 0x817F817F, 0x81818181, 0x7F7F7F7F,
+0x817F817F, 0x7F7F8181, 0x81817F81, 0x7F817F7F, 0x817F7F7F, 0x7F818181, 0x81818181, 0x817F7F81,
+0x7F7F7F81, 0x7F818181, 0x81817F7F, 0x81817F81, 0x7F818181, 0x7F7F8181, 0x7F818181, 0x81817F7F,
+0x7F817F81, 0x8181817F, 0x7F7F7F7F, 0x817F7F81, 0x817F7F81, 0x7F7F817F, 0x817F817F, 0x7F818181,
+0x817F7F81, 0x7F817F81, 0x817F8181, 0x81817F7F, 0x7F817F81, 0x817F7F81, 0x81817F81, 0x7F817F7F,
+0x81817F7F, 0x81818181, 0x817F7F81, 0x81818181, 0x81817F81, 0x817F7F7F, 0x81817F81, 0x7F81817F,
+0x7F7F8181, 0x817F7F81, 0x817F817F, 0x817F8181, 0x7F81817F, 0x7F7F7F81, 0x7F817F81, 0x7F81817F,
+0x8181817F, 0x7F7F817F, 0x817F817F, 0x81817F81, 0x81818181, 0x7F7F8181, 0x7F7F8181, 0x7F817F81,
+0x8181817F, 0x81818181, 0x817F817F, 0x81818181, 0x7F7F8181, 0x817F7F7F, 0x7F7F817F, 0x7F7F8181,
+0x7F7F7F7F, 0x817F7F81, 0x817F817F, 0x8181817F, 0x7F7F817F, 0x7F818181, 0x817F7F7F, 0x817F7F7F,
+0x7F818181, 0x81817F81, 0x7F818181, 0x7F7F7F7F, 0x81817F81, 0x7F81817F, 0x81817F7F, 0x817F7F7F,
+0x7F7F8181, 0x7F7F817F, 0x7F817F81, 0x817F817F, 0x817F8181, 0x7F817F81, 0x7F7F7F81, 0x7F7F8181,
+0x81817F7F, 0x817F7F7F, 0x817F8181, 0x7F81817F, 0x7F817F81, 0x81817F81, 0x81818181, 0x817F817F,
+0x7F7F8181, 0x7F7F7F7F, 0x7F817F81, 0x817F7F81, 0x7F817F81, 0x7F7F817F, 0x817F7F7F, 0x7F817F7F,
+0x81817F81, 0x7F818181, 0x817F7F7F, 0x817F7F7F, 0x817F7F81, 0x7F7F7F7F, 0x817F7F81, 0x7F81817F,
+0x817F7F81, 0x7F81817F, 0x817F7F81, 0x7F818181, 0x81817F81, 0x81817F7F, 0x817F7F81, 0x7F817F81,
+0x7F81817F, 0x817F7F81, 0x7F81817F, 0x817F817F, 0x7F7F817F, 0x7F7F7F7F, 0x7F7F7F7F, 0x817F8181,
+0x7F7F7F7F, 0x81817F7F, 0x817F817F, 0x817F7F7F, 0x7F818181, 0x7F817F7F, 0x7F7F7F81, 0x7F817F81,
+0x7F817F7F, 0x7F81817F, 0x7F7F817F, 0x7F7F8181, 0x7F7F817F, 0x8181817F, 0x7F81817F, 0x7F7F7F81,
+0x7F81817F, 0x81818181, 0x7F7F7F7F, 0x7F7F7F7F, 0x7F7F7F81, 0x817F8181, 0x817F7F81, 0x7F818181,
+0x7F7F7F7F, 0x81817F81, 0x7F7F817F, 0x81818181, 0x7F7F7F81, 0x7F818181, 0x817F7F81, 0x7F7F8181,
+0x81818181, 0x817F8181, 0x81817F7F, 0x7F7F7F7F, 0x7F7F817F, 0x7F81817F, 0x81817F7F, 0x817F7F7F,
+0x817F817F, 0x7F7F817F, 0x81817F81, 0x7F817F7F, 0x81817F7F, 0x7F7F7F7F, 0x7F817F7F, 0x81818181,
+0x81818181, 0x7F7F817F, 0x81818181, 0x7F7F8181, 0x7F7F7F81, 0x7F7F7F81, 0x81818181, 0x7F818181,
+0x7F817F7F, 0x817F8181, 0x81817F81, 0x7F818181, 0x817F7F7F, 0x81818181, 0x817F7F81, 0x7F7F817F,
+0x7F817F81, 0x81817F7F, 0x817F817F, 0x817F817F, 0x81817F7F, 0x81817F81, 0x7F7F8181, 0x7F7F7F7F,
+0x817F7F81, 0x7F7F7F81, 0x7F7F817F, 0x7F7F7F81, 0x7F7F817F, 0x8181817F, 0x7F818181, 0x7F818181,
+0x817F8181, 0x7F817F7F, 0x81817F7F, 0x81817F81, 0x817F7F81, 0x81817F81, 0x7F818181, 0x7F7F8181,
+0x7F7F817F, 0x81817F81, 0x7F7F7F7F, 0x7F7F8181, 0x7F818181, 0x7F7F7F7F, 0x817F8181, 0x817F8181,
+0x817F817F, 0x7F7F817F, 0x7F817F7F, 0x81817F81, 0x817F7F7F, 0x817F7F81, 0x8181817F, 0x81818181,
+0x7F7F8181, 0x817F7F7F, 0x7F7F7F7F, 0x817F8181, 0x817F817F, 0x7F817F81, 0x7F817F81, 0x7F817F7F,
+0x817F817F, 0x817F7F81, 0x7F7F7F81, 0x81818181, 0x81818181, 0x817F7F7F, 0x817F8181, 0x7F7F8181,
+0x81817F81, 0x7F7F817F, 0x8181817F, 0x7F7F817F, 0x81818181, 0x7F81817F, 0x817F817F, 0x817F817F,
+0x7F7F817F, 0x7F81817F, 0x7F7F817F, 0x7F817F81, 0x8181817F, 0x81817F7F, 0x81818181, 0x7F81817F,
+0x7F818181, 0x7F817F7F, 0x7F817F81, 0x8181817F, 0x81817F81, 0x8181817F, 0x817F7F81, 0x7F817F7F,
+0x817F8181, 0x7F7F7F81, 0x817F7F7F, 0x7F7F7F81, 0x817F8181, 0x7F817F81, 0x7F7F8181, 0x7F818181,
+0x7F7F7F81, 0x7F818181, 0x8181817F, 0x81817F7F, 0x7F818181, 0x7F817F81, 0x817F7F81, 0x7F7F7F7F,
+0x7F818181, 0x7F7F7F81, 0x81818181, 0x7F818181, 0x817F7F81, 0x7F7F7F81, 0x8181817F, 0x7F7F8181,
+0x7F818181, 0x817F8181, 0x7F818181, 0x8181817F, 0x81817F7F, 0x817F8181, 0x81818181, 0x7F7F8181,
+0x817F7F81, 0x81818181, 0x817F817F, 0x7F81817F, 0x8181817F, 0x817F817F, 0x7F7F817F, 0x7F7F7F7F,
+0x8181817F, 0x7F81817F, 0x81817F81, 0x7F81817F, 0x7F7F7F81, 0x817F7F81, 0x7F7F7F81, 0x817F7F81,
+0x817F8181, 0x7F817F81, 0x81817F7F, 0x7F7F817F, 0x7F81817F, 0x81817F81, 0x81817F7F, 0x7F817F7F,
+0x817F7F81, 0x7F7F8181, 0x8181817F, 0x7F7F817F, 0x7F817F81, 0x7F7F8181, 0x817F817F, 0x7F817F7F,
+0x81818181, 0x7F7F7F81, 0x7F817F81, 0x7F7F8181, 0x8181817F, 0x817F7F7F, 0x7F817F81, 0x81818181,
+0x81818181, 0x7F7F817F, 0x7F81817F, 0x817F817F, 0x817F7F7F, 0x81818181, 0x817F8181, 0x7F7F8181,
+0x81818181, 0x817F7F81, 0x817F817F, 0x817F7F81, 0x7F7F7F81, 0x7F7F817F, 0x7F7F817F, 0x7F7F7F7F,
+0x7F7F7F7F, 0x81818181, 0x7F81817F, 0x817F817F, 0x7F81817F, 0x81817F81, 0x817F8181, 0x7F7F817F,
+0x8181817F, 0x817F7F81, 0x81817F81, 0x8181817F, 0x7F818181, 0x817F8181, 0x81818181, 0x7F817F81,
+0x817F8181, 0x81817F81, 0x7F81817F, 0x7F818181, 0x7F7F7F7F, 0x7F7F8181, 0x81817F81, 0x7F7F8181,
+0x8181817F, 0x817F7F81, 0x81817F81, 0x7F7F7F81, 0x7F7F7F81, 0x817F8181, 0x81818181, 0x7F81817F,
+0x7F7F8181, 0x817F8181, 0x817F7F7F, 0x81818181, 0x7F7F7F7F, 0x8181817F, 0x7F7F817F, 0x7F7F7F7F,
+0x7F7F7F81, 0x7F81817F, 0x7F817F81, 0x7F7F8181, 0x7F7F7F7F, 0x817F7F7F, 0x7F817F7F, 0x817F8181,
+0x7F7F7F81, 0x7F817F81, 0x817F8181, 0x817F817F, 0x817F817F, 0x7F817F7F, 0x8181817F, 0x817F7F81,
+0x81817F81, 0x7F817F81, 0x7F7F817F, 0x7F817F7F, 0x8181817F, 0x7F817F81, 0x7F7F817F, 0x81818181,
+0x7F81817F, 0x7F7F8181, 0x81817F7F, 0x7F7F7F7F, 0x7F7F8181, 0x817F7F81, 0x817F8181, 0x817F817F,
+0x817F817F, 0x7F817F7F, 0x7F7F8181, 0x7F817F7F, 0x8181817F, 0x7F7F8181, 0x81818181, 0x7F817F81,
+0x7F7F7F81, 0x81817F7F, 0x817F817F, 0x81818181, 0x7F817F7F, 0x7F7F7F81, 0x7F7F817F, 0x7F7F7F81,
+0x7F7F8181, 0x81817F7F, 0x7F81817F, 0x81817F81, 0x7F7F8181, 0x817F8181, 0x817F817F, 0x817F7F7F,
+0x7F7F817F, 0x817F8181, 0x81817F81, 0x7F7F8181, 0x817F7F7F, 0x7F817F7F, 0x7F7F7F81, 0x7F817F7F,
+0x7F7F7F7F, 0x7F81817F, 0x7F7F7F81, 0x81817F81, 0x7F7F7F81, 0x7F817F7F, 0x817F817F, 0x81817F7F,
+0x7F81817F, 0x81818181, 0x81817F81, 0x81817F7F, 0x7F7F7F81, 0x7F81817F, 0x7F7F7F81, 0x817F7F81,
+0x817F7F7F, 0x7F7F8181, 0x817F7F81, 0x817F817F, 0x7F7F7F7F, 0x7F7F7F7F, 0x7F81817F, 0x7F818181,
+0x7F7F817F, 0x81818181, 0x7F7F7F7F, 0x8181817F, 0x7F7F7F7F, 0x817F817F, 0x7F81817F, 0x817F817F,
+0x7F7F8181, 0x7F7F8181, 0x81818181, 0x7F7F817F, 0x81817F7F, 0x7F817F81, 0x7F817F81, 0x81817F81,
+0x817F7F7F, 0x7F7F7F7F, 0x7F817F7F, 0x7F7F7F81, 0x817F8181, 0x817F7F81, 0x817F7F7F, 0x7F817F7F,
+0x81817F81, 0x817F817F, 0x817F8181, 0x7F7F7F7F, 0x81818181, 0x7F7F817F, 0x7F7F817F, 0x7F7F817F,
+0x817F8181, 0x817F8181, 0x81817F81, 0x7F7F8181, 0x8181817F, 0x817F8181, 0x7F7F7F7F, 0x817F8181,
+0x7F81817F, 0x7F7F7F81, 0x817F817F, 0x817F7F81, 0x7F817F7F, 0x7F817F81, 0x817F7F7F, 0x817F817F,
+0x7F7F8181, 0x7F817F81, 0x7F7F817F, 0x7F818181, 0x7F817F7F, 0x7F7F8181, 0x7F817F81, 0x817F7F81,
+0x8181817F, 0x81818181, 0x7F818181, 0x817F7F7F, 0x817F7F81, 0x817F817F, 0x7F81817F, 0x8181817F,
+0x817F817F, 0x7F818181, 0x7F7F7F81, 0x8181817F, 0x7F817F7F, 0x7F7F8181, 0x817F8181, 0x7F7F7F7F,
+0x7F7F817F, 0x7F7F8181, 0x7F817F81, 0x7F7F7F7F, 0x81817F81, 0x817F817F, 0x7F817F81, 0x7F7F817F,
+0x817F7F81, 0x817F817F, 0x7F7F817F, 0x7F817F7F, 0x7F7F7F7F, 0x7F7F8181, 0x7F817F7F, 0x81818181,
+0x817F817F, 0x817F7F7F, 0x7F7F7F81, 0x7F7F817F, 0x7F81817F, 0x8181817F, 0x8181817F, 0x7F817F7F,
+0x7F7F817F, 0x7F7F8181, 0x8181817F, 0x7F817F81, 0x81817F81, 0x7F7F7F81, 0x817F817F, 0x817F7F81,
+0x7F7F7F81, 0x7F7F7F81, 0x7F817F7F, 0x817F7F81, 0x7F817F81, 0x817F8181, 0x81817F81, 0x81817F7F,
+0x8181817F, 0x81817F7F, 0x8181817F, 0x817F7F7F, 0x8181817F, 0x817F7F7F, 0x8181817F, 0x81817F81,
+0x7F818181, 0x81817F81, 0x7F7F8181, 0x7F81817F, 0x7F7F7F7F, 0x7F818181, 0x7F81817F, 0x817F8181,
+0x7F7F8181, 0x8181817F, 0x7F7F817F, 0x81818181, 0x81817F7F, 0x81817F81, 0x81818181, 0x8181817F,
+0x7F818181, 0x7F7F7F7F, 0x817F817F, 0x7F81817F, 0x817F817F, 0x817F8181, 0x7F81817F, 0x7F7F817F,
+0x817F7F81, 0x7F818181, 0x8181817F, 0x7F81817F, 0x8181817F, 0x81817F7F, 0x81817F81, 0x7F7F8181,
+0x817F817F, 0x7F7F8181, 0x7F818181, 0x817F8181, 0x7F7F7F81, 0x81817F7F, 0x817F7F81, 0x7F817F81,
+0x7F817F7F, 0x7F817F81, 0x81817F7F, 0x81817F7F, 0x817F817F, 0x81817F81, 0x7F7F8181, 0x7F818181,
+0x7F81817F, 0x7F7F8181, 0x7F7F817F, 0x817F8181, 0x817F7F7F, 0x7F817F81, 0x817F7F7F, 0x817F817F,
+0x81817F7F, 0x81817F7F, 0x7F81817F, 0x7F7F8181, 0x81817F81, 0x7F817F7F, 0x817F8181, 0x7F818181,
+0x7F817F81, 0x817F7F81, 0x81818181, 0x7F818181, 0x8181817F, 0x7F7F8181, 0x81817F81, 0x7F817F81,
+0x8181817F, 0x817F817F, 0x817F8181, 0x7F7F7F81, 0x81817F81, 0x7F817F7F, 0x7F7F7F7F, 0x81818181,
+0x7F81817F, 0x7F81817F, 0x817F817F, 0x7F818181, 0x7F7F7F7F, 0x7F7F817F, 0x7F818181, 0x7F7F7F7F,
+0x7F817F7F, 0x7F817F81, 0x7F7F7F7F, 0x8181817F, 0x81817F81, 0x7F7F7F7F, 0x817F7F81, 0x817F8181,
+0x7F7F817F, 0x7F817F7F, 0x81817F7F, 0x7F7F8181, 0x81818181, 0x81817F81, 0x817F817F, 0x7F7F8181,
+0x817F8181, 0x817F817F, 0x7F818181, 0x81818181, 0x81817F7F, 0x81818181, 0x7F7F7F81, 0x7F7F8181,
+0x817F817F, 0x7F7F8181, 0x81817F81, 0x7F81817F, 0x8181817F, 0x7F7F8181, 0x7F7F817F, 0x7F818181,
+0x8181817F, 0x817F7F81, 0x7F818181, 0x7F7F8181, 0x7F7F7F7F, 0x817F817F, 0x7F817F7F, 0x817F7F81,
+0x7F7F7F7F, 0x7F7F7F81, 0x7F7F8181, 0x81817F7F, 0x81818181, 0x7F81817F, 0x7F817F81, 0x7F817F7F,
+0x817F7F81, 0x7F7F817F, 0x7F81817F, 0x8181817F, 0x7F81817F, 0x7F817F81, 0x7F817F7F, 0x817F7F81,
+0x817F7F7F, 0x7F818181, 0x817F817F, 0x8181817F, 0x7F7F7F81, 0x817F7F81, 0x81817F81, 0x817F817F,
+0x7F7F7F81, 0x81818181, 0x81817F81, 0x7F7F8181, 0x81817F7F, 0x7F7F7F81, 0x7F7F817F, 0x7F81817F,
+0x7F7F817F, 0x7F7F7F7F, 0x7F7F7F81, 0x81817F81, 0x7F7F817F, 0x81817F81, 0x817F7F81, 0x7F81817F,
+0x817F817F, 0x81818181, 0x7F81817F, 0x817F7F7F, 0x7F817F7F, 0x8181817F, 0x81817F81, 0x7F818181,
+0x7F7F7F7F, 0x7F7F8181, 0x7F7F8181, 0x81817F7F, 0x817F7F81, 0x817F817F, 0x7F7F817F, 0x7F818181,
+0x7F817F81, 0x7F7F7F81, 0x7F817F81, 0x7F81817F, 0x817F817F, 0x7F81817F, 0x7F817F7F, 0x81817F81,
+0x7F7F8181, 0x81817F7F, 0x7F7F7F7F, 0x81817F81, 0x7F7F8181, 0x817F817F, 0x7F7F817F, 0x81817F81,
+0x7F7F7F81, 0x81817F81, 0x81817F81, 0x8181817F, 0x8181817F, 0x81817F81, 0x7F7F817F, 0x817F7F81,
+0x7F7F8181, 0x7F7F8181, 0x7F817F81, 0x7F81817F, 0x7F81817F, 0x7F7F7F7F, 0x7F7F7F81, 0x7F7F7F81,
+0x81817F81, 0x8181817F, 0x7F7F7F7F, 0x817F8181, 0x7F7F7F81, 0x81817F7F, 0x7F7F7F81, 0x7F7F7F7F,
+0x81817F7F, 0x7F817F81, 0x7F81817F, 0x7F818181, 0x8181817F, 0x7F817F7F, 0x817F7F81, 0x817F8181,
+0x81818181, 0x817F8181, 0x7F7F7F7F, 0x7F7F7F7F, 0x81817F7F, 0x7F81817F, 0x7F818181, 0x7F81817F,
+0x7F7F7F7F, 0x81817F81, 0x81818181, 0x7F7F7F81, 0x7F81817F, 0x7F7F7F81, 0x8181817F, 0x7F817F81,
+0x7F817F81, 0x7F7F7F7F, 0x7F7F8181, 0x7F7F8181, 0x817F817F, 0x7F7F8181, 0x817F7F7F, 0x7F7F8181,
+0x7F817F81, 0x7F7F817F, 0x81817F81, 0x7F81817F, 0x7F7F7F81, 0x7F7F817F, 0x817F7F7F, 0x8181817F,
+0x7F7F7F7F, 0x7F7F7F81, 0x7F818181, 0x81818181, 0x7F817F81, 0x8181817F, 0x81817F81, 0x7F7F8181,
+0x8181817F, 0x7F7F817F, 0x81817F81, 0x81818181, 0x817F817F, 0x7F817F81, 0x7F7F817F, 0x7F817F7F,
+0x817F7F7F, 0x817F7F7F, 0x7F817F81, 0x817F8181, 0x7F81817F, 0x81817F7F, 0x81817F7F, 0x7F81817F,
+0x7F7F8181, 0x7F7F7F7F, 0x7F817F81, 0x7F818181, 0x81818181, 0x7F817F7F, 0x8181817F, 0x7F817F7F,
+0x81818181, 0x7F7F7F7F, 0x7F7F817F, 0x7F7F7F7F, 0x7F817F81, 0x817F7F81, 0x7F817F81, 0x7F7F817F,
+0x817F7F7F, 0x8181817F, 0x7F7F7F81, 0x7F7F7F81, 0x7F7F8181, 0x7F7F7F7F, 0x81817F81, 0x81817F81,
+0x817F7F81, 0x817F7F7F, 0x7F7F7F81, 0x7F81817F, 0x817F7F7F, 0x817F817F, 0x817F817F, 0x7F7F8181,
+0x7F7F7F7F, 0x7F818181, 0x7F7F8181, 0x7F7F8181, 0x817F7F7F, 0x7F818181, 0x8181817F, 0x7F7F8181,
+0x817F817F, 0x81817F81, 0x81817F81, 0x81817F81, 0x817F7F7F, 0x7F7F7F81, 0x817F7F7F, 0x7F7F7F81,
+0x817F7F81, 0x81818181, 0x8181817F, 0x817F8181, 0x7F818181, 0x817F7F7F, 0x7F7F7F7F, 0x817F8181,
+0x81817F81, 0x7F81817F, 0x7F7F817F, 0x81817F81, 0x7F7F7F7F, 0x817F8181, 0x81817F7F, 0x817F817F,
+0x81818181, 0x81817F81, 0x81818181, 0x7F7F7F7F, 0x7F817F7F, 0x817F7F7F, 0x7F817F81, 0x7F7F8181,
+0x81817F81, 0x7F7F7F7F, 0x7F7F8181, 0x8181817F, 0x817F7F7F, 0x81817F7F, 0x81817F81, 0x817F7F81,
+0x81818181, 0x7F81817F, 0x7F817F7F, 0x7F81817F, 0x817F8181, 0x7F7F8181, 0x7F818181, 0x817F7F81,
+0x7F7F8181, 0x817F817F, 0x817F7F81, 0x817F817F, 0x81817F81, 0x817F7F81, 0x7F817F7F, 0x817F817F,
+0x7F81817F, 0x81818181, 0x817F7F81, 0x7F818181, 0x7F817F7F, 0x7F818181, 0x7F7F7F7F, 0x817F8181,
+0x7F817F81, 0x7F7F7F81, 0x817F7F81, 0x81817F7F, 0x817F7F81, 0x7F7F8181, 0x817F8181, 0x81817F7F,
+0x7F818181, 0x817F8181, 0x817F817F, 0x7F7F8181, 0x8181817F, 0x8181817F, 0x817F7F7F, 0x7F7F8181,
+0x8181817F, 0x817F8181, 0x817F7F81, 0x7F817F81, 0x7F818181, 0x7F81817F, 0x81818181, 0x817F7F7F,
+0x7F7F7F7F, 0x81818181, 0x81817F7F, 0x817F7F7F, 0x7F817F7F, 0x817F817F, 0x7F7F7F7F, 0x7F7F7F7F,
+0x81818181, 0x7F7F7F81, 0x81817F81, 0x817F8181, 0x7F817F7F, 0x81817F81, 0x8181817F, 0x7F7F7F81,
+0x7F818181, 0x7F7F817F, 0x7F7F7F81, 0x81817F7F, 0x81817F7F, 0x7F818181, 0x81818181, 0x817F8181,
+0x7F817F7F, 0x7F818181, 0x7F81817F, 0x7F7F7F7F, 0x817F8181, 0x817F8181, 0x81817F81, 0x817F817F,
+0x7F7F817F, 0x7F7F8181, 0x7F7F7F7F, 0x7F7F817F, 0x817F8181, 0x817F7F81, 0x817F7F7F, 0x7F7F8181,
+0x7F7F7F7F, 0x817F817F, 0x81817F7F, 0x7F7F817F, 0x81818181, 0x7F7F8181, 0x7F817F7F, 0x7F817F81,
+0x817F7F7F, 0x7F818181, 0x7F817F7F, 0x7F818181, 0x7F818181, 0x81817F7F, 0x8181817F, 0x817F7F81,
+0x8181817F, 0x817F7F81, 0x7F7F817F, 0x7F817F81, 0x817F7F81, 0x81817F81, 0x81817F81, 0x817F817F,
+0x817F7F7F, 0x7F818181, 0x7F817F7F, 0x8181817F, 0x7F7F7F7F, 0x817F7F81, 0x7F7F817F, 0x7F81817F,
+0x8181817F, 0x7F817F81, 0x7F7F817F, 0x817F8181, 0x817F817F, 0x7F818181, 0x817F7F7F, 0x7F7F8181,
+0x7F7F7F7F, 0x817F7F81, 0x7F7F7F7F, 0x7F7F7F7F, 0x7F7F817F, 0x817F8181, 0x7F817F81, 0x8181817F,
+0x7F818181, 0x817F7F81, 0x7F7F7F7F, 0x8181817F, 0x817F7F81, 0x7F817F81, 0x81817F7F, 0x817F7F7F,
+0x81818181, 0x81818181, 0x7F817F81, 0x7F81817F, 0x7F7F8181, 0x81817F7F, 0x7F7F8181, 0x7F817F81,
+0x7F7F7F7F, 0x8181817F, 0x817F817F, 0x7F7F8181, 0x817F817F, 0x817F7F7F, 0x7F7F7F81, 0x81817F81,
+0x817F7F7F, 0x817F8181, 0x7F818181, 0x817F7F7F, 0x7F7F7F7F, 0x81818181, 0x7F818181, 0x7F7F7F81,
+0x7F7F7F7F, 0x817F817F, 0x7F7F8181, 0x81818181, 0x817F817F, 0x817F7F81, 0x817F7F7F, 0x817F8181,
+0x7F817F81, 0x7F818181, 0x7F7F817F, 0x7F81817F, 0x81818181, 0x817F7F81, 0x81817F7F, 0x7F7F7F81,
+0x7F7F817F, 0x7F818181, 0x817F8181, 0x817F7F81, 0x7F817F7F, 0x7F7F817F, 0x7F81817F, 0x81817F7F,
+0x7F818181, 0x7F7F7F81, 0x81817F7F, 0x81818181, 0x81817F7F, 0x817F8181, 0x81817F7F, 0x817F7F7F,
+0x7F7F817F, 0x7F7F8181, 0x81818181, 0x7F81817F, 0x7F7F7F7F, 0x7F817F81, 0x81817F7F, 0x817F7F7F,
+0x8181817F, 0x817F7F7F, 0x7F817F7F, 0x817F817F, 0x817F8181, 0x7F818181, 0x81817F7F, 0x7F7F8181,
+0x817F7F81, 0x8181817F, 0x817F8181, 0x7F817F81, 0x7F7F817F, 0x7F7F817F, 0x7F7F7F7F, 0x7F81817F,
+0x7F7F7F81, 0x7F81817F, 0x81818181, 0x7F817F7F, 0x817F8181, 0x81817F81, 0x7F818181, 0x7F817F81,
+0x7F817F81, 0x817F7F7F, 0x7F817F81, 0x7F7F8181, 0x817F817F, 0x817F8181, 0x8181817F, 0x81817F81,
+0x817F817F, 0x7F7F817F, 0x81817F7F, 0x7F817F81, 0x817F817F, 0x817F8181, 0x7F7F7F81, 0x817F8181,
+0x7F7F7F7F, 0x81817F7F, 0x7F817F81, 0x7F7F7F7F, 0x8181817F, 0x7F81817F, 0x817F7F7F, 0x81817F7F,
+0x817F7F81, 0x817F7F7F, 0x7F7F817F, 0x7F7F7F7F, 0x8181817F, 0x8181817F, 0x817F817F, 0x817F7F7F,
+0x817F7F81, 0x817F7F7F, 0x8181817F, 0x7F7F7F81, 0x7F817F7F, 0x7F817F81, 0x817F817F, 0x7F81817F,
+0x81818181, 0x7F817F81, 0x7F817F81, 0x817F7F81, 0x7F7F817F, 0x7F81817F, 0x7F7F8181, 0x7F817F7F,
+0x817F817F, 0x81818181, 0x7F7F8181, 0x7F7F7F7F, 0x7F7F8181, 0x817F7F7F, 0x7F7F7F81, 0x7F817F7F,
+0x7F817F7F, 0x7F7F817F, 0x7F817F7F, 0x817F8181, 0x7F81817F, 0x7F81817F, 0x7F7F7F7F, 0x817F8181,
+0x81817F7F, 0x7F7F817F, 0x7F817F81, 0x817F817F, 0x817F8181, 0x817F8181, 0x7F817F81, 0x7F818181,
+0x7F7F7F7F, 0x7F81817F, 0x7F818181, 0x817F8181, 0x817F7F81, 0x7F81817F, 0x817F817F, 0x7F817F81,
+0x7F817F7F, 0x7F81817F, 0x817F817F, 0x81817F7F, 0x7F7F7F7F, 0x817F817F, 0x7F817F7F, 0x7F7F8181,
+0x81817F81, 0x7F7F7F7F, 0x81818181, 0x817F817F, 0x81818181, 0x7F817F7F, 0x81817F81, 0x7F7F7F7F,
+0x81818181, 0x7F81817F, 0x81818181, 0x7F7F7F7F, 0x7F7F8181, 0x817F7F7F, 0x7F817F7F, 0x817F7F7F,
+0x817F8181, 0x7F818181, 0x81818181, 0x817F7F7F, 0x81817F7F, 0x817F7F81, 0x7F81817F, 0x7F7F8181,
+0x81818181, 0x7F818181, 0x7F818181, 0x7F7F7F81, 0x7F7F817F, 0x7F7F7F81, 0x817F8181, 0x7F818181,
+0x81817F7F, 0x7F7F7F81, 0x817F7F7F, 0x817F817F, 0x7F7F8181, 0x817F8181, 0x81817F81, 0x817F817F,
+0x7F817F81, 0x7F7F8181, 0x817F817F, 0x7F81817F, 0x7F818181, 0x81817F7F, 0x7F7F8181, 0x7F7F817F,
+0x7F81817F, 0x81817F7F, 0x81818181, 0x7F818181, 0x7F817F7F, 0x7F7F817F, 0x817F7F7F, 0x81817F81,
+0x7F817F7F, 0x7F81817F, 0x817F7F7F, 0x7F7F817F, 0x7F81817F, 0x817F8181, 0x81818181, 0x81817F7F,
+0x817F8181, 0x7F817F7F, 0x7F817F7F, 0x8181817F, 0x81817F81, 0x7F7F7F81, 0x81817F81, 0x7F7F7F81,
+0x7F817F7F, 0x7F7F7F7F, 0x81818181, 0x7F81817F, 0x8181817F, 0x7F81817F, 0x817F7F7F, 0x817F817F,
+0x817F7F81, 0x7F818181, 0x817F817F, 0x7F7F7F81, 0x7F7F817F, 0x817F7F81, 0x81817F7F, 0x81818181,
+0x817F817F, 0x7F7F8181, 0x817F7F81, 0x8181817F, 0x81817F7F, 0x7F7F7F81, 0x7F7F8181, 0x7F7F817F,
+0x817F8181, 0x7F817F81, 0x7F7F7F7F, 0x7F818181, 0x7F7F7F81, 0x7F7F7F81, 0x7F81817F, 0x7F7F817F,
+0x7F7F7F81, 0x7F7F817F, 0x7F817F7F, 0x7F7F7F81, 0x81817F7F, 0x7F817F7F, 0x8181817F, 0x7F7F8181,
+0x81817F81, 0x817F8181, 0x7F7F7F81, 0x81818181, 0x817F7F81, 0x8181817F, 0x817F8181, 0x81817F7F,
+0x817F7F7F, 0x7F818181, 0x81817F81, 0x7F81817F, 0x7F7F7F81, 0x8181817F, 0x7F7F817F, 0x8181817F,
+0x8181817F, 0x7F817F7F, 0x7F817F7F, 0x8181817F, 0x817F7F7F, 0x817F7F81, 0x7F817F7F, 0x7F818181,
+0x7F7F7F81, 0x817F7F81, 0x81817F81, 0x817F817F, 0x7F7F7F81, 0x7F7F817F, 0x7F7F7F7F, 0x817F817F,
+0x7F7F7F81, 0x7F7F817F, 0x7F817F81, 0x7F81817F, 0x7F817F81, 0x7F817F81, 0x7F7F7F7F, 0x7F818181,
+0x817F817F, 0x817F7F7F, 0x817F8181, 0x7F818181, 0x7F7F7F81, 0x817F7F7F, 0x7F81817F, 0x817F8181,
+0x817F7F81, 0x7F7F7F81, 0x8181817F, 0x817F817F, 0x8181817F, 0x817F7F7F, 0x7F81817F, 0x81817F7F,
+0x7F7F817F, 0x817F8181, 0x7F7F7F81, 0x81817F81, 0x7F817F81, 0x7F7F817F, 0x7F7F7F7F, 0x7F7F7F81,
+0x7F7F8181, 0x817F817F, 0x7F7F7F81, 0x7F818181, 0x81818181, 0x7F7F7F81, 0x7F817F7F, 0x817F8181,
+0x817F817F, 0x7F7F8181, 0x7F817F7F, 0x7F7F7F81, 0x7F7F817F, 0x8181817F, 0x7F817F81, 0x7F81817F,
+0x7F817F81, 0x7F818181, 0x81818181, 0x8181817F, 0x7F7F7F81, 0x817F7F7F, 0x81818181, 0x7F7F8181,
+0x81817F7F, 0x7F7F817F, 0x7F7F7F81, 0x817F8181, 0x7F818181, 0x7F7F817F, 0x817F7F7F, 0x7F7F7F7F,
+0x817F7F81, 0x817F7F7F, 0x817F817F, 0x7F7F8181, 0x81817F7F, 0x81818181, 0x817F7F81, 0x7F81817F,
+0x817F7F81, 0x7F817F7F, 0x7F817F7F, 0x7F7F817F, 0x817F817F, 0x817F7F81, 0x7F7F7F81, 0x81818181,
+0x81817F81, 0x7F7F7F81, 0x817F7F7F, 0x7F7F7F7F, 0x817F7F81, 0x7F7F7F7F, 0x7F7F8181, 0x8181817F,
+0x81817F7F, 0x7F81817F, 0x7F7F817F, 0x817F7F81, 0x7F81817F, 0x817F8181, 0x7F7F7F81, 0x7F817F81,
+0x7F7F7F81, 0x81817F81, 0x7F818181, 0x81817F7F, 0x817F817F, 0x817F7F81, 0x7F7F817F, 0x8181817F,
+0x817F817F, 0x817F817F, 0x817F817F, 0x7F817F7F, 0x81818181, 0x7F7F8181, 0x7F817F81, 0x7F7F8181,
+0x81817F81, 0x8181817F, 0x7F7F7F7F, 0x7F817F7F, 0x817F7F81, 0x817F8181, 0x7F7F7F7F, 0x7F7F8181,
+0x7F7F817F, 0x7F818181, 0x7F817F81, 0x81817F7F, 0x817F817F, 0x7F817F7F, 0x817F7F7F, 0x81817F81,
+0x7F817F81, 0x817F7F7F, 0x7F81817F, 0x7F7F7F7F, 0x7F7F7F7F, 0x7F817F81, 0x81817F7F, 0x81817F81,
+0x7F817F7F, 0x7F7F7F7F, 0x7F818181, 0x7F817F7F, 0x81817F81, 0x7F7F817F, 0x817F7F7F, 0x817F8181,
+0x7F817F7F, 0x81817F7F, 0x817F8181, 0x817F817F, 0x817F8181, 0x7F7F8181, 0x7F817F7F, 0x81817F7F,
+0x7F7F817F, 0x817F7F7F, 0x7F817F81, 0x817F8181, 0x7F7F817F, 0x7F817F7F, 0x7F818181, 0x7F817F81,
+0x7F81817F, 0x81817F81, 0x81817F81, 0x7F7F7F81, 0x81817F7F, 0x7F7F8181, 0x817F7F81, 0x81817F81,
+0x7F817F7F, 0x7F7F817F, 0x81817F7F, 0x7F7F7F81, 0x817F817F, 0x7F7F7F7F, 0x7F81817F, 0x7F7F8181,
+0x817F817F, 0x817F8181, 0x7F7F7F81, 0x81817F7F, 0x817F8181, 0x7F7F8181, 0x7F7F817F, 0x817F7F7F,
+0x7F817F81, 0x817F817F, 0x817F7F7F, 0x817F7F7F, 0x7F817F81, 0x81817F7F, 0x7F817F7F, 0x7F817F7F,
+0x81817F7F, 0x7F818181, 0x817F8181, 0x7F7F7F7F, 0x8181817F, 0x7F817F81, 0x8181817F, 0x81817F81,
+0x8181817F, 0x7F817F7F, 0x817F817F, 0x817F7F81, 0x81818181, 0x7F817F81, 0x7F81817F, 0x7F817F81,
+0x817F7F81, 0x7F817F7F, 0x7F81817F, 0x817F8181, 0x817F817F, 0x7F7F7F7F, 0x81817F7F, 0x7F818181,
+0x817F7F81, 0x7F7F8181, 0x817F8181, 0x8181817F, 0x81818181, 0x7F818181, 0x7F7F7F7F, 0x7F7F817F,
+0x7F818181, 0x81818181, 0x817F7F7F, 0x7F818181, 0x7F7F7F81, 0x7F7F7F7F, 0x7F7F8181, 0x7F818181,
+0x817F817F, 0x7F817F7F, 0x8181817F, 0x7F7F8181, 0x7F817F81, 0x817F7F7F, 0x8181817F, 0x81817F81,
+0x7F81817F, 0x7F817F81, 0x81817F81, 0x81817F81, 0x81818181, 0x81818181, 0x81817F7F, 0x7F817F81,
+0x7F7F7F81, 0x817F817F, 0x81817F7F, 0x817F7F7F, 0x7F817F81, 0x7F817F7F, 0x817F7F81, 0x7F81817F,
+0x8181817F, 0x81817F81, 0x7F81817F, 0x81817F81, 0x81817F7F, 0x817F7F7F, 0x8181817F, 0x7F7F817F,
+0x81818181, 0x7F81817F, 0x81817F7F, 0x7F7F7F7F, 0x817F8181, 0x81817F7F, 0x817F7F7F, 0x817F7F7F,
+0x7F817F7F, 0x7F7F7F81, 0x7F818181, 0x817F817F, 0x7F7F7F81, 0x7F7F817F, 0x7F7F7F81, 0x7F7F817F,
+0x817F7F7F, 0x817F8181, 0x7F817F7F, 0x7F81817F, 0x7F7F817F, 0x81817F7F, 0x81817F81, 0x7F81817F,
+0x7F7F817F, 0x7F7F7F7F, 0x7F81817F, 0x817F817F, 0x7F7F7F7F, 0x8181817F, 0x7F7F8181, 0x7F7F8181,
+0x817F7F81, 0x7F817F7F, 0x7F818181, 0x7F7F7F7F, 0x817F7F7F, 0x7F81817F, 0x817F7F81, 0x817F7F7F,
+0x81817F7F, 0x7F7F817F, 0x817F817F, 0x7F81817F, 0x7F81817F, 0x817F8181, 0x7F7F817F, 0x81817F81,
+0x7F7F8181, 0x81817F81, 0x7F817F7F, 0x817F8181, 0x817F817F, 0x81817F7F, 0x7F7F8181, 0x817F7F81,
+0x7F7F7F81, 0x817F7F7F, 0x81817F81, 0x817F7F81, 0x81817F81, 0x81817F81, 0x7F7F7F7F, 0x7F7F8181,
+0x817F7F7F, 0x81818181, 0x7F818181, 0x7F7F817F, 0x817F8181, 0x7F7F7F81, 0x7F818181, 0x7F7F7F81,
+0x7F7F7F81, 0x7F817F81, 0x7F7F817F, 0x7F7F7F7F, 0x8181817F, 0x81817F7F, 0x8181817F, 0x817F817F,
+0x7F817F7F, 0x817F8181, 0x7F817F7F, 0x7F7F7F7F, 0x7F7F817F, 0x81818181, 0x7F81817F, 0x7F7F7F81,
+0x817F7F81, 0x7F818181, 0x7F81817F, 0x7F7F817F, 0x817F7F81, 0x7F817F7F, 0x817F7F81, 0x7F817F81,
+0x81817F7F, 0x817F7F81, 0x7F7F7F7F, 0x7F7F8181, 0x7F7F8181, 0x81818181, 0x81818181, 0x7F817F7F,
+0x7F817F81, 0x7F818181, 0x7F7F817F, 0x7F7F7F7F, 0x7F7F8181, 0x817F817F, 0x81818181, 0x7F81817F,
+0x81817F7F, 0x7F81817F, 0x7F7F7F81, 0x7F81817F, 0x81817F7F, 0x7F81817F, 0x7F817F7F, 0x817F7F81,
+0x81818181, 0x81817F81, 0x817F8181, 0x8181817F, 0x817F817F, 0x81817F81, 0x7F81817F, 0x7F817F81,
+0x817F817F, 0x7F81817F, 0x81817F81, 0x7F817F7F, 0x7F7F817F, 0x7F7F817F, 0x817F817F, 0x7F7F7F7F,
+0x7F817F7F, 0x7F7F7F81, 0x7F7F8181, 0x7F7F7F7F, 0x7F817F81, 0x7F818181, 0x81817F7F, 0x817F817F,
+0x7F81817F, 0x81817F7F, 0x7F818181, 0x81817F7F, 0x817F7F7F, 0x7F817F7F, 0x7F7F7F81, 0x7F7F8181,
+0x7F81817F, 0x817F8181, 0x81818181, 0x7F818181, 0x7F817F81, 0x7F817F7F, 0x7F818181, 0x7F7F7F7F,
+0x7F7F817F, 0x817F7F81, 0x81817F81, 0x817F7F7F, 0x7F7F7F81, 0x7F818181, 0x817F7F81, 0x7F818181,
+0x7F7F817F, 0x817F817F, 0x7F7F8181, 0x81818181, 0x817F8181, 0x817F7F7F, 0x7F817F7F, 0x7F818181,
+0x7F7F7F7F, 0x81817F81, 0x7F7F7F81, 0x7F7F7F81, 0x7F817F81, 0x817F7F81, 0x817F817F, 0x7F7F817F,
+0x817F817F, 0x7F7F817F, 0x817F817F, 0x81817F7F, 0x7F817F7F, 0x817F7F81, 0x7F7F817F, 0x7F818181,
+0x7F817F7F, 0x7F818181, 0x7F7F7F7F, 0x81818181, 0x8181817F, 0x81817F7F, 0x7F7F7F81, 0x81817F7F,
+0x7F817F7F, 0x8181817F, 0x817F8181, 0x7F7F7F7F, 0x817F7F81, 0x7F817F81, 0x7F817F7F, 0x8181817F,
+0x817F7F7F, 0x81818181, 0x817F7F81, 0x7F817F7F, 0x817F817F, 0x817F7F7F, 0x8181817F, 0x7F7F7F7F,
+0x7F817F81, 0x7F7F8181, 0x817F7F7F, 0x817F7F81, 0x7F818181, 0x7F817F7F, 0x7F7F8181, 0x7F7F817F,
+0x817F7F81, 0x81817F81, 0x7F7F7F7F, 0x7F817F81, 0x817F817F, 0x7F7F817F, 0x7F7F7F81, 0x81817F81,
+0x81818181, 0x817F817F, 0x817F7F81, 0x817F8181, 0x8181817F, 0x7F818181, 0x817F7F81, 0x7F7F817F,
+0x7F7F817F, 0x8181817F, 0x817F7F7F, 0x7F7F7F81, 0x81817F81, 0x7F81817F, 0x7F817F7F, 0x7F7F7F81,
+0x81817F7F, 0x7F7F817F, 0x7F817F7F, 0x7F7F817F, 0x7F818181, 0x81817F7F, 0x7F7F8181, 0x7F7F817F,
+0x7F817F7F, 0x7F7F7F81, 0x8181817F, 0x7F7F7F7F, 0x7F817F7F, 0x7F817F7F, 0x81818181, 0x817F7F81,
+0x817F7F7F, 0x817F7F7F, 0x817F7F81, 0x817F817F, 0x7F7F817F, 0x7F7F7F81, 0x81817F7F, 0x817F8181,
+0x817F7F81, 0x817F817F, 0x817F7F7F, 0x817F7F7F, 0x7F817F81, 0x7F7F817F, 0x817F8181, 0x817F817F,
+0x81817F81, 0x817F8181, 0x7F818181, 0x817F7F7F, 0x81817F7F, 0x7F818181, 0x7F817F81, 0x7F7F7F7F,
+0x817F7F7F, 0x81818181, 0x7F7F817F, 0x7F7F817F, 0x7F81817F, 0x817F7F7F, 0x817F8181, 0x8181817F,
+0x7F7F7F7F, 0x7F817F7F, 0x8181817F, 0x817F817F, 0x7F817F7F, 0x81818181, 0x7F7F817F, 0x7F7F7F7F,
+0x7F818181, 0x81818181, 0x7F7F7F81, 0x81817F81, 0x81817F81, 0x7F81817F, 0x817F817F, 0x7F817F81,
+0x81817F7F, 0x817F817F, 0x81817F81, 0x8181817F, 0x817F817F, 0x817F817F, 0x817F817F, 0x817F817F,
+0x81817F7F, 0x81818181, 0x7F81817F, 0x7F817F7F, 0x817F7F7F, 0x7F7F7F81, 0x817F817F, 0x817F7F81,
+0x7F818181, 0x817F7F81, 0x81817F7F, 0x817F817F, 0x81817F7F, 0x8181817F, 0x817F7F81, 0x7F7F7F81,
+0x81817F81, 0x7F7F7F81, 0x81818181, 0x817F7F7F, 0x81817F7F, 0x7F817F7F, 0x7F818181, 0x81817F7F,
+0x7F817F7F, 0x7F7F7F81, 0x81817F7F, 0x7F7F8181, 0x817F8181, 0x7F7F7F81, 0x7F7F817F, 0x7F7F7F81,
+0x7F818181, 0x7F817F7F, 0x7F7F7F81, 0x7F818181, 0x81817F7F, 0x817F7F7F, 0x7F7F7F81, 0x817F7F7F,
+0x817F817F, 0x81817F7F, 0x7F817F81, 0x7F817F81, 0x81817F81, 0x7F7F7F81, 0x7F817F81, 0x81817F81,
+0x7F7F8181, 0x7F818181, 0x7F7F8181, 0x81817F7F, 0x81818181, 0x7F7F7F7F, 0x7F7F7F7F, 0x817F7F7F,
+0x7F81817F, 0x7F817F7F, 0x817F7F7F, 0x7F817F81, 0x7F817F7F, 0x817F7F81, 0x81817F81, 0x7F7F817F,
+0x7F817F7F, 0x8181817F, 0x7F7F817F, 0x81818181, 0x81817F7F, 0x7F7F817F, 0x7F7F7F81, 0x817F7F81,
+0x7F81817F, 0x7F7F8181, 0x7F818181, 0x7F817F81, 0x817F8181, 0x7F818181, 0x817F817F, 0x81818181,
+0x7F7F7F81, 0x7F81817F, 0x7F817F7F, 0x81818181, 0x817F8181, 0x7F817F7F, 0x7F818181, 0x7F81817F,
+0x817F8181, 0x7F7F8181, 0x7F7F8181, 0x8181817F, 0x7F7F7F81, 0x7F7F7F81, 0x817F7F81, 0x817F7F81,
+0x81817F7F, 0x7F817F7F, 0x817F7F7F, 0x7F7F817F, 0x817F7F7F, 0x7F817F81, 0x7F7F7F7F, 0x817F817F,
+0x81817F81, 0x7F7F8181, 0x7F81817F, 0x8181817F, 0x817F7F7F, 0x7F7F7F81, 0x7F818181, 0x817F7F7F,
+0x7F818181, 0x81818181, 0x817F7F81, 0x7F818181, 0x7F817F81, 0x7F7F817F, 0x7F818181, 0x81818181,
+0x8181817F, 0x817F7F81, 0x817F8181, 0x817F8181, 0x7F817F81, 0x7F817F81, 0x7F7F817F, 0x7F7F7F81,
+0x81818181, 0x81817F7F, 0x81817F7F, 0x81817F81, 0x7F81817F, 0x81817F7F, 0x81817F7F, 0x81817F7F,
+0x81817F81, 0x7F7F817F, 0x817F817F, 0x8181817F, 0x7F81817F, 0x81817F81, 0x7F817F81, 0x817F817F,
+0x817F7F81, 0x81818181, 0x7F817F81, 0x81817F81, 0x817F817F, 0x81817F7F, 0x7F817F81, 0x7F817F7F,
+0x7F7F7F7F, 0x7F817F81, 0x81817F7F, 0x7F7F817F, 0x7F7F8181, 0x7F7F7F81, 0x8181817F, 0x81818181,
+0x81817F7F, 0x7F817F7F, 0x81817F81, 0x817F7F7F, 0x8181817F, 0x81817F7F, 0x7F817F81, 0x81817F81,
+0x7F7F8181, 0x7F7F8181, 0x81817F81, 0x7F81817F, 0x817F8181, 0x81818181, 0x81818181, 0x817F7F7F,
+0x817F8181, 0x7F817F81, 0x7F817F7F, 0x7F818181, 0x81818181, 0x7F7F7F7F, 0x7F7F8181, 0x817F817F,
+0x7F7F8181, 0x817F8181, 0x7F7F7F81, 0x7F817F7F, 0x7F81817F, 0x8181817F, 0x7F7F817F, 0x7F817F7F,
+0x81817F7F, 0x817F817F, 0x7F7F7F81, 0x817F8181, 0x7F81817F, 0x7F7F817F, 0x81818181, 0x7F81817F,
+0x7F817F81, 0x7F7F7F7F, 0x7F7F7F81, 0x7F7F7F81, 0x7F817F81, 0x81817F81, 0x81817F81, 0x7F7F817F,
+0x7F7F7F81, 0x817F817F, 0x81817F81, 0x8181817F, 0x7F817F81, 0x8181817F, 0x817F7F81, 0x81817F81,
+0x7F7F817F, 0x817F7F7F, 0x81817F7F, 0x81817F7F, 0x7F7F8181, 0x7F7F7F7F, 0x7F81817F, 0x8181817F,
+0x81817F7F, 0x81817F7F, 0x7F817F7F, 0x817F8181, 0x7F81817F, 0x817F7F7F, 0x7F817F7F, 0x7F817F7F,
+0x817F7F81, 0x7F7F7F7F, 0x817F8181, 0x7F7F817F, 0x7F817F7F, 0x7F818181, 0x817F8181, 0x81817F7F,
+0x7F81817F, 0x7F817F81, 0x7F81817F, 0x81818181, 0x7F817F81, 0x817F817F, 0x7F817F81, 0x7F817F81,
+0x7F7F8181, 0x817F8181, 0x817F8181, 0x7F7F7F81, 0x7F818181, 0x7F7F8181, 0x81817F7F, 0x8181817F,
+0x7F7F817F, 0x7F7F7F7F, 0x7F7F7F81, 0x817F7F7F, 0x7F7F7F81, 0x7F818181, 0x817F817F, 0x817F7F7F,
+0x817F7F7F, 0x7F7F8181, 0x81817F7F, 0x7F7F7F7F, 0x817F7F81, 0x7F7F7F7F, 0x8181817F, 0x81817F7F,
+0x7F81817F, 0x7F817F7F, 0x817F7F81, 0x7F818181, 0x81817F7F, 0x7F817F81, 0x81817F81, 0x81817F7F,
+0x817F8181, 0x7F7F817F, 0x7F817F7F, 0x7F7F7F7F, 0x7F7F817F, 0x7F817F7F, 0x7F817F7F, 0x7F7F817F,
+0x817F7F7F, 0x7F81817F, 0x7F818181, 0x7F817F7F, 0x7F7F7F81, 0x7F817F81, 0x817F8181, 0x7F7F7F81,
+0x7F818181, 0x7F817F81, 0x817F8181, 0x7F818181, 0x817F817F, 0x7F817F7F, 0x817F7F81, 0x8181817F,
+0x817F817F, 0x7F7F7F7F, 0x7F817F7F, 0x81818181, 0x7F817F81, 0x7F817F7F, 0x81817F81, 0x7F7F7F81,
+0x7F7F8181, 0x81817F81, 0x7F817F7F, 0x817F7F7F, 0x81817F81, 0x7F817F7F, 0x81817F81, 0x81818181,
+0x7F817F81, 0x7F7F7F7F, 0x817F817F, 0x8181817F, 0x7F7F817F, 0x817F8181, 0x817F8181, 0x81817F81,
+0x7F7F7F7F, 0x817F8181, 0x817F7F81, 0x7F817F81, 0x817F8181, 0x81817F7F, 0x7F7F7F7F, 0x7F817F7F,
+0x7F7F7F7F, 0x7F7F7F7F, 0x817F7F7F, 0x81818181, 0x81817F7F, 0x817F7F7F, 0x7F7F7F81, 0x7F7F8181,
+0x7F7F7F81, 0x7F7F8181, 0x8181817F, 0x7F7F817F, 0x817F7F81, 0x7F817F7F, 0x817F7F7F, 0x817F7F7F,
+0x7F7F817F, 0x7F81817F, 0x817F817F, 0x7F7F817F, 0x817F817F, 0x7F7F7F7F, 0x81817F81, 0x817F7F81,
+0x8181817F, 0x81817F81, 0x817F7F7F, 0x7F818181, 0x817F7F81, 0x7F7F8181, 0x7F7F817F, 0x7F81817F,
+0x7F817F81, 0x7F81817F, 0x81818181, 0x817F7F81, 0x7F818181, 0x81818181, 0x81817F7F, 0x7F817F81,
+0x7F818181, 0x7F7F7F81, 0x7F817F81, 0x81817F81, 0x817F8181, 0x817F817F, 0x8181817F, 0x7F7F8181,
+0x81818181, 0x817F817F, 0x7F818181, 0x817F817F, 0x7F7F817F, 0x817F7F81, 0x817F8181, 0x7F7F7F81,
+0x7F7F7F7F, 0x7F817F81, 0x81817F81, 0x81817F7F, 0x7F817F7F, 0x81818181, 0x817F7F7F, 0x7F818181,
+0x817F8181, 0x7F7F7F81, 0x817F7F81, 0x81817F81, 0x7F7F7F81, 0x8181817F, 0x817F7F7F, 0x7F7F7F81,
+0x7F81817F, 0x7F818181, 0x817F7F81, 0x7F81817F, 0x817F8181, 0x817F8181, 0x7F81817F, 0x817F8181,
+0x7F7F7F81, 0x81818181, 0x7F7F817F, 0x81817F81, 0x81817F81, 0x817F8181, 0x7F7F8181, 0x817F7F81,
+0x817F8181, 0x817F7F81, 0x7F7F8181, 0x7F7F8181, 0x7F818181, 0x81817F81, 0x7F7F8181, 0x7F818181,
+0x7F7F817F, 0x7F81817F, 0x817F7F7F, 0x81817F7F, 0x7F7F7F81, 0x7F7F7F81, 0x7F7F7F7F, 0x817F8181,
+0x7F817F7F, 0x7F7F7F7F
+
+output0 =
+0x88CCED56, 0x1C072C76, 0xD4D23B69, 0x78C979BF, 0x60764BE3, 0x4470E86B, 0x20A46F84, 0xA0211B5C,
+0xE1952001, 0xB77912DE, 0x52E8BA16, 0xE5BE8445, 0x95093ACF, 0xA8BE03D2, 0x49DBB5AB, 0xC3946403,
+0x4DD44236, 0xC2833E65, 0x7288C53B, 0xD64FB75E, 0x7438C1EC, 0x71070BEC, 0xA40F8094, 0xABF43E46,
+0x564487F5, 0x8435AC89, 0x2D98A4C3, 0x07CD13F4, 0xB44CEEA6, 0x2E00DD83, 0x12EF45EB, 0x01A047B8,
+0xBC563FD5, 0xCA5C1136, 0x7AB9F2C8, 0xD62C59A9, 0x913DF674, 0xC900322A, 0xCF54042E, 0x6CAADB1E,
+0x8077B98C, 0xBCB51468, 0x58339E5E, 0x1D176854, 0xF9E2D74A, 0x2994B28A, 0xD0E46263, 0xCD8A0FDB,
+0x0119B915, 0x1E5433C9, 0xEA298A7D, 0x9EB4FC8D, 0xEF93B537, 0x6D441397, 0x6A4C8DB3, 0xB8E4AFE9,
+0x1520BC1C, 0x8669961B, 0x5D484802, 0xC2793340, 0xB5FE7945, 0x43AC7CE2, 0xB74B70C1, 0xFCF56F87,
+0x3E146A49, 0x0391D092, 0x672D2427, 0xDC91BB53, 0xEB24AC1F, 0xCE0D8E63, 0xF12F7ED8, 0xB3192024,
+0x0697AE9C, 0x3415F178, 0xD8410FFC, 0xE34734DE, 0x6C6E6BF1, 0xDCD211C3, 0xBF6B0B87, 0xA1624F47,
+0x3524BC4D, 0x4B4A1891, 0x8691223C, 0x12EB2DA4, 0x0B51F616, 0x31276F0E, 0x86CB4D17, 0x15CA0F9B,
+0xEB989F98, 0x1141D335, 0x442C699F, 0x82E9758B, 0x267E6D4D, 0x71BAC54A, 0x2FBCBD52, 0xA0966795,
+0xEB08B437, 0x1A9899A0, 0x26484B82, 0x3AEE43A8, 0xC409BE45, 0xCF8C6EC9, 0x098DE63F, 0xC3BEA60B,
+0xCB7A5B6A, 0xCBF2A44B, 0x31E9FA4C, 0x34FD7E88, 0xA3C5AF89, 0xF13C8E2B, 0xC01C79FA, 0x622B9FD8,
+0x692D4C4F, 0x712BC24C, 0x16FBD6C3, 0x7B1BBC38, 0x63F1E328, 0x6F4B
+
+basegraph=
+2
+
+z_c=
+384
+
+n_cb=
+19200
+
+q_m=
+2
+
+n_filler=
+56
+
+e =
+36936
+
+rv_index =
+0
+
+code_block_mode =
+1
+
+iter_max =
+20
+
+expected_iter_count =
+3
+
+op_flags =
+RTE_BBDEV_LDPC_ITERATION_STOP_ENABLE, RTE_BBDEV_LDPC_CRC_TYPE_24B_CHECK, RTE_BBDEV_LDPC_CRC_TYPE_24B_DROP
+
+expected_status =
+OK
diff --git a/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_enc_v11835.data b/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_enc_v11835.data
new file mode 100644
index 000000000..e27ff6ecc
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_enc_v11835.data
@@ -0,0 +1,41 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2019 Intel Corporation
+
+op_type =
+RTE_BBDEV_OP_LDPC_ENC
+
+input0 =
+0x44FB08C0, 0x661CCC
+
+output0 =
+0x1BACEE95, 0x613ECD04, 0xC0
+
+basegraph=
+2
+
+z_c=
+10
+
+n_cb=
+500
+
+q_m=
+6
+
+n_filler=
+44
+
+e=
+66
+
+rv_index=
+0
+
+code_block_mode=
+1
+
+op_flags=
+RTE_BBDEV_LDPC_RATE_MATCH
+
+expected_status=
+OK
diff --git a/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_enc_v2342.data b/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_enc_v2342.data
new file mode 100644
index 000000000..619b29be5
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_enc_v2342.data
@@ -0,0 +1,151 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2019 Intel Corporation
+
+# Origin : FEC5g_DL_1/2342
+
+op_type =
+RTE_BBDEV_OP_LDPC_ENC
+
+input0 =
+0x02524C20, 0xB9B1FEA2, 0xC1BAB7E5, 0xEF5714CB, 0x7DE6A64D, 0xA05F9DC9, 0x0747D1E3, 0x3B20BC86,
+0x6FCBDB0F, 0xF2FB7A23, 0x79D5E062, 0x5BF4E7C3, 0xD4A68A37, 0x07B4A6AD, 0x37E911F9, 0x7FE7B30A,
+0xBBC284A2, 0xD38D6136, 0x25FAB76B, 0xBEBBF534, 0x9A88F9DB, 0xE37FD52D, 0x691DD493, 0xED2F738C,
+0x89A96EA0, 0xD981246A, 0x17CC820E, 0x07E3B463, 0xC9FC2590, 0x7475A33C, 0xA5151BB4, 0x1F7E759E,
+0x9554F964, 0xD0FA01F4, 0xD31774D2, 0xEB73A9F6, 0x8C9FBCB1, 0xF83010FB, 0x1909E09F, 0xC46023EB,
+0x02AEDC62, 0xC6352CC7, 0x674BDC6D, 0xE17CD747, 0x4E25B0B3, 0x4BFF6B17, 0x12C9AAA3, 0xC2BC91CD,
+0x44BE23A2, 0x8A72A157, 0x6E0DAD1F, 0x6CA69A09, 0xB55B582E, 0x01818B31, 0x5CA5CAB6, 0x1917AB24,
+0x38F98BCD, 0x01917487, 0x05906FDD, 0x760AFCBA, 0x19671085, 0x64E3546E, 0xEC10F922, 0x3CF286CA,
+0x68E273EA, 0xF1001325, 0x5DCB3B49, 0xE9547370, 0x65D26AE6, 0xF621256C, 0x25D6D99C, 0x7862EBA0,
+0x43365DB0, 0x4DBF06C5, 0x92FCAA02, 0xB0FD58FA, 0x910E80A6, 0x93D24A67, 0x6E39B144, 0x3D46D6F6,
+0xEDC55081, 0x33CD70C7, 0xC74B6E8E, 0x91AA27B9, 0x55B3542D, 0xEBF8046A, 0xB9ABDB94, 0x97FC38A8,
+0xD5837B4D, 0x764B1809, 0xFBE2096A, 0xC23887AC, 0x2A45029B, 0xCBB7DF70, 0x674654E1, 0x0C6A06BD,
+0xB3E8853E, 0x03FCC4CE, 0x26806F2E, 0x2CEB35B0, 0x10538B03, 0x94B059B8, 0xA95E7FFA, 0x48AD3D0A,
+0xEB9091E1, 0x972E31EF, 0x5EBC6F8F, 0x947FF108, 0xCB3123FA, 0xFEE1D939, 0xF3DC5C49, 0xA92927AE,
+0xF49BB8D0, 0xAA59F730, 0x4A66D1CD, 0x030E1ADF, 0x238D5B19, 0x96F861F1, 0x915424E4, 0x9127880C,
+0x8E779839, 0x87375FCE, 0x61FB3D79, 0x96B1EE83, 0x47BF6667, 0x19E7D408, 0x7E91137F, 0x0E4AD8E8,
+0xDABD2E45, 0x9B60873F, 0xD0294A65, 0x2A38A862, 0x59DD046D, 0x9832BB79, 0xA5870DB6, 0xB3F1CC48,
+0x7E9A8132, 0xEEA2E4BC, 0xF23ED87B, 0x550E011F, 0x9620E0C0, 0xE7CF0834, 0xDEE69623, 0x6184D512,
+0xD3D55728, 0xFA7711D4, 0x9C77B0F9, 0x8A26462B, 0xB3F5C8D5, 0x1123246D, 0x78F36272, 0x940EE0F9,
+0x757BF240, 0x7EE2B6D0, 0xD40FD5A1, 0xAB4205CA, 0x96E6B758, 0xAC5F4294, 0xC9268C66, 0xB48DC535,
+0x3CF6ED4C, 0xF187EFED, 0x7A09B08D, 0x8709EFCE, 0x267B2468, 0x0015D770, 0xDF1B90BF, 0xA03DAD85,
+0x2633012E, 0xE5437125, 0x58B79AFF, 0xB929C532, 0x6D890DC9, 0x89A59AD2, 0x2BB99316, 0x41B5B0EB,
+0x7304B295, 0xB37F6708, 0x2F84A68E, 0x3637D79A, 0xDD36687B, 0x904BF7B6, 0x6A2CF453, 0x733DED54,
+0x5DF48BAA, 0xC3FCC99F, 0x8E3BE1DB, 0x61D9CF2D, 0xB7DC202B, 0xA959FF95, 0x860D0F14, 0x4008C478,
+0xD9325A51, 0x27A29D4C, 0x308FE6D4, 0x7A1AA889, 0x5BD38393, 0xCBFA5D
+
+output0 =
+0xADE67AA9, 0x1CB4EBDD, 0x74E76684, 0xE3941FC7, 0x48DAC304, 0x1E2C198D, 0xFE88B908, 0xEC21A3DE,
+0xBF314AB7, 0x634E3DCB, 0x0DA84E23, 0x58B1B22B, 0x02B837A0, 0x8B04BF38, 0xFB8DB526, 0x1BFF82E9,
+0x4226C4D0, 0xF7A9950E, 0x6DA4D0B2, 0x38E15395, 0x94C1A379, 0x243ED666, 0x3E7255B3, 0x7DB378DB,
+0xA3CE1377, 0xE0137291, 0x42DB50AC, 0xEB2D0A13, 0xCA55944A, 0x223DF8E0, 0xB800D1CF, 0xAA2E7577,
+0x50153EC5, 0x5E3C8557, 0x63DDEC8F, 0x49A256F8, 0x41ABFD56, 0xEB76A4D7, 0x4F4E9C7C, 0x3508DA39,
+0x530F9DA0, 0xFFD20E32, 0x395F7963, 0x1C48B3F7, 0xD3BC29C7, 0x4D6ED90F, 0xC1C9EF58, 0x9B9D4A13,
+0x417BF36E, 0x1BB5FDD8, 0x72793F28, 0x2F297FA5, 0x204AA988, 0x28317636, 0x87878EC8, 0x33024F9D,
+0xE651388E, 0x560ACA6E, 0xEC3D0B64, 0xCB515AAE, 0xE42B9ECD, 0x2AE2B0D1, 0xCD659A28, 0x8BD5E4D8,
+0x0D618DD6, 0x14CF8DB1, 0xE9F82BB6, 0x558C50A4, 0xA9809F8C, 0x15646823, 0x6037DB27, 0x26A0ABAA,
+0xF8DC4AC6, 0x533494C9, 0x7BF60155, 0x7BB16D05, 0x89F7A1BA, 0xCB069606, 0x6572D71A, 0x001917EB,
+0xD353913B, 0x128F78BD, 0x83BCE2A3, 0xE0065266, 0x9E7E608F, 0x25889472, 0x184ADD42, 0xD42B429B,
+0x7A8D861F, 0x54C97AB8, 0xB8B04229, 0xDF3DE03A, 0xB97E311E, 0xBB2A1FF8, 0x53AC8D5B, 0x1825B5DC,
+0x9843DD95, 0x0214EAA6, 0x3B1CF504, 0xD3BE316F, 0x9B1D3C64, 0x8EF4A268, 0xFACBC9AD, 0xDCC6033F,
+0xF801E3D1, 0x92F3E3A1, 0x1EC121AC, 0xA6747F20, 0x6ACC34EF, 0x0F641DC0, 0x42CAB9C3, 0xE04036DD,
+0x97739381, 0x9843A304, 0x929E9AB7, 0x600E057F, 0x892D5F1F, 0x0F718281, 0xD345AA58, 0xF39215C4,
+0xBCAB0B51, 0x1EBEA1B0, 0x68885471, 0xB39AD728, 0x2FF70470, 0x80D01FE5, 0xB41A95C0, 0x01DB8079,
+0xA4C9F364, 0x41860F1A, 0xEBE24F2B, 0x086BFFF0, 0x7B66DE40, 0xFFF665D6, 0x18324792, 0x1D253106,
+0xC41B9BF0, 0xC79347BA, 0x6949A396, 0x279E7A4A, 0x4029B533, 0xE8B382E2, 0x89783E24, 0x3D945C74,
+0x49BD75D8, 0xBAD731A0, 0x48B4AFAB, 0x4383B903, 0x8A6966A6, 0x170B9958, 0x58307AB6, 0x3B627463,
+0x0B981BEA, 0xD8E9A038, 0x723219E7, 0x4F6E5470, 0xE4F3CF92, 0x37AACC8A, 0xA4E46500, 0xE44DDA39,
+0x68690180, 0x33143C47, 0x9A6EE438, 0x5FA00F23, 0xD2CEE248, 0x46090D1A, 0xDE5491AE, 0x417D853E,
+0xC607B731, 0x79D7DCCF, 0x13200C03, 0x07CAB5E9, 0xB59525EA, 0xE47B66A5, 0xB125AAAB, 0x20CCFE07,
+0x82F1F4E8, 0xCF44BD2B, 0xC462D58D, 0x60A6A73B, 0x0D0CA712, 0xFE342922, 0x15123217, 0x7A02E89D,
+0x49B44659, 0xB9F3AE54, 0xAFC472BC, 0x79AF1A6D, 0x7430BA59, 0xEA13F81C, 0x33592D7D, 0x1EF1E1DC,
+0xF51FF0C8, 0x80F7B07E, 0xC1536EBB, 0x586CB41D, 0x10AF823C, 0x390EA571, 0x7D54C302, 0xA049ECBE,
+0x368C3981, 0x38B72BEE, 0x833C5F98, 0x2E18D066, 0x5742B0D2, 0xA8F5F0B8, 0x9144935D, 0x7392A908,
+0x3175DBC0, 0x29AA2F7C, 0xF53FED73, 0xFE41236B, 0x091E47EC, 0xD2195647, 0xCAAEA8B5, 0x0ED9750E,
+0xF5027456, 0xF1838780, 0x16FFE8EE, 0xA21568C6, 0xC5E4FCAF, 0x27C24C4B, 0x3DE89E8E, 0x5464ADC6,
+0x865C8493, 0x41032697, 0xD5F82075, 0x49167AF7, 0xED1AA45C, 0xA6B20018, 0xB1776BA9, 0x9F2129B6,
+0x611C417D, 0x3B72E8B6, 0x1AA7DB22, 0xF4ADF40E, 0xA24B8EFB, 0xF25C5F9D, 0xE52C047E, 0x3B8C9A26,
+0x4C0760E4, 0x73027C0E, 0x1F5977D8, 0x6CAF979D, 0xEF39719F, 0x70129F6A, 0x0CC821CD, 0x9853AE70,
+0xC3EB24E5, 0xE4EED628, 0x9F904579, 0xFD680398, 0x2C84DF92, 0xF92DA147, 0xB2F7C7C3, 0x59052EB6,
+0x4DF89375, 0x275D0C58, 0xBE32DA96, 0x7A3C4C7F, 0xC5C2B02F, 0x651B2665, 0x36E5DC9B, 0x98B1F08B,
+0x175A5AE0, 0xBEC258CA, 0xDDF6B687, 0x49E3DBE6, 0x07C1C780, 0x63E3B861, 0x05FDAAEC, 0xFA7C38A4,
+0x5EE93618, 0xF8B78C2B, 0xBB5035B7, 0x7E297AC8, 0x6CC27636, 0x30D44C50, 0xECB1065B, 0xB00AB96E,
+0x87B3C67E, 0x0AA61403, 0xF514C18B, 0xDBF3CEEB, 0x62ACA4C1, 0x9A0D1691, 0x07E3DF50, 0xC42070E8,
+0x98F349F7, 0xC1556162, 0x6F7D7109, 0xF6C7B215, 0x73748B4E, 0xAF9F5BFF, 0xDD1B8AE6, 0xA9C710AA,
+0x5965A4DA, 0x762A0F38, 0xD42C7578, 0xBA69C66D, 0x2CCABCB7, 0x932E7065, 0xD6F3F37E, 0x729F1412,
+0xE5EAEB07, 0x1C2D7291, 0x07E5E6C9, 0xCA16EED5, 0xD488558D, 0x235C11EB, 0x579B8BCA, 0xAC352250,
+0x858BD553, 0xECCBE50A, 0x370421F0, 0xA66CD423, 0x1424CB84, 0x286FBE65, 0xDFF5A1E9, 0x71ABB615,
+0xAE331217, 0xE8E333A5, 0x99044B7D, 0x26264E30, 0x35A7FEA1, 0x3E933B79, 0x4151D8A3, 0x672D78D6,
+0xC586C999, 0xEFFEFF6F, 0xD1EC082A, 0x0EB38797, 0x85F77710, 0x5FEAE876, 0x78FBE4E2, 0x6284663A,
+0x6E54B0AF, 0x5C107AF7, 0x24005DF7, 0xA994E2EC, 0xAFDDB6FF, 0x79019A53, 0xE1B8A123, 0x997B7B95,
+0x9BFC63E3, 0xEAEEB40C, 0x14AECFE6, 0xC29A3F38, 0x21833356, 0x6B65DAAC, 0x9AEADA3F, 0x16582D82,
+0xD6E7B8EC, 0xEE67A365, 0x3F33FD50, 0xABD603DC, 0x0DA08D72, 0x69E01AFD, 0x4862B58E, 0xE1DFCA98,
+0x5FE11079, 0x40992E48, 0x0589689B, 0xE836FACC, 0x87FFD4D6, 0x9F5DF070, 0x6BC69520, 0x5CF6F087,
+0x66523DC9, 0x54D0EEA3, 0xDD820FC2, 0x663BFA8E, 0x2561E952, 0xA82EDAB8, 0x3FC1092B, 0x8591A2C1,
+0x0E9E67EF, 0x4A334D9C, 0x867BB16F, 0xB6A1713F, 0xED8D7EFE, 0xF2926C44, 0xD2E97512, 0xE8301103,
+0x3DD30957, 0xEFB71B3F, 0x4AE801D5, 0x8F75F730, 0x0C34FBC9, 0x7A60C668, 0x77908ED9, 0x963C0DE4,
+0x5279E29C, 0x6759B153, 0x747E5E7B, 0x4C510BE5, 0x32BE2132, 0x54B361E0, 0xCB4D9616, 0x3C404BA4,
+0x4BA0E910, 0x05F06AD1, 0xAE3FBC5C, 0x82CB03B4, 0xF0EC45FF, 0x9888791B, 0xDE4B9813, 0xF83B4090,
+0x3CC4BA28, 0x7CFE8854, 0x9CA7BC9D, 0x0E41843E, 0xF92535F6, 0xF19CC699, 0x0821CBF4, 0xF15F3F82,
+0xCF6CC14C, 0xF27DA57E, 0xB8DB8982, 0xFC7E263D, 0x63C36111, 0x61587ABA, 0xB87CB18D, 0x2C806A64,
+0xD8DFFF2C, 0xC8540E77, 0x1A340B85, 0xB6FBA97F, 0x77A1958D, 0x419648E8, 0x80A65729, 0xC3EC1141,
+0x3909010F, 0x84F8C534, 0x2FEDE987, 0x83851AC8, 0xAE88B841, 0xE8284692, 0x3243F04B, 0x9C845E80,
+0x4A7FC52E, 0xF6B1035A, 0x59E1C576, 0x21620CB8, 0xF047E16D, 0x079284B7, 0x00B6C955, 0xA7B19103,
+0x7B9EB069, 0x733E2443, 0x489A6EAE, 0x7BB17B2C, 0x6AB4F848, 0xEFA299A2, 0xC464BE42, 0x36F27FC5,
+0xE70CEAB2, 0x6FCB4031, 0x9C0A14C0, 0x682AA1A3, 0x36E7032C, 0x57BA22A8, 0x085288CE, 0xDE62ADD4,
+0xC0138A07, 0x4A5576F5, 0xC0F33DE3, 0x919ECA7A, 0x14FFDE87, 0x362897AF, 0xD542F683, 0x86FBC0FC,
+0x8CD6DD3E, 0x25832EDF, 0xC2C9EE74, 0xB244A89B, 0xFEAF2F44, 0x1D631217, 0x80BA2267, 0x097D3F4D,
+0x406264AC, 0x0571B5FF, 0x55658770, 0xE12F6AA3, 0x666D9831, 0x37E17306, 0x88D926AB, 0xBB0CC6D9,
+0xA857A201, 0xB24E5A82, 0xF259D2AE, 0xD09D0FAE, 0x87363A50, 0x583F1CC9, 0x653F73F3, 0x0D04970B,
+0x64D1F222, 0xEF7E0E0B, 0x7F5D49DB, 0xAC4549D9, 0x707D1FCF, 0x3A151C06, 0xFE5DEC4A, 0xE3D6CCBA,
+0x0AA3DA9B, 0x4665CBC5, 0xDF7BCD0F, 0x63DD0FF5, 0xC9C2A642, 0xB40B516D, 0xE259A165, 0xE2E454E1,
+0x0A384EDD, 0x1287018F, 0x2A7A8DFD, 0xF854FCF1, 0x79CAA64E, 0x351AC522, 0xEE65C527, 0x7F160E51,
+0xF465AF5C, 0xE671974B, 0xAF75CA8D, 0x47A5EC29, 0x5F93C8AD, 0x6420D4E9, 0xA5CA4610, 0x265F0BF4,
+0x6622036C, 0xB542C8CB, 0xDFD1FA4F, 0x5869BE19, 0x14605EAE, 0xA438FEA7, 0x9523F5FA, 0xE18FCF2B,
+0x5F11F7B1, 0x7A790EBA, 0xDBDD0005, 0x024E0D8B, 0xC387778B, 0x3C0F1274, 0xA722512C, 0xEAB3C2F3,
+0x11B55F3A, 0x9C2DBBD6, 0xA76C80DC, 0xD63A5DD2, 0x320F7AF2, 0xA707544C, 0x889A3C58, 0x50CCA3B0,
+0xD54FE248, 0x22EF12A3, 0xF618F564, 0x1D9266C8, 0x4E08FB46, 0x6D1D41EB, 0x5CFF2094, 0x116ECB97,
+0x46FD4058, 0x38FBE5CC, 0xE008E8EF, 0x578FAF14, 0x3BEED1D9, 0x8C89B4CE, 0xFC0C33D7, 0x0913ECF8,
+0x498D47D1, 0x5644A9B3, 0x6EA66735, 0xA0F3BA09, 0x948B258F, 0xFA8DE3BE, 0x2FB03145, 0x8D0B61B3,
+0x42D6F53D, 0x031FD745, 0xFF86C938, 0xA32BB471, 0x50208969, 0x9F6909C9, 0x680C6D55, 0x13054044,
+0xDFDEBEF7, 0x35600E83, 0xAFB26C47, 0xCAA86F9F, 0x5B5B65A7, 0x599DA0C3, 0x789EC931, 0x0163D6D4,
+0xF7BBA271, 0x5A755052, 0xFA27CE77, 0xD66ED111, 0x7A5BD527, 0x1B26B948, 0xAA11725B, 0x4A6AC4AD,
+0xDD8EA8DF, 0xF0C618D3, 0xF97999E5, 0x00C42C38, 0x8465BE06, 0x7B6912C9, 0x4AF1F070, 0x4F93EEB0,
+0x19A400FC, 0x0F8A6744, 0x7FD642F2, 0x3AE8F32F, 0x84501DDA, 0xB39068C6, 0x2A5BE1A6, 0x08E231F0,
+0xD52F4D13, 0x89326BE0, 0x3981DD90, 0xA986F547, 0xADF1B2E8, 0x6337CFB6, 0x595FCBC0, 0x2D774749,
+0x1D6C5FF1, 0xF403CE90, 0x16792051, 0xCE248A7D, 0x43E76774, 0xA85ED14A, 0xCFBDEB69, 0xDF559AF6,
+0xC3BF33D1, 0xF03BB486, 0x107D04B0, 0x9B9E9432, 0xE4873EC4, 0xFD7C2E89, 0xFA69FD26, 0xD04F8825,
+0xB9C4FF1F, 0x30F0826C, 0x825A8A34, 0x5EBB4ADC, 0xA71C9FF5, 0xE90ECF8A, 0xFEF3270F, 0x25612AB6,
+0xF8560C1F, 0x625A9ECE, 0x12B9B123, 0xA281D55C, 0x276F3B4A, 0x6CDE95D8, 0x7EE9F866, 0xDC769A4F,
+0xC590E1F4, 0xEA845796, 0x013AFD9E, 0x6F8E1A4D, 0xBEDF18E1, 0x2CC567BD, 0x56CBAE9D, 0xF81716E8,
+0x88834AAE, 0x1C67A0AE, 0xDDB4EB33, 0xF0F874E6, 0x4DE9C550, 0xCEAC73AD, 0x5C800FD8, 0x6A31B61A,
+0xA8B3A501, 0x73639607, 0xC95BAE
+
+basegraph=
+1
+
+z_c=
+320
+
+n_cb=
+21120
+
+q_m=
+4
+
+n_filler=
+688
+
+e =
+21592
+
+rv_index =
+0
+
+code_block_mode =
+1
+
+op_flags =
+RTE_BBDEV_LDPC_RATE_MATCH, RTE_BBDEV_LDPC_CRC_24B_ATTACH
+
+expected_status =
+OK
diff --git a/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_enc_v7813.data b/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_enc_v7813.data
new file mode 100644
index 000000000..6e1acf5a4
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_enc_v7813.data
@@ -0,0 +1,43 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2017 Intel Corporation
+
+# Origin : FEC5g_DL_1/7813
+
+op_type =
+RTE_BBDEV_OP_LDPC_ENC
+
+input0 =
+0x8C4DEB9F, 0x52
+
+output0 =
+0x1A6D0FA6, 0x7017
+
+basegraph=
+2
+
+z_c=
+7
+
+n_cb=
+350
+
+q_m=
+2
+
+n_filler=
+30
+
+e =
+44
+
+rv_index =
+0
+
+code_block_mode =
+1
+
+op_flags =
+RTE_BBDEV_LDPC_RATE_MATCH
+
+expected_status =
+OK
diff --git a/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_enc_v8568.data b/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_enc_v8568.data
new file mode 100644
index 000000000..e9bacd1b8
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_enc_v8568.data
@@ -0,0 +1,70 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2019 Intel Corporation
+
+# Origin : FEC5g_DL_1/8568
+
+op_type =
+RTE_BBDEV_OP_LDPC_ENC
+
+input0 =
+0xB6D49CE2, 0x3E96B93F, 0xF02009F6, 0x2DF3D30D, 0x3B06C160, 0x646C69CC, 0x54439F0F, 0xCE0D12C3,
+0x66E8BFD5, 0xA9D22B0C, 0xA9E7343B, 0x2B6EEF01, 0x6B6966C0, 0xB98FE144, 0xC3BF7BAD, 0x1B40DF1C,
+0x973B12DC, 0x46E25E90, 0xB324ACCA, 0x5F0ED2B9, 0xBB4F
+
+output0 =
+0x8F1A7C00, 0x836CF0E5, 0x717CE52D, 0xEE86FB44, 0x21621E25, 0x58425AB5, 0xECA0F645, 0xAE9E63E6,
+0x287D84BC, 0x9F19A401, 0xD68C4CA3, 0x354ACA5A, 0xD68D7FF8, 0xFAA84645, 0xCF0DBC28, 0x693C50F0,
+0x9A3CD23C, 0x57E97520, 0x929BAF90, 0x8E2BA7D8, 0x5EF0FB8A, 0xFFE7B153, 0x9E164074, 0x4D06F0A2,
+0x6BC68E5B, 0xB8274587, 0x69641DFC, 0xF5DC89A0, 0x4F8E741C, 0x1CB682DA, 0xEF36E914, 0x8BDEBA30,
+0x4B6777E2, 0xEFBFD14C, 0x85F0DF67, 0x55DBD201, 0xCF29A01A, 0x862BD273, 0x1F43CFAF, 0x5CB128E9,
+0x9C322654, 0xF8E4E47A, 0x0FCD1806, 0x0C7B6BC7, 0xF7B9748A, 0x6DE5D592, 0x0D119373, 0x5F7DC28C,
+0x68F26F39, 0xAA47E18A, 0x479CDAAF, 0xE19DCBB3, 0xA72B475D, 0x2E781ED4, 0x4CBB910A, 0x5E5A5A1D,
+0x2F668621, 0x86BD9FE1, 0xF1DC12E5, 0xB652E2C1, 0x2E0AC199, 0x059E43C4, 0x14F9B51E, 0x7DA378C5,
+0x214E4D5F, 0x72ECE751, 0xF997A106, 0x3F362F62, 0x045DCA85, 0xAD27A58E, 0xB73B4390, 0xEB76C5D2,
+0x58CE8B78, 0x73A1D1EA, 0x9705C8E4, 0x224703E8, 0xA0DE7885, 0x9CDBBEE0, 0xBAAFAE85, 0x1B5CFB8A,
+0xF66B5209, 0x979335BB, 0x2AA6C7E2, 0x7E3958E7, 0xD39F8BC0, 0xD73BEA43, 0x24C74D3E, 0x9372C2D7,
+0x49804670, 0xB3A983FC, 0xFA6DB662, 0x4E657550, 0xDDF757C2, 0xA7265DE7, 0x51BFA1A6, 0x63E1325D,
+0x1FDBE953, 0x17348EDB, 0x6B6DC5C0, 0xE335772B, 0x32612617, 0xC13B63EB, 0x8C40891A, 0xF3566154,
+0xF5345933, 0xAD9AB800, 0x4CF92B41, 0xF3B32673, 0x80577879, 0x19F8BB0E, 0xAD677483, 0x21B2EDC7,
+0x3F96C8E2, 0x7B9211B7, 0x11909101, 0x6A9D9BF5, 0xC4A0E407, 0x5B013820, 0xD2102C31, 0xDC6F548A,
+0xA4F6B72A, 0x79F19991, 0x6A21BE3C, 0x2E5CF7A5, 0xDCBB384B, 0xB05B5649, 0x1D61CCF1, 0x9DC122F3,
+0x00CA6A82, 0xB7CECDF0, 0x605252A3, 0x0500B498, 0x61AA1618, 0x669788EF, 0xF0DB599F, 0x3ED04C4A,
+0x17387F1E, 0xBDAC7B52, 0xEE7D1E0D, 0x58AF212C, 0x0CB064F8, 0x646239DB, 0x88CF9549, 0xD3C7C652,
+0xB82109DB, 0x22225244, 0x305F8384, 0x9B4166D5, 0x704FA445, 0x956A0CA5, 0x89963D07, 0x5EF61FAB,
+0xF71EAD06, 0xA47FB814, 0x86581A5C, 0xB81B9445, 0x4ECD608E, 0xE369E9A3, 0xFEB80EE5, 0x1399AB02,
+0x30A74BEA, 0xCF08B948, 0xB0857028, 0xC81F8CD8, 0x64E13623, 0xAFF927F5, 0x592D7629, 0x7295DE02,
+0xE98E2F04, 0x7407C828, 0x85EE9A47, 0xF9B6F671, 0x77F40DF0, 0x81CE7DA1, 0xB8732D5F, 0xC7AC742E,
+0xF8623836, 0xE68F4E66, 0x18F29BB9, 0xF57E3350, 0x0E14399C, 0x114ACFA1, 0xFECFBDAA, 0xB0894694,
+0xC8DF6D23, 0x7C71FB18, 0x91F00CF2, 0x6A45BC52, 0xFE99962D, 0x41FEBA3D, 0x5C1BB499, 0x51E50591,
+0x04D9CDDE, 0x503FBB80, 0x2788B4EE, 0x82A545D8, 0x5F6DD45D, 0x7AE48BE2, 0x4C653419, 0x3C32D58C,
+0x48788C71, 0x97A054A3, 0x7FC443B4, 0x805DFF9E, 0xA607D2C6, 0x02DA82C2, 0x884664C5
+
+basegraph=
+2
+
+z_c=
+72
+
+n_cb=
+3600
+
+q_m=
+2
+
+n_filler=
+64
+
+e =
+6624
+
+rv_index =
+0
+
+code_block_mode =
+1
+
+op_flags =
+RTE_BBDEV_LDPC_RATE_MATCH
+
+expected_status =
+OK
diff --git a/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_enc_v9503.data b/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_enc_v9503.data
new file mode 100644
index 000000000..7fc8c9543
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_vectors/ldpc_enc_v9503.data
@@ -0,0 +1,197 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2019 Intel Corporation
+
+# Origin : FEC5g_DL_1/9503
+
+op_type =
+RTE_BBDEV_OP_LDPC_ENC
+
+input0 =
+0x88CCED56, 0x1C072C76, 0xD4D23B69, 0x78C979BF, 0x60764BE3, 0x4470E86B, 0x20A46F84, 0xA0211B5C, 0xE1952001, 0xB77912DE, 0x52E8BA16,
+0xE5BE8445, 0x95093ACF, 0xA8BE03D2, 0x49DBB5AB, 0xC3946403, 0x4DD44236, 0xC2833E65, 0x7288C53B, 0xD64FB75E, 0x7438C1EC, 0x71070BEC,
+0xA40F8094, 0xABF43E46, 0x564487F5, 0x8435AC89, 0x2D98A4C3, 0x07CD13F4, 0xB44CEEA6, 0x2E00DD83, 0x12EF45EB, 0x01A047B8, 0xBC563FD5,
+0xCA5C1136, 0x7AB9F2C8, 0xD62C59A9, 0x913DF674, 0xC900322A, 0xCF54042E, 0x6CAADB1E, 0x8077B98C, 0xBCB51468, 0x58339E5E, 0x1D176854,
+0xF9E2D74A, 0x2994B28A, 0xD0E46263, 0xCD8A0FDB, 0x0119B915, 0x1E5433C9, 0xEA298A7D, 0x9EB4FC8D, 0xEF93B537, 0x6D441397, 0x6A4C8DB3,
+0xB8E4AFE9, 0x1520BC1C, 0x8669961B, 0x5D484802, 0xC2793340, 0xB5FE7945, 0x43AC7CE2, 0xB74B70C1, 0xFCF56F87, 0x3E146A49, 0x0391D092,
+0x672D2427, 0xDC91BB53, 0xEB24AC1F, 0xCE0D8E63, 0xF12F7ED8, 0xB3192024, 0x0697AE9C, 0x3415F178, 0xD8410FFC, 0xE34734DE, 0x6C6E6BF1,
+0xDCD211C3, 0xBF6B0B87, 0xA1624F47, 0x3524BC4D, 0x4B4A1891, 0x8691223C, 0x12EB2DA4, 0x0B51F616, 0x31276F0E, 0x86CB4D17, 0x15CA0F9B,
+0xEB989F98, 0x1141D335, 0x442C699F, 0x82E9758B, 0x267E6D4D, 0x71BAC54A, 0x2FBCBD52, 0xA0966795, 0xEB08B437, 0x1A9899A0, 0x26484B82,
+0x3AEE43A8, 0xC409BE45, 0xCF8C6EC9, 0x098DE63F, 0xC3BEA60B, 0xCB7A5B6A, 0xCBF2A44B, 0x31E9FA4C, 0x34FD7E88, 0xA3C5AF89, 0xF13C8E2B,
+0xC01C79FA, 0x622B9FD8, 0x692D4C4F, 0x712BC24C, 0x16FBD6C3, 0x7B1BBC38, 0x63F1E328, 0x6F4B
+
+output0 =
+0x6ED462FE, 0x29726470, 0xE49C87C1, 0x6594725E, 0x64C81AE1, 0xA30C91C2, 0x5B4261AB, 0x7A44E3A4,
+ 0xACBD3DC8, 0x319AF530, 0xF3B21EC1, 0xAC180011, 0x26319FF9, 0x5946FBFD, 0x6F31959A, 0x571501D9,
+ 0xFB1F62B7, 0xF19F6C36, 0x43436C4A, 0x8CA5F436, 0x18AF91B4, 0xD86ED79F, 0x8732D29C, 0x6CE3B559,
+ 0x2DEA712F, 0x52C2E21A, 0x5C4E884C, 0xD2F50500, 0x2140E848, 0xABE47066, 0x8AE3FC46, 0xF0298999,
+ 0x829FE184, 0x51D53B6B, 0x7546D03C, 0xF1CB22DA, 0xB9D6F966, 0x85660A1F, 0xC1296566, 0xB2122E16,
+ 0x2AA38C25, 0xD7AF18FC, 0x489BDDC5, 0x93183097, 0x4C694A3C, 0x40B325F8, 0xEE05DAB2, 0xA6E0C990,
+ 0x839A7753, 0x0251D207, 0x5E1EC6B5, 0xED523076, 0xD985E23A, 0x8CA88259, 0xB0EFF6D4, 0xA9D7749B,
+ 0x32CA6F0E, 0xAAA84E97, 0x0F137B83, 0xE73C3175, 0xA3940FDA, 0xD878B121, 0xFFC8D2EC, 0x95CB65AC,
+ 0xB1CBE446, 0x73520449, 0x7D929F16, 0x69D1873C, 0x85640C01, 0xF2228024, 0x0A5E0461, 0x58B0933A,
+ 0xD37E2375, 0x36CEECEF, 0xE57A48F8, 0x4A35B5C9, 0x016A16A0, 0x6F9BCF30, 0xEB7C3BD0, 0xB1AF27FE,
+ 0x9C389360, 0xA91F2142, 0x51E618D3, 0x5F045697, 0x654C6A49, 0x2E38E30C, 0x9E8F1E63, 0xF1B25686,
+ 0xA0CDFB02, 0xDAEC605D, 0xED910B79, 0xA8E1A341, 0xAD6BD0A3, 0x03BABB0D, 0x4059355C, 0x5ECB8646,
+ 0xFDD9E0C6, 0x69106FD2, 0x47BF857E, 0x740F6313, 0xAB15E1FF, 0x94B21225, 0x600FEDF3, 0x1EF83A71,
+ 0xCE6956EE, 0xE538FC7D, 0x47520BE0, 0xA1A20CF2, 0xCB452B91, 0xEACB9E3C, 0xBA242A34, 0x13C81868,
+ 0xA58AB271, 0x724B350D, 0x95131286, 0xCF74DD61, 0x1D0CF41B, 0x38D046D2, 0xB709708D, 0x4D479AA8,
+ 0x3CBF6817, 0xDF115777, 0xBE69B850, 0x071A2B4C, 0xF3246B56, 0x2881CBA0, 0xAE158E87, 0x36538CB0,
+ 0xEF879197, 0xDBA9C1C7, 0x4EF7235A, 0x56120670, 0xC22DBEC7, 0x7071A05C, 0x376ADBD4, 0x5DD586FC,
+ 0xA638A621, 0x6D49A92A, 0x66F0C925, 0x023FC9DE, 0xF7CA1D36, 0xAF19A18B, 0x2A787792, 0x518938D7,
+ 0x25DE7B4A, 0xDEBD9010, 0x9683558D, 0x9C5694C7, 0x8B2558D0, 0x790CD121, 0x0A35C0D8, 0xCD4FBCED,
+ 0xB89F3275, 0x64A49655, 0xED7992A1, 0xAFB0A4D0, 0x29A9EB1B, 0x9244B2C0, 0x2CD88F45, 0x4AA1E98E,
+ 0x8E32CC3C, 0x8BE5DC7B, 0x759C8B24, 0x8AA119BE, 0x9CFEA065, 0x071F86FD, 0xB83F8181, 0x604FF2FB,
+ 0xAACDC394, 0x0BCC72F5, 0xE9C0CB19, 0x56EAE15F, 0xD33B8DEF, 0x01A1B007, 0xBED7C1A3, 0x18788E49,
+ 0xB565EA30, 0xC269F619, 0x1CF1B024, 0x067E9F59, 0x78E61AB4, 0x3D46CFBB, 0xE58E910B, 0x8E7ACF53,
+ 0x1EB9C15D, 0x4E3C43BF, 0xEF3D8F20, 0x5CC0A030, 0xE10AE4E7, 0xABE24941, 0x9A0C4046, 0x24E090CF,
+ 0x3248C414, 0xAF76560F, 0xCD1B106C, 0x70438AD4, 0x3463D8B0, 0xD85860FE, 0xFCDF0D57, 0xA2DBC09E,
+ 0x44C728C1, 0xD8FEE73E, 0xB1E6B4A5, 0xD0CC95CD, 0xCCEF186F, 0x70AC5D98, 0x57D21267, 0x8543F446,
+ 0x15C8EAA9, 0x0DD357D4, 0x4CE9C090, 0x4E91FADF, 0xE0658E27, 0xFF7AA5D6, 0x176ED723, 0x70D009CB,
+ 0x416ADBAA, 0x1C45865D, 0x105F3A0E, 0x14730450, 0xD0FA1AC9, 0xB76F268C, 0x7B075289, 0xA9455796,
+ 0x65E02F3E, 0xB74521F2, 0xF6CAA6C7, 0x94ABFDAD, 0x1E6D1087, 0xC25A9257, 0x87FAF9A4, 0x5184A0FA,
+ 0x240023D7, 0x7AE0ED45, 0x06E0A838, 0xBB018F31, 0x0FA836D5, 0x09CF6AEC, 0x9BC4F2B2, 0xAE92D5BA,
+ 0xE724036E, 0xE5606DDE, 0x631448F9, 0xFD59B782, 0xF17052E4, 0x66EA4C50, 0xF72C1768, 0x5C24ECEC,
+ 0x6B01B118, 0x89F8A3AB, 0x465FF462, 0xC3896A00, 0xFEC06004, 0xE2DFC70C, 0x3ACF338F, 0x1552E9D0,
+ 0x9F699B77, 0x60AC6D29, 0xBF47FD38, 0x826B0CA8, 0x0515A7AC, 0x1380A222, 0x7D054EA0, 0x3D1BCEC0,
+ 0x21AB6CF3, 0xA889E915, 0xF09D9756, 0x08BA519A, 0xCFFB6BD3, 0x7D5EF4F9, 0x34A0E942, 0x8569A327,
+ 0xFDDC5269, 0x60D8D543, 0x88B34B88, 0x50DEAA10, 0xD0563E1F, 0x80CD122B, 0xDC11607F, 0xCD9D7E05,
+ 0xC0F3510E, 0x414A7545, 0xB8211557, 0x103E6F53, 0x08A47672, 0x04D9C391, 0x3281F25C, 0x7526AAD2,
+ 0x3C89B43B, 0xBA767E59, 0xA2788EAC, 0x5EF9DF3D, 0x8F72BBE6, 0xC4B52A2B, 0xE81A80E9, 0xCD6B24D5,
+ 0x4F934751, 0xA3FCC2B5, 0x1C4FB12A, 0x7C363E45, 0x237CB63A, 0x1F26D6FD, 0xAAF3FE61, 0x48D3B3A8,
+ 0xA2A77A81, 0xADCF4AB4, 0xDF94F9B4, 0x465EA838, 0xCE4BA15C, 0x75826F5A, 0xD537E32C, 0x85F8FECD,
+ 0xD07CAB1C, 0x34F91310, 0xC40B36CA, 0xCCE0297E, 0xFB276610, 0x67DF82EC, 0x8BB58FAA, 0xCEA3BDC2,
+ 0x02B21D68, 0xCC1F8A6C, 0xF902AF4E, 0x271828EA, 0x9028298A, 0xB5BF0156, 0x5A3B3188, 0x6CCB6806,
+ 0xE2F3A4A2, 0x3B776BB9, 0x66D01790, 0x133F2414, 0x1445FE7D, 0x5CC79E5B, 0xB95FD30F, 0x50971FC5,
+ 0x8D6AFECA, 0x3FB2427C, 0xC1A980EC, 0x54C9F2AF, 0x0F509DF3, 0x1B950AA4, 0x1E5B1596, 0x93E974B9,
+ 0x71D51A0F, 0xC973F4DD, 0x79BF62A6, 0xC72F58F9, 0xCAD478D6, 0x0F7C36C7, 0x05D08481, 0x43958D67,
+ 0x93F11E1A, 0xDCDDCE62, 0xB457AC62, 0xD4A98268, 0xA793471A, 0x7AB637E0, 0x1B9BA86C, 0x456B5EF7,
+ 0xD2E75711, 0xF95E6BCD, 0xD3043467, 0x056F1621, 0x21D58D4E, 0x0C9EF57E, 0x96B645B1, 0xF5A80340,
+ 0xBD9A4C7A, 0x4D94A305, 0x59D0F9B4, 0x113F56F9, 0xE0A948B5, 0xBF982299, 0xA05D1EA1, 0xE9C50F8A,
+ 0xAF6B8F04, 0x6B05485E, 0x17DD458A, 0xFB819464, 0x5CE2F61F, 0xECF95F48, 0xA26CFBA2, 0x6A0FD00F,
+ 0xA7A2CB0F, 0xFE10768D, 0x4A258743, 0xBBF2C41A, 0xF519DBEE, 0x9DA676B6, 0xE89449C9, 0x3E13EBE5,
+ 0x4A4A42A5, 0x42663182, 0xDAAF85AB, 0xCC671BCB, 0x217491EE, 0xDCC9B6F2, 0xE1A3A7EA, 0x7B13F2F9,
+ 0xCFFCBC9F, 0x3D8FF387, 0x71ABA888, 0x2D3FE4C1, 0x081AB3DC, 0xBF21BA4B, 0x4ACE0F00, 0x6F5AB592,
+ 0xD328F08C, 0x542388E9, 0xE7A4157A, 0xE8532856, 0xE8DC528E, 0x3F2356AE, 0x76867882, 0xEC11E6D0,
+ 0x0C2DD257, 0x40A7C558, 0x354F885C, 0x2A2E0757, 0x6C0A6D95, 0xE0C23A09, 0xD1F32FF7, 0x7E27842E,
+ 0x3CDFD97E, 0x2F6807FB, 0xDBED07BD, 0xA039645B, 0x324B0955, 0x73620D27, 0x0C47D75F, 0x511BD37A,
+ 0xE80C4C44, 0xA3D77AFE, 0x058B503D, 0x391AC187, 0xD7425F0B, 0x93876765, 0x10CADF4C, 0xC4F3539A,
+ 0xF17B776C, 0x017BDEFA, 0x74F4651F, 0x65FBC1E5, 0xF55CC6B6, 0x1752401A, 0x85FB6434, 0xB8FD0F06,
+ 0x4D0D80FF, 0x0DD8438D, 0x1C5844B7, 0x31ECF66B, 0xF8A8B528, 0xA9BE0373, 0xC401C7FC, 0x3BA1FFF4,
+ 0x63946BBD, 0x82514893, 0x9CE303D6, 0x51EA2484, 0x054CACA2, 0x3F812B32, 0x0F3C603F, 0x4B3D86B6,
+ 0xD33F5950, 0x3340BFC0, 0x47CEB79D, 0x1CAB5D3C, 0x74897EB5, 0x1C320D6D, 0x8F0480D2, 0x1384331B,
+ 0x8363A7B3, 0xA5439504, 0x0E06AA80, 0x4BBFF55C, 0x470094F3, 0x8DE8E9AA, 0xABA72796, 0x4333B263,
+ 0x6FEF04EB, 0xF921C722, 0x9599B4C8, 0xBFEFF55A, 0xF89AA502, 0xDFE85218, 0x0EE15930, 0x8B2AA7F8,
+ 0xDDB03823, 0x7427A3C2, 0x8E4AF556, 0x66A9640E, 0x2EA271AE, 0xFC5BB50C, 0xDC50B432, 0xF78BB3D6,
+ 0xA06156DE, 0x5A7D7A40, 0x40BD74BF, 0x882CC19B, 0xDB2B6143, 0x5532686C, 0xA6D65320, 0x6AB5B32A,
+ 0x34129535, 0x9E41D92F, 0x3D86A085, 0xA27DE0C1, 0x6FFBEC11, 0x77A4BE81, 0xCE1DF886, 0x318E96BA,
+ 0x82C84B84, 0x40B9874F, 0x39F9F9A9, 0x21E0AACB, 0x237FC858, 0xFF700E2D, 0xA840518D, 0x5E5ED583,
+ 0x7B11CB4E, 0x99733B7F, 0xFFAAF7A9, 0xB8CB13B7, 0xE67AE45C, 0xFFDA2FC2, 0x47D08BD7, 0xD68BACF6,
+ 0xDAAE30ED, 0x95735CAF, 0xF896B165, 0x395BC94E, 0xADF803B0, 0x76B82F4D, 0xF312DD33, 0x0DD0A49D,
+ 0x0852B35E, 0x4DF14366, 0xBA01C779, 0x1415A8FA, 0xDC10F525, 0x1CE06D80, 0x953089E6, 0x933C3EE5,
+ 0xC18B1022, 0xFAD11D71, 0xA1EA92BF, 0x2AE61798, 0x63D0C0CF, 0x1CF8CA34, 0xDF748AFB, 0xF0FDE897,
+ 0x26FC4399, 0xE563FFC5, 0xE6AFE218, 0x5EE3254B, 0x76565E08, 0x70F5EFBE, 0xBD66AC9A, 0x90853CB1,
+ 0xA002CE55, 0xAFE263F4, 0x804DA5A5, 0xBB971F95, 0x775BDE46, 0xEDA15B5F, 0x3D5A2CFE, 0x6D9FE953,
+ 0xE84541F5, 0x6574FB29, 0xFD3ADC69, 0x1BAEDDED, 0xE3F810C2, 0x87CC8D7C, 0xDC23F894, 0x7635A6DC,
+ 0x294E131B, 0x62FA4471, 0x83D3870E, 0xF82B9324, 0x8A493E04, 0xA8FCDF75, 0x20583A80, 0x5A94424E,
+ 0x18CED906, 0xB417F24A, 0x47089341, 0x62A432C0, 0xFDC17DFD, 0x5B89C6D2, 0xC8C8ED37, 0xD44D38B1,
+ 0x9A6DFF2C, 0x7C5ECB65, 0x76814C50, 0xB3D56A33, 0x5DF124F8, 0xDB92A5D9, 0x210F2E0D, 0x50FFFF1B,
+ 0x1B7ECD90, 0x481ED2FE, 0x094DA8E8, 0xF111F8FA, 0xAC7872DF, 0x4B8FE240, 0xA7CF01FD, 0x72AFAF1B,
+ 0x27BE7F7E, 0xE5F42B34, 0x02807296, 0x325F9CF6, 0x97EE1C92, 0xD5E6F65C, 0x7EA2490F, 0x666E3451,
+ 0xB17E6A43, 0x1AFBE46E, 0x8D2B871B, 0xD52A1A9E, 0x41EBA711, 0x9D4B906B, 0xAEB5A2F6, 0x7EC530E7,
+ 0x063FC87E, 0x48830732, 0xE5EC2B25, 0xA17B0F26, 0x2C63A878, 0x7A1362A1, 0x68B4DE31, 0x6EC14B7E,
+ 0xE65C3B05, 0x8EB452EC, 0xB6DD94CA, 0x8DC592C5, 0x402EA8BE, 0x689F131B, 0xDA3A54D1, 0x41D264AC,
+ 0xAD150ECF, 0xD7750790, 0xBD46E2A0, 0x2DC97F87, 0x2476F6AE, 0x28F4778E, 0xB4B9E75A, 0xE5532AD6,
+ 0xE58A7485, 0xDFDD2553, 0x779D3F91, 0xD89F3033, 0x42BB4152, 0x2F6EFB01, 0xF72C43BB, 0xF1DB8663,
+ 0x5BA625E2, 0x17180017, 0x151F03B3, 0x7FDA9772, 0x1DEB2F8D, 0x178DE5EE, 0xDFF10ACA, 0x2DC29F2A,
+ 0xF2797346, 0xC298535D, 0xB56C1D35, 0x6389138B, 0x54B732AE, 0x3FAF9958, 0x3BFE3E52, 0xA311D83E,
+ 0x50E7B0BD, 0xC28F97B4, 0x8C1FAAB7, 0xD22BD453, 0x4E6A4D65, 0x626B6251, 0x1F547F6C, 0xEF8105A0,
+ 0xB7A062B6, 0xE1325CC7, 0x8207E7A2, 0xB0A9E0D6, 0x097B78C1, 0xC41D4176, 0x13DB573C, 0x5291E598,
+ 0xF4D1AFB4, 0xA93FE970, 0x673042D8, 0xCC98A35A, 0xCEBD4AE5, 0x47B8BB39, 0x5F8A294E, 0x37FDA881,
+ 0x9E81D5BD, 0x47691BD1, 0xFB92FBF8, 0x24AA898D, 0x0D0B5B29, 0xE5E11928, 0x7D356637, 0xC4525D0E,
+ 0x72AFE781, 0xEBE53FCD, 0xBCBB299C, 0xC40B26D3, 0x1C049A63, 0x4621C7F8, 0xD3337531, 0xF5CCAE80,
+ 0x5D3D0BB7, 0x2246BD17, 0xF158D4F9, 0xE5CB58A2, 0x07F5F1E1, 0x9D420346, 0x952C186B, 0x9DBB2227,
+ 0x203D1639, 0xC022D8AD, 0x7A91F3DD, 0x9326CB7B, 0x2971F3FA, 0x7EF8C14B, 0xB7B468DA, 0x840A9104,
+ 0x6F811C48, 0xC0DAC40B, 0x68D75281, 0xB7DCB2D8, 0x9A216C54, 0xEE710DB9, 0x54ADDAC6, 0xF6F71ECF,
+ 0x6F1E0D83, 0xDE5ECA0D, 0xEA40DE93, 0x962D60E7, 0x6B575E29, 0xFFCC6677, 0x0D879692, 0x728CBE24,
+ 0x9011B3F8, 0xAB260F9E, 0x5D71E2CA, 0x501F6613, 0x5F16EE75, 0x0D33E974, 0x8865BBE8, 0x10495EA6,
+ 0x393032AB, 0x6C7F4A61, 0xB685D152, 0x29D429A4, 0x24CA7E33, 0xCD26F3F2, 0x78D85078, 0x0BA90BA3,
+ 0x360CB744, 0xDF999168, 0xB60B3644, 0x39EED49A, 0x4A794E4A, 0x3B6715BF, 0x92D35DC9, 0xF640ADB6,
+ 0xFA96EF3D, 0x0DC22AD1, 0x48262E68, 0x6F620F37, 0x6B29E242, 0xC6FBEEB6, 0x3034A0D9, 0x122EF44F,
+ 0x7EEF61DF, 0xF3854D20, 0x0F84C1DB, 0x0DE504BF, 0x8AE763ED, 0x369AD35F, 0x8BA7B643, 0x44933BB5,
+ 0x49E96357, 0x4C7F9884, 0x2A5BF491, 0xBB8DCDC2, 0x3873C5F5, 0x0DB1AB26, 0x09FF188A, 0x93DE180D,
+ 0xBA757CAC, 0x06AFFBE6, 0x12B37F82, 0x150D3234, 0xC2C0AB1E, 0xC8B4D8F3, 0x65B7BB96, 0xBBF951B8,
+ 0xC4A03C44, 0x7E2FF9B6, 0x86592827, 0xECE0BE1B, 0x0DB32865, 0x5FC2CD73, 0x34AD2D16, 0x3B2057A7,
+ 0xC32C663F, 0xA85CD1EB, 0xEBD5BCF3, 0x439DC2FF, 0x93379CAE, 0x99273984, 0x3659A11F, 0xD5FF53BD,
+ 0x38704C43, 0x3D782532, 0xD7306729, 0x420E909F, 0x4840C5F3, 0xDA80DF8D, 0x53395E04, 0xEF690DCF,
+ 0xF9738931, 0xE91F7065, 0x5EB901A8, 0x176C6A2C, 0x25D062AE, 0xE4CCCB95, 0x93C87277, 0xF8FF911C,
+ 0xD7AE6706, 0xE704A40E, 0x38BCF64B, 0xDDFFF9FD, 0xD1BDE381, 0xA4313A0B, 0x48DDA520, 0xD064D1E3,
+ 0xDBFD61EC, 0x7EA87E9A, 0xF894AAFD, 0xB5565368, 0x2C34933D, 0xF0F50DE9, 0xF91EB25C, 0xE3EC3B8E,
+ 0x5E9409A7, 0xB2A9D39A, 0xB6B19F3F, 0xA6685DC9, 0xCAFC5B74, 0x4CC15F7F, 0x114E5709, 0x31B6E0EB,
+ 0x8CDAA5C4, 0xF5ABD631, 0x12A4A9C0, 0x969011BE, 0x9AB39E96, 0x0D406569, 0x8AE25103, 0x68474C26,
+ 0x9E8D006F, 0x9C8E4F0B, 0x314630FD, 0x2F30B254, 0xFE88FCF4, 0x941FBE2D, 0xC03B55A3, 0xEE474898,
+ 0xEC9B3BD2, 0xDDE00C4B, 0x7F192B54, 0xA25A0DC1, 0xDCF18F59, 0x55F674B4, 0xF6734A46, 0x92B7A7E2,
+ 0xCEDA18D8, 0x90EA738E, 0x7C98FEE8, 0xFC3DE7ED, 0x4075569F, 0x8989B676, 0x326B34DA, 0x52AC749C,
+ 0xAF71ACF8, 0xDC1F65F4, 0x408459F9, 0xD46B650F, 0xFAEDB779, 0xBC0C6EDB, 0xF68DB879, 0x40071FCD,
+ 0x2D01AC86, 0x7952D58A, 0x4F7A42BA, 0xD5C9306C, 0xFA7CC252, 0x48285F83, 0x51CD6BC3, 0x8212BC4D,
+ 0x53828B06, 0x8986B36F, 0x6E00951C, 0x6505074F, 0xAB3AF4CC, 0x12D92810, 0x44F4D0B5, 0x0D7DBCDD,
+ 0x152A5968, 0xA92C4ECA, 0x6795E17F, 0xD02C875E, 0xA4B5A04C, 0x2F0C4295, 0x72678451, 0x59B87A4C,
+ 0xB3AD2988, 0x7B717173, 0x6D0EC6EB, 0xF73B4FC7, 0x645D56E0, 0xBC73769E, 0x9A83ED5C, 0xCE5B332A,
+ 0x151A4D6C, 0xDEB26C33, 0xBA7CFEA9, 0x0FB2D875, 0xE0045E66, 0x9DB0072A, 0x5CFB3C42, 0x8C3FEFD5,
+ 0x4E7CB65C, 0x2905EC79, 0xA2F6C308, 0x296A6794, 0xB589571E, 0x4638BC8F, 0x964B8B40, 0xBE27615F,
+ 0x4E95C30C, 0x2B56A6A8, 0x4BC50BC3, 0x497BB78B, 0x8860A6CC, 0x80830DB7, 0x9D726E3A, 0xE63600FD,
+ 0x7A68F80B, 0x1C5CCCA0, 0x1784B6A4, 0xBCA7EF08, 0x425ABF74, 0x3663AD11, 0x72F2AEC0, 0xA4A940F0,
+ 0xBBC08817, 0x5C158691, 0x7C1ECC0E, 0x1818BB5B, 0x0DE17D9F, 0x350D4BB6, 0xAC21F0FB, 0xB913C7B0,
+ 0xE9DC26F6, 0x25B995C5, 0x0D2E9E6F, 0xD39C93A8, 0x1C775CED, 0xF1E69A7D, 0x0025310F, 0x782BBDF8,
+ 0xFD3E83E4, 0xB5DD602E, 0x1CD9044C, 0x2AFC3405, 0x79E32E1E, 0xB59B4A79, 0x4609271E, 0x1C5E4D7A,
+ 0xA74D0009, 0x319A07E9, 0xCAC3A6FF, 0x8B515C07, 0xE80FE11D, 0x1D59CF05, 0x38F946AE, 0x6324D94E,
+ 0x313D3FE8, 0x310AF64C, 0x3CDE2571, 0x0644DA97, 0xEADBF286, 0x7B5DACA1, 0x8D5D3A54, 0x1376A003,
+ 0x51774091, 0x562A7891, 0xC246A9FA, 0x82C1C05F, 0x0D662D24, 0xAEDDA534, 0x5A96ED06, 0x2C055326,
+ 0xB0F2F5B0, 0x21C1F0F6, 0x6C39F1DE, 0xDE48E8FE, 0xB5CD1538, 0xC4E356AC, 0x1B24FE63, 0xF36D1426,
+ 0xB8B827D2, 0x1576F620, 0x3F49589E, 0xC438975C, 0x64880EDA, 0x7C322884, 0xD3978FBD, 0x4787B61E,
+ 0x2E192772, 0x0584B589, 0x0EAAA684, 0x6D81DE51, 0x63717598, 0x08A48B4D, 0x2DF88EC5, 0xA647285C,
+ 0xFC81F7AE, 0x10E48D34, 0x963F5C91, 0x8F592492, 0xC79010B8, 0x8A6D4936, 0x4759E38B, 0xACFC5255,
+ 0x0C9D02B7, 0x1B52A34E, 0x3B0A60A1, 0x1DB4E220, 0x23DCD523, 0xEA42AD41, 0x9B3CB86B, 0x6C503824,
+ 0x41DC835D, 0x22A311A5, 0x7B7AD03E, 0x6AFA5972, 0x3E506D92, 0x04FED79C, 0xCE801EEF, 0x7BA17C52,
+ 0x3AFFBB6A, 0x96A23185, 0x74316B7B, 0x11D330F6, 0x8484E528, 0xB643261D, 0xCC076540, 0x9116E092,
+ 0x4B6D5634, 0xC9532DCB, 0x0CBBB981, 0xE8D8E41F, 0x7573408A, 0x684F202D, 0x9A92649E, 0xF2CF0C39,
+ 0xF6C540AE, 0x29368636, 0x6A5BD7FB, 0x5044B256, 0x35AEC028, 0x8C12E363, 0xE0A2FE6D, 0x9E8EB149,
+ 0x2ED1CF45, 0x54A9880B, 0x4E295354, 0x83730F2E, 0x279AD027, 0x7051921F, 0xC4E219AC, 0x8B540A9B,
+ 0x947E9DF5, 0x28B61847, 0xC4E32434, 0xF9227028, 0x3D489511, 0xD5A41195, 0xA03EE1BD, 0xD761441F,
+ 0x402F7502, 0x5AB68BEF, 0x5555B735, 0x5918623F, 0x983735E9, 0xE332F1B8, 0x48D83C28, 0x81318EE2,
+ 0xABB8AA53, 0x01F0C3CE, 0xB4291A62, 0x89344F27, 0x5FDEEA6C, 0xE6D22F86, 0x9988C7DC, 0x051A1432,
+ 0xE11867BC, 0xEFA49EEF, 0x48AADD79, 0x33633BF3, 0xA56B57B4, 0xA253AB9F, 0x7FC8340A, 0xAB73B132,
+ 0xF1DFB6CC, 0xC5F02EDA, 0x426782CD, 0xF6648D35, 0xB4AB88A0, 0x9BA7B785, 0x67C03341, 0x22612D33,
+ 0xD32ED490, 0xAAA56F6A, 0x37ECD8CD, 0x518E8140, 0x7390301C, 0xB33A9E62, 0x244220D4, 0xD88AE216,
+ 0x9752DEEA, 0xB8A22F50, 0xBFB221CB, 0xDB4D57A0, 0x02D39A0D, 0x8C311F00, 0x1192748C, 0xB9505446,
+ 0x469C1E7B, 0x3AEFF9A6, 0x7CD5ABE8, 0xD849E5F5, 0x1E2FB30A, 0x18879BD8, 0x6DDD966E, 0xC9BD4B8F,
+ 0xCEEBCCD9, 0x0D881346, 0x20
+
+basegraph=
+2
+
+z_c=
+384
+
+n_cb=
+19200
+
+q_m=
+2
+
+n_filler=
+56
+
+e =
+36936
+
+rv_index =
+0
+
+code_block_mode =
+1
+
+op_flags =
+RTE_BBDEV_LDPC_RATE_MATCH, RTE_BBDEV_LDPC_CRC_24B_ATTACH
+
+expected_status =
+OK
diff --git a/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_dec_c1_k40_r0_e17280_sbd_negllr.data b/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_dec_c1_k40_r0_e17280_sbd_negllr.data
new file mode 100644
index 000000000..d98210ff6
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_dec_c1_k40_r0_e17280_sbd_negllr.data
@@ -0,0 +1,57 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2017 Intel Corporation
+
+op_type =
+RTE_BBDEV_OP_TURBO_DEC
+
+input0 =
+0x7f007f00, 0x7f817f00, 0x767f8100, 0x817f8100, 0x81008100, 0x7f818100, 0x81817f00, 0x7f818100,
+0x86007f00, 0x7f818100, 0x887f8100, 0x81815200, 0x81008100, 0x817f7f00, 0x7f7f8100, 0x9e817f00,
+0x7f7f0000, 0xb97f0000, 0xa7810000, 0x7f7f4a7f, 0x7f810000, 0x7f7f7f7f, 0x81720000, 0x40658181,
+0x84810000, 0x817f0000, 0x81810000, 0x7f818181, 0x7f810000, 0x81815a81, 0x817f0000, 0x7a867f7b,
+0x817f0000, 0x6b7f0000, 0x7f810000, 0x81818181, 0x817f0000, 0x7f7f817f, 0x7f7f0000, 0xab7f4f7f,
+0x817f0000, 0x817f6c00, 0x81810000, 0x817f8181, 0x7f810000, 0x81816981, 0x7f7f0000, 0x007f8181
+
+hard_output0 =
+0xa7d6732e, 0x61
+
+soft_output0 =
+0x7f7f7f7f, 0x81817f7f, 0x7f817f81, 0x817f7f81, 0x81817f81, 0x81817f81, 0x8181817f, 0x7f81817f,
+0x7f81817f, 0x7f817f7f, 0x81817f7f, 0x817f8181, 0x81818181, 0x817f7f7f, 0x7f818181, 0x817f817f,
+0x81818181, 0x81817f7f, 0x7f817f81, 0x7f81817f, 0x817f7f7f, 0x817f7f7f, 0x7f81817f, 0x817f817f,
+0x81817f7f, 0x81817f7f, 0x81817f7f, 0x7f817f7f, 0x817f7f81, 0x7f7f8181, 0x81817f81, 0x817f7f7f,
+0x7f7f8181
+
+e =
+17280
+
+k =
+40
+
+rv_index =
+1
+
+iter_max =
+8
+
+iter_min =
+4
+
+expected_iter_count =
+8
+
+ext_scale =
+15
+
+num_maps =
+0
+
+code_block_mode =
+1
+
+op_flags =
+RTE_BBDEV_TURBO_SOFT_OUTPUT, RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE,
+RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN, RTE_BBDEV_TURBO_NEG_LLR_1_BIT_SOFT_OUT
+
+expected_status =
+OK
diff --git a/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e10376_crc24b_sbd_negllr_high_snr.data b/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e10376_crc24b_sbd_negllr_high_snr.data
new file mode 100644
index 000000000..3472c992f
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e10376_crc24b_sbd_negllr_high_snr.data
@@ -0,0 +1,643 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2017 Intel Corporation
+
+op_type =
+RTE_BBDEV_OP_TURBO_DEC
+
+input0 =
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0xCE000000, 0x2F00F6D9, 0xCC1AF942, 0x22F8F4E1, 0xBED8FAFF, 0x43DC19B5, 0x35E91CC0, 0x5B070D30,
+0xF9DACDFD, 0x170121DA, 0x012AEF53, 0x39E7D90E, 0xD5FBEFDD, 0xCCF0FDC8, 0xD62B0D54, 0xEAE601BE,
+0xE5001328, 0x0CF00DC7, 0x3EE0E4B8, 0xC2D8EB00, 0xBE1EEBF7, 0xCDF5E7E4, 0x4FDFF4FA, 0xF402DA2A,
+0xFEFEE32B, 0xD62CDA55, 0x17DE0106, 0xF92411B5, 0x301B2142, 0xE50C09E3, 0x51030EDB, 0x48DB2A4C,
+0x03E420BC, 0x1AE1DCF8, 0xB6EE0D3A, 0xC2FADF22, 0xBF211508, 0x3228E8AF, 0xE0170BEE, 0x26F8091F,
+0xDBFA02D2, 0xC810FE19, 0xE4DE1005, 0x18FF0D29, 0xE723F04B, 0xFDF2F1E7, 0xCF05DBD3, 0x0412F616,
+0x00DC234C, 0x1501EDD7, 0xD9EB4FED, 0x1C03BC2B, 0xE2FDF6D4, 0xE9EC10C4, 0x2426034D, 0xEDE33B45,
+0x05DC2304, 0xEDE81411, 0x11E416BD, 0x03D1DAA8, 0x04F72431, 0x30F15718, 0xF3F33534, 0xED043AD3,
+0x1CE8BC11, 0xEDE1EBF7, 0x242C0454, 0x0118D740, 0x07F3D01B, 0x0205D623, 0x15233E05, 0xF2EBE5ED,
+0xED2D3BAC, 0xEBF83CD1, 0xFCF9D421, 0x0B0934E0, 0x0A09E1E0, 0x1AEB0EC4, 0xF8FEDF26, 0xFCE8D53F,
+0x20E10846, 0xE327F5B1, 0x18E340F5, 0xF71ED0BB, 0x0EF5CBE3, 0xF4F11C36, 0x141BC343, 0xF4E7E5F1,
+0x30205809, 0x10EAC713, 0x22DBB603, 0x250AFC1E, 0xE4F3BB1A, 0x2316FA12, 0xDEE105F7, 0x12FDC7D4,
+0xFC212507, 0xDB290300, 0x1500ED00, 0x1EABBA27, 0xF14ECA2D, 0xF2D93625, 0x23F20502, 0xF0B9C8E6,
+0xEAD83EE1, 0x0C331CFF, 0x23D205F5, 0x0EC61906, 0xF128C9EF, 0xEF3CC800, 0x0B9DCDED, 0xF3C2CC3C,
+0x23EB04E9, 0x0B51CD13, 0xEADEC3D7, 0x222D06FB, 0xF0331904, 0x16C93F0C, 0xDAE5FE0F, 0x1F14B80C,
+0x001B28ED, 0x3F3B67F3, 0xEEEDE9EC, 0x1CE94514, 0x1D4145EF, 0xD8BA5019, 0xFC06D41E, 0x17BDC0DF,
+0x16D712E4, 0xE8041001, 0xEC2AEDDB, 0x11BE3803, 0xEBD2ECE5, 0xEF5A17F9, 0x2BFF52CD, 0xE958C126,
+0xEE1A1531, 0x0EBF1BF2, 0x18BC401A, 0x2AC2521C, 0xEE4817EA, 0x07482E20, 0x141314E0, 0xF41DCD15,
+0xDB10B40C, 0xC23700E9, 0x4221EB10, 0x4BE7E607, 0xEEF9DC0E, 0x62AC16DF, 0xE2E1C5D3, 0x27E4F70A,
+0x3213020D, 0x4ABE0A14, 0xACC1DE1B, 0xD636D416, 0xDFAF020E, 0xCE230828, 0x2615F6FB, 0xEA1002EE,
+0xD1351117, 0xB71C07F3, 0x03C9DF0C, 0x2B52DB0F, 0xD9AB02D7, 0xD20702D3, 0x48EEFB21, 0x3AE5E116,
+0xE728EE0E, 0x33C50F00, 0x363EF5EC, 0xD4FBF217, 0xB00FFDDE, 0x2333281A, 0x3624040C, 0x02DB0E04,
+0x3FDE27FD, 0x173716FB, 0xF20BEFF1, 0x3EF0191E, 0xB6B01719, 0x1BC7DD27, 0xE80AF3EE, 0x20BE101E,
+0xF42EF8E6, 0x40531BF9, 0x4646172B, 0x44DA1E1D, 0xC7F5E503, 0xF3E8F0E4, 0xA4E2E5EF, 0x42B935F6,
+0xEB1D1A1E, 0xE500ED0B, 0x2909F2CF, 0xCE0E0037, 0xD1320AA6, 0xEB01F9D9, 0x45E7ECC0, 0x4CFEE3D7,
+0x0EE024B8, 0xD3F31B1A, 0xE846056E, 0xF522EFFB, 0x5F1AE443, 0xCAF93620, 0x2CE9F23E, 0xDDE604F2,
+0x3BDDFC04, 0xC8EBEE13, 0xC11FF0F6, 0x18EBE9EC, 0xFAEEF1C7, 0xB6EFDDEA, 0xF8E123F7, 0x4EF4E1CC,
+0x430C271C, 0x3BE01CB8, 0xABE813EF, 0xCAEED439, 0xC1FAF3D1, 0x4E2F1656, 0x11E4DB0C, 0xDAF816DF,
+0x44E3FE0C, 0x2B1D1C0B, 0x3300FD28, 0xC320F4F9, 0x2A1DEB0A, 0xEA2502B4, 0x41061322, 0xC81518C2,
+0x1F2510FD, 0xD1E1F7F7, 0xBD1906F1, 0xF3C9E55F, 0xB3D91A4F, 0x0D0D26CC, 0xBD071B20, 0x41141BC4,
+0x2A1B19F2, 0x4902FDD5, 0xD6F9DE2E, 0x19190341, 0x09E80F11, 0x31FC1E2C, 0xEC1DF8F4, 0xCC0B14E2,
+0x51DFF3B7, 0x1AF028C8, 0x0F0E0E37, 0x2B041A25, 0x1A03FD25, 0xC5030FD5, 0xBCFAED22, 0x9A1F1CB9,
+0xCCE8C2F0, 0xEF1BF4BD, 0x21EC163C, 0xBAED07C6, 0x03F7E3D0, 0xC503DB2A, 0xC20C13E4, 0xD4F8EA30,
+0x391B0544, 0x59F3EECB, 0xAD0A311D, 0xFE0C2C33, 0x250CDBE4, 0xC5E80341, 0x3B0914CE, 0xC0F2ED36,
+0xC204182B, 0x3B0C16E5, 0xFFFF1429, 0xC316D8C3, 0xE408EB1F, 0x3713F4C4, 0xE4F2F01A, 0x0A280C01,
+0xEC0FE318, 0xCB16153E, 0x5C04F2D4, 0x281F35F8, 0xE4D80051, 0x4E0A0CE3, 0xB107DB21, 0xD1DED9FB,
+0x380AFACE, 0x50CC105C, 0xD9D80100, 0xF40ECCE6, 0xDADC03B4, 0x0AE5E243, 0x0C22E4FA, 0x08CD1F5A,
+0xE2D1F7A9, 0x12CE39A5, 0xFFDDD7FB, 0x032C2BAC, 0xF1D9E700, 0x14003B28, 0xFC08D420, 0x08093131,
+0xFEFFD7D7, 0xBB219348, 0x07DC2E4C, 0xDF0DB8CB, 0x22EB06EC, 0x0BE034F8, 0xF10FC819, 0x1623EEFA,
+0x0D1DE6BA, 0xDA1AB142, 0x1C16F4EE, 0x27F500E2, 0x1137C85E, 0x1C0BF434, 0xF004C924, 0x02EBD9ED,
+0x1BF943D2, 0xE7F80F30, 0xEFFE39D9, 0x2CFA5323, 0x04242DFB, 0xF420E347, 0x15F43C33, 0xE9F41134,
+0x20EBB8C2, 0x0205D523, 0xECE03DB8, 0x10F3E935, 0x180BC11E, 0x12E2C7BA, 0xE70B4233, 0xEED8EAB0,
+0x110E3936, 0xFEE327F5, 0x12E60017, 0xFE4026F3, 0xED26C518, 0xE5E9F2FF, 0x200C08EE, 0xEF1439E4,
+0xE92010ED, 0xE1B80908, 0x18584021, 0x24FBFC31, 0x00AE2823, 0x040CDC2A, 0xDE34FBE5, 0x1439C30D,
+0x0DB7E6EF, 0xE6090F21, 0xECAF3C20, 0x10DFE8D8, 0x0CC0CCF9, 0x15061318, 0x043723DD, 0xEA3A3DF0,
+0xEC18C413, 0xFE2BD611, 0xE3BC45FE, 0x16FCC11D, 0x120E39DC, 0xEC00141B, 0x13F03B27, 0x24D2FC18,
+0x0917E1FB, 0x113BEAEE, 0xE9FE11EE, 0x2C505427, 0x0D0B3529, 0x15E73E1E, 0x0FD91AF1, 0xDFF8B6FF,
+0xF413CCE1, 0x1EEFB9EA, 0xDCD04C17, 0xCEC25AF8, 0x1AB2BE17, 0xD8BEAFDA, 0xE6CEBD19, 0xFCC42CF6,
+0xDE19FA15, 0x250203F2, 0xA90042DB, 0x242A2F1A, 0x004D0401, 0x0B4C2825, 0xACB61DDD, 0x07422CDE,
+0xCDFEDFE7, 0xAFF8F527, 0x35052820, 0x0B34F2DD, 0xD648E2F3, 0x3DDF02E0, 0xFE42EBF8, 0xC1F6251A,
+0xBA0DE9E2, 0x442FE2E5, 0xD014E308, 0x2DB409EC, 0x50F8FADC, 0x264BD8E0, 0x2E0FFEDC, 0x1E2D051A,
+0x0FD20AFB, 0xCE1CE7FA, 0x35CDF6F4, 0xFC49F3F4, 0x642FDCDF, 0x3625C507, 0xDF140FFC, 0xDB21F913,
+0xC7D5FDF9, 0xCEE112FE, 0xD1D4F7F8, 0x5D410704, 0xD914CC19, 0xCCF800EC, 0xE3E00C1F, 0xCD05F408,
+0xC952F4DD, 0x444EF02A, 0x1E15E526, 0xD73909ED, 0xFA1900EF, 0xFFB6210F, 0x06EB27DE, 0x0B5BDF13,
+0x1B4F1D33, 0xCDF5F4D9, 0x00F40C1D, 0xC6031CDC, 0xF91C13F4, 0x061321C6, 0xBFDD2206, 0xEE13193C,
+0xFF1C17BB, 0xA91E27F5, 0x25ECD13C, 0x0CF90321, 0xBA1FE5B8, 0x50151F3D, 0xE935285D, 0x330A10CE,
+0x3EE6F542, 0xE80AEA1E, 0x45251103, 0xC014E3EC, 0x2D2C1854, 0x9F0E0536, 0x2E14C7C3, 0xECE50642,
+0xE6E214F7, 0x1021F208, 0xBCDC19FB, 0x4B281BFF, 0x0CDFDEB7, 0x21E91CEE, 0xC22FF856, 0xA2F3EAE4,
+0x5810CB18, 0xE416D03E, 0x25E3F40C, 0xF4180340, 0xFE0EE4C9, 0x433C2763, 0x38F11BE7, 0xE5FC11D4,
+0x1E11F4C6, 0x491D0ABB, 0xC0E72140, 0xB226E84F, 0x122E26AB, 0xEAF116E7, 0xD5E4EE0B, 0xF4FB0323,
+0xDCE61D42, 0x05F1FCE7, 0x0DDCDDB4, 0xF9E42000, 0x181610EE, 0xE1F246CA, 0xEDEDC53B, 0x14DEC5B6,
+0x1E02F629, 0xDEE749F0, 0x1C02BDD7, 0x1EF3F5CB, 0x11E8C640, 0xFA272301, 0xF3FC352C, 0xFDD52553,
+0x09191FF1, 0xDB11FEE9, 0xF7EB1FEE, 0xFFF9292E, 0x0A2032B8, 0x0C1BCDBC, 0xDDFFFBD9, 0x1BEABDEF,
+0x19F84130, 0xECE5ECF3, 0x271302EB, 0xE7EB423D, 0x1E2146B7, 0x14E13CF7, 0x16FE112B, 0xEB211308,
+0xDAD802B0, 0x0017D811, 0xFE26D901, 0x0D0ACBE2, 0xF2ED1A3B, 0xFBDED206, 0x18F0F1C8, 0xD1EFA9C6,
+0xE5E1BDF7, 0x1514C314, 0xF9FCD1D3, 0x02EB2BED, 0x0EEB1BC2, 0x2427B5FF, 0x0B2233FA, 0xFE0FDBE8,
+0xF7DDCE04, 0x03F42BE3, 0x0525D202, 0xF9B20021, 0xEF0FE926, 0xF505E318, 0xF7DF1F23, 0xEADF12F8,
+0xF12C3807, 0xDF01FA04, 0x1D23F426, 0xF1231A05, 0x20F549FB, 0xE0F0F9E3, 0xDB67B418, 0xC6E5623F,
+0x212AF90D, 0xE6C7BD02, 0x24CA4C11, 0xE249F6F1, 0xE8383F21, 0xFC212310, 0xF7561F07, 0x25C4032E,
+0x070EDE14, 0x1437151A, 0xE93C4010, 0xF10CE615, 0xDB0D4D1C, 0xFAF6221B, 0xF5F3E21E, 0xE2470B1B,
+0xE71BC01F, 0x07B0220C, 0xF311CAD8, 0xFF052816, 0x1DC20BDC, 0xE7BB40EB, 0xF5DEE21E, 0x013527FB,
+0x0FF519F2, 0x1AE9BDE4, 0x2B0F53F0, 0x13C6C5E8, 0xF12636ED, 0x10BD38FE, 0xDD0606E4, 0xDA5C4FDE,
+0x1329C5CC, 0x0DC8CA00, 0xD33956F0, 0x0700D711, 0x31B1DE02, 0x210C09D9, 0x0C2EF81B, 0xF5FFE406,
+0x27C1E2DA, 0xCB1801E8, 0x38C70EF0, 0x0D1EF0EF, 0x142E1C0B, 0x0B00EB06, 0x5D441DD8, 0x1E4035E5,
+0xFD3C0AE8, 0x3732DCEC, 0xC8B5F00A, 0xB9BF1023, 0x0AF22018, 0xC6DDE21A, 0x18EF1306, 0x1AC8F1E9,
+0x1F020EF0, 0xEA0209DB, 0x41CFEEDA, 0x21E31AF8, 0x4BBD070A, 0xEECFDD1A, 0xD4DB15F8, 0x430FFC02,
+0x15361A18, 0xCF17ECF1, 0xE42009EF, 0xC21CF4F8, 0x3DDFEAF3, 0x3E0916F9, 0xF028151F, 0x03CA1700,
+0x983B26F1, 0xDE2AC112, 0x209FF9FD, 0x1935F7C6, 0xED18F1F3, 0xBFD0EA0F, 0xC5071908, 0x1F4E13DE,
+0x17F00926, 0xF80DEE19, 0x4DF01FE6, 0xB7D2DB18, 0x0AF5E0F9, 0x4043E21D, 0x4AD517E5, 0xB0CFDE03,
+0xFB22D90A, 0xDF5023F9, 0xDABDF828, 0x1911011A, 0xBDF30FE8, 0xCEAA1A1A, 0xB0D2F62D, 0x3AAC28F9,
+0x42D6ED2D, 0xA83D1B02, 0x1831D1EA, 0xF11D10F7, 0x1D201AF5, 0x394F0C07, 0xB327F0D9, 0x3254DA01,
+0xEBF40AD5, 0x26A413E4, 0x5113FECC, 0xD4F32915, 0xDDB3FD1A, 0xC0D2FB25, 0x02DEE7FB, 0xC33DDB05,
+0x01021615, 0x0B1D27DA, 0xCBC2E2F6, 0x193CF3E9, 0x27E2F1EC, 0x5A1BFF0A, 0xE8CF320D, 0xBD4DF0F8,
+0x0F291A26, 0x1817E7FF, 0xEFCB10F0, 0xD40CE9F3, 0x0606041B, 0xFABC2322, 0xE0E9DEE5, 0x1BD80710,
+0xC015F301, 0x4718E8EE, 0x69D81E11, 0x19F6BF00, 0xF60F1E00, 0x3002E225, 0x29EA08C1, 0xF4EA00EF,
+0x3910E5E7, 0xDB0B12E4, 0x2A3E0265, 0x3BE8FE11, 0xBBEFEEE9, 0x151BE2BE, 0x1E2314FB, 0x4C2DF754,
+0xD5F823E0, 0x10200247, 0x01DB194D, 0x1B17D93F, 0x5806F42E, 0xFA19D040, 0x040BDF1D, 0xFCCB25A4,
+0x39D9DC00, 0x2C0EEFE7, 0x20F3FDCB, 0xC2E70841, 0x3EEFEAE9, 0x32EDEAC5, 0xAC1BF70D, 0x0C15D4C3,
+0x4CE7E5BF, 0x26F024E9, 0x061AFE0D, 0xDE13DEC5, 0x09DE0706, 0xFC0C1FE5, 0xD41CDC0B, 0xCC1DFBBB,
+0xC6020CDB, 0xCD16133E, 0x3FF30CCC, 0x0B2D16AB, 0x3800E3D9, 0x3AFCF0DC, 0xE4FFED27, 0xFCF9F3E0,
+0x05FF24D9, 0xE1F9DE2F, 0x391908F2, 0xC8F211CB, 0xEAEF003D, 0xDC1C040D, 0x25F74ECF, 0xE41F0CBA,
+0xDF1708EE, 0xE016F83F, 0x1D124515, 0xF325344D, 0xE114F63C, 0x261FFEB9, 0x02F02739, 0xF12018F8,
+0xD9124F3A, 0x1E1A45F3, 0x1504142C, 0xDDF506E3, 0xEAEAC113, 0xDE1AFB42, 0xF113C93B, 0x1721C207,
+0xE3D4BB54, 0x070A2FCE, 0x0C0AE41D, 0xF90D3035, 0xE6DCF2B4, 0xFB15D4C3, 0xFE2425FC, 0x03002B28,
+0xE50AF433, 0x07EC2FC4, 0x07E921EF, 0xFE09DAE1, 0xE21EF6B9, 0xF3E6360D, 0x17EE3F39, 0xE7FA0E22,
+0xF5151DED, 0x1EF945DE, 0x0D1236EB, 0x0AFD32D6, 0x0928CFFF, 0xDCDAFD02, 0xFB272D00, 0xCE025B25,
+0xEA0D3ECB, 0xE3E2BBF5, 0x06D32354, 0xF4DDCCB6, 0xE4002245, 0x213AB706, 0xECCCC3ED, 0x3CED9C0B,
+0x15D23C14, 0x0BE7E3F9, 0x1FE70A0E, 0xF30D350F, 0x1928F01B, 0xD50AAE01, 0x120AC6E1, 0x0ED4C91E,
+0xFFF7D804, 0x0D0CCA1F, 0x0433DBE4, 0xEA0DEFF5, 0x36FB5E1C, 0xEB11ECDC, 0x23C0FB17, 0xEBC63C17,
+0x272800EF, 0xFC34D4FF, 0x0AB8E2F5, 0x01FB2AE0, 0x090630DD, 0xFE0AD522, 0x1B10BD1D, 0xDF520719,
+0xF12436D5, 0x1D20BAFC, 0xE442BCF8, 0x05E0DDE6, 0x183FF1F8, 0xF816E118, 0xE3C9F4EE, 0xF2F51AF0,
+0xFE5126E4, 0x1E31F7D7, 0xF9362F09, 0x15E43CF2, 0x0D3EE50C, 0xF74931EA, 0x23EEB621, 0x02B9DAE9,
+0xDFE5B71F, 0xFD46D50D, 0x103E181F, 0xDF580717, 0x00C3EC31, 0x0CF714EC, 0x4ACCE41E, 0xF2E0DEF4,
+0xB0431A08, 0xBD38D8E6, 0xEED6E510, 0x41B8EA02, 0xEC36E61F, 0xBEE9EBF3, 0xBE28E712, 0xF6051BFF,
+0x2FE5E222, 0x2ADCFAF2, 0x3834FF04, 0x2AD1100D, 0xF4C502F8, 0x4DE7E414, 0x07A5DA10, 0xD1A92133,
+0xB6ACFAD2, 0xCF51222C, 0xCD1BF8D7, 0x3F16F50E, 0xEEF4EA12, 0xA52F161D, 0xC4B3CE07, 0xB622EDDC,
+0xDE2ADE06, 0x4FC8FB02, 0x6EDED9F1, 0xFC19B9F9, 0xD5B4DDF1, 0xDFC30423, 0xDFFBF9EA, 0x012C07DD,
+0x12AF2805, 0x1A2EEAD6, 0xF8A1F207, 0xC0BA21CA, 0xFFDCE9E3, 0x36BFDA03, 0x05DD0E19, 0xF905DDFB,
+0x32AEDF23, 0xFDFB09D5, 0x45D5DA23, 0x4B3E1CFD, 0x0905DDEA, 0xDFE2DE00, 0xB1FB07DD, 0x33EA2813,
+0x02ECF5C3, 0xED0CD91B, 0x0D1BEABD, 0x4A17E5C0, 0xF707DFDF, 0xEE191F41, 0x19EC15C5, 0x4112F1EB,
+0xD4F01AE9, 0xBF21FC06, 0x19DCE605, 0x2F0C10E4, 0x181FF947, 0xC00AEF1E, 0xF72EE8AB, 0x42F8E2E1,
+0xA3EFE7C7, 0x31133514, 0x1EF608E2, 0x0DECF6EC, 0x0CECE5C5, 0x3DD31D54, 0xECE21545, 0xAE0CECE5,
+0x49202B08, 0x0EFE2026, 0x13F41B35, 0x1B0BEB32, 0x1719F30F, 0xECDAF0FF, 0xECE9ECC0, 0xF212EC3B,
+0x3DE8E6EF, 0x13F2EB1B, 0xB008EBE0, 0xBAE22845, 0x1A111DEA, 0xDBFC0EDD, 0x3F29FE50, 0xCDF817E0,
+0x4B030CD5, 0xEADCDE05, 0xC31312C6, 0x272EEAA9, 0x340201DA, 0x17F400EF, 0xED1F1608, 0x24D24B55,
+0xF4091DCE, 0xF51633C2, 0x03D32B56, 0x2325FA4D, 0xDEDA05FD, 0x01F72831, 0x04F12C19, 0x2716B1C3,
+0x1B19F3C0, 0x10E2C909, 0x050C2233, 0x03F22519, 0x1C06F422, 0xE7D70EAF, 0x03D725AF, 0x13EC14EB,
+0xF6F631E3, 0xF900DE28, 0x1FE2F7F6, 0xFBE9D2C1, 0xFBEFDDE9, 0xE110F7C8, 0x1C290C50, 0x27D9FFFF,
+0x07E421BB, 0x3BE89CF0, 0xF50733D0, 0x2514B2EC, 0xF5EB1DED, 0x0619D241, 0x1FE8B840, 0xEEEA3B3E,
+0xED1F1648, 0xFF15D73E, 0x0123D805, 0x0310D5E8, 0x010ED819, 0xECE53B43, 0x03E1D547, 0x01D9D6FF,
+0xDFE3B745, 0x1C14443C, 0xDF0908E1, 0x03FE2ADA, 0x1306C5D2, 0xDD001004, 0x1F3AF818, 0x1A3BF3ED,
+0x1EBC47EE, 0xF83E1F1B, 0xE21445EA, 0x2101B713, 0xE81AF126, 0x1930BFF3, 0x1533C408, 0xEDBFC60C,
+0x060F2EE8, 0x06BDD11A, 0x04F524E4, 0xD94C001E, 0x0334DCDD, 0x06F1D30C, 0xFBDBD219, 0x0EBE1A03,
+0x08D230E5, 0x250B4DFA, 0x0903311C, 0x14233C25, 0x1ABAF205, 0x30C5581D, 0x02FAD712, 0xDF2108DE,
+0x02DDDB07, 0x1D47F606, 0x0EEF191F, 0x1B3AF2E9, 0xF9E52E12, 0xF0B1C8F4, 0x290CAF28, 0x0013D8E5,
+0xE1B50AEC, 0x1A224322, 0xFDE8DB06, 0xF8A531EF, 0x0DD1CCCD, 0xE81AC007, 0x201048F3, 0x1800F1E8,
+0x000BD8D9, 0xEC2A13E2, 0xF3EE3502, 0x282F0117, 0x08F8E006, 0xFE542620, 0x19E9C0D3, 0xDD140412,
+0x1119C6EB, 0xF6C2E10E, 0x1EC50BEB, 0x15BD13ED, 0x143DC51B, 0xE5F2BE14, 0xF552E41A, 0xE10FF62A,
+0x2A0B5218, 0xE33A0CE2, 0x02D7D612, 0xE1A7B800, 0xD8C10031, 0x0810E0E9, 0xD93AB0E8, 0xF8113011,
+0x15B73C17, 0xFE46D520, 0xF6C51EE3, 0xD51A52ED, 0x1A0ABD0E, 0xFBF8DEE2, 0xE245BA20, 0x2225FB1E,
+0xEC3A3CFD, 0x19340EEE, 0x08FE20F4, 0x1F154727, 0x05F8D213, 0x16F2EEE1, 0x22B6FA1A, 0xF404CCDF,
+0xE22E4624, 0xFB3FDDFB, 0xE6F7BF17, 0xF0B6E71F, 0xF013E723, 0x17081114, 0x24EBFCE0, 0xFBE52DEC,
+0xE9C310F3, 0x26F04E15, 0xF145E8E8, 0x122B17E2, 0x0D40CCFD, 0x43CA96E8, 0x421D0F00, 0x27DCE70B,
+0x233B00FC, 0xCC44FAEE, 0xE0BC0BE3, 0x1BE7071C, 0x01C7F20F, 0xB29B28F0, 0xFB02DBC4, 0x32092326,
+0xE648F5E2, 0x4707F2DF, 0xDF36E2E0, 0x1CC308F2, 0xBBA50DEB, 0x1DE71D34, 0xCE36F5F1, 0xCDF90AF2,
+0x0FDE0CE0, 0xCF0C1906, 0xE0E509E4, 0xBC37F9F3, 0xDA06E510, 0x1FD3FDDF, 0xDB09F705, 0xF445031E,
+0x24311CE2, 0x55EEFDF8, 0x3CEDD216, 0xAFF01516, 0xCA3D29E8, 0xCCAEF1EA, 0xE0F60CD5, 0x4CECF7E2,
+0xDCD5DBEB, 0xAEC2FC02, 0x4825D7EA, 0x252D2004, 0x24F604FB, 0xD9D7051F, 0x1AF201FF, 0x3DE70EE6,
+0x43BCEC0F, 0x43D8E5E4, 0x20EB1BFF, 0x2AAFF814, 0x021A02D8, 0xD80C26F2, 0xDB00001C, 0x2BF2FCE6,
+0x181F0347, 0xAFE8F0F1, 0xE31D2A0B, 0xD015F4C2, 0xEF02072B, 0x361717EF, 0xFA25F2B3, 0xEEFADE22,
+0xEE21EBF8, 0xD6F5EA1D, 0xBF160212, 0x03E6190F, 0x452126B7, 0x32D91DFF, 0x2D000A28, 0x25F205CA,
+0xDEED043B, 0x36DCFA04, 0x13EAF112, 0x141915F1, 0xF2F0EC38, 0xBC20E6F8, 0x0BF2E519, 0xD0F11D19,
+0xC7F6F932, 0xBFE2EFB9, 0xA4F919DF, 0xFFEACCEE, 0x3BDBDAFC, 0x2B1E1245, 0x5CEBFC14, 0xDB10CD18,
+0xB718FE40, 0x0BE92012, 0x2414E2C5, 0x3B09FCE0, 0x17DF1306, 0x212F12A9, 0xC71407C4, 0x0901EFD7,
+0x22EAE23F, 0xE7E805C1, 0xC6F21037, 0x4A111218, 0x1AEC22EC, 0x27E30EF6, 0x0C000134, 0x1BF10D37,
+0xFD1F2A09, 0x1AEFF3E9, 0x160F3EC8, 0xEC173B3F, 0xE8F711E1, 0x050A22CD, 0x15263DB1, 0x07012127,
+0x1D22BBB7, 0x34E3A5BB, 0x19210FB8, 0x17D41254, 0xD822B1FA, 0xE6DE0E06, 0x1519ED40, 0xDDE54CBE,
+0x1EFC0BD4, 0xFE0D2A35, 0xE8EF40C7, 0x09E5E1F3, 0xF60631DE, 0xD6EDADC5, 0xE61A0FBE, 0x091C30BC,
+0x0514DE3C, 0x1D1A45BF, 0x03E0DC08, 0xF4FE1C25, 0x1D260BFF, 0xF6FD3126, 0x1013C8EA, 0xFE18DB3F,
+0xDF114916, 0x1806BF2D, 0x0E0535DC, 0xE5ED0DEB, 0x1EE445F5, 0x16DC12B4, 0x23FA4B2F, 0xFFD6DAAF,
+0xECF714E2, 0x273D0066, 0x1B15F313, 0x1D0CF533, 0x17003E28, 0x1FD3F654, 0x00EFB117, 0x1C13BBD9,
+0xF5C21D15, 0xF1CF3715, 0x244A0309, 0x09321FDD, 0xEFF81609, 0xE1ED091F, 0xFDFA2A16, 0xF742D022,
+0xDCECB51B, 0x16FAEE14, 0x140C3C21, 0xEA0AED1B, 0x24E94CE2, 0x17E03F12, 0x1E01BAF9, 0xE82E4128,
+0xEE311506, 0xF7FEE1F6, 0x0661DFD9, 0xDFB1FAC8, 0xFF282928, 0xEA3412FF, 0x104FC80C, 0x00ABD927,
+0xEE32EA2D, 0x153B3D09, 0xFCB82DEC, 0xE9E8C021, 0x09BECEF0, 0xFCCA2D19, 0xDF09F90F, 0x013F2AE1,
+0xFC44D4E9, 0xFD24D6E5, 0x1C0CF3FB, 0x2601021C, 0x1AB6BED9, 0x04B7DCDD, 0x102BC8E0, 0x09331EFC,
+0xE8ACC1F5, 0x222E4BD4, 0xF715E1FA, 0x23484BED, 0xEB3913E0, 0xDFE4B711, 0x0C411B0D, 0x18FEE800,
+0x42231127, 0x493B19FC, 0x39BCDE12, 0xFB46121B, 0x452DDDE2, 0xEA0DE3FB, 0x2109EF1A, 0x1B3CF81E,
+0xE228F2EC, 0x48ADF6FF, 0xC2C0202C, 0x9F3FEB19, 0x192BC8E9, 0x2B0F0F04, 0x4F2DFD19, 0x1045D9FB,
+0x0B3FE8E2, 0xF2FBE316, 0xBC0EE623, 0xB301E419, 0x1F2226D9, 0xBE0009FA, 0x27121A27, 0xF95002EA,
+0x4714DED8, 0xBAE6E1ED, 0xC5191EF2, 0x3B2E14F1, 0xFB0FEC06, 0xDAB123E7, 0x3DDBFFD9, 0xC318ECFD,
+0xDFD014EF, 0xB23D0608, 0x11E326EB, 0xC4CAE90B, 0xD847EC0D, 0xDFC3FFE2, 0x55BD0815, 0x17F9D3E5,
+0x3EE91121, 0xF9C41712, 0x22AFE0ED, 0xCDE7FBD7, 0x1BC9F5F0, 0x0422F4F0, 0x200EDC06, 0xC3F700E6,
+0x3B20EBF7, 0xD115EDEE, 0xC3ED08EA, 0x5AFEEC29, 0xC21F3247, 0x3315163E, 0xE330F659, 0xEAF5F5CC,
+0x1716113E, 0x4CE611BF, 0xD517DBC2, 0xB2EF043A, 0x45DD25B5, 0xC0151E13, 0x131CE843, 0xFFE4EB44,
+0x5FFB27DC, 0x381336EB, 0xB8EFF017, 0xECF720CF, 0x200B131D, 0x0622F805, 0xBA07DD30, 0xD9061FDE,
+0x30EA013D, 0x40300858, 0x9AD917B2, 0x270FC1C9, 0x1209FFCF, 0x201716EE, 0x2A050723, 0x1BEF0239,
+0xBF18F310, 0xA83719A0, 0xA9DDD105, 0xE70F3037, 0xDE0D0E1B, 0xE1D4F955, 0x0CF00AC8, 0xE80FE4C9,
+0x1BE2100A, 0x40FB0EDC, 0xDD1A17BD, 0x4E1604C2, 0x5CE7270F, 0x2BF635E3, 0x00D80350, 0xFD0027DB,
+0xDD22B54A, 0xEAE11247, 0xF705CE22, 0x01F2D736, 0x1D17443E, 0x1D0145D8, 0x18181111, 0x04FEDCDA,
+0x01EAD7C3, 0x05DC23B5, 0x1FCFB959, 0x1A0A431E, 0xFCDC2CFC, 0xD61452EC, 0xECF23DCB, 0x31D6A652,
+0x261BFE0D, 0x0CD73552, 0xEAFB11D3, 0x10291952, 0xF7F41F34, 0xEC1E3CF6, 0x180A41E2, 0x03FBDB23,
+0x2026F9B3, 0x0C02E42A, 0x08F030C9, 0x0E19E70E, 0x0F1519C4, 0xDCE703F2, 0x100CC833, 0x0105272C,
+0x01252903, 0x0DCCCB5C, 0xD21AAA0E, 0x2917AFC0, 0x1BEA0E3F, 0x2A1B52BE, 0xF2E8CAC0, 0x1DDDBB4C,
+0x0215D73D, 0x0DF7E5E1, 0x08E230F5, 0x0EDFCA4A, 0x19FE0ED9, 0xE6EC42C4, 0xFB1D23F4, 0x22090632,
+0xEA073F21, 0x06ED2115, 0x180BBFCC, 0xE6E20EF6, 0xE512F23A, 0xE21BF7F4, 0xF9F22E37, 0xF82B2F53,
+0x1CF94421, 0x16D8C2B1, 0xD9F4FF1C, 0x23EC4B14, 0xF5F03339, 0xFE172B40, 0x1C2F0D57, 0x230A0632,
+0xECDA3CFD, 0x1306C52D, 0x01D3D856, 0x1D2846FF, 0xF9D82150, 0x1B0CF31D, 0xEE03C626, 0x1AFFBED8,
+0xD605AEDD, 0x2403FD25, 0x01EC28C3, 0xF1E1C8F7, 0x06E7D140, 0x09CF325A, 0xF2151AC3, 0xE7F8F120,
+0x0A2BE353, 0x23E5FBBD, 0x1C1645C1, 0xF716D011, 0xF6ED1D15, 0xFB2123B7, 0xE2070A2E, 0x16F7C2E0,
+0xE6100D18, 0xFB19D440, 0x2FF15619, 0x1F0FB938, 0x0101272A, 0xF8F42F35, 0xF3DFE649, 0x21E549F4,
+0x0D430000, 0x400EE51B, 0x452E181A, 0xF1411DFB, 0xF4DC1919, 0xF247E3FC, 0x33141AE1, 0xF81CF515,
+0x3115200D, 0x3FCFF713, 0xE9DA17F6, 0x0BF31102, 0x17D1E3E5, 0x0E9712FA, 0x2EAFE6C0, 0x5900F928,
+0x50D8CE27, 0xCDACD9FF, 0x41BB0B2B, 0x2AC9181E, 0x13E1020F, 0x0708EC08, 0x09D220E1, 0x1EC0E206,
+0x1F2BF6E9, 0xD23809FD, 0x46D3FBF0, 0xF617E2FB, 0xF4F61EEF, 0x31D71BE2, 0x1AD4F7FE, 0xB534F103,
+0xDE15DD0C, 0xC7FBFA12, 0x1931F0DC, 0x4AD8F1F7, 0x4937DEFF, 0xF908210F, 0x35D121E0, 0xECCC0EFA,
+0x34CBEDF5, 0x062A0CF3, 0xE4B12103, 0xD73DF427, 0xDCE8FE15, 0xB4FC04F0, 0x0B06DC23, 0x16391D22,
+0x23051310, 0xE6FCFADC, 0x1C95F2DB, 0xE3DE0DBD, 0xDB270A05, 0xB4EEFC00, 0x1845DD16, 0x0149F11D,
+0xC6D52621, 0x1E34EE03, 0x17D20AF4, 0xA10611FA, 0x20F937DE, 0x5D17F8DF, 0xA00435EF, 0x3ECEC7DC,
+0xF9D8EB0A, 0xFC332200, 0x1DE9DBF5, 0x2E580CEE, 0x3E1AF9D1, 0xC64715F2, 0xD7CB121F, 0xEFF400F2,
+0x084CEAE4, 0x064DE0DD, 0x2B10DE25, 0xC1FB0218, 0xD4F8EADE, 0x32D6FBE1, 0x0F65F602, 0xEC32E83C,
+0xD2F613F5, 0xC526F9E1, 0xF0F51302, 0xF5B017E3, 0xFA0FE4D7, 0xFACBDFE8, 0xC0F222F2, 0xD630E81A,
+0xD6DEFEF8, 0x33A602F9, 0xC826F633, 0x10E51002, 0x0308E9F3, 0xE011251F, 0xBAEAF8EA, 0x26F21E12,
+0x0000021A, 0xE00E08CB, 0xE0ED0715, 0xE71CC0F4, 0x0A1ECE0A, 0xDB260303, 0xE7E2BEF5, 0xDDE705F0,
+0xDA0BFEE3, 0xF6D83250, 0xF4FA1CD3, 0x2805FFDC, 0x1DDBBAB4, 0x1611C218, 0x18E13F09, 0x1C1D0DF5,
+0xDC25B403, 0x2BF6AE32, 0x180F4136, 0x39FC61D3, 0xF3DE1BFA, 0x1AD94100, 0xE8F8BFDF, 0x0826E0FE,
+0x1AE142B8, 0xF80F20C8, 0x0116D9EE, 0x22E84BF1, 0xEB22C3B6, 0xEE01EBD7, 0x0EE8CA10, 0xD8FA00D1,
+0xEB073DD1, 0x1EE3BBBB, 0x12EFC639, 0x3708A121, 0xDFDB49B3, 0x28D85000, 0x0C003429, 0x000D28CA,
+0x12D1C6A9, 0x0D061B2D, 0xEBDCC304, 0xEF05C8D4, 0xDACD02A5, 0xF3F7CAE2, 0xE5144313, 0xFC222B4A,
+0x23F4B51C, 0x18270FFE, 0xEDDC3CB4, 0xE9213F49, 0x1EF309CB, 0xE3E5BB44, 0x0AF6E333, 0xE1EF473A,
+0x080DD036, 0x0FEB38EE, 0xFE0629DE, 0xDAFCB224, 0x0DF9CB21, 0x07D3DFAC, 0x06F822D0, 0x1E1ABAF1,
+0x00F32835, 0xE00AF71E, 0x08E2D009, 0xE003F9D5, 0xD5F2AECA, 0xF4EFCCEA, 0x0B0E33E5, 0x0D271A00,
+0x1232EB59, 0x07DBDFB4, 0xD2ECAAED, 0x17FC40D4, 0xDAEB0313, 0x07E8E010, 0x07F5201E, 0x13173CC1,
+0xDBDCFDFD, 0x24ECFBC3, 0xF2D9E6FE, 0x420695DE, 0xFC172C11, 0xDF0F06C9, 0xF413CC3C, 0x1B11F217,
+0xE01148C7, 0x1EEEBA3B, 0xDDDCFCB3, 0x24E1B4F6, 0xF4DA3303, 0xF1FC192C, 0xEAFC11D4, 0xEAD41354,
+0x22ED06EC, 0x23090000, 0x0BE7FBE1, 0xE0BFE4F0, 0xF2C4F818, 0xE5BEE6EC, 0xDD3E0DE7, 0xEB360516,
+0xFBC6ECF2, 0xFCEC23EE, 0x0A20DD13, 0x12211FF8, 0xF23A1706, 0xCC36E6EF, 0x1C26F5F2, 0x2F05F303,
+0xF540FA23, 0xFE4FE3E9, 0x23CED927, 0x18C2FA0A, 0xD1A411EA, 0x1A4306CB, 0x474E0EE6, 0x21331FDB,
+0x2C33070B, 0xC60804F6, 0x515A12DF, 0xE8FDD7CE, 0xD7171126, 0x1043FF11, 0x48F8E81C, 0xCF48E021,
+0xF9CA09E0, 0x2B26210F, 0x1F10FD02, 0xC9ECF8E7, 0xF9D30FED, 0x33222205, 0xC44E0A05, 0x41381425,
+0xCEC21811, 0xCFFFF5EA, 0xC0E7F727, 0xF5481810, 0xE247E3E1, 0x11150AE0, 0x40C116EE, 0xFDEC18E9,
+0xCF0F2415, 0x46E5F6E6, 0x430D1DF3, 0x11EEE61A, 0xA45017EA, 0xF1BBCB28, 0x35DC19E3, 0xECBC0CFB,
+0x3631ED1D, 0x202C0EF8, 0xE7D2F8FC, 0x441910FA, 0xBED4E4F2, 0xCE3DE6FD, 0xD8CB0B15, 0xDE3C01F2,
+0xD7F1F914, 0xFDCE00E7, 0xBDEF240A, 0x2CC5E616, 0x1C16FCED, 0xE805F412, 0xE4F11023, 0x14110DE8,
+0xE2ED1418, 0xD7F7F6EC, 0xF8E9001E, 0x18C3E111, 0xAA4BF1EA, 0x2BB02DDE, 0xEB18FDD9, 0xEECFED11,
+0xAEF8E9F7, 0xB0D129E0, 0x1952D9FA, 0x07D40ED6, 0xB13EDF03, 0xC74C28E9, 0xD7DB12DC, 0x0B11FFFD,
+0xCEFC1D17, 0xC34CF623, 0x4A011523, 0x0410DDDA, 0xF2072317, 0x33101B21, 0x35F7F4E7, 0xF2CBF3E0,
+0xAACDE6F4, 0x00002F0B, 0xE51344C5, 0x1211E938, 0x091EE1F6, 0x26CD02A4, 0xE028F84F, 0x2522B206,
+0x1BFDF3D5, 0x0C23CC06, 0xE809C031, 0x19D30F54, 0x1B0DBD1C, 0x2EE256F5, 0xE11A080E, 0x17DF11B8,
+0x16E4C20C, 0xEECA3B5F, 0x05EA2D11, 0x140AC432, 0xE0F6481D, 0xE024094B, 0x16F6121D, 0x14083C20,
+0x200A481F, 0xE1F308E5, 0xFB0623D1, 0xDE1EF946, 0xEE211606, 0x15EC3D13, 0xF402E4DA, 0xF1D8E700,
+0xE6D0F358, 0xEEF9C621, 0xE3F3BB36, 0x0A171E3F, 0x0D0ACBE1, 0x09071F21, 0x04DDDDB5, 0x051422C4,
+0x07F2211B, 0xFD1BD5F3, 0xEFFE3926, 0x261602C1, 0xF40F3438, 0xEE07EB21, 0xF4DA1CB2, 0x241EFCBA,
+0x2600B2D8, 0x11DC174C, 0x1A0542D4, 0xDF1349C6, 0x19E10F47, 0x09131F16, 0x010A27E2, 0x0A12E2C5,
+0x01E229F5, 0xE3090AE1, 0xDEFEB629, 0x150E1319, 0x221D050B, 0xE3F4F6CD, 0x21F6071D, 0x23FC4C24,
+0x1312C6EA, 0x12F01738, 0xEFFF3AD7, 0x1FFD48D5, 0x1C0B0CE4, 0xF5F71C30, 0x03F725E0, 0x0D38349F,
+0xEB0614DE, 0xFB03DCD5, 0xEAC9EDA2, 0xDEF8B6E1, 0xDD0B0532, 0x17ECC2C3, 0x27E1FEB9, 0xEF14EA14,
+0xF9FC2F2C, 0x160AC232, 0x1C0445DD, 0xE92311FB, 0x06162F3D, 0x03F12538, 0x0AFE1E26, 0x06E72141,
+0xE1E6F841, 0x3221A5B7, 0x00E6D70D, 0xF8F8E030, 0x24FF4CD8, 0xFB02DCDB, 0x162313FB, 0xEAF1C2CA,
+0x190CBFCC, 0xEFF4E834, 0x60370000, 0x25C139F2, 0xF731FCEA, 0xF734E009, 0xF10AE00B, 0xD2C81AE2,
+0x26590710, 0x1ACE0231, 0xF41D0EF5, 0xD62BE4F6, 0xEF340303, 0x0AB9EA0C, 0xBA251EE1, 0xCE6BE204,
+0xC1530A42, 0xC411E82A, 0xD4CD15E9, 0x35D4040C, 0xBEBE0C04, 0x01D4E7E5, 0xE9CAD9FD, 0x58F1EFF2,
+0xAC46D1E6, 0x21DED4E2, 0x2C240706, 0xE0330304, 0x4931F80B, 0xF44C2109, 0xB74A1DDB, 0x2AC320DE,
+0xBC2D02EC, 0x07EEE4FB, 0x2DCB20E9, 0xC910FBF4, 0xAF52F217, 0xD720D72B, 0xDBCC02F8, 0x1342FDF3,
+0x26B315E7, 0x3D450325, 0xC7C0151E, 0xE9471219, 0x42E4111F, 0x4AA3E60B, 0x5537DF36, 0xB4E92E0F,
+0xDCFEDC10, 0x18F1FCDA, 0xBFFA10E7, 0xD706E721, 0x2BD20022, 0x16500305, 0x4CC2EF29, 0xD71F2417,
+0x20120009, 0xE7EC08EA, 0xE520F1EC, 0x42C8F3F8, 0xF23A19F0, 0x34111BEE, 0xCBF00DE8, 0x02F50DE8,
+0xC3F0DA1C, 0x67CC1518, 0x09463FF4, 0xFCF7E11D, 0x01F6DC20, 0x2F1D27E1, 0x2816F9F4, 0xAA1800EE,
+0x2E592DF0, 0xF4DC07CE, 0xCF49E504, 0xD33BF6E0, 0x17040514, 0xC445EE25, 0x4C33EB1D, 0xBB39250C,
+0x4BAFE310, 0x58F8222A, 0xDD34CF1F, 0x4CCBFBF4, 0x32FDDC0D, 0xCF230ADC, 0x2D13F7FC, 0x49D6FA15,
+0x09E2E002, 0x4425E20A, 0x170D1C02, 0x47DDF0E4, 0x2A441F05, 0xC0B502E4, 0x40B71823, 0xCFEE19DF,
+0xD34A0917, 0xE7370521, 0x0000F1F1, 0x1CFDBD25, 0x1B080D30, 0xC61F61F7, 0x05122C3A, 0xDEF606CF,
+0xF805D023, 0xD91D50F6, 0x1E0D0AE6, 0xE111F7E9, 0x1B1F42F7, 0xE9221106, 0xF7101EC8, 0x061C2FBD,
+0xE8E711F2, 0xFB0E2335, 0x0DFDE6D5, 0x10E7E742, 0xF1FFE62A, 0x04F424CC, 0xF82B1F54, 0x10F8E821,
+0xF40B1C33, 0xE2F3BA1B, 0xFBFBD32C, 0xF6E531BD, 0x12F7171E, 0x13073BDF, 0xDDEFFAC8, 0xDC1DFB0B,
+0x0D00E4D9, 0x120AC7E2, 0xFEE1D546, 0xD9EFFEEA, 0x1EF0F737, 0x021225E9, 0xD4DE54FA, 0xF3FC1B2D,
+0xF80DD1CC, 0x1EE1470A, 0x01E6D7F2, 0xE1E6F70D, 0xF9F0DEE9, 0xFB14D2C5, 0xE603F2D5, 0xD82750FF,
+0x011AD941, 0xE2040A23, 0xE425BD4C, 0xFC28DC01, 0x22D94BFF, 0x0AE6E242, 0x16EDC2C5, 0xD90B011C,
+0x050AD232, 0xDB114E18, 0xF2EB3512, 0x1AE642F3, 0xCFF1A7E7, 0xF220C9F8, 0x171FC148, 0x0735225D,
+0xF2FF1926, 0x14D914FF, 0x0DFC36DC, 0x191BF00E, 0xE50CF3CB, 0x07F5221C, 0x2305FAD4, 0x1FD9094F,
+0x25FFB4D6, 0x170FC1CA, 0x0FF3C91A, 0x02E82BF0, 0xDFEA07ED, 0xECE9143F, 0xE2E44645, 0xF2F6E71E,
+0x26FAFE21, 0xFD17DB3F, 0xF0F6181E, 0xF818D0F0, 0xDD24B5B5, 0x00E8D8BF, 0xFE08DA20, 0x1104C6DC,
+0x22FCB5D4, 0xE5FFF3D7, 0xE4CEF5A6, 0xF1EBE6EC, 0xEC06EBD3, 0xF5E91DC1, 0xE70540D4, 0xFC1A2D0E,
+0x08E7E10F, 0xFAFE22D9, 0x06F82130, 0x09E80000, 0xF4F51F10, 0x49EE1CE2, 0xEEFADF17, 0x44ECE9DE,
+0x0ECEE415, 0x354C1AF6, 0xCC020DDC, 0x50100C25, 0x1F362818, 0xCCB6090D, 0xE5C30C21, 0xFDDA0DEC,
+0x350DDA01, 0x131A0C1A, 0x1AAB15F2, 0x2B590DD2, 0xC4A80331, 0xC517EC30, 0xCED3EEEF, 0xCC44F505,
+0xF40DF5E3, 0xE2341BE5, 0x20C50AF3, 0xF9D308ED, 0xE345DF06, 0x3DF10CE4, 0x203D15E6, 0x1F4BF8EB,
+0x1D37F8DD, 0xFEDC0BF1, 0xC14726FC, 0x0EDD1820, 0xCC221A05, 0xC1CB0D06, 0xC1CAE90C, 0x45EC180F,
+0x9A3AE3EB, 0x15D23EED, 0xABCDEE06, 0x5EB52DF4, 0x19D33523, 0x0C41F1FB, 0xE8F8E4E8, 0xCD24F01F,
+0x1239F604, 0xE6EA1611, 0xF23E0E11, 0x14F01A16, 0x450F14E8, 0x44BD1DE8, 0x3DE3E41C, 0x13E316F5,
+0xEABEECF6, 0xEE00121B, 0x3AEEEB28, 0xE33AED15, 0x229AF5ED, 0xBF26FAC1, 0xE7351A02, 0xA6D80FF3,
+0x5303CEFF, 0xCF082ADB, 0xB7BFF6E1, 0x3521E0E6, 0x07120DFA, 0x25E9E0EA, 0xB423FDEE, 0x0E012305,
+0x1DF21B28, 0xCE1AF6E6, 0x2AF50AF2, 0xF80602E4, 0x0AB71FDF, 0x1F2A1E21, 0x0316F8FE, 0x0F4F2512,
+0xEBCE1A27, 0xC0B3EC0A, 0x23E818DA, 0xEB0AFBEF, 0x164F13E3, 0xCDE61326, 0xC4DF0BF3, 0xBE3C14FA,
+0x51E8E714, 0x10F2D710, 0xD3DB191B, 0xEA1F06FD, 0x344311F7, 0x21D60C1A, 0x301207FE, 0x2FF3F9EA,
+0xEED1F9E4, 0xD335EAF9, 0xFA0505F3, 0x4B62DDDD, 0xD130DC3A, 0xD1D60708, 0x21D508FD, 0x4112FAFE,
+0xEE431816, 0xAE0BEAE4, 0x03E0D51D, 0xD0AEDC07, 0x092BF72A, 0x07C92003, 0x20BDDEF1, 0xDC45F9E5,
+0xCC1905E4, 0x0AE50CF2, 0x53D41E0D, 0xC928D505, 0x48B90F00, 0xF9CCDF1F, 0x3D4D21F4, 0xCB0B15DB,
+0xF0050D1D, 0xE1F2E8DE, 0x36E5091A, 0x3EF20E0C, 0xD8E6161A, 0x241D00F3, 0xC1E7FD0C, 0xCFB8EA0F,
+0xE33CF6DF, 0xF1AA0CEB, 0x45F11A2E, 0x3BFDE3E7, 0x28971425, 0x2DDC00BF, 0xE9DFFC03, 0x05B6EE07,
+0xF1DE23DD, 0xB6E01807, 0x1F31DDF7, 0xEB390A0A, 0xD44B13F0, 0x11E2FC22, 0x5021E80A, 0x072E28FA,
+0xEEBBDF07, 0xEC30E9E3, 0xD2F2EDF8, 0x3AE8061B, 0x4CB6EF10, 0xCBD2DC23, 0x302F0D07, 0xB73308FA,
+0xAFE821F6, 0xD63FD6F0, 0x4CF20216, 0xBFEC23E6, 0x17DB19ED, 0xC9E8EF03, 0x3A34F10F, 0x404711F3,
+0x1814181E, 0xEF17F1EB, 0x551F17EE, 0xD7D62E09, 0xF519FFFD, 0xFC16E4F1, 0x28E62412, 0xDD2600F2,
+0xFD220501, 0x5DE52407, 0xB9B6CC0E, 0x180220DE, 0x27351026, 0xFA13010D, 0x050222EC, 0x2BE0DDDA,
+0xCEB2FC08, 0x0CD00A27, 0xC3FBE509, 0xF6F51422, 0xEEAC1EE3, 0x10CFEAD5, 0x1FDBE9F7, 0x47C20AFE,
+0x3AC8E2E9, 0xC80DEEEF, 0xECD9F1E5, 0x0FCEEC00, 0x1F2CE70B, 0xE5BCF8FC, 0x37B10DE4, 0x4200F1DA,
+0xFB081A27, 0x385C231F, 0xC7210FCB, 0xFEF610F9, 0x26E30000, 0xEBF8132F, 0x051ADEBF, 0xEDE13CBA,
+0x1819C0BF, 0xFE0F2AE7, 0xFC1D24F5, 0xDBE90311, 0x02F02918, 0x190FF037, 0x1CE10B46, 0x0AD0CF58,
+0x170410DD, 0xF72231FA, 0x1D15BBED, 0x16053EDD, 0x0A1D1D45, 0xF412E316, 0x191510EE, 0xE3DE0BF9,
+0x10113838, 0x02D92AB2, 0xFF07D7E0, 0x21ECF83C, 0xEDEBC4C2, 0xE8EDC13B, 0xF9042025, 0xDB35B4A4,
+0x1AE3BF45, 0xFEEB2514, 0xEDFAC522, 0x0B08E3E0, 0x13F2151A, 0xF3D7E551, 0x1D110BE8, 0x25170312,
+0x19C9F1A2, 0xEA0C1234, 0xE3FBF52D, 0xF3DC1BFD, 0x11F518CC, 0xFDF92521, 0xF61E31F6, 0xE0EA47EF,
+0x09E6E142, 0x09F8E031, 0xDDF9B52F, 0xDAE34EBA, 0x160111D8, 0x1524C34C, 0xF01C170C, 0xDDE14BB9,
+0xE7EEC0EB, 0x34005CD8, 0x17E1C2F7, 0x0F1B1943, 0xFD11DCEA, 0xD5EF5417, 0x08D73052, 0x1CDAF4B2,
+0x162AED52, 0xFBE9D3EF, 0xF31C1CBC, 0xF225CA03, 0xEB231405, 0x13FFEC2A, 0xDAF4B135, 0xDC21FDB8,
+0xDBF90420, 0x0F23184B, 0xE40945E1, 0xFE03DBD4, 0xDF1B48BE, 0x0CE01C49, 0x1200C728, 0xEFF016C7,
+0xFC12D43A, 0x0AE9CDC1, 0x15101318, 0xDFE949C1, 0x2314B6C4, 0xFADF2349, 0xFCE4D5F4, 0x1EFA462E,
+0x03DEDBFA, 0x19230F05, 0x210D061B, 0xFF2327FB, 0xDA21B207, 0x1302ECD6, 0xEF14E93D, 0xE4010D27,
+0xEEE7E942, 0x1B1DF30B, 0x1A180D3F, 0xFF17DAC1, 0x0000F2FA, 0xB1351ADD, 0x4FE626F3, 0x2A12D80E,
+0x1434FEEA, 0x36F2EC0D, 0x42C6F2E7, 0xB8C1E512, 0xE23821E9, 0x0E3B0AF0, 0xFC3E1BEE, 0xB631DB15,
+0x0623DDF8, 0xD81B2306, 0x28B5FFF3, 0xEF270023, 0x1718E9FF, 0x33EB110F, 0x30F0F5ED, 0x1426F8E7,
+0xC727ECFD, 0xB34010FF, 0x3CFFDBE9, 0x44141326, 0x5EA2E4EC, 0x3325CBC9, 0xD8130BFC, 0x0C1E0016,
+0xF92EE4F7, 0x1109DEFA, 0x2632E9E0, 0x520EFEF6, 0x342ED619, 0x3229F4F9, 0x0D0DF700, 0x1D111BE5,
+0x15BC0C18, 0xA728ED1B, 0x54283000, 0x47C32B00, 0xCAEE1FEB, 0x11EEF2E9, 0xC00C1717, 0xB215181C,
+0x030CDA13, 0x480325E4, 0xEDCAE126, 0xD8D915F2, 0x23DAFF01, 0x16240503, 0x374AED04, 0x2904F1DE,
+0x3D3DFF25, 0xB3CF1516, 0xDE0A25F8, 0x3306F9E2, 0xCDB9F622, 0xBCD0F5E0, 0xEC291DF8, 0xA8DE14FE,
+0x07FC2F06, 0xCB3CE0DC, 0xFBC4F213, 0x2ED0DE15, 0x35DEFB08, 0x38C8F305, 0xCF36F010, 0x3ACE0A0E,
+0xEC3A1209, 0x2152EDEF, 0x40440729, 0xCC04E91C, 0x0C56F424, 0xB04A1C2E, 0x28CAD721, 0xCDD8FF0F,
+0xCC1CF400, 0xE6BDF3F3, 0x0F020E1C, 0xFBFD19D9, 0x3DC12326, 0x00D8EA17, 0xCB2ED900, 0x5008F3FA,
+0xEF2B28DF, 0xA726E9FE, 0xEAF5CFFD, 0x3FE4EEE3, 0x3F27180B, 0x3C47EA01, 0xC8B5EBE0, 0xBEC1F023,
+0xD7231A16, 0xE15501FA, 0x40AAF82E, 0x4511E72D, 0xF8DAE317, 0x20030000, 0x0BF7E232, 0x0BF1CDE6,
+0xCFF25835, 0xFAE12DF7, 0xCFEAA613, 0x22FFF928, 0xE8E93FC1, 0xE327BAFE, 0x1E030A24, 0xDFDFFAF8,
+0x06F2D3E6, 0x00FED8D6, 0xE7DFF2F8, 0x10FB39DD, 0xDBD74CB0, 0x072BDEAE, 0x1EE90A11, 0x26DB4DFD,
+0x16E8EEC0, 0x17FEC126, 0xEB03C4DB, 0xFCF924D0, 0xDBD8FC00, 0xE510F3E9, 0xEBF6C4E2, 0xFF2127F8,
+0x0DE335F6, 0xE1E7B840, 0x1724C203, 0x0D23E5FB, 0xFD1ADB0F, 0x2C0C5434, 0x22EEFBC6, 0xDB130316,
+0x1EE60A0F, 0x27E94F3F, 0xF7E21F46, 0xF1D837FF, 0xECFB3B22, 0x330FA638, 0x0CE21CF7, 0x22FFB728,
+0x281AB042, 0xF714CE13, 0x11E0C707, 0x11D9E9FE, 0xD9EBFF3E, 0xF8043023, 0x1C15BCC3, 0xCAC95DA0,
+0x13ECEB15, 0xDFEDB73B, 0x201CF8BD, 0xF033185B, 0x160B12CD, 0x01092631, 0x0E06192D, 0x0E001BD8,
+0xEC0FEC37, 0xE4E143B9, 0xDD2405B4, 0x1EDAF501, 0xEFFF16D6, 0xD8F70130, 0xF1EF3738, 0xFBEB2E3D,
+0x1F0147D6, 0xFAF52EE4, 0x00D92800, 0xE31B440D, 0x02112617, 0xF1DCE6B4, 0x17E3C144, 0xE117B9C1,
+0x10F1E719, 0x0C15E3EE, 0xE315F53C, 0xE5260D4E, 0x02F8DB31, 0xEA14EF3C, 0x4B178DC1, 0xDC070320,
+0x0F1CC8F4, 0xEAFB122D, 0xE71042C8, 0xEBE8EC40, 0x0EEDE6C5, 0xEDEF1618, 0xFFDE2AFA, 0x260B4DCE,
+0xF3D9E600, 0xF816DFC2, 0xEA26EE4E, 0x14F23CCA, 0xD51AAD43, 0x0000133C, 0xFF5116EB, 0xCEF7D9D7,
+0x3EFCF7E2, 0xE13E16DC, 0x39D5F7EA, 0x583312FD, 0x3FEB2FF6, 0x35B3E9EE, 0xDD01F424, 0x26230528,
+0x5EB4FFFB, 0xB91E3623, 0x0AE11E09, 0xF6201F09, 0x4CC6E208, 0x1CBA2413, 0xC4370D1E, 0xD1001310,
+0x35150627, 0x122AF4ED, 0x0BF71502, 0xC618E3E1, 0xF202ED10, 0xF2C31A25, 0xB3F71BEB, 0x2312DB1F,
+0xC20804EA, 0x11FAEBDF, 0xA8DE18DE, 0x28113006, 0xE9CC0016, 0x4021120C, 0xEFC41908, 0xEB51E9EB,
+0x331113D7, 0x5ACBF5E8, 0x10C431F4, 0x0927E914, 0xB403E0FE, 0xFBE925DA, 0x1B24DD10, 0xB43B0CFB,
+0xE7C52413, 0xB94A0F13, 0x1DD7E1DE, 0xE5D10A01, 0xAE560C07, 0x290E292E, 0xF3F3001B, 0x5A131B1B,
+0xB4E0CE15, 0xBAE6DDF7, 0xC801E20D, 0xEEC61028, 0x16F1EB11, 0x2FC5EEE6, 0x4D2FF814, 0x2DB526FA,
+0x15B105DD, 0x2932EDD9, 0x0FD1FEF6, 0x2DD719F9, 0x29F30601, 0x3AFFFFE5, 0x44BFEFDA, 0xA437E5E8,
+0x0E38350F, 0xDF07E510, 0x06AA0821, 0x0052222E, 0xEFEB27D5, 0x1ED11814, 0x0B0E0908, 0x2DA11D1A,
+0xEB3405C9, 0x161C140C, 0xC2FBEF0D, 0x02E8E923, 0xD5BADAF1, 0x24C303E3, 0x374F04EA, 0xE8F10FD8,
+0x21B01118, 0xB536F8D9, 0x3BF1DDF2, 0xFD0012E6, 0x2F4FDB28, 0x0D2CF826, 0xBEBC1C04, 0xC64C1A1B,
+0xC62911DB, 0xF3AAEEFF, 0x40D5E52E, 0xA21C18FC, 0x18ED36F3, 0x00000F15, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
+
+hard_output0 =
+0x7FE75E62, 0xB98D686A, 0x16FBEDEE, 0xB22861F2, 0x0A1180B7, 0x666C4407, 0x1D4C462A, 0xB81A3416,
+0xC6948E41, 0x3CCAE97E, 0x55352D5A, 0x85474DAC, 0xB8DBF013, 0xB9AF7B16, 0xEABEE865, 0x1EB02EF7,
+0xBDE86A3E, 0x24EDAAC9, 0x88A3D4B9, 0x8CA15C44, 0x42487190, 0xF4BF8BFF, 0x05EA0214, 0x4708DC42,
+0x222993B3, 0x24AAA18B, 0x4D49B2EA, 0xBBA8E2B3, 0x40426630, 0x5676818F, 0x1B79CC4B, 0x1595A8CD,
+0x9088385F, 0x351D2A23, 0x0EDC4446, 0x8F17D03E, 0xEA8B3464, 0x8799E718, 0x79E11F5A, 0xE771403F,
+0x38C65263, 0xA969930A, 0x59942FBB, 0x74138F31, 0x80518035, 0xB42D7BE0, 0x0C4A7E00, 0x4ACA8CB5,
+0x76C89CCB, 0xB56F2806, 0x1C8CF4E5, 0xA192BBF1, 0x1139DA94, 0x46B1C7C9, 0x8B630748, 0xA882704B,
+0x69DA8BE2, 0xF2508EA5, 0x05E4AEAF, 0x5AA0A9C8, 0x6177DDCE, 0x8D06A0E1, 0xECD023CA, 0x34FC0800,
+0x5AE69AAD, 0xFE8E2F72, 0x5ED3DC49, 0x8B46EB93, 0xC0C3D55F, 0xAC8C8B89, 0x54A20A93, 0x81F6659B,
+0x412B7086, 0x09D572AB, 0x85891AB0, 0x96DC6C57, 0xD7117C38, 0xFBA06F16, 0x9EAAFCE5, 0x44AD2185,
+0x618D398E, 0xD9AC89E7, 0x031F1D0B, 0xE7D05975, 0x9E500DF3, 0x06BFEF20, 0x42888C91, 0xD6AF7FA6,
+0xC839E4C7, 0x0E7B7724, 0x48693BD9, 0xD17B6519, 0x48004F1A, 0xF5A147D5, 0x521C8AD6, 0x26E19AE7,
+0xAA17116F, 0x7196631D, 0x89643E51, 0x8CE6B02E, 0x128B9CF6, 0x2F45C206, 0x4EB6C731, 0xCFB17835,
+0xCFE85026, 0xA4B9B9B0, 0xD2C152AC, 0xA4F89035, 0x79ED0C5F, 0xBC030479, 0x51D91130, 0x570C019C,
+0x4E0306B7, 0x27978CCD, 0x5F8DA612, 0x33C121FE, 0x4407BB22, 0x6FF06E2F, 0x5D7F378B, 0x491B9A93,
+0xA0BDE688, 0x0EA89618, 0xE91C3661, 0x27C69F6D, 0xC46463FD, 0x67649FE9, 0x8F6E077F, 0x4D456A5F,
+0x396B7218, 0x0C26C824, 0xA4E8FD71, 0xDCA1C865, 0x6F1CC581, 0x97C974D3, 0x38D0F6FC, 0x04190419,
+0xED8C7FC5, 0x794BA619, 0x0090798D, 0x3044F72D, 0xBB77EEEF, 0xF9BCFDE1, 0x2C1580F7, 0xC0292305,
+0x86827E71, 0x356C7D12, 0xA84DBECC, 0xCA53E3D9, 0x236E73F0, 0x9FD2AFBA, 0x652E7A66, 0x744A1147,
+0xBFE9AF5B, 0x59F2552F, 0xBD77D3C0, 0xCD726524, 0x1D56A0FB, 0x85207831, 0xB6F1861B, 0x369CF946,
+0x71CA18BD, 0x5EE3F7CF, 0x2C3FC902, 0x4301214D, 0x53A64F16, 0x2956B34F, 0x3DF40618, 0x41A36C68,
+0xF7BB2B5F, 0x0C5CD46D, 0x3E4354AC, 0xC29AFEF7, 0xC1A310AF, 0xFFEF128F, 0xBE1C8D14, 0x8B123664,
+0x854B7E00, 0xAE175861, 0xE4067FE2, 0xA264F00A, 0x988634EF, 0xEC9E38E7, 0xFE2968A6, 0x2B30719D,
+0xFE3DC88D, 0x09E222C8, 0x6B4F1B50, 0x436C7137, 0x161DFE10, 0xA68C403E, 0x12A2856F, 0xAAB8DFF0
+
+k =
+6144
+
+e =
+10376
+
+iter_max =
+8
+
+iter_min =
+4
+
+expected_iter_count =
+8
+
+ext_scale =
+15
+
+num_maps =
+0
+
+code_block_mode =
+1
+
+op_flags =
+RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE, RTE_BBDEV_TURBO_CRC_TYPE_24B,
+RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN
+
+expected_status =
+OK \ No newline at end of file
diff --git a/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e10376_crc24b_sbd_negllr_low_snr.data b/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e10376_crc24b_sbd_negllr_low_snr.data
new file mode 100644
index 000000000..8ff71aac4
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e10376_crc24b_sbd_negllr_low_snr.data
@@ -0,0 +1,643 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2017 Intel Corporation
+
+op_type =
+RTE_BBDEV_OP_TURBO_DEC
+
+input0 =
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x16000000, 0x081112e9, 0xcd2d1fac, 0xf9fdf4db, 0x110edf1a, 0x0dd9e84f, 0xdbe9e611, 0x0fde0206,
+0x43df19f9, 0x071ee4f7, 0x1f1322c5, 0xd4e5f6f3, 0xe3fafcde, 0xd002f52a, 0x4427f801, 0xbadce403,
+0xce101dc9, 0x09fff729, 0xd5f91f2e, 0xf3f0fee8, 0x4f061cde, 0x4a2b2753, 0x1d24dffb, 0xd3040bdb,
+0xcaf2fbe6, 0x1cd9f350, 0x00fff42a, 0x49d02759, 0x4005de2d, 0xd3fb1923, 0x36cbfc5c, 0x020a0de1,
+0x39072621, 0x3b0defe5, 0xb4ebec13, 0xddee2416, 0x24f206e5, 0xd1e1fcb9, 0x0e150713, 0x21f6191f,
+0x0d0bf9e3, 0xf0061bd2, 0xae2717ff, 0x0de9d740, 0x13031a2b, 0x4c0215d6, 0x4534dc5c, 0xa1f41c1c,
+0x001b3842, 0xeaf83ecf, 0x2519b4be, 0x1d220afb, 0x05162312, 0xee00ea29, 0x25ef4d39, 0x0cc03398,
+0x08f5e0ce, 0xb7e68f43, 0x14f7ec31, 0xe7f5f11e, 0xfd29d6ae, 0x0af133c9, 0x03fdd5db, 0x0bca1d5f,
+0x00172840, 0x061add0e, 0x0516ddee, 0xe10cf735, 0x1709101f, 0xdf0908d0, 0x06fe2dd6, 0x18ed11c6,
+0xd315ac14, 0x06f0d3c8, 0x1ed9474f, 0xef223806, 0x28f3ffe5, 0x0eeb1aee, 0x080de0cb, 0x29f452e4,
+0xdbd702b0, 0x041b2cbd, 0x1df30b34, 0x1927f102, 0x2010b719, 0xf0fde8d5, 0xe9eaef3e, 0xf10b36ce,
+0xdff4fa1b, 0xfd0cd5e4, 0x04f923d0, 0x110f3936, 0x06fe2e26, 0x00e42844, 0x11e839c0, 0x13ecea13,
+0xf621e349, 0xff332600, 0xe604f1f5, 0x0533d425, 0xf240c9f5, 0x0b5933e8, 0xdf1bf931, 0x02c929f2,
+0xeee6eb0f, 0x12a2160f, 0xfdde26ca, 0xf016c8f9, 0xdd03b5ee, 0xe2ee09da, 0xfdf4db17, 0xdb0603e4,
+0xffda2821, 0xf6f9cefd, 0xd5ca5421, 0x12f03af2, 0x182f0fe9, 0x10423808, 0x0c19e41a, 0x27af02f0,
+0xfc14d42a, 0x08c9d114, 0x274700f2, 0xe8c110e1, 0x0e0f19e9, 0xeb58c3e7, 0xe20fbbd1, 0xe52e0e1a,
+0xf145e607, 0xe316bc1d, 0xe3e04511, 0xd93c0009, 0x27db01ed, 0x0a30cd03, 0x23434af8, 0xe13f09e6,
+0xe4d00de9, 0x07202208, 0xdb3ffd07, 0x0955cfea, 0xeae8112c, 0x041324f1, 0x1011e815, 0xf6d01f17,
+0xe5eb0cf9, 0x17be00ee, 0xa2dbeee6, 0xb2e73603, 0x08ebda0f, 0x250fe0ed, 0xe61a0218, 0xf1dbf2f3,
+0x420b18fd, 0xa1e9e5e4, 0xd9e1caf0, 0xe7cffe08, 0xeba8f009, 0xc45213d0, 0x20a1ed29, 0x28fa0737,
+0x1ad900dd, 0x1bc10dfe, 0xab360c18, 0x023bd3f1, 0xacfd2514, 0x4d382c25, 0xf25adbf1, 0x1eda1a32,
+0xf11e0902, 0x23a5e70a, 0x1f32fcce, 0x0ef0f8f5, 0x2029e6e9, 0xdfda0701, 0x1860fafe, 0xd8e5f139,
+0x5612010d, 0xf2572d15, 0xba23192f, 0x2ac1e2fb, 0xe91e02e8, 0x44d2100b, 0x08f9e307, 0x5edddfe0,
+0x240fc906, 0xc1c3fbe7, 0x0f231614, 0xaa111806, 0x1e2d2eea, 0xc6ba0a06, 0xedc9121e, 0x1ffc150e,
+0xd11b0a23, 0xe800f80d, 0x2f27f101, 0x06110638, 0xd01fdef8, 0x15ee0717, 0xba0e131a, 0xcde51f43,
+0xd21df6bc, 0x051006c8, 0x2616ddc3, 0x3ef8fee0, 0xf3cde9a4, 0x3bd81b4f, 0x25001229, 0xf6eb023e,
+0xd81ee3b9, 0x1cecff14, 0x29fef4d9, 0x9f2d0255, 0x121e38f5, 0x18eb16c2, 0x271a1041, 0xf7f700cf,
+0x28f3e1e4, 0x49e90011, 0x4b0fde1a, 0xd9e723f1, 0x0de402bd, 0x261f1b0a, 0xbe0afe1e, 0x0823e606,
+0x3d041f2c, 0xf1f21436, 0xec1ae7f1, 0x02ebebc3, 0x52f1da1a, 0xc9e5d60d, 0xa9dc0e04, 0xc504d22d,
+0x09fd1325, 0x3706e02e, 0x26dc0f4b, 0x2012fe3b, 0xeef109e7, 0xb509161f, 0xf01dde45, 0x13d51853,
+0xc823ebfb, 0x2d23f0fc, 0xcbf6fbcd, 0xd505f22d, 0xee0afd1e, 0xa6e615bd, 0xa020ce07, 0x411937c0,
+0xbcd318ab, 0x2a1d1cf5, 0xc400ff28, 0xe32014f7, 0x2bf30b1b, 0x0e03fc25, 0xe1e41bf3, 0x2f1b0943,
+0x06060721, 0xc601de26, 0xd3faee2e, 0xe51c05bc, 0x0411f4c8, 0xcfe7dcbf, 0x2d12083a, 0x0bedfb3a,
+0x0efc1d2c, 0xca1f1909, 0x13f80e30, 0x3a21eab7, 0x3c2b1252, 0xf2e4140b, 0x2527e5b1, 0x2ffe03d6,
+0x44e4f90b, 0xcf21e449, 0xd8e9f6c2, 0xeef8001f, 0xfb151513, 0x48f9de22, 0x2ad6e0ad, 0xe63602a3,
+0xdae50e0d, 0xe3e5ff0c, 0xc721f449, 0xa0d5efac, 0xe70039d8, 0xc7f71031, 0x2b22eefa, 0xe5fb04d3,
+0x0021f2f9, 0x2bce28a5, 0xdffefa00, 0x1af642e2, 0x1d190bf1, 0xecf515cd, 0x0af4cf34, 0xf406cbd1,
+0x08ebd013, 0x14173b40, 0xe40e0bca, 0x29ff51d9, 0xd303abda, 0xe303f5d5, 0xf6facddf, 0xecef3cc8,
+0x1324ecb4, 0xd213563c, 0xe00ff91a, 0xef121639, 0xf5d2cdaa, 0x1914f013, 0xe80f3fe8, 0xe31c0bbc,
+0xe3d5bcad, 0xe610be38, 0xe72df155, 0x1cef44c7, 0x13ccc5a3, 0xe1e20909, 0xecf2c337, 0xf2fd35da,
+0xe5cd435b, 0xdc1304c5, 0x050722d2, 0x121fea46, 0x36f8a1e1, 0x1223c6fb, 0x18040fd4, 0xef1517ee,
+0xf8e32ff5, 0xf22cc953, 0xfe04d7dc, 0x10e7390e, 0x1ef4091b, 0xdbf2fde6, 0x1afa432e, 0x2211b5e8,
+0x211eb8ba, 0xff1529c4, 0xdaea004e, 0x11e539ed, 0x13b4eaf2, 0xe10af7db, 0x11e9c81e, 0x1eeef6f0,
+0x17b73fea, 0x09c61fde, 0xeefdebef, 0xd92fffdc, 0xd7e05007, 0xfe42d9f8, 0xd2feaae6, 0xf3001cd9,
+0xee12c727, 0xe5d90cea, 0x2c21ac01, 0xe3de0b08, 0x265703fa, 0x1a410d30, 0x2f1f5719, 0xe742bff6,
+0xfc2e23e5, 0x2746b105, 0x262efe1d, 0xe43ff4fb, 0xf01018e9, 0xd9014e18, 0xef043927, 0x23fb0524,
+0x27094e23, 0x19ce41e1, 0xf70a200b, 0x1daff5e3, 0x274eb22a, 0xf612cd26, 0xf903df17, 0xe3f1ba25,
+0xe45bbc18, 0x062a2132, 0x11bfea01, 0xf4fe34e7, 0x0637ddda, 0xede0c510, 0x02022509, 0xfbbf2c26,
+0xeda8c619, 0xecb0edd0, 0xeb00d0d8, 0xf054edf7, 0x0356182c, 0x5fd3252e, 0xd74e3805, 0xc2100026,
+0xe4161517, 0xf106f412, 0x26f219df, 0x440bfde5, 0x1b031d1d, 0xe6c4f325, 0xd349f213, 0x2b0605df,
+0x4bdbfcdf, 0xe32e23fd, 0x49460a07, 0xcff022e3, 0xf9c2f617, 0xdfbc2116, 0xed2f071b, 0xd6a91406,
+0xc33bfe2f, 0xc623eb12, 0xc2d0ee06, 0x243aeb07, 0x1fe8fb13, 0xffc409f0, 0x1ed6d814, 0xde4bf602,
+0x31dcfb22, 0xf5da0afd, 0x0afd1e03, 0x1cc01fdc, 0xf82bf4e8, 0xcccce003, 0xfb0f0df4, 0xd2ff23e8,
+0x0845fbd9, 0x16e821e2, 0xe5c5eef0, 0x14bbf4ec, 0x1cefeb1d, 0xffcd0de9, 0x5bbad90b, 0x0630331d,
+0xf826dd09, 0xc62c2001, 0x00ed12fc, 0x16e8eb40, 0xf3e4120c, 0xc105e52d, 0xca181610, 0xb9e0f149,
+0xfc011f28, 0xfc17233f, 0xc5f12318, 0xea1dedbb, 0x37e91240, 0x47d9f0b2, 0x19271e01, 0x09240ffb,
+0x1edd1f4b, 0x02240ab3, 0xf3e6d90e, 0xfd03e425, 0xb12325b5, 0xb92cd9ac, 0xcee71e41, 0x47fa0bdf,
+0x0fcb1fa3, 0xd406e7de, 0x31defcfa, 0x300af71e, 0xfa0608dd, 0x10e922c1, 0xb2f3e936, 0xf336265e,
+0x0610e517, 0x16e72242, 0xab23134b, 0xbaddd34b, 0x1afee225, 0xfc100d38, 0x44e6dcbe, 0x02ede4c4,
+0xbe19da41, 0x2ff1e6c9, 0xea14f8c3, 0xc21bed0d, 0xac1017e8, 0x35202df8, 0xd9f10dca, 0x03fc02dc,
+0xf2e425bb, 0x29efe5e9, 0x3ce10046, 0x09153000, 0x0b061d2e, 0x1f1a0abe, 0xfb18d2c0, 0x0008d730,
+0xf3071b30, 0x17dfeff9, 0xc5d09da8, 0x23d7fbaf, 0x07e921ee, 0x16e4ee45, 0x1624c304, 0x01f828d0,
+0x20ddb8fb, 0x030325d5, 0x0424d5fc, 0x0216dac3, 0xe5040c23, 0xd71552ec, 0x28ef00e9, 0x16de13fb,
+0x1520edb8, 0x0416db12, 0xdeee07c7, 0x07fc20d4, 0x08fadf2e, 0xf0f639ce, 0x30f0a7e8, 0xef0d39e6,
+0x210d071c, 0xf2f235cb, 0x05192242, 0xd6095130, 0x2605ff2d, 0x19f8bf30, 0x1320eb48, 0xfbd72e51,
+0x01d92701, 0xe127f601, 0xdc0a051f, 0xfdf1dc37, 0x0b0bce1e, 0x09ff1f29, 0x1507c3df, 0xf7e3e1bb,
+0xdb204df8, 0x11e517bd, 0x3004a7dc, 0x0d1300cc, 0xf42134ea, 0xe9b9c1f8, 0x1fbef720, 0x07bcdfe5,
+0xeccf3ce5, 0x17301109, 0xf2b4e6f7, 0x1258c723, 0xdaf84dd0, 0xd507ae1f, 0x011d2a22, 0xfd3f25f5,
+0xfd4edb17, 0xf9cadf26, 0x144dc3f1, 0x09003124, 0xec503b27, 0xfed1d628, 0x0ffbc9f8, 0xf2e619de,
+0xf832dff1, 0xf3d034f5, 0x1dea0b09, 0xe80e0fef, 0xf1dd38e6, 0xf8fce104, 0xde1f07db, 0x06ccdef7,
+0x24554b0c, 0xcde0a6d2, 0xe2e0baf8, 0xeae6ef09, 0xe31b440f, 0xe5c6f3f2, 0xf447ccee, 0x1944f2e1,
+0xe33fbb1b, 0xebad3eea, 0x0b1de32b, 0x0d24e50c, 0x18e711fc, 0x2830b110, 0x14413cf8, 0xe7e7f219,
+0x1c49bc0e, 0x0734e0df, 0xe255f50c, 0x540045d2, 0xe3c0d3e3, 0xef0ff518, 0x34c017e6, 0x052af517,
+0xff4e2402, 0xc4eadada, 0x00d3ed12, 0x4bc727fa, 0xaaf62211, 0x28e1d21e, 0x530a00f7, 0xfd40d5e1,
+0x0dafdbe8, 0x2b0de5d6, 0xc722fce5, 0xca241007, 0xe1eb0efc, 0xfa63f8ee, 0x28dfdec5, 0x07420107,
+0xccf6dfe7, 0xcb1df4e1, 0xd9def40b, 0x47ef0105, 0x1041e0e9, 0xe849e919, 0x27f10fdf, 0xef2c02e7,
+0xe74fe805, 0x4cb7f2d9, 0xe7ee2521, 0xee430f17, 0x5b09161b, 0xdce2cd1f, 0x2343050a, 0xc22c05e5,
+0x5ae7eafc, 0x9749cef1, 0x4dea4221, 0x0e2726ee, 0x24a8e6ff, 0xcc5afcd0, 0xbcd2f432, 0xf514e306,
+0xbd0ee414, 0xc4dbe41b, 0x310a1302, 0x090cf8e2, 0xd5dce11d, 0x1c13fdfb, 0xeacbf515, 0xc5eeeef3,
+0x3027eee9, 0x29420701, 0xc01700e6, 0xc4b7e910, 0xaaebec21, 0x129fd2ee, 0x2ec5eac7, 0x0eecf9ec,
+0xe10b1aec, 0x57b3f7e3, 0x3939d1db, 0xcf42f012, 0x163ef719, 0xd5111217, 0xe92203e9, 0xf13eef05,
+0xece5e6ea, 0x3301ecf4, 0xfff6f527, 0x39ded9e2, 0x110deffa, 0x262fe91a, 0xb7bd0207, 0x39d8dfe4,
+0x0a2e1101, 0x2adf1ef9, 0xe52ffef9, 0xb70ff307, 0x1cdd22e7, 0x2b3bf4fb, 0xe4eb02ec, 0xd80bf4ed,
+0xfebaff1d, 0xcd12271e, 0xfeee0aea, 0xc70726e9, 0x0f4fefdf, 0xd9b6e6da, 0xf5d300df, 0xccbc1dfa,
+0x34270de4, 0xf0d3f400, 0xc649e7fb, 0x18deeede, 0x4d0f0600, 0x2bdf2549, 0x1f07fe21, 0xf0e6f60f,
+0x0c1b1743, 0x0f0a1b1d, 0x46efe7e9, 0x0ae6e242, 0x0ff61f33, 0xae21e84a, 0x500ad6e2, 0xfcddd74b,
+0x4a17ddc2, 0xe9d9dd4f, 0xc7241205, 0xb9e8110f, 0xda111ec7, 0x37e1fe46, 0x39f3f1e5, 0x000512d2,
+0x0e05d92d, 0xfeec193c, 0xf519daf0, 0x1e291d52, 0x362bf652, 0xbce9f311, 0x30fae5d2, 0xe6fcf7db,
+0x36ec0fc4, 0xddfa0f23, 0xf1f605e3, 0x1ed1e857, 0xb9def6b6, 0xc0091ee0, 0xcff1e8ca, 0x3fe5090d,
+0xf3edea15, 0x23111b16, 0x0207fbd2, 0x1d2cdbac, 0xbdf6f6cd, 0x1a311ba8, 0x420af2cd, 0x1bde1ab7,
+0xc512f217, 0x0fe3edbc, 0x1afe19d6, 0x200bf1e3, 0x100900c8, 0xfe1a29f2, 0x12c51663, 0xdfe606f2,
+0xf7ea1f12, 0xf841df96, 0xe2f50a33, 0xe9f5efcd, 0x13fdeb25, 0x2524044d, 0x0d1a35be, 0xfaee23c7,
+0xf0043824, 0xda200108, 0x04f225c9, 0xe101f7d6, 0xf30dcb36, 0x07fb22dd, 0xd1fba92c, 0xdf03f824,
+0xd0efa8e9, 0xf5dd1d05, 0xfe332a5c, 0xf4221bb6, 0xe5ddbdb5, 0x1401c3d9, 0xfc12d33a, 0x1b14bd3b,
+0xddf2fb36, 0xf0e13709, 0x12d9c601, 0x0cf7cce1, 0x1b06bc22, 0x22d6b7ae, 0xf7291eae, 0x15f81321,
+0x1a04f2db, 0xe425f404, 0x05f32435, 0x060f2218, 0x0bd93250, 0x26f9fd20, 0xfe2fd5aa, 0x121deb45,
+0xf6e731bf, 0xf90c2e1d, 0xe9dbc2b3, 0xfb0edd36, 0x1500b93e, 0x281db01e, 0x061ddff5, 0x2712fe0a,
+0x0f461ae9, 0xe32f0b1f, 0xed691507, 0xf61d32bf, 0x0d24e5f5, 0xfae422fd, 0x03d126f4, 0xee0ac6f9,
+0xd8a4b11e, 0xebf51335, 0x15f7c31e, 0x07fd22e1, 0xe40a0cdb, 0xdd04b5e3, 0xd1f25825, 0xec033de6,
+0x12fee925, 0x292051da, 0xdff54af7, 0x34d0a4e3, 0xf53de209, 0xedeceb14, 0x0f4cca13, 0xe3340b25,
+0xf023e90c, 0xf6be32fa, 0x2254fae7, 0x07c1212b, 0x31015816, 0x1bd24227, 0x1438edf9, 0x151f3df0,
+0x02d1270a, 0x0fffc9f9, 0x0d4235da, 0xf638e2e6, 0x241ffc0f, 0x1d380b08, 0x1a93bdf0, 0x1b4f44bb,
+0xfe57da26, 0x24c8fbd1, 0x1112c711, 0x1f3ef6eb, 0x00173116, 0x100311f8, 0xf2dfe7db, 0x292ce5f8,
+0x46e1fffb, 0x45c71ef7, 0x2bc31c11, 0x4abcfceb, 0x00e0dd1c, 0x202628f9, 0x42f2f801, 0x0bb41b1a,
+0x0d16e225, 0xd2f11a12, 0xf6ec06e6, 0x13ef1deb, 0x48c51617, 0x09ff1f13, 0x314b1f28, 0x1ecf0823,
+0xf9adf6f7, 0xd4da222a, 0xef0f0501, 0xe146e8e8, 0xfe4308e1, 0x4803dbe5, 0x21bc2025, 0x0fc5f9e4,
+0xd341e813, 0xa9d9fae6, 0xaaf5d1ff, 0xb546d2e3, 0x12e2221f, 0xbee715f6, 0xd325e60f, 0x1adc05fd,
+0xf533f3fb, 0xf3d0e3f6, 0xcb11e5f7, 0x33fb0ce9, 0xa3be0b23, 0x29b8351a, 0x312f0120, 0xebbb0afa,
+0xc31a12e3, 0x0c47150d, 0x21c21be2, 0xe1570715, 0x19e0082e, 0xc8f2f800, 0x2a0b11cd, 0xcd3001a8,
+0x2f1e0bf7, 0x1909071f, 0x1c15f2ed, 0x4612f53b, 0x40021d27, 0x3108e821, 0x0c1108c7, 0xcd0d1ce4,
+0xe51c0b44, 0xb4ebf412, 0xf1dddc04, 0xd6f7e6e1, 0xc32efe56, 0xfd10ea18, 0xdb2eda55, 0x48ff0329,
+0xe2fce12c, 0xd5f9f5df, 0x2cda04fe, 0xdf0dfdcb, 0xc5e70741, 0xdf16eec2, 0x3ce1faf7, 0xcc0eec35,
+0xfa28f450, 0xf1e72210, 0x451de7f5, 0x4dfde324, 0xfdf3db35, 0x31eadc3d, 0x391c09bc, 0xcc09ee1f,
+0xdaf90dd1, 0xf6e1ff09, 0x22f8e1d0, 0xe70efae5, 0x13faf02e, 0x271e15ba, 0x03df0007, 0x11ff2627,
+0xb8e9173f, 0x38ecdfec, 0xc4ed0f3b, 0xe4d91402, 0xd5010c29, 0x050400d3, 0x1e01ba26, 0xe3390b60,
+0xe11d0a0c, 0x2adaaefe, 0x1222e906, 0x0ff6e7ce, 0xebeb3cc4, 0xfd082b31, 0xf52a1e52, 0xf1dde7b4,
+0x0ee8e6c1, 0x0c2ae352, 0x0df3cbca, 0x131bebf2, 0x23214bf9, 0xd6f5ad1c, 0x21fff8d6, 0xe3e00a48,
+0xf00119d8, 0x03d02ca7, 0xf1fcc92c, 0x0c0b1b1c, 0xf4daccb1, 0x131ac50f, 0xd6295250, 0xe4f6f3e2,
+0xe9f91221, 0xe6e0be49, 0xdcebb5c3, 0x1f1bf8f3, 0x27f6b2e3, 0x1a1c0e45, 0x0504d224, 0x0918e20f,
+0xe4dabb4f, 0x0a001d27, 0xec193b42, 0x08e9d1c2, 0x0c09e51e, 0xff28d700, 0x0d0ae5cf, 0x0704202c,
+0xfce0d408, 0x0c0b341e, 0x27ee00ea, 0x1206c7d1, 0x1000e9d8, 0xf8000830, 0xe334f5e1, 0x0bc81ef4,
+0xeed33b10, 0x280050fb, 0x02d1d928, 0x0e3be608, 0xdc130412, 0xf6ffceea, 0x03142a28, 0xfeea2aec,
+0xfdc4d613, 0xf1151aed, 0x1425c4ee, 0xfdd0db04, 0x10df1807, 0x0af7cd07, 0x20c108e2, 0xf61bce17,
+0xe6e6f10e, 0x03d0da0e, 0x20edf808, 0x37dc60eb, 0x1bfd0e04, 0x18b73f24, 0xe8f91021, 0x0ed31ade,
+0x1fe50afc, 0x07e020f3, 0x0c2ccb07, 0xedd91405, 0xf700e202, 0xdce903d9, 0xf4b31c12, 0xfcbbd425,
+0x08d431e2, 0x1f00b905, 0xd04158d9, 0xd2acabe8, 0x18e911d3, 0xedca3c12, 0xe467bb0f, 0xd9c350c2,
+0x00c12816, 0x082220e9, 0xfe692bfa, 0xfc322cc0, 0x0d1ae5f5, 0x1de446f2, 0xe136b80d, 0xf2001af2,
+0x1be3bdd8, 0x013e29f4, 0x272301ea, 0x0a021f04, 0x22d1b5da, 0xedafecfa, 0xf958d0d8, 0xb1f48ad1,
+0xf816d01b, 0xe7caf2ee, 0xf7e11ef1, 0x0ae31df7, 0x0feb180b, 0xece61513, 0x3f10670e, 0x0baa1c17,
+0xf233e6d2, 0xce46a7f5, 0xe6c642e2, 0x033225ee, 0x0b3de20a, 0x00f7d814, 0xf8cccf20, 0xe2ee0bf4,
+0xd93601ea, 0xefdf3a0e, 0x2202fb07, 0xe5c70c25, 0x01da29ee, 0xf8182101, 0xdef7b610, 0xeb0aed1e,
+0x0017d8e2, 0x2fa4a9ef, 0x0c25cd35, 0x05f62304, 0x08e7e01f, 0xe11409f2, 0xf5e81ded, 0xeefeeb10,
+0xfe122b25, 0xe9153f16, 0xe34f44ed, 0x1cca0c27, 0xf3dbcb0e, 0x08c231fc, 0xe2cfea00, 0xf031f5f7,
+0xc7e91809, 0xdfe5ef10, 0x1234fa0e, 0xee28ea0c, 0xc6061700, 0xccb8eede, 0xed190b20, 0x21441510,
+0xb1e007e5, 0xe1c7d9f9, 0xcacbf611, 0x3acb0f0c, 0xd7e4110d, 0x41c2010c, 0xef0418ea, 0xffc917dc,
+0xc7e4270f, 0x40e3eff5, 0xaf4c19f6, 0x413f28db, 0x2e12e616, 0xd1e6fbeb, 0x1008f80f, 0x070719e0,
+0xbdebdfde, 0x16f31b12, 0x2e1c12e6, 0x41eafaf4, 0xccc7e6ef, 0x26ff0bef, 0xc201fed9, 0xe733ead8,
+0x373cf10a, 0xfdd5f213, 0xe1dcdcfc, 0xa9400904, 0xe432d018, 0x15340c0a, 0xcd3aedf4, 0x24210cef,
+0x02d90407, 0x43c827ff, 0x27341c11, 0x1226fef4, 0x192cebfe, 0x280cf204, 0x96ff00e4, 0xb5dd4204,
+0x1a2adc52, 0x1bf00ec8, 0x1d07f320, 0x09ed0a15, 0xb5e3200a, 0x12f7de1f, 0xe915eaee, 0x3bf11219,
+0x3df1ec19, 0xe3ecec13, 0x1ce6f543, 0x0d18f4ef, 0x21ea1a13, 0xc8f507ce, 0x22e511be, 0x0b1cfaf3,
+0xcfe8e3f0, 0xc104f6dc, 0x301817f0, 0xb825084d, 0x3fe920c2, 0xeff3171a, 0xc7e01809, 0x2efc10d3,
+0xb602f92b, 0xdecb215c, 0x0d13053c, 0x3908e5d1, 0xb5efefc7, 0x44e0dcb9, 0xe8161def, 0x1de8f040,
+0x2f140b3c, 0xc5ec07ec, 0xd403ed25, 0x0aeefce9, 0xd412e23b, 0xf4f804e0, 0xf218e5c1, 0xca17e612,
+0xc5050ed3, 0x1afc142b, 0x2e2c0dab, 0x39ecfb13, 0x1de6100e, 0xf81ef4ba, 0xf600211d, 0x12c03968,
+0xe8f90f2e, 0xfbe42c44, 0x260bfee3, 0x051b22be, 0xe50842df, 0xfef6d632, 0x130514d3, 0xe6def24a,
+0x09213107, 0xdfddfa05, 0x0418d310, 0xf00739d1, 0x0afa1ed3, 0x1bfff4d7, 0xfddc2b4c, 0xf1e0c9b8,
+0x04e1d4f6, 0xd423acb5, 0x320c5b1b, 0x160eefcb, 0xe11347ec, 0xedfc16d4, 0x10f8c7e0, 0x220e4ae6,
+0xf0f5c834, 0x272002f8, 0xdf0df9cb, 0xe02ff8a9, 0xd7df5106, 0x152512b2, 0x02fe2bd6, 0x1707112f,
+0x2519b2bf, 0x051e2eba, 0x0bdbcefd, 0xf1eae8c2, 0x08dee007, 0x02142b3c, 0x001628ef, 0xe21fb9f6,
+0xe0e9f7c1, 0x31ed593c, 0xe4ff442a, 0x16e1c247, 0xe6e3be0b, 0xdbfc0324, 0x001110c7, 0xda2affe8,
+0x05b6d302, 0xf94a2023, 0xe5350dde, 0x1ee0f60d, 0x282a00f8, 0x28ba50ff, 0x08e5211f, 0xf1f8190d,
+0xd5abad20, 0x16fbc22c, 0xf8cc1fdd, 0xda1efe0d, 0xeb0ec3f5, 0x014c26e7, 0xf0e118dc, 0x1d11bb08,
+0xe4bc44e8, 0xd4d0541d, 0xe43a44f8, 0x28445112, 0xdae0fde5, 0x13e3c6f8, 0xe11b09f4, 0x2ad2520d,
+0xef59eafb, 0x1dcaf530, 0xde4d06f2, 0xf617e325, 0xf3c5e512, 0xf4b1cc13, 0xf91d2128, 0xd8affff4,
+0xe54d43d8, 0x1a060fdc, 0xe7c3be22, 0x2441b415, 0xf3171a19, 0x180ff011, 0x30e4a919, 0xfaed2ff4,
+0xd54253ec, 0xe7df0e1a, 0x232afa08, 0xe9f7effe, 0x1cb5f31f, 0xf4083422, 0xdfd4b620, 0x2223fc00,
+0xddcf06fb, 0x6cc004f8, 0x041c4418, 0x4b04230d, 0xc6f92225, 0xf61aee22, 0xba001d0d, 0x06c3e2d9,
+0xd5c2dd15, 0x240ffde9, 0x405a0319, 0xe3a01731, 0xde3c0b37, 0x2206faeb, 0x27fcfb22, 0x33af00dc,
+0x3ba60a29, 0x2cc913cd, 0x4ef505f1, 0xccbbda1c, 0x203df4e2, 0xe407f815, 0x1a15f321, 0x18d30eed,
+0x2d1f10fa, 0x3c47fb09, 0x3cf9eb1e, 0x4cf114e0, 0x0caadde6, 0x594ee5d2, 0x1ed6d026, 0x2229f602,
+0x18f4faff, 0xddf5f0e4, 0xaf07fae3, 0xdc0fd8df, 0x14c3fce7, 0xf2d2edea, 0xb106e6fb, 0xdb0ada22,
+0xc6bdfce1, 0xcdf111e4, 0x1dcf0ae7, 0x27c4f6f7, 0xe5e5ffeb, 0x20380d0c, 0x4b3e070f, 0x322300e9,
+0xede80a0f, 0x65f7ebe0, 0xcbddc306, 0x572b0d53, 0xb0082f2f, 0x5d0729e0, 0xbf0f3537, 0x18c2199a,
+0x57e3110c, 0x4512d23b, 0x18f01e17, 0xf9f3f11a, 0xc6f1df37, 0xeae1ef47, 0x0df111c9, 0x19fce6d4,
+0xd3f90fd2, 0x08f70520, 0x15f4e0cc, 0xefff12d8, 0xaee6ea0f, 0xc1db2afd, 0x1cdaeab3, 0xbe0bf433,
+0xe6e01b47, 0x5503f125, 0x30fbd422, 0x3723f7b4, 0xcb1510c3, 0x09fdf4d5, 0xeeee1e39, 0x0ae7ebc0,
+0x02d81d00, 0xbc33db5a, 0xc501e429, 0x12e0edb8, 0x03f1eac8, 0xf0eb25c4, 0x09e4e7bd, 0xd71de0f6,
+0xc8ee0017, 0xdf00f0d9, 0x4209f8e2, 0x3100e6d8, 0xe2190942, 0xd5070921, 0x0b0c02e3, 0xee00e4c7,
+0xf5eaceef, 0x2011f7e9, 0xdf1106c7, 0xfede29fa, 0x1c1f0d0a, 0x1f0d08e6, 0x0d2ccc54, 0xf6e61df3,
+0x121f1647, 0x1610c3c8, 0xded7b6af, 0x1ef8f61f, 0xf9172ef0, 0x391f60f7, 0xf3ebcced, 0x273050a9,
+0x1305ebd3, 0x16221206, 0x12e5c6f4, 0x0006d822, 0xecfa152f, 0xf9f92f2e, 0x1fe2470b, 0x2425fc4e,
+0x33285cb1, 0x070430d3, 0xe421bd48, 0xede1c5b9, 0xf4ea1c12, 0xe1c809a1, 0xfa05d223, 0xedf83a2f,
+0xc4259d03, 0x1f180810, 0xdb10fee8, 0x11daeab2, 0xec2614fe, 0xb31e74ba, 0x14143b14, 0x07ff2fd7,
+0xfb23d305, 0x25fffcda, 0xe7dbbefe, 0x13e43abc, 0x070c301c, 0xff0726d1, 0x16dc3eb3, 0x04ee2dc6,
+0xdeff05d7, 0xf8dfd0fa, 0xde13fb15, 0x0b1acebe, 0xe2f1f6e6, 0xee1d3a0b, 0x3003572b, 0xf9d32fab,
+0x0420ddb8, 0xcef05919, 0xd126a9b2, 0xdac9fda1, 0xe0ee083a, 0x30e259ba, 0xecf1ed19, 0xd0da58fe,
+0x071f2e46, 0xe2da4602, 0xf3cecba5, 0xd8e20045, 0x18d6ef53, 0x11dbe9b3, 0x1819c00e, 0x09f930e0,
+0xf2183640, 0x250bfd1e, 0xcae3a2bb, 0x17d13fa8, 0xefe6c8bf, 0x1ff8f620, 0xfaee22c7, 0x0afdce25,
+0xd9010029, 0x1727c2ff, 0xf2221bf9, 0xd8e10147, 0x0726224d, 0xe0ea4811, 0x1a2e0ea9, 0x0d3635a3,
+0xf0f1e7e8, 0x0c0234d9, 0x0ef8c920, 0xecf4151d, 0xe817c112, 0x0e0637dd, 0xddf305cb, 0x16e2ef0b,
+0xf1c10000, 0xfd2ce717, 0x092ada04, 0xb929e202, 0x2902e1ff, 0xcecaff25, 0xd23c09f2, 0xee2107eb,
+0xd9c0e908, 0xd3bc0018, 0xb3bc051d, 0x29ab261b, 0x0b0bff2c, 0xdf5ae41c, 0xe6ef07cf, 0x2ea10fea,
+0x1db5fac8, 0x083a0cde, 0x4ff5e1ee, 0x4643281c, 0x08dee1e6, 0x1a0e1ffa, 0x2a30f11b, 0x0b4a02f8,
+0xe1f5e321, 0xf5eaf71e, 0x21e3e312, 0xccfffaf6, 0x3932f5d8, 0xe3efeff5, 0x314df518, 0xbdc709db,
+0x1336e5ef, 0xeb2bec0d, 0xc4a6ec02, 0xe3b2eccf, 0x33210b27, 0x1a2b0a08, 0xb536f304, 0x51f7def2,
+0xa946d6e1, 0x0f1fd2e2, 0xd5cee6f8, 0xe60303f5, 0xdc25f225, 0xab360303, 0xd9aa2c0f, 0x30f9ffd2,
+0x611ff8e0, 0xc6fa3909, 0x33241323, 0x023ff505, 0xc3f827e8, 0x1601ebdf, 0x35d91228, 0x0cf70d01,
+0xbc271ce1, 0xbae8e400, 0xed09e310, 0x13ec16e2, 0xbffb1513, 0x3452e724, 0xff010cd7, 0x53ddd9d8,
+0x18da2cfc, 0x3b28f102, 0x1ae1ed00, 0x051c0ff7, 0xe16b23f4, 0xfb4f0844, 0x091fdcd8, 0xbea1e109,
+0xbcdc1a36, 0xd908e5fc, 0xd7f301e1, 0xbd1d02e5, 0x2319e5f4, 0xed0cfbf0, 0xed46eae5, 0x3442ebe2,
+0x0323f4e6, 0xd62a25fb, 0xbec7fd03, 0x3841e6ee, 0xd3cc1018, 0x4d06faf4, 0x31422521, 0x15b1f8e7,
+0x354b12d9, 0xe3ca0dde, 0x1fd30cf1, 0x25ddf705, 0xf5e8fdfb, 0x0a121df0, 0x5bc81e17, 0xd8e8cdef,
+0x000000f1, 0xdfec4a13, 0x0d1e1cba, 0x0ff918d1, 0x00de274a, 0x07242105, 0xe5030cd4, 0xe0f40734,
+0xee02ead7, 0x15dc3d4d, 0x0de3cc46, 0xe817f1ee, 0xfbe3d40b, 0x0d09cbe2, 0xd22256b6, 0x1904bf2d,
+0xea17ee10, 0xe019f842, 0x15ebc33d, 0x39ef6217, 0xe6f8f1df, 0xf1001ad8, 0x1cf90dde, 0x19e40fbc,
+0xe9e6ef0e, 0x0103d72a, 0xeffe3929, 0xf7d83151, 0x11273901, 0x28fdb0dc, 0x07f22f36, 0xddddb505,
+0xe0e3f8ba, 0xf3dc354d, 0xe613f1eb, 0x09f4e2e3, 0xe70df1cc, 0x28d950b1, 0x001128e9, 0xfe312658,
+0xf624cdb5, 0xee1217eb, 0x1ac04268, 0xd414ab15, 0x0d191b0f, 0x0e021b26, 0xe10cba1b, 0xfc09d4cf,
+0x1b2b0c53, 0x0be8343f, 0x04d92c01, 0x01f4d733, 0x0d01cad8, 0x16f2121b, 0xddebfbc4, 0xdff2fa37,
+0x1dea0bee, 0x1b0cf4cd, 0x2ff7a9cf, 0x13da15fd, 0x35fb5c2d, 0x0b0fcd36, 0x0e19ca40, 0xef1e380b,
+0x0303d5db, 0x02fdda24, 0xe30845e0, 0x14fc1424, 0xeef115ca, 0x04e5d40e, 0xde2bfaad, 0x2ddaaaff,
+0xf2e91a3e, 0xd51e530b, 0xdde405f3, 0xd908b11f, 0x0fe0c807, 0xecf0c318, 0x20064723, 0xf814d03c,
+0xe9081120, 0xe0f808cf, 0xdbf4b235, 0xfdf225e6, 0x10da19fd, 0x170fef19, 0xedc53a64, 0xea133e16,
+0x1725effd, 0xe4fbbcdc, 0x0208dadf, 0x1ff50933, 0xf706d0d2, 0x0901cfd6, 0x130515d2, 0x1e1e0909,
+0xe01247e9, 0xbe3f0000, 0x35dbe517, 0xdfcd0d03, 0xff29f9f5, 0xb0c0d900, 0x30eed8e7, 0xdabff816,
+0xaa4203e7, 0xd9f62f19, 0x5453ff1d, 0xdbd32bd6, 0xec07fd06, 0xeedd14df, 0x462debfc, 0x173e1d04,
+0xe423efea, 0x4f6cf505, 0xd701da45, 0xb13602d9, 0xa2fd28f3, 0xeec7c9dc, 0xfae21610, 0xd4c9de0a,
+0xd5db04f0, 0x1503fd03, 0x0360eddb, 0x2abf2639, 0x34fdfde7, 0x462bf5dc, 0x3c1f1e04, 0x1d04ec09,
+0xbdd20cdd, 0x1c561a06, 0xfb1d0c2e, 0x19b824f6, 0xd1f4f120, 0xbe23061b, 0x1dcb1bfb, 0x22f10cf4,
+0xc5f8fa18, 0x5227ec20, 0x33d1d501, 0x03caf6f8, 0xd3fc260d, 0xb9150523, 0x5811e114, 0x211bd0e8,
+0xcd1d08f2, 0x44c2f50b, 0xf3d6e417, 0x0535e5ff, 0xfbccddf2, 0xc102def4, 0xf5d01825, 0xfb27e207,
+0xeff62300, 0x3a1417e1, 0x17b6efec, 0xddd9ef23, 0x2ddefb02, 0x0a2bfbfb, 0xfb561e03, 0x2ceedd2e,
+0x17f50416, 0xc4f3efe3, 0xb9e2ece5, 0xe3e71f0b, 0x47e5f4f1, 0xebdbe1f3, 0xe4e514fc, 0xfc280c0d,
+0xfdbb2501, 0x0508251c, 0x0d0add1f, 0xcb201b1e, 0x2e480df9, 0xf3f2061f, 0xc7181b19, 0xe42310f0,
+0x32b3f4fc, 0xe5c70b26, 0x1ceef3ee, 0x3def0d16, 0x2309ec18, 0x3544fb1e, 0x5050f3e5, 0x000d29d9,
+0xef5b271a, 0x57b0ea33, 0xecc6d0d7, 0xd619ecee, 0xc60101f2, 0x3954efd9, 0xf2db11d4, 0xf7b31afc,
+0x433d20da, 0x0000e515, 0x06f5d234, 0xdef0b6c8, 0xed1dc4f4, 0xe8fef126, 0xe215bb3d, 0x14fcedd5,
+0x0deb1aed, 0xe528f2b0, 0xe0e84840, 0xdd1ab542, 0xe91ec10b, 0xe11ff648, 0xbf0968e0, 0x0ddccab5,
+0x0b1ae30e, 0xe6020ed7, 0x07f42f33, 0xf4e91cef, 0xfbe9d3c0, 0x24e4fb44, 0x12fa162f, 0xe9063f21,
+0x01f6d931, 0x22f806df, 0x1d04f423, 0xdffc4923, 0xe4eff3c8, 0x190af11e, 0x18f4111c, 0x170311da,
+0x16f73e20, 0xdbcb04a2, 0x0dfc1bdc, 0xedf43a1d, 0x10cfc8a6, 0xfb402d68, 0xf2273500, 0x21fc4a24,
+0xfae2d345, 0xe7001028, 0xeaf1ed36, 0x00f329e6, 0x0d1234c6, 0xdf27f8ff, 0xecf8eb20, 0x09f432e5,
+0x0bfacdde, 0xeffbe9de, 0x14e73c40, 0x2007f821, 0xe005b9dc, 0xeafe3eda, 0x0701d0d7, 0x29015027,
+0xe9fdee24, 0xe31ff408, 0x24244db4, 0x03f5dcce, 0xf3151c3c, 0xf5da1e01, 0xe01b0843, 0x02db2b4c,
+0xdcf34c35, 0x07f620e1, 0xf40e1b19, 0x0cffcc27, 0xf9112ec8, 0x3c0e9bca, 0x1615123e, 0xf7ddcf04,
+0xfe0326da, 0x2a26524d, 0x09031fd4, 0xe6dc0dfd, 0xfbf32ecb, 0x18121115, 0x231d050a, 0x011a2abe,
+0xfc0bdc34, 0x0a0632d1, 0xe3dabbb2, 0xeee2c60a, 0x11eae9ee, 0x031ad6bd, 0xf6131e3a, 0x0d22cbb6,
+0x13103c18, 0xf5161c3e, 0xf01ae8f2, 0xf306e42d, 0xed04c623, 0xf1211a08, 0xdbf34d34, 0xe9e6eff2,
+0xd90db1cb, 0x0aedcf3b, 0x3f110000, 0x2dffe818, 0x20fbfbda, 0x08fc07dd, 0xd6182025, 0x9d27fff0,
+0xb5e63c01, 0x295323f2, 0x06d401d5, 0xa0ee22fd, 0x15ec3816, 0xba24ed14, 0xe13be1fb, 0x39360aed,
+0xb60f10f3, 0x15e2dee7, 0x174aedf6, 0x1146ee22, 0xee16171e, 0xed1d1512, 0xd7fdec0b, 0x110200db,
+0xfb5116db, 0xf50923d8, 0xd7bae3e1, 0xc960021e, 0x14400e38, 0x33d01419, 0xc737f407, 0xdc6011f0,
+0xebfd05c8, 0x120ced25, 0x0845e9e4, 0xfaf620e3, 0x394923e1, 0x5217efde, 0xc1c8d6ef, 0x030fe810,
+0xf418db19, 0x0ff3e510, 0x0ec7e71c, 0xfbaae5ef, 0x27c823d2, 0xc3c6ff0f, 0x0ed0ecef, 0xbbd11b07,
+0xb8411cf8, 0x42e6e1e7, 0xafcee50e, 0x29bdd8f7, 0x4cf6ff1b, 0xefe2dc1e, 0xc518e9f5, 0xc313ec10,
+0x0ccfea14, 0xba27e309, 0x0c9ae201, 0x19d31bc3, 0x4aec0e06, 0xfa0e23ec, 0xeac5211b, 0xe9281313,
+0xdd711101, 0xed41fab7, 0xbb2f14e7, 0xd6a1e4fa, 0xb6b3fec9, 0xd0b32324, 0xcbdbf8db, 0x4fb60cfc,
+0x3503d9df, 0x06c3f225, 0xd2c7de15, 0xbefff9ef, 0x0aec1ada, 0xbe401eec, 0xc92fe519, 0xb6bf0ff9,
+0xddbcde1a, 0x2047fb1b, 0xcbbaf91f, 0xa7fdf3e2, 0x30eed025, 0x435b07e9, 0x2efc1b34, 0x0ac70723,
+0xbefce311, 0x4ca719dd, 0x1d04db31, 0xead20a24, 0x2a5b12fa, 0xc613ffce, 0xb52c12ea, 0x03bd23fc,
+0xc9b9dc1b, 0xd0e40e1f, 0x000007f4, 0x0cde354a, 0xd2dcaafc, 0x21d908fe, 0x1bf5f3ce, 0xe40d0d1a,
+0xcd06a42f, 0x0fe7180f, 0xda0c4e35, 0xfe28db00, 0x13efc5e9, 0x08032024, 0xff35275d, 0x22eeb639,
+0xeb2bc3ad, 0xe9ec3e14, 0x2523fd06, 0x06f3d1cc, 0xdb2903b0, 0x0fdfc8f9, 0x18e50ff4, 0x0efbcb2e,
+0x11fae8d3, 0x33e4a545, 0xe22af6ae, 0x1f10ba38, 0xe30bf633, 0x0c06e322, 0x0eeb1b3e, 0x09f1cf18,
+0x10ef1939, 0xe9f21036, 0xee17e9c2, 0x1aec0f13, 0xeff4ea1c, 0x16dbedb4, 0x03eb253d, 0x1400c5d9,
+0xfd00db28, 0xdcda03b2, 0xcdff5a28, 0x0bd6ceae, 0x24f8fbd0, 0xfdecd5c4, 0xdfe4faf3, 0x0cedccec,
+0x0807e030, 0xf6213208, 0xebdfc208, 0xf312cbea, 0x1d21ba49, 0x03f02517, 0xda0e4ee6, 0x14ed3dea,
+0x090ae132, 0xfdefd5c7, 0xe019f9f2, 0xf4121dc7, 0xe7febfda, 0x27ee0116, 0x18fbbf23, 0xff04d625,
+0x252d4eab, 0x271d000c, 0xf8ed3116, 0x2009f831, 0x1b17bd3f, 0x201209c6, 0x2af95220, 0xee0816d0,
+0xd6e352bc, 0x240f04e6, 0xf21d19f6, 0xf41b1cf3, 0x171b3ff4, 0x0c26cd4e, 0xfe05d6d4, 0x021dd7f5,
+0x22cf4a59, 0x14efec39, 0x1c0abbce, 0x12d3c655, 0xe8fb4023, 0x07e82fc1, 0xdae6b30e, 0x1d0af5e1,
+0x27f0ffc8, 0x01ed29eb, 0xe625be02, 0xdfe2490b, 0xf11c1945, 0xca21a1f9, 0xe91810c0, 0x20190842,
+0xf1fec929, 0xe2e9b9ef, 0xe814c0c4, 0x6d0c0000, 0x14d0451b, 0x11aeebf8, 0x393d16d6, 0xa9dbeeec,
+0xdbf7d103, 0xa45e0320, 0x1ab1cbc9, 0x0b25f2d9, 0xbf111e02, 0x2b2e1818, 0xb2000305, 0x1608dbd8,
+0x210e1220, 0xfdf1fa1b, 0x2d9e2519, 0x01d0fcc7, 0xd5b8d9f8, 0x08d603df, 0xce25e0fe, 0xea000a03,
+0x234b12d9, 0xe72ffa23, 0xedf00efa, 0x361614e9, 0x2c3a0e13, 0xe114fd11, 0x2a3a0915, 0xbfe3fdef,
+0xd95a180b, 0xbd20fece, 0xbd391c07, 0x610de4ee, 0xbb0d38e4, 0xee08e4e5, 0x10fe1720, 0x2f0fe8d9,
+0xc92af919, 0xdf24f001, 0x64f0f9fc, 0x1551c317, 0xccf61229, 0xbd39f41e, 0xe9ece511, 0xf9f21214,
+0x1dc5e01a, 0x3ac00aec, 0xbf1012e8, 0x2f00e8e8, 0xdffc07d9, 0x1477f9dc, 0x0c301450, 0xfb0d1cf9,
+0xd92ddd1b, 0x43df0006, 0xcc541cf9, 0x0de40d2d, 0x043c1b0b, 0x48ec24eb, 0xcc27e0eb, 0x2ea1f401,
+0x02e00536, 0xec2c25f7, 0x380dec04, 0xe9faf01c, 0xb01b10de, 0x41f527f3, 0x31a6191c, 0xdfeef6ce,
+0x4632f916, 0x2a2c1ef6, 0xff17fefb, 0x3fc2d9ef, 0xc3e717eb, 0xe70915f2, 0xc7110fe1, 0xe9caf0e9,
+0x3a26eff2, 0x44361301, 0x40f11b0e, 0xedc81818, 0x09d8ebf1, 0x2013e2ff, 0x35ccf8eb, 0xaa2c0ef4,
+0xb033d2fd, 0x03dd280b, 0xd0d926fa, 0x4203f7ff, 0xcff31a25, 0xe8cef7e5, 0x403ef00a, 0x0bd8e817,
+0x30251d00, 0xaa10f8fd, 0x3ea7d218, 0xa708e9ce, 0xdde231e0, 0xc3e5040a, 0xeda7140d, 0xb51715cf,
+0xd2dc22f0, 0xedb70603, 0xfc19ecdf, 0xb2e2ddf1, 0x1e06d90b, 0x28ee0a21, 0xb3c90117, 0x21212510,
+0x31b8f8f8, 0xeae0f8df, 0x48bbeef7, 0xd20e20e2, 0xd029f9e6, 0xdd01f9ff, 0x0726fa27, 0x3a0edf01,
+0x160ced1a, 0x1cb412e3, 0xd24c0b23, 0x01b50624, 0xe1e526dd, 0x321ef7f3, 0x200e0af5, 0x362bf819,
+0x04130efd, 0x1af72315, 0xc7f3f31f, 0x2ad8f0e4, 0x47f1fe00, 0xa9411fe6, 0x0be92ee7, 0x1f2be4ef,
+0x14c30804, 0x5c1214ea, 0xf1cd34ea, 0x5535e7f5, 0x3410d30e, 0xfa2e0c18, 0x4218defa, 0xbcbd19f0,
+0xe6fd1c1c, 0xf5fe0eda, 0xf5e0e426, 0xb1041d08, 0xbf06da24, 0xc0d41823, 0xcfaae8fc, 0x25b0f82e,
+0xd9d5fc29, 0xc8ccff02, 0xf04cf00b, 0x32d0e725, 0xda090af9, 0x5604ff1f, 0x2fef2edd, 0xdce2f818,
+0x1fd30409, 0x4c300afb, 0xe018dcf8, 0xb54308f1, 0x281fdde5, 0xc202fff8, 0x3ca11525, 0xc241ecc9,
+0xc06d15e7, 0xc11ce8bb, 0xf51a180c, 0xb43b1cf2, 0xcd2b2413, 0xefd3f4fc, 0x3e30e8fb, 0x43df1708,
+0xd44ae4fa, 0xe912fd22, 0xeb16eee9, 0xe1aa12ee, 0xe2be0a2e, 0x24f90a19, 0x02b1fbdf, 0x4f33d9d9,
+0x1fe4280c, 0x0336f60c, 0x09bc250e, 0x2b36e11d, 0xf2fffd0e, 0xfd33e727, 0xd2ecdb0c, 0xebdc0614,
+0x16ec13fb, 0x2427ee15, 0x0a5d03ff, 0x2f0a1e36, 0x08e20000, 0xe0eaf813, 0xfe1c2bf5, 0x300c57cc,
+0x13e8c510, 0xe2e50a43, 0x0cdd35fa, 0x040f2c37, 0x0001d828, 0x4404932d, 0xdaddfe4c, 0x012d29ab,
+0xee1ec6ba, 0x1b0ef236, 0x16f6121e, 0xd4faab2d, 0xe9e5eef3, 0xe80d4035, 0xe5f642ce, 0xd8010028,
+0x141d3c0c, 0xe7110fe9, 0x14eac5ee, 0xed1c3af3, 0xd616523f, 0xdef7facf, 0xf2e01b47, 0x2211fa16,
+0x290cb033, 0x29e05007, 0x300d58e5, 0xf82b30ad, 0xf01c370d, 0xd4ebadc4, 0x080c1fe5, 0x1324eb4c,
+0xec13c5eb, 0x08fbcfdc, 0xe8ff4029, 0x08e920ee, 0x02fddb2b, 0xf20ce6cd, 0xe6184140, 0xfd1624c2,
+0x27f0b0e8, 0x1b15423d, 0x151c3d0b, 0x21e0f9f7, 0x16e1c148, 0x11161812, 0x0b0e3435, 0x07fb20dd,
+0xe30045d7, 0xebecc33c, 0xe10b471d, 0x1ceb0cc3, 0xf020e809, 0xf412e53a, 0xe905c124, 0x2eef56c7,
+0x10dbc804, 0x13181541, 0x0913cfc5, 0x0be3cef4, 0x34ed5dc5, 0xff10da37, 0xd827ff4f, 0x11d81701,
+0x13e81540, 0xcddd5a04, 0x090ce233, 0x22db49fd, 0x3d09651f, 0xf5edcc3b, 0x25224c06, 0xf7c8e15f,
+0x190dc0e4, 0xf81fe009, 0x08272fb1, 0xec11c417, 0xefe7e9f2, 0x13e1eab9, 0xe6fdf325, 0xf1f01918,
+0x0c27cb01, 0x0e0d36e6, 0x1a0bbf1c, 0x1122c649, 0x0020d9b8, 0x2120f9f9, 0xd50f531a, 0xdbeeb416,
+0xf0fdc9d5, 0x1ee20bf6, 0x24ebfcec, 0xebf1c31a, 0x00003030, 0xd1570709, 0x5a3707d1, 0x482033f1,
+0xfb262008, 0xb8fddcfd, 0x33301fdb, 0x39fff4f8, 0xf9ac11d8, 0x0115e0d4, 0x0401d814, 0xda3323d8,
+0xc72803f5, 0x0bba1100, 0x48e11de2, 0xe81f1f09, 0xfe3af00a, 0xd105da12, 0xacc1fa23, 0x1bc92d16,
+0x05f90cf1, 0x49f52421, 0x35e6211d, 0xe52f0df3, 0xdf50f3f9, 0xf6c3f9d8, 0xf3df1e15, 0xc45e1bf8,
+0xf9c6ebcb, 0x07ec2111, 0xace8dfed, 0xc606d311, 0x3f161223, 0x3e071712, 0x5e3ae9de, 0xdef5c912,
+0x34fcfae2, 0xd0e9f525, 0x0431f9ee, 0xc2bdddf6, 0x0aee161b, 0x0827e217, 0xdf322001, 0xcfbd06f5,
+0xe0daf71c, 0xde3bf802, 0xe11c0613, 0x013ff7f3, 0x1df1d917, 0x46ecf419, 0x40d41e15, 0xd22618fb,
+0xa1360702, 0x1d25c8f3, 0xe0310a04, 0x0939f8f7, 0xe8a51e11, 0x1fbe10cd, 0x4126091b, 0x3c2ee6fe,
+0xdae21406, 0x2624fff6, 0x37380205, 0xb4db0ff1, 0xfddd2504, 0xe51eda05, 0x09c1f30a, 0x15f420e9,
+0xb138ed1b, 0x26142811, 0xc41e0315, 0xba1eedf7, 0xe3ce1e0a, 0x9cef0b0a, 0xfbe2c4e9, 0x370f23f6,
+0xc4f9f019, 0xdb5fece0, 0x140f03c8, 0x1ec115e6, 0xbecd0be8, 0xd1cce60b, 0xc3b007f4, 0xe9ca1628,
+0x1adbf00e, 0xbdbc0efc, 0xc930e51d, 0xb42cf2f9, 0xc2a723fc, 0x35fa17cf, 0x539b0edd, 0xfaffd63d,
+0xe4b62228, 0xe3fc0d22, 0x4ab40a24, 0x3a0cdd24, 0x13bc121c, 0x15e30000, 0xfcee2c3a, 0xf7f2e1e7,
+0x1528c2b0, 0xe51c0df4, 0xdc03fbdc, 0xffe12af8, 0x1c294451, 0xfc18db10, 0x1f0048d8, 0xdc06032f,
+0x0bdee2fa, 0x04162cef, 0x09e7d0c0, 0x0c24e34b, 0xbddc6bb4, 0x09f72032, 0xe11d4746, 0x0bf2e4e6,
+0x2122fab5, 0xd60653d3, 0x30dda84a, 0xfded2b3a, 0x1de80b10, 0x08ead13f, 0xd3055522, 0x2610fe37,
+0x34fc5cd4, 0x1fecf614, 0x0cf41ce4, 0x16f7ed1f, 0xe6150e12, 0x0c00e427, 0x11ee3917, 0x0eee363a,
+0xe3de0cfa, 0x24054c23, 0x2efb5623, 0x27d00058, 0xe71441eb, 0x231b4bbc, 0xf3141c3d, 0xb9f66f32,
+0xd3ecab3c, 0xeb04122d, 0x1a1ebef7, 0x0c0fcce6, 0xeae81240, 0x14ec3c3c, 0x41ea9711, 0xfeded64a,
+0x00ccd95c, 0x22fef926, 0xec063b2d, 0xeae93f3f, 0x1ffff827, 0x25264cb3, 0x180a101e, 0xdcfc0523,
+0xf1dbe7b2, 0xfbe424f4, 0xe9053ed3, 0xdafc4ddc, 0xea23c2b4, 0xf2fe1a26, 0x252403fd, 0xfd0e2537,
+0xd01b59f3, 0x101be80d, 0xd9dd4fb5, 0x1edf0a08, 0x27e702bf, 0xd9f400cc, 0xf914d214, 0x1debf53e,
+0x1524ee05, 0x121f3a0a, 0x01dcd604, 0x3901a029, 0x1dfef629, 0x11dc1804, 0x23f00538, 0xfd1124c8,
+0x32215a07, 0xf7173112, 0xdc0e4dc9, 0xe00008d8, 0x1c1dbc0b, 0x200c09cc, 0x0805e0dc, 0x14e03bb8,
+0x2bf3ac36, 0x2f0aaacf, 0xeadc124c, 0xff16d8ee, 0x01f3da1a, 0x0000163b, 0xfaf213ed, 0x0a08221a,
+0xcebf1f20, 0x46dd0a1a, 0x3fcd1e05, 0xe7cee8f5, 0xf23410f6, 0xedf0e50b, 0xef42ec17, 0x08fdeae6,
+0x975ce0db, 0xca19bf34, 0x241b0df0, 0x27bd04f2, 0xf8f8001b, 0xccbfdfe0, 0xf607f4e6, 0xec4ce3e0,
+0x17d614db, 0xdfd0effd, 0xf751fa07, 0xc7081fd8, 0x225011e0, 0x16e7fbd8, 0x2af71210, 0xef32fd1e,
+0xf5e9ea0a, 0x11f2e411, 0x26cceae5, 0x4e00fff3, 0x724f2728, 0x29ea4a26, 0x1aca00ee, 0x460df30e,
+0x201c1ee4, 0x46dff7f3, 0xd3d41ffa, 0x3beb04fc, 0x4401ed14, 0xd3b3e4da, 0xc03cfb25, 0x1c1de7eb,
+0xcccc0bf4, 0x2ae10df5, 0x402802f7, 0x0117e901, 0xc201d9f0, 0xf7fc15d9, 0xfedc2024, 0x24c82503,
+0xc1fafdef, 0xfef2e9de, 0xd4c1da1a, 0xaff104e8, 0xc12a29e6, 0xb625e8fd, 0xd7c72204, 0xb5c4ffef,
+0xcd45dd15, 0x25330a1d, 0x3ff0030b, 0xa9b2e917, 0x25c12fd9, 0xc23a0218, 0xd2bfea11, 0xe3170518,
+0x282a0aee, 0xda0300ff, 0xfeb6fe26, 0xebd5db22, 0x1ce6edfd, 0xe4d4f5f2, 0x16f2f404, 0x26c8ee1a,
+0xe2e9feef, 0xa8fbf5ee, 0x01073123, 0xe843d920, 0x1416f0e6, 0x0b24ebed, 0x5123e204, 0x0000d7fa,
+0xbd290000, 0xbef21bfe, 0x19eee7e7, 0x0000f1e9, 0x00000000, 0xfa490000, 0x17e0df22, 0x000012f7,
+0x00000000, 0xbadc0000, 0x0f3fe1fd, 0x00001a17, 0x00000000, 0x31c60000, 0x09ee0000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
+
+hard_output0 =
+0xcddb5769, 0x627f0a91, 0xbcf446fb, 0xc930d133, 0xdd7b82f0, 0xbd591856, 0xb73094b3, 0x32436132,
+0xac268fdc, 0xeeb03845, 0x0087cc79, 0xd372eb62, 0xb595a1bd, 0x511605f7, 0xa428b83f, 0xfb9380a8,
+0xe43c2efb, 0x0a04017a, 0x674608a3, 0xc2464812, 0x208bc693, 0xb03d0580, 0xdc62b803, 0xc2808805,
+0xccaf7f16, 0x848dacef, 0xedf69b49, 0x222d2bd9, 0x78ffa7a5, 0x749cb755, 0x9f4abc69, 0xa27f3a72,
+0x9652d070, 0x8a83be54, 0xa9820b7f, 0x8b00e52a, 0xb02159e4, 0xeddabc6a, 0x47b69064, 0xf161d47f,
+0xc243b0df, 0xebb2ac39, 0x4fd6cddb, 0xc0d38ba3, 0xd9ddef17, 0x8c638875, 0xa132cfef, 0x5893a4f6,
+0x1a29ce5f, 0x9072f3eb, 0x486bda03, 0xf5250cda, 0xdc10edbc, 0x392e6b7f, 0x4664de06, 0xfde2f3f2,
+0x37c7d442, 0x32b60d29, 0xbcb7c8ff, 0xa1542cd0, 0x91b36e18, 0x231f9e19, 0x97cbc4a6, 0x51ceb1df,
+0xc02dedf8, 0x4bfd9728, 0x569deda7, 0xc0790501, 0x132e47b0, 0xb8229185, 0x81cbe103, 0xa30dbf5f,
+0x72c54db6, 0x4abdbdf7, 0x557d21d3, 0x3b75be17, 0xf540476b, 0xc48d78e1, 0x767d44ec, 0x87dc6193,
+0x7a4c52fc, 0x306c3548, 0xa66e51b3, 0xfc627273, 0x5f349268, 0xf5e74974, 0x232388b6, 0x01d8e49e,
+0xbf29f75f, 0x378a9d02, 0x59a45656, 0x46fb25b1, 0x75219b62, 0x4f0d6f71, 0x220c6763, 0xdde47b70,
+0x8c0dce8f, 0x3e3db100, 0xabad4262, 0x800eddcb, 0x32416450, 0x61d260ce, 0x6e2a0fac, 0x73cdb847,
+0xeee01947, 0xe5a3a37f, 0xa710e211, 0x98ecaa36, 0x69197474, 0x6e73e13f, 0xb2100f2e, 0x7714b2fd,
+0xec3d81cb, 0xc50e5194, 0x5c69a3d8, 0xce0bdc13, 0x08e7df1c, 0x5fb014a5, 0x75b5801e, 0xf57d3b75,
+0xac5dd149, 0xa5096b77, 0x4b5da0af, 0x656506d3, 0x3823d675, 0x3840530c, 0x1c0980ba, 0x3bd4150f,
+0x3df8c0f8, 0xa2834aa4, 0x479ea855, 0x4f4557b5, 0x15d730db, 0xe6809738, 0x0aec8f7d, 0xf5e2188e,
+0xa9a0fac7, 0x785c3166, 0x049dd244, 0x72cada2a, 0x5655bab3, 0xff73ca65, 0xb3dc51f1, 0x259f555b,
+0xdaa1933d, 0x0f716b8f, 0x1e29bde6, 0xbe8bf3a9, 0x908b5a60, 0x667636c0, 0xfce80b0b, 0xcf43d154,
+0xfffc60f5, 0x324b1632, 0x1609e45b, 0xf8e09aed, 0x1a01f6ee, 0x013cea78, 0xdd89ba42, 0xfe5bca8f,
+0x894e3aef, 0xda292f76, 0x457a93bd, 0x73a9c254, 0x7b5ca9d1, 0x947355ba, 0xb8a797c8, 0x3b5e97f4,
+0x946889ec, 0xd49316a3, 0xa5383830, 0x55f63bbf, 0x47b3a4ca, 0x415bd007, 0x1227c60a, 0x3610fab0,
+0xa68c75fc, 0xa1441c62, 0x68a02596, 0x6d083d07, 0xceeb9057, 0x915054bc, 0x6f2c7fa8, 0x62be6166,
+0x963703a3, 0x5af6e614, 0x5bc3e4f0, 0xf517a95e, 0x408a2bfd, 0xab7fe7a8, 0x37aac030, 0x9956f2f5
+
+k =
+6144
+
+e =
+10376
+
+iter_max =
+8
+
+iter_min =
+4
+
+expected_iter_count =
+8
+
+ext_scale =
+15
+
+num_maps =
+0
+
+code_block_mode =
+1
+
+op_flags =
+RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE, RTE_BBDEV_TURBO_CRC_TYPE_24B,
+RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN
+
+expected_status =
+OK \ No newline at end of file
diff --git a/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e34560_posllr.data b/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e34560_posllr.data
new file mode 100644
index 000000000..fe4f5eefd
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e34560_posllr.data
@@ -0,0 +1,645 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2017 Intel Corporation
+
+op_type =
+RTE_BBDEV_OP_TURBO_DEC
+
+input0 =
+0x81814e1f, 0xba81fb11, 0xc4554696, 0xe17e9454, 0x427f8119, 0xa8b355f1, 0x244ba17f, 0x1c816fa1,
+0xc94f5bcc, 0xb5b97fbb, 0x634b8e81, 0x815a6cc1, 0x7f6bb016, 0x2f7249d6, 0x604664f0, 0x31817f81,
+0x6fa66b81, 0xd49763f6, 0x777fa4f1, 0x81aa6da8, 0xf0fea881, 0xaccfbfd0, 0x7f81e582, 0x7f58a2d6,
+0xa77f430e, 0xf47f50f1, 0x997f42f2, 0xd7814f81, 0x037fe14d, 0x81f98125, 0x2d813e55, 0x7f81f0dc,
+0x7f7f8181, 0xc37c723a, 0xbc7a3364, 0x8193817f, 0xe381066d, 0x7fcab836, 0x2481eea2, 0x567f5968,
+0xa07d720c, 0x7fa13343, 0x7f35636d, 0x7f817f78, 0x383d2a69, 0x7f860e2a, 0xca78797f, 0x7f7fe912,
+0xc95a8141, 0x770c9c4e, 0x81e2817f, 0x811b3f81, 0x745f1104, 0x13817e31, 0xb681a63a, 0x8101482a,
+0xbe81818d, 0x8c8181fa, 0x2133de57, 0x8147677f, 0x8a098d7f, 0xd429f1ee, 0x284fc81f, 0x7f5c16d7,
+0xded34e7f, 0x3d60812e, 0xdf817f89, 0x2f33793c, 0x2f7f9961, 0x8181221e, 0x847f59d1, 0x9281a681,
+0x89503793, 0x01817ff0, 0x183a53ba, 0xc99622f6, 0xbc819881, 0xa7ea2ec8, 0x787f957f, 0x26819378,
+0x1e4e4ba1, 0x8bf18138, 0x3adc2c81, 0x3a7d8187, 0x7f22ae8e, 0x307c81d7, 0x7f53a881, 0xc281819f,
+0x38fd2090, 0xdd810a00, 0x74ff7fa2, 0x7fb2f27f, 0x7f9b8211, 0x55d69e44, 0x8d2cd44c, 0x5610c676,
+0x7f815b81, 0xa2811e3d, 0x93135d81, 0x92797f73, 0x8a8192b3, 0xa48a7f66, 0x7f7e4a10, 0x242dfd81,
+0x7fe8b481, 0x810fb0e4, 0xde390fa7, 0xbb5a7f81, 0x65ad3b19, 0xa96a96a2, 0xf681817f, 0xb6a4eba2,
+0x0d81017f, 0x5369080e, 0xfbd1c781, 0x879d7f7f, 0x81818181, 0x7f1d061c, 0x8aa731fd, 0x4386a67f,
+0xba445581, 0x5b81975f, 0x467f7f7a, 0xc85db95e, 0x6f587240, 0x29a07904, 0x7f7f7574, 0x815dbeb2,
+0x81771181, 0x7f54e8c3, 0xc6586fd6, 0x3c6d835a, 0x86b4ed95, 0x7faa72fb, 0x7f7e7fd5, 0x154f81e3,
+0x7c4881b4, 0x0c164a37, 0x7ffdbf69, 0x7f7d43f6, 0x5f47da8a, 0x3236d20f, 0x65818181, 0xa37fcf7f,
+0x7f8116cb, 0xf6947f50, 0x66ab65b1, 0x6d688a6f, 0x537f6bf0, 0x5c864ddc, 0x06a98181, 0x455854c2,
+0x9a6c49ad, 0x129d3c29, 0xe94c327f, 0x7d40247f, 0x9681bc7f, 0x7f288120, 0x81a43b40, 0x08d81689,
+0x457f815d, 0xc27f9ae7, 0x7f819655, 0xdabf8181, 0xf4c07f81, 0x6410e8cc, 0xce4d8181, 0x19b13059,
+0x8181bf99, 0xf2819620, 0x7fc37f4e, 0x7f8efe81, 0xb25a3e8b, 0x7fbbdb22, 0xba7f8181, 0x8135d42f,
+0x817f6836, 0xc381a056, 0x7381547f, 0x1e407f13, 0x9b917f7f, 0x4e526d9b, 0x9323737f, 0x7a20429b,
+0xac6b14a8, 0x3568e8d7, 0xbe621a97, 0x7fbca13b, 0x2dbda9dc, 0x32af4ddd, 0x6e4f978e, 0x10ed8172,
+0x81e76681, 0x7f427fc4, 0x7fab7f81, 0x2c7ffd81, 0xea817f7f, 0xa62fcf2c, 0x8144bfb7, 0x7ffc93a0,
+0x79e9b564, 0x6c449d46, 0x987f8481, 0xee118173, 0x867f0c0a, 0x81819347, 0xb8ddbf82, 0x5c6866b8,
+0x82b48881, 0x5c817fdd, 0x7f6605e0, 0x4181bc81, 0x736b51a4, 0xcd5a7fd2, 0xf939a42b, 0xcd817faf,
+0x5e1b1fa6, 0x7c818ef7, 0x070c47cc, 0x8e5981d1, 0xe661d182, 0x54deb54e, 0x7fba81f4, 0xc1712e73,
+0xb6885086, 0xae9759e2, 0xb12b814e, 0xf5ae9e41, 0x16c736f6, 0xa981c3e2, 0xb06c7f29, 0x497f95b8,
+0xcb3de381, 0x7f7524e3, 0xdcf88147, 0x811e81f9, 0xab7a9c7f, 0x816223d8, 0xf97fe22f, 0xe5cf814e,
+0x744f6312, 0xc797e05a, 0x279b237b, 0x622b01b9, 0x37818181, 0x8174e3ab, 0xfa5a69ff, 0x62cc787f,
+0x81944e7f, 0xc87f7f2f, 0x30839f54, 0x8122090f, 0xf8e98181, 0x28815f40, 0x0262424b, 0x7fc3ccd0,
+0xdf7f7fe2, 0x0c264dfa, 0x5d954581, 0xfb188181, 0x6b810d33, 0x1c7fbee7, 0x8141c17f, 0x7f768155,
+0xbd207f27, 0x794079d7, 0xf34bd97b, 0x7f7f5026, 0xb46c9782, 0x7f81574e, 0x81817f27, 0x75267f6d,
+0x4a7fe97f, 0x7f879ee0, 0x25f8d63f, 0xd481a3c5, 0x747ffd0d, 0xb33530e2, 0x813f5881, 0xbb8181dd,
+0xa2da462a, 0x817f8c0d, 0xd0f061f8, 0x117bda34, 0x1897f8b7, 0x2e477f50, 0x8181814b, 0x7faa1181,
+0x6ee68168, 0x811a98e2, 0xdcb2b784, 0xa20a7fb7, 0x41445681, 0x0bffeefc, 0x02817f9d, 0x743071cf,
+0x387695bd, 0x847ffb4a, 0x0a287f56, 0xf9b4d4d3, 0x2a7fa481, 0xe3eb2e9b, 0x327f91f4, 0xec3981d2,
+0x6681f83c, 0xe675722e, 0x426ac913, 0x4b6154a6, 0x5c30816f, 0x817c8155, 0x277fa781, 0x8dd8a9a3,
+0x48c609a0, 0x4bca47bf, 0x7f3f6d81, 0xea497fb3, 0xc181507f, 0x81bf1ffe, 0x8e818916, 0x6ba83d7f,
+0xb8547f62, 0x5881670e, 0x7f6281fb, 0x6e7f9250, 0xa7bc817f, 0xb19450aa, 0x7f7f9d58, 0x20f69c1e,
+0x7f45815d, 0x817f9319, 0x7a5496b0, 0xb85e8950, 0x72c9337f, 0x81781aba, 0xfecdaf28, 0xe2195ab5,
+0x7fbb0ec7, 0x7f7ff8a7, 0xab818181, 0x978f2e6e, 0x7fc38121, 0x18945319, 0x264a8181, 0x93b1dc81,
+0x630ed781, 0xe27f8e14, 0xc17f5b93, 0x7081fe2d, 0xbb9ac790, 0x7f81ba5c, 0x7f812f32, 0x68bd4f7f,
+0x81217f81, 0x88b87f26, 0x285e7f3e, 0x29817828, 0x747f7f81, 0x159eaacd, 0x8d02b252, 0xa98881e7,
+0x817f1681, 0x367fbd38, 0x8a8441e3, 0x81447f1f, 0x8165424b, 0x811676ee, 0x81a48122, 0x4b02ea7b,
+0x5c267f38, 0x8195acd2, 0x7f7fb581, 0x9eae092d, 0xab12457f, 0x96f8dc31, 0xa89fd810, 0x222b7f7f,
+0x1dd67f65, 0x873a81e0, 0x0e7fd97f, 0x81a83d97, 0x8106d381, 0x7f817f0c, 0x8104d4f9, 0xbb81677f,
+0x01be7f39, 0x297297ab, 0xc2f01b81, 0x9dd57f81, 0x81ff692f, 0x7fc28115, 0x077f547f, 0x717fcf81,
+0x3d81ed83, 0xff6f7fff, 0x7f50f95c, 0x5650a753, 0x81817f09, 0x963b7057, 0x7f817f60, 0x987fa099,
+0xf6207f7e, 0x4c814e98, 0xcd27b681, 0x41bd2ebd, 0x340172b2, 0xbc151ec1, 0xf3b403d2, 0x817f6c81,
+0x7f2f3218, 0x26f2ea5d, 0xcc59bd8a, 0xef857f52, 0xe37bc195, 0x7f2a2e13, 0x7381a51a, 0x31e14c60,
+0xc2e23fc6, 0x8113f40c, 0x9b2d7f81, 0xf6e1147d, 0x813c7fe1, 0x9a9d7f3f, 0x7fb939ac, 0x573181ad,
+0x608a317f, 0xb486b9ee, 0xe67fb10b, 0x62817f8b, 0x7f7f9775, 0x81e6819d, 0x7f6f0f61, 0x4ffd8158,
+0x81ae56d2, 0xbe4aa4f7, 0x6c515581, 0x435d8326, 0x7f0e2a95, 0xc28d81e1, 0x357fa0cf, 0x2b9f7f11,
+0xd491057f, 0xbc7bddd7, 0xe5b57f34, 0xfba68549, 0xb491d2e3, 0x4fb61f49, 0x81bd3e3c, 0xdd9848f3,
+0x81810561, 0x67f5fbdd, 0x8c4dc25b, 0x2ab47f67, 0x68137f5e, 0xcfe53817, 0xa7679d31, 0x501213b4,
+0x7f7f1390, 0xbefeccd8, 0x30fe9044, 0x7fd6812d, 0x813cf0e6, 0xccb82825, 0xfa78ec58, 0x024b90e4,
+0xba25ec7f, 0xc43b50ff, 0x7f7f3e4d, 0x64c38181, 0x81ed1dba, 0xd58b7f64, 0x0b81311f, 0x03563b7f,
+0x817fb491, 0x81e895c7, 0x817f7fb0, 0x1681a581, 0x7f998a50, 0x489b81a9, 0x81bc81a2, 0x3d9e7fde,
+0x7c7c6381, 0x817447ec, 0x6e7fc32b, 0x7fab86c6, 0x95b44181, 0x3a7f756c, 0x81458168, 0xc4787fd3,
+0x731cda81, 0x73127f03, 0xc9077fcf, 0xc37f9c2e, 0x27817f7f, 0xc4361507, 0x7f9b3581, 0x9d357f2d,
+0x7f81166c, 0xb87f815f, 0xb2604f95, 0xc44b5591, 0xcfb8078b, 0x7481e64b, 0x8152a679, 0x53fa387f,
+0xfa7f3f79, 0x7f5b5fe5, 0x1e625d7d, 0x1081ad93, 0x7f5019fe, 0x3d8145a7, 0x629f9918, 0xc1ab3742,
+0x7f66c057, 0x9cb048dd, 0xeb6e859b, 0x8e5fb72c, 0x94d8f5a4, 0xa381280d, 0x67737de6, 0x45817f81,
+0xf055c17f, 0x6a0aafff, 0xdb818cc6, 0x81fc60dc, 0x20377f4c, 0x7feac6de, 0x72e78c7f, 0xdf532124,
+0x81d33356, 0x8881bcf9, 0x95817f32, 0x612eae3b, 0x7b186965, 0x50b77f63, 0x718181b3, 0x42d8b481,
+0x88edaf7f, 0xa3cd25f6, 0x7fdd7f81, 0x7fb79681, 0x7f786e7f, 0x7fbb41c9, 0xd2618121, 0x1cacc6d3,
+0x7fe2a0dc, 0x819e1a46, 0x563081e1, 0xb18d77b1, 0xb4817f7f, 0xa97f81fa, 0x2e81157f, 0x31e67fa4,
+0x5b814281, 0x98b18124, 0x7f0a3540, 0x49d508d1, 0x2693bc71, 0x3aeb81ca, 0x817fc081, 0x6674b9e7,
+0xa1217f23, 0x517f81f1, 0x7fc4ef26, 0x2914ef7f, 0xa9ff7a19, 0x7f7f0ce2, 0x1b485e45, 0x7f70af0d,
+0xd6812a71, 0xc95fc63d, 0xa57f03c8, 0x9dbe7f81, 0x7c978192, 0x81a22306, 0x96447f2f, 0x7faf2728,
+0xc2a494ad, 0xd5c7813a, 0xa02b7bb8, 0x3bc04eed, 0x997fa97f, 0x7768d0d0, 0x8a84817f, 0x8f1102c6,
+0x7f8115be, 0xfb7f7869, 0x7ff25de8, 0x6745f276, 0x0f23b585, 0x52933552, 0x7fab5340, 0xeb4c403f,
+0x7f5465ec, 0x77b0a942, 0x6b67297f, 0xc86a7133, 0x7f8f177f, 0x869e28f4, 0x7a7fb066, 0x81a3b865,
+0x5d7fba81, 0x815fd7ae, 0x60817ff7, 0xa633a381, 0x45813981, 0xade1ccd7, 0x814981a6, 0xaa93770a,
+0x7f83b4dd, 0xc0967f1a, 0xed7f3764, 0x53772ea8, 0x5a81f453, 0xaff56f92, 0x81067f5f, 0xf596ef1f,
+0xd520de7c, 0x81b2bdc8, 0x7f8130dd, 0xfb7f8c41, 0x99816bf6, 0x695a60e3, 0x7f7f817f, 0xed987f26,
+0x8f818166, 0x417fecfc, 0x99ec379b, 0xaf7e7f7f, 0x360dd75f, 0x787f44f6, 0x81837dfb, 0xd481a681,
+0x81819d17, 0x8781322c, 0x7f7fac0b, 0x0fca7f3c, 0x40b5e37f, 0xf27f2ebc, 0x41c19a41, 0xa6c1d381,
+0x066de9ec, 0x32b8a8bc, 0xdac61ba5, 0x812d817f, 0x87b9821c, 0x817f7920, 0x7f557fbc, 0x81738181,
+0x918fb098, 0x81ab890a, 0x81b881bf, 0x7f7fc57c, 0xcdbde77f, 0x7f5f7f3a, 0x36e59a81, 0x19a6818f,
+0xea7fd850, 0x20606e2b, 0x927f9c22, 0xd27f819f, 0x3c4f7f73, 0x168176ce, 0xf0687f81, 0xec5f7faa,
+0x23aa789e, 0x2de996b5, 0x7fd07f7f, 0x9785c156, 0x1eaa3235, 0x9781ea6f, 0xb2de74fb, 0x815a98d6,
+0x8cb77f92, 0xbba85fa1, 0x61afcac8, 0x81817f64, 0x8149865f, 0xa251b7ee, 0xec7f8181, 0xf8ad7f84,
+0x5c8142bf, 0x212981f2, 0x7fc9e381, 0x37338e67, 0x7f3099c6, 0x4fcdb7d1, 0x0381c0fd, 0x778181e4,
+0xe7702cfb, 0x61c21e43, 0x3f987f81, 0x3a0b815c, 0x7d12b8c2, 0x70097f0a, 0x7f244d63, 0x2d81187f,
+0xd87f6f7f, 0x7d267f2c, 0x8eaf2486, 0x87d8013d, 0x85367f7f, 0x81817f85, 0x0a067081, 0xc96f952c,
+0xf3c14485, 0x227f4330, 0x60ec8124, 0x41f181f5, 0xdb6b7fce, 0x819467cf, 0x81bc7fd4, 0x2c7a7f7f,
+0x936ade53, 0x7f81d04a, 0xc4817f81, 0x7fdd78dd, 0x81d3a47f, 0x917fade5, 0x6c81510e, 0x5b16fd74,
+0xbe987f81, 0x7fb17404, 0x7fb8e8f7, 0x7fb381e6, 0xc479b081, 0x5c81eee7, 0xb19b0e81, 0xa381d4df,
+0x81bacf5b, 0xa67fb9a6, 0x817f11a0, 0x8d565870, 0xce818181, 0x7f4aec3f, 0x813ab981, 0x1b495a42,
+0xab7f928d, 0x8106014f, 0x47c3e57f, 0xc418f11e, 0xc9149f6c, 0x1a7f1e25, 0x7f3f2d81, 0xcd5e462d,
+0xa8d57f7f, 0x812481db, 0x7f697f97, 0x69cdb891, 0xc31fc20d, 0xdc812b31, 0x57e37f81, 0xa09681aa,
+0x7f817f88, 0x1ae385f8, 0x81607f7f, 0xfb752e65, 0xd8dd8141, 0xb17f50a9, 0xb8737ffd, 0x1f7f815b,
+0x7f9a9e69, 0x06448b38, 0x8109a225, 0xb69e064b, 0x9881537c, 0x59dee4d8, 0x89c6a692, 0x0e817b7f,
+0x81816b97, 0x5de37fd1, 0x7f2c7ca9, 0x81784402, 0x29bd477f, 0x81a07ffe, 0xe822df7b, 0x7f29813c,
+0x6d81cd81, 0x1a811bd2, 0x6b2c7f26, 0x7881a08f, 0x7fd0e88e, 0x27f87fce, 0x8181a67f, 0x7f7f5558,
+0x81668133, 0x8181bfca, 0xc3792d58, 0x2b7f2d7f, 0xa3d09230, 0x9fa56824, 0x7fd5ce7f, 0x251b3cbd,
+0x7f818117, 0x7fac9e26, 0x7fde26f6, 0x4b7f837f, 0x1fd52b94, 0x067f6698, 0x70817f7d, 0xdd9658c1,
+0xe5a99465, 0xa59cdc55, 0xc1c2c7ad, 0x147fb081, 0x234cc657, 0x7f7fcc0f, 0x7f3d8150, 0x41b68131,
+0x7ff58184, 0x90a57f2b, 0xdd9d9b7f, 0xc4518163, 0x428aa37f, 0xe866ef52, 0x7f6c3644, 0xa09d3b50,
+0xf2c4adad, 0xc87ecb45, 0x7f70bace, 0xd5697f2d, 0x297349a8, 0x6bc11cc9, 0x8cdd0ed3, 0x7f53646b,
+0x8129b9b8, 0xce65a8d3, 0x20208181, 0x817f5272, 0x6ad11bf4, 0xc58151e3, 0x361572c9, 0x81acd996,
+0x6e819466, 0x7e7fbd3f, 0x70bb9ffb, 0x818b810a, 0x879a7f15, 0x8c884edb, 0x9028ae45, 0x81d8f525,
+0xaaa781b9, 0xaf1a0108, 0xe2817f73, 0x24b67f8b, 0xf08fd77b, 0xd21a265f, 0x7f3930ba, 0x5f5d9287,
+0x66218181, 0x7fd219f3, 0x6f44f09e, 0xbcc58157, 0x7f71b94d, 0x817f81c5, 0x877f6064, 0x81647f81,
+0xe5ba2e34, 0x889f8722, 0x27819f0e, 0x7f4c0eed, 0x2d7f79b6, 0x81b1813c, 0x647f3d2b, 0xe92b68be,
+0x81375804, 0x6798c04b, 0x2b596e7f, 0x78c97f7f, 0x812c367f, 0x7f468112, 0xa352d785, 0x3806f2a4,
+0x6886a9a9, 0xa31540ea, 0x5ab2478d, 0x9f5be57f, 0x9ab06481, 0x1586279b, 0x86267f81, 0xb3a50944,
+0x788a485c, 0x838d4c30, 0x8ad44b53, 0x923fb39a, 0x95035381, 0x81817ff2, 0x7f44d5eb, 0xf17f8164,
+0x39d117c0, 0x37ea75f4, 0x81927387, 0x817f0623, 0x909f7f0a, 0x997f7f19, 0xc1983b18, 0x60937f6b,
+0x8829c381, 0x8e6bf066, 0xfb7781ab, 0x43408e7f, 0x7f7f811d, 0x33eb81d0, 0xb86459a9, 0xadba7fe7,
+0xc1967f48, 0xfd0284bd, 0x4bef335d, 0x1b7f5f81, 0xa2c2c237, 0x81b0816a, 0x42ee5c7f, 0x7f009323,
+0xb7ced44c, 0xd90958e2, 0x3af8aae8, 0x7fb82e90, 0x989a7f7f, 0x14a22c68, 0x60ef7dc6, 0x7fb9ad00,
+0xf9e3c69d, 0x5e3bafbe, 0x81178a81, 0x92c4df02, 0x159d7fb6, 0x812b8103, 0x616f9df5, 0xb9a1df61,
+0x454b3944, 0x98931fbe, 0x4aae7061, 0x9572a681, 0x8178a8a8, 0x81fe821f, 0x817f7f6f, 0x7f787f2c,
+0xe584ff82, 0x7b7f5637, 0x9e815970, 0x517d8181, 0x97faba7f, 0xcfe3ce17, 0x9181f55f, 0x857f5f3b,
+0x81b17fbc, 0x7f1d7fbc, 0xae7356c3, 0xe4f77f8b, 0x4695f639, 0x8ddaec55, 0xa5d4a381, 0x7f7fa418,
+0x4d818145, 0x3881723b, 0x7f507f7f, 0xa5357fca, 0x81dbdc3b, 0x0b187f28, 0xb0325181, 0x09dd795f,
+0x2c39b28c, 0x9ac18118, 0xda52b681, 0xa3819da8, 0x7f884525, 0xba0d7ffe, 0x50ce81ad, 0x60e70e69,
+0x110b81ee, 0x8181871e, 0x7fe07f81, 0x8d1c4dde, 0x67649db7, 0x6e4669c2, 0x818144a4, 0x7f6c9cb7,
+0x51b57f81, 0x36aec300, 0x7f7f8141, 0xc5eca67f, 0x14ac7892, 0x7f35e9c2, 0xa1fe9a81, 0x6a867f7f,
+0x767f817f, 0xc447c4bf, 0x067fedca, 0x8c024b57, 0x7ee5707f, 0x52589b51, 0x0f81b28f, 0xae7f00a7,
+0x5244c5ca, 0x9671812e, 0xf0631d15, 0xb4aba1b8, 0x7f9a3488, 0x81b485b8, 0x392f2d7f, 0xed7fad81,
+0x6055a4e1, 0x60f300c7, 0x7feb817f, 0xd1e0917f, 0x544ca57f, 0xd23d7e0d, 0x8110c8c2, 0xbc24a615,
+0x3d817f33, 0xbdabcdfa, 0x5ac3817f, 0x81817fc0, 0x81817f76, 0x837e43d9, 0x7f817581, 0x5da96bcb,
+0x3e1c888f, 0x7f7fa6f5, 0xb769907f, 0x8eb43d8e, 0x3a7f3e81, 0xd5845510, 0xd07f5a54, 0x14816ab2,
+0x8126c62d, 0xbeda8f5c, 0xa0007fa8, 0x818d7281, 0xad72917f, 0x49c2f650, 0x87969baf, 0x7f53e975,
+0xe78de481, 0xe5083e96, 0xb635812c, 0xafdf4bb9, 0x26ac8101, 0x82b0a109, 0x7f8101b8, 0x607fc7cc,
+0xc3b1892f, 0x7d0dd911, 0x396d8195, 0xcb84b67c, 0x3f7d3681, 0x43a07f25, 0xd020297d, 0xb7d65b81,
+0x455a99e2, 0x509e4611, 0x817f81e0, 0x81da81a8, 0x8147b5c1, 0xbc81a5df, 0x489c6781, 0x8150a908,
+0x4fc0e681, 0x814b8163, 0x11457f8b, 0x9a77db7f, 0x81fa0681, 0x7f867010, 0x852b87c5, 0x3d8253dc,
+0x91165c42, 0xc6ac7422, 0x727f0774, 0x7f497f67, 0x1a3fe7c0, 0xb39c81d1, 0x44a47f7f, 0x7f8b066f,
+0x7f787ab5, 0x7ba7e870, 0xb932a3a9, 0xc85c1149, 0x32a28d61, 0x7f8d812c, 0x93819da2, 0x647ae98c,
+0x777f7e9e, 0xbb447fec, 0x2fabd677, 0x3a7f8c08, 0x51707f28, 0x35f81da5, 0x0b3cfc4e, 0xd4179b8a,
+0xef77a6ca, 0x31e02016, 0xdbb81924, 0x7189b4a7, 0x08a671aa, 0x817f2352, 0x81819e81, 0xec7fb7e4,
+0x81699ae5, 0x88817f20, 0x5ee7d181, 0x944d8150, 0x7f7f52d9, 0xc1815114, 0x3281a67a, 0x52fa8181,
+0xc4e47f7f, 0x7f824cbd, 0x728cf0bf, 0xa6b20e46, 0x9ffe631c, 0x639d82cc, 0x7f638136, 0x7f7f3381,
+0x7f8b4794, 0x44b19231, 0x08da5253, 0xaa815d93, 0x7f6a7f69, 0x616331c2, 0xdaa47fcf, 0x7f272255,
+0x3ee4098e, 0x819527f9, 0xcfc187a5, 0x7f81e781, 0xf71402bd, 0x9fecc0d1, 0x2067a67f, 0xa1dace7f,
+0x42817fa8, 0x8181da23, 0x03818181, 0xc35e3af7, 0x941d7ff3, 0x817f33e5, 0x7f2a78f7, 0xbe426494,
+0x0d2d81a4, 0x817f20cf, 0x89b2f4d0, 0x8171ba71, 0x6245be4e, 0x817f8140, 0xed8a7f81, 0xdb097f7f,
+0x81724d42, 0xe0de7bfb, 0xde611f7f, 0x7f54d981, 0xb1d07fd7, 0x487f7fef, 0x7f2c8139, 0x7f7f7f10,
+0x3e812db6, 0x63447ff6, 0x7c7f277f, 0x9f7f8b7f, 0x76d47f81, 0x197faadb, 0x6a596c91, 0xc681a3a3,
+0x7da1d13f, 0x4af8d329, 0xaa819881, 0x7d7f7f4a, 0x3a9d1753, 0xaf818145, 0x5b905350, 0xee313e4c,
+0x3fa881c7, 0x437fc046, 0x817fbd9a, 0x30f77f14, 0x3e81df81, 0xa42f4e53, 0x7f67d481, 0x4f4b819e,
+0xc5474f22, 0x6eed3376, 0x7fb1ed92, 0x5b3e813d, 0x6c8181a7, 0x720df323, 0x2d0e7017, 0xc7448174,
+0x817fb27f, 0xad7f01de, 0x817f10b1, 0xf6231fed, 0xa56d7a81, 0x98817fef, 0x8181e4a0, 0x48aa7fb1,
+0x81727f6a, 0xa4059a04, 0xe0cff64c, 0x5ea7679c, 0x69c1009b, 0x7f816b2a, 0x5cc58181, 0x7f954f3d,
+0x848b7f17, 0xaee99031, 0x7fbb951f, 0xa2da7f73, 0xc5acfb81, 0x2c1ecf2a, 0x6981fdba, 0x19897fb2,
+0x7f4af7a6, 0x85cd8129, 0xe845e0d5, 0xdf658407, 0xd522567f, 0xab242f2e, 0x7fdd70a4, 0x1c9d038c,
+0x2f923f85, 0x27f1b2c5, 0x7f812781, 0x7f818181, 0x7f9603cb, 0xc32881af, 0x5ad1f2a1, 0x61b99a32,
+0x57cd3bfb, 0x7ffc6fd7, 0x9e81c281, 0xfea25f7f, 0x85a2bfe7, 0xf3ef5107, 0x7f81565e, 0x1d447f81,
+0x814e817f, 0x40853b00, 0x6caf3f7f, 0xe13a7fe2, 0x816162c5, 0x81b4e66f, 0x81e18fb8, 0x7da87f66,
+0x7fef667f, 0xea2ba1f4, 0x408181d2, 0xba81676f, 0xdd817481, 0x7f9d7fff, 0xd6544752, 0xb1bd61ce,
+0x3aa26a56, 0x817e9bf8, 0x8158964a, 0xa0d3253c, 0x308130f6, 0x501d7f23, 0x367f34d2, 0x818581eb,
+0x817f4743, 0xdf9e81c8, 0x5c7f13a4, 0x12182965, 0x9cca6c7f, 0x47817f4f, 0x0cbd2918, 0xb05cf048,
+0x28810542, 0xe8a869a0, 0x7fb7682b, 0x3f7fb5d1, 0x813dc581, 0x2ea58dcb, 0x4a4e6881, 0x687681b8,
+0x665c057f, 0xa78127e0, 0x81b28166, 0x817f686e, 0x7f261637, 0x81ad7131, 0x54817f68, 0x2eae6470,
+0xf110f558, 0x8aa44bc2, 0x81f12d55, 0xf37f35cd, 0x7f68679f, 0x3fc481db, 0xe02a5a41, 0x817f8130,
+0x919b6c25, 0x14749815, 0x9d7f6c60, 0xc5777fa4, 0x7f8db49b, 0x524a623d, 0x2ef59cc0, 0xd18f4a24,
+0x37707f92, 0x4af98126, 0x81b43c76, 0x7f965818, 0x7f81c786, 0x057f7f49, 0x1ab3ef1e, 0x1781eb8a,
+0xf0909181, 0x656da3b4, 0x5181cbb9, 0x81e9a237, 0x8ace577f, 0xd19f2c0c, 0x86a7817f, 0xb7628100,
+0x817fcfa2, 0x7f3cddf4, 0x744a96d2, 0x19967ffb, 0x7f7f813a, 0x81f2b043, 0x7d46cd81, 0x7f006e7f,
+0x363a7c9b, 0x9f812dda, 0x77c77f1c, 0x8172274d, 0xa7ba8181, 0xff7f1ea8, 0x817f4e7f, 0x377f9ad7,
+0x81447f7f, 0xf81f3623, 0x58ce7f7f, 0x8a4a208f, 0x4d938115, 0xb0ac7029, 0xf72b23cf, 0x467f9dd3,
+0x81819130, 0x62bb7fc4, 0x84b4b190, 0x2781b070, 0xdc81cda4, 0xcb8145b3, 0xda812b38, 0xda307f7f,
+0xafbc8158, 0x7fcb7205, 0x47e781ae, 0xc056245f, 0x81997f56, 0x51d9d6f7, 0x7f895c4e, 0xb7814beb,
+0x7f658181, 0x757f81bf, 0xdb81816e, 0x582edcb2, 0xb9860711, 0x587f81ca, 0xa45a7f0b, 0x81e68a35,
+0x7f7f3b0f, 0x3c233956, 0x7f5f3e44, 0x81ba915e, 0x9ea4dd81, 0xc323e1bc, 0xb1ac0322, 0x5e7f0e2b,
+0x6b2fb26b, 0x0e92812c, 0x667fc670, 0x7faccae4, 0xce8181be, 0x815e68c5, 0x273e7f69, 0x10f3e868,
+0x47a8b82c, 0xc8817f10, 0x617281b6, 0xe4a44714, 0xe19d4b04, 0xe8818333, 0x81e481fb, 0x58ab1e34,
+0xa68c8168, 0x815f4c12, 0x181be656, 0x817f147f, 0xc87f7f8b, 0x7f7fa1f9, 0x7c787f7f, 0x7f7ff8ae,
+0xcf9200a0, 0x7f65e492, 0xc37fbb89, 0xa234a37f, 0xa27f7fb4, 0x818a6fb3, 0x04817fb5, 0x2e7f636a,
+0x905db630, 0x812bbc0d, 0x8f1beb7f, 0x7f83bb5c, 0x81b96698, 0xbebc8152, 0x6669b181, 0x7f81452e,
+0x6861ca81, 0x8806d040, 0x4570d28b, 0x812681fe, 0x817e3b48, 0xcd3ddb3c, 0x21777fa4, 0x7f3d81cd,
+0xae0d8104, 0x8134b9fe, 0x7fb87fdc, 0x81ac7f6a, 0xbeec5c5d, 0x60cc4dfe, 0x967f82fc, 0x3a8187a2,
+0xe9577fa9, 0x818181a5, 0x8181b4aa, 0x81204f7f, 0x81708146, 0xbe08d127, 0xdec25eca, 0xc3e0db2f,
+0xf7817f4f, 0x7f5da797, 0xc9c44f90, 0xbc5b84c5, 0xda44a681, 0xcc9b810a, 0x38c5c3c1, 0x674294d4,
+0xe47fe181, 0xa4817f54, 0xcd06b70a, 0x5b3d7f7f, 0x7f137fbc, 0x38769bd6, 0x817f811d, 0x6bc4046f,
+0xba9a7f2d, 0xca91ea2a, 0xe881d10b, 0xf9810daf, 0x42e57f81, 0xc87c147f, 0x4f817f7f, 0x66c7bd81,
+0xb991549f, 0x816febec, 0xdc50fd71, 0xaab9aa83, 0x7fbd3952, 0x7f50c6cf, 0x1481f8a2, 0x3ff381ab,
+0xf6b0470a, 0x81e12ebc, 0x817f5f39, 0x3c7fb836, 0x79813781, 0x7fefa2c9, 0x7e81030d, 0xb849bf3e,
+0x81613b40, 0x08817f32, 0xbd5ffe64, 0xd688be81, 0x0166eab3, 0x81077f0a, 0xe5817f56, 0x91b83696,
+0xac8181d6, 0x5732a410, 0x40818181, 0x81915bb3, 0xa87f8145, 0x816a06ce, 0x033f7d7f, 0x86438281,
+0x3afc477f, 0x9cdf8102, 0x786d4383, 0x81ecfe7f, 0x89a7471d, 0x349c7fd7, 0x7f377f3a, 0x51d55daf,
+0x62337f61, 0x547f910e, 0x4bea99d2, 0xbfa9557f, 0x7f2ee96a, 0xcb9ccccd, 0x0fc3a681, 0x687f30fd,
+0xb07f4530, 0x83814334, 0x955bf3c6, 0x7f909981, 0x7b4e617f, 0x7659def0, 0x05565d7f, 0x81f271cc,
+0x31ca8581, 0x1afd6755, 0x818181ff, 0x7f8181ef, 0x7f7f77ce, 0x1d6692cf, 0x73c57f7f, 0xf083d53f,
+0x707f9c09, 0x1ce6813b, 0x17bcb0c6, 0x15b59ba7, 0xde7f817f, 0x7f925801, 0xeba91d81, 0x568190e4,
+0x7f817e72, 0x8d7ffa3c, 0x82f281fb, 0x548a7f7f, 0xe9777fa8, 0x407f16cd, 0x7e8167a8, 0xc5812c04,
+0xeae8e181, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0xf481c67a, 0x89b07fc3, 0x2e4d7b44, 0x9181818e, 0x83b88158, 0x8181739b, 0x4aa97f6a, 0xb36d7fa6,
+0x075bb9b8, 0xcf839c97, 0x20ba9176, 0x117a6a6d, 0xc35b571e, 0x8181fb5f, 0xec3a7fa9, 0x3eec7fcb,
+0x53622f7f, 0x8681a07f, 0x0ff39b65, 0xb6c82420, 0xefb381d6, 0xd5390961, 0xf1887f0f, 0xbec2abad,
+0x64d57f81, 0x2281057b, 0x1f7fe936, 0x99038181, 0xc1450b81, 0x65cc5386, 0xb886acc1, 0x109dde08,
+0x6417d0dd, 0xcb7f7f76, 0x9681b397, 0x53c39e81, 0x437fd46e, 0x751c3481, 0xdd4c813c, 0x38817f65,
+0xf0b39281, 0x31357fcc, 0xf37fae31, 0xba8181e7, 0xefc1e23b, 0xa8650162, 0xbb815838, 0xd6eeba30,
+0x8de2db81, 0xc01ca018, 0xed2dfb81, 0x7f84731f, 0x40633968, 0x557f2c0f, 0x5f5c6374, 0x41b02181,
+0x447f6e09, 0x8d56b3a6, 0xe47f81bd, 0xbe712a04, 0x3e7e78b2, 0x470a8128, 0x298981b3, 0xe65e2866,
+0x5bad817f, 0x78884acf, 0xb521287f, 0x81df4b81, 0x33818184, 0xb3d65f30, 0xc2ed7fbc, 0xc4811ccd,
+0xec92a11d, 0x5bc5817b, 0x57ad8103, 0x7f6226e4, 0x07c2d87f, 0x3d7fb181, 0xff73974c, 0x08815f61,
+0x50616fbc, 0x923ec16c, 0x2181c73a, 0xb8f88181, 0x047f7f7c, 0xe87fa53d, 0x399ca775, 0xef139839,
+0x7f217f43, 0x811415c8, 0x37f6b9c6, 0x7f7f817f, 0x11c6ad81, 0x81b3c88d, 0x0ca47c91, 0x024a7604,
+0x2dda2f7f, 0x811c5281, 0xc27f814b, 0x7f37a317, 0x42433381, 0xddfbc9da, 0x23737f7f, 0xe3acaecd,
+0x1d846dc3, 0x7f1bd4e3, 0x4055d37f, 0x7f1e9a81, 0x31d29025, 0x6d90cf64, 0xdf532fea, 0x1a3dc07f,
+0xf997ee19, 0x597f5460, 0x2a0b5b30, 0x5751a381, 0xd27f8489, 0x7f1f9ae4, 0x2bd07f7f, 0x5281923c,
+0xbb7fae6b, 0xd344db7f, 0xb0431bc3, 0x33744f44, 0xd2996981, 0xce048861, 0xd57f36c1, 0x1181819f,
+0xe7592aef, 0x7fbe817f, 0x177f7f04, 0x2cc78381, 0x27558149, 0x7f64746e, 0x2bb97dc7, 0x10aba652,
+0x02f70c7f, 0x7fd8ae81, 0xcd81f07f, 0x9352c65e, 0x344a817f, 0x4f282881, 0x3e2d23fe, 0x69517fb3,
+0x7fd1e4a6, 0x3bf47f7f, 0x33909ff6, 0x81aba30c, 0xaa8181dd, 0xf6f36f81, 0xb57f7fa4, 0xe8b6a572,
+0xb0ac3a81, 0x81817413, 0x104de181, 0xef977fcf, 0x2054acbe, 0xa9013b81, 0x4a7f34fe, 0x49747f6d,
+0x5ad74c74, 0x0e582cc5, 0xa7ea83c9, 0x7f7f750e, 0x38847f81, 0x41817281, 0x3344debd, 0xd229728c,
+0x027f839f, 0x5d9fc4ff, 0xdb1e7f51, 0x439681ca, 0x1b81b581, 0x7f777f9f, 0xd6bfb07f, 0xb050814a,
+0x1981648e, 0x2cca7f56, 0x30814ab8, 0xc48143a5, 0x5bab3c8b, 0x7f97249c, 0xf7f09eb9, 0x074aa055,
+0xc86bbe54, 0x815ed4b2, 0x7fd0b28f, 0xd7e07470, 0xcf815cc6, 0x7e7f7f63, 0x81dfe09b, 0x4098da7f,
+0xc1d5a339, 0x7928937f, 0xa481bf6e, 0x81accdd5, 0x3b9c5cb7, 0x817f81a8, 0xc49b8a56, 0xec817f93,
+0xb7a9306f, 0x43555d59, 0x5f815d7f, 0xb79e7fc8, 0xc9d17fa5, 0x7f9999b8, 0x73467f81, 0x38627fd7,
+0x7a9138ab, 0xbd46b67f, 0x71b5823e, 0x5c81fbb3, 0x3d508f7b, 0x8173c630, 0xd4816172, 0x3f81d92d,
+0xcd6b9d7f, 0x72ee607f, 0x851bd2ce, 0xbc4e7fde, 0x1c6c8193, 0x9252b181, 0xcc217f96, 0x296d7f98,
+0x5957ae75, 0x817f14bb, 0xbf7b8191, 0x44d87f81, 0x352a84fa, 0x524a882e, 0xae66ac81, 0xbc7fc592,
+0x2cb1dc81, 0x42e56887, 0x7981b76a, 0xa5667333, 0xd2ab7e7f, 0xe37f817c, 0x26817f7a, 0x23570c5a,
+0x1a685290, 0x814bb476, 0xf6527bb0, 0x7b810805, 0xe63cd272, 0xc1d97fb5, 0x1e8124d3, 0xd34f157f,
+0x367f82a6, 0x14819e1e, 0x39226087, 0x818681da, 0x8121417f, 0x81186358, 0x57e88e9c, 0x077f6e37,
+0x96087f7f, 0x9a82c77f, 0x0781c4b8, 0x81217f81, 0xc565447f, 0xab41447f, 0xf7915a1f, 0xe58b5a81,
+0xcb817d13, 0x81819181, 0x0d4cc8ee, 0x63b4f36e, 0x587f81b3, 0x47947981, 0xcc7f7f88, 0xa3816781,
+0x2581a481, 0xc750aa5c, 0xcd440151, 0x4d684b81, 0xd8a6b50f, 0x4f7fa9b5, 0x3f1b93cf, 0xb58f812e,
+0xaacd817f, 0x136d7fa9, 0x81b581b9, 0xb75d7fd5, 0xd29a8133, 0x337f8ec0, 0x75ac901a, 0x0a6d7fb2,
+0x2d208186, 0x8186b97f, 0x0cb42af4, 0x03ac9e7f, 0x1167a77f, 0x7f19fad8, 0x2d4781b9, 0xf97f6658,
+0x9081bc81, 0x6f7f4087, 0x8e527f8d, 0x6873d688, 0x817fbc88, 0x4b81608a, 0x22814ea0, 0xe97f81c5,
+0x10bb3de5, 0x818115ed, 0x421b3081, 0xa17f6e52, 0xf46d7f09, 0xd87f8185, 0x68a79c2b, 0x7f7f837f,
+0x4d7f4967, 0xc8507f81, 0xc67881f1, 0x0dad027f, 0xad7f8125, 0xa47fb3aa, 0xc74ceb01, 0x373974a7,
+0x4e7f8153, 0xa87c423b, 0x2ad75081, 0x4a817f35, 0x357f5517, 0x55816581, 0xcb7fa97f, 0x7b797f7f,
+0x504ee981, 0x7adecc6b, 0xce338197, 0xc49ab9bd, 0xe3877f3e, 0x7f817f81, 0xea3624fa, 0xfd889681,
+0xfd7f7ff9, 0xa6732f2f, 0xa81b81e0, 0x817f7fae, 0xbcb4b010, 0xc37f7ff4, 0x9a52819e, 0xc730eaec,
+0x437f817f, 0x8865815a, 0x53337f64, 0x2d817f8f, 0xd7e2417f, 0x2b6ec637, 0x3d819d41, 0xe4877f52,
+0x26a26a63, 0xdc74a867, 0x71433c4d, 0x94b02e35, 0xd6a155f5, 0x3cd37f73, 0x5c89997f, 0x569e7f03,
+0xe0adb53a, 0x49d78e81, 0x9c7f22a4, 0x01385b17, 0x9081db0e, 0x3a8c46a9, 0x1e016448, 0xfebdc287,
+0xf072dec5, 0x9f816429, 0x4bb0817f, 0x5a0ac21a, 0xf74ca8aa, 0x82811b7f, 0x1c08bf81, 0x1fe36842,
+0xbc7f8181, 0x373b7f21, 0x097f8150, 0x54935b9a, 0x3a7f1381, 0xceb77ff1, 0x55ab4e7f, 0xcb1ab47f,
+0x9f17477e, 0x7374b97f, 0xb2512a9d, 0x8148d0d2, 0xc057444f, 0xe94f8162, 0x7f816e40, 0x1da3d14d,
+0xb458eb23, 0x7f907a47, 0xc8657f81, 0xc4f36ba1, 0xbc8181e6, 0x81efd081, 0x53607fa6, 0x51368181,
+0x32b84fdc, 0x8127b27f, 0xd2247f5c, 0x56f77669, 0xecfdfe9d, 0x697fc681, 0x7f7f2781, 0xdb7f371a,
+0x1b8181fb, 0xea78f17f, 0x5a187f7c, 0x7f7c705e, 0x2b58816c, 0x757f607f, 0xc87fc97f, 0xec5b66a6,
+0xb89574c0, 0x77ccb739, 0xe1fd2aa7, 0x7f45d8cf, 0x20283a95, 0x5f45909a, 0xe581748f, 0xf97fab7f,
+0xc8e0357c, 0x73c7da4b, 0x7f0e812e, 0xba01c67c, 0x0324fb81, 0xea2ee62f, 0x253e88ae, 0x077f81cc,
+0x817fc781, 0x94f17fff, 0x0ed6f0f4, 0x84677f8f, 0xb598462a, 0x81a87fec, 0x3dbaa47f, 0xbd62fd81,
+0x277f81ae, 0x0f43ab6c, 0x07c1617f, 0xc7bc8181, 0xba2460fa, 0x6d0df181, 0x92dfa27f, 0xf7d1033d,
+0x53b71860, 0x81b28146, 0x6564b13a, 0x7fcf0981, 0xf9004e81, 0x10229f55, 0xdb7f7f05, 0x281845aa,
+0xca6ddfab, 0x6481d77f, 0x4e4120ab, 0x81006b47, 0x518dce81, 0x907f8145, 0x4d5e7f2a, 0x064076ad,
+0xdc1c8e81, 0x354b2545, 0xc8426706, 0x4447b281, 0x21daad30, 0x6d21a202, 0x04249781, 0x19ac7063,
+0x3a7f00a0, 0x81f41c2f, 0x523c5b36, 0xb6817f43, 0x3f817f86, 0x811234c1, 0xd77fd8a3, 0xc2f2927f,
+0x557f7fb1, 0x41d9e881, 0xeec06dde, 0xe4633caf, 0x3c72fd19, 0x9cffc57f, 0x4b7c8659, 0xcbf6e57c,
+0xd9bb7f7f, 0x5fdd819f, 0x69ecd881, 0x7f817f90, 0xe68181f7, 0x10811439, 0x2a7a2c37, 0x66438157,
+0xbc634044, 0x3fe98163, 0x81ac8166, 0x8143811d, 0x364f63d5, 0x377f4e81, 0x24755bb8, 0x17adfc5a,
+0xdedea8e0, 0x2e6e9e14, 0x0e816188, 0xe56cbe81, 0xb9c85cca, 0x817fb120, 0xae7f8181, 0xe37f7f7f,
+0x0827d377, 0xdc7f815d, 0x9a2a5625, 0xb2ab4736, 0x817f2274, 0x817fb29c, 0xdcece2cf, 0x5bddd988,
+0xcc1e817f, 0x24793971, 0x40ea214f, 0x326f7e64, 0x1a9e3ed0, 0x268c1a7f, 0x314b8548, 0x0f7f8701,
+0x347f7c7f, 0xb9ca13bb, 0x3492187f, 0xc67fa67f, 0x7f49814e, 0xaa7f91d1, 0x18d53577, 0xc88b53a1,
+0x20af691f, 0xe6853f81, 0xcf5d08bf, 0x81705981, 0xe30d47f0, 0xa8c17fa5, 0xdb817fb4, 0x12818172,
+0x83433d81, 0x4a7ff6e4, 0x327f937b, 0xbb6509d3, 0x2c02fc7f, 0xf3b7feb4, 0x415d60ab, 0x136551d0,
+0x0e818181, 0x832eb165, 0x3c7f7f82, 0x817770ae, 0xf9b3a525, 0xddcb3d02, 0x008b6181, 0xdbe55445,
+0xec8137cb, 0xf5e8f76c, 0x61815ac9, 0xc8810fb0, 0x35547799, 0x0d81a035, 0x1c3eea42, 0x88d77f96,
+0x2948677f, 0x0852db6e, 0x42367f74, 0x0d7f867f, 0x3a7fff81, 0xd1d1d271, 0x02a981e5, 0x2bfd2988,
+0xd3818199, 0x4e7f4010, 0x09297fd4, 0x7f816b68, 0xe60a05ca, 0xeb81c97f, 0xa2cf5e81, 0xfd7f7f52,
+0x07057f53, 0x8672147f, 0x389bd281, 0x3a855c79, 0x41328181, 0x21fe5e81, 0x073f7fc3, 0x3654f170,
+0x24bc7f7f, 0x4f816ee1, 0x67427f7f, 0x8140676d, 0xef53e53d, 0xa48bce41, 0xdb5832d8, 0xf64a58dd,
+0x3d3e70ab, 0x53ab4a16, 0x137f2023, 0x74569bad, 0x017f8138, 0x81902bed, 0xbdca8f24, 0xa34d8193,
+0x81cf7f90, 0xab43b32b, 0x003f7f49, 0xbf3d4570, 0xbce67f72, 0x7c197fc0, 0x5376d47f, 0xd53d7fa8,
+0x7e9bb47f, 0xd72aa0f2, 0xde818138, 0x5cc3a981, 0xd57d9c5d, 0xecb2d6a9, 0xf97f81e4, 0xb67f8f33,
+0xb92b577f, 0xc483f97f, 0x469d9481, 0xd4868181, 0x7031e886, 0x95b4ca8f, 0xc6d4bd93, 0x117f227f,
+0xb67e7fe9, 0x7fb35540, 0x07d01f81, 0xb4ce9b40, 0x1b118681, 0x7f657bfc, 0x2bbe817f, 0x287f176e,
+0x6c96bb02, 0xcfff9e59, 0xec7f647f, 0x817f81b6, 0xabd131be, 0x819081e8, 0x4724b87f, 0x5f817f3e,
+0x62b99368, 0x81818110, 0xc99ad3b2, 0x25816734, 0x0702743f, 0xe1b4812f, 0xcb787f81, 0xac864257,
+0xcb928181, 0x55e27b81, 0x26f281a4, 0x63898181, 0xbbe1e54a, 0x58d2f881, 0x49e3cc81, 0xf7ea287f,
+0xe9827f82, 0x81a69a5c, 0xdd81d292, 0x7f935122, 0xd17fdc3f, 0x321a8fa8, 0xfa819a81, 0x1fdb7f79,
+0xc6cf9b09, 0xe181547f, 0x0acacab3, 0x0e7f72ca, 0xf562e081, 0x13d3827f, 0x5692de7f, 0x35b04a5d,
+0xdd818e3a, 0x6b7f6160, 0x29303878, 0xc7687fbf, 0x38508173, 0xa6bd37be, 0x0d339881, 0x5e198614,
+0x67f745e5, 0x81081a7f, 0xa3c77d84, 0xaadb7f81, 0x578d7ff0, 0x75a0b54e, 0x0d01587f, 0xa1cb624b,
+0xf94181b7, 0x819d3a81, 0x37258135, 0x5aa87f3b, 0x0e7f7fd0, 0x5b7f817f, 0xda4ce9b1, 0x40917f81,
+0xc57f7f3e, 0x4115b391, 0x627b816f, 0xa8575f49, 0x99ec8124, 0x33db907f, 0x4973c07f, 0xc9b71548,
+0xde548177, 0xb608bfcc, 0x1d0787bd, 0xd37f793a, 0xfe847f7f, 0x7f3f4111, 0x3dd5de99, 0xbedb817f,
+0x4c65c24d, 0x5d2c813e, 0xd901b37f, 0x974c5c92, 0x7f7f7f7f, 0x812b7f81, 0x0057836f, 0xf0778181,
+0x2881f3c5, 0x35147581, 0x817fb31a, 0x7e7ae063, 0xfa1e4184, 0x7f1e787f, 0x529c5123, 0x553b9a81,
+0x12de4220, 0x1fa92f8f, 0x4d66a52a, 0x554a2f40, 0xad3f637f, 0xbc81257f, 0x04f8976a, 0x2aa1fc7f,
+0x3881b3cb, 0xcfc6ee25, 0xa37f5f60, 0xffddf08e, 0xce817f2a, 0x824f4685, 0x17b8a353, 0xa97f8a81,
+0xfc81dc7f, 0x7f81a5b0, 0x26fab529, 0x811085c4, 0x031c5a76, 0x817d7f95, 0x1a8181cc, 0xe6aa0f7f,
+0x1e454a7f, 0x1c98818c, 0x2b5ef528, 0x7f2b7f5a, 0x4ec7adbe, 0x6981f15d, 0x7f1d4b23, 0x0f337fb9,
+0x1db1b85f, 0xdb7fbe3d, 0x1eb3aff5, 0xba2a7f96, 0xd6a0761a, 0xa97f117f, 0x341781f3, 0x9981817f,
+0x56dd7f44, 0x431981b3, 0x115d7f7b, 0x7f5a818b, 0x943248aa, 0xb78a45db, 0xc2046981, 0x7a330a6f,
+0xedb7817f, 0x81198df6, 0x29e37f9d, 0x74818143, 0xe5147f86, 0x7fac4869, 0x39e2bb4a, 0x422b983d,
+0xdb949bec, 0x2c7f5181, 0xe7539781, 0x7f818ca1, 0x2e815f79, 0x2b199727, 0x28ea3181, 0xe65c7fa5,
+0xfda2810a, 0x7b227ff5, 0xc259caa9, 0xdf9e7f4e, 0x1c7fbc49, 0xce892118, 0x083b81e0, 0x7081b06f,
+0x0c7f507f, 0x637fae31, 0xf2967f40, 0x810181fa, 0x0878b37f, 0x98817f4d, 0xdaa946cb, 0xae813eb4,
+0x67bb97b4, 0xe156b2a5, 0xc97f6dcc, 0xa90bd681, 0x14817f81, 0x7f816058, 0x1d587f76, 0xea425425,
+0xd62e4781, 0x477fdca5, 0xcb667f7f, 0x8169daa2, 0x631cc881, 0x1381fb76, 0xf27f817f, 0xb297434b,
+0x3b1d7bae, 0x89b8d27f, 0x947f8bbe, 0xbc81d770, 0xf94f0724, 0x3cdc817e, 0xf981817f, 0x1b75245a,
+0xab20818c, 0xf2811c81, 0xfc78c27f, 0xb77f0881, 0x838132d7, 0x20818381, 0x127f815a, 0x8e9e267f,
+0x1fa87fc5, 0x1da2bf47, 0x0f81939b, 0x118ba016, 0x52c07c6d, 0x697fdd00, 0x0e617f92, 0xab812b56,
+0xce754988, 0x5e8181db, 0x22814b35, 0xfda981f5, 0xa981e85b, 0x477f93e0, 0x1e73d681, 0xdc748147,
+0x01a1479b, 0x6d4e8164, 0xd37f8b7f, 0xbf6b7f6b, 0xc68110bc, 0x81819156, 0x257f497c, 0xb07fa0c3,
+0xcac10d73, 0x39b9284d, 0xad817fd5, 0x7f8a5781, 0xe37f7f2d, 0x7f7fe7d7, 0x186d2c39, 0xc4813181,
+0x0ac8a47f, 0x569d4cd2, 0x7f3d597f, 0xb87fbe59, 0x35117742, 0xc18c7fa7, 0xb03bd7ce, 0xd77f6829,
+0xec3a7281, 0x81285968, 0xf8a69dd1, 0x81e38181, 0x4e1dbe77, 0x783d4e9e, 0x50bc7f85, 0x4181dd76,
+0xa61a4bac, 0x627dd07f, 0xa08168a3, 0xfefdde94, 0xcdc19d05, 0x39817f7f, 0x18d78181, 0x631681cd,
+0x91d2e1ac, 0xd2bfce81, 0x01f1817f, 0x810681d0, 0xccc18c5a, 0x7f0b617f, 0x563a8345, 0x917f26e1,
+0x87147fad, 0x88161a8c, 0x1481928f, 0x5c96b841, 0x1b7ff206, 0xf1bf4759, 0xc6efdc5b, 0xa1078181,
+0xf52b428b, 0x817f7f10, 0xdcd1c062, 0x0c863afa, 0xe26a27b1, 0xbd5a967f, 0xe8047fa4, 0x5be68181,
+0xef7b2e81, 0x60f47ff1, 0xf9761c7f, 0x8f297a94, 0x2c81096a, 0x7fc40ec0, 0xbb7fb3b8, 0x4494cae8,
+0x5847c916, 0x7d728183, 0xe74d7f81, 0x818d426b, 0x0006ba4d, 0xb4bd9ba6, 0xe00a813e, 0x68032681,
+0x18877f81, 0xb46281d3, 0x3381113e, 0x6a7f57f7, 0xe2a7194d, 0xcb7f7fca, 0x62c66981, 0x5181e082,
+0x6acdde81, 0xbcbbf27f, 0x3e3ea181, 0x81e6c17f, 0xf854097d, 0x307d58c8, 0x2e9e81a7, 0x93ce81ce,
+0xcad4d5a2, 0x1272b081, 0xb84ccf3b, 0x007f9d7f, 0xe294efb0, 0x830c7fb7, 0xca07b17f, 0x3b9a88bc,
+0x09350bd4, 0xae007f48, 0x3a6a8181, 0x38777f48, 0xce7f7f12, 0x9781570e, 0x3766817f, 0x4b607f7f,
+0xe38c2477, 0x9cc64b35, 0x157f0742, 0x6881d981, 0x53c88c81, 0x9f8974ae, 0xa77f8319, 0xfb527fbc,
+0xdf865f22, 0x407f8117, 0x5f5a4c24, 0x14207f77, 0xbfe8e081, 0x667f7f58, 0x31f17f37, 0x467f307f,
+0xed7f7f48, 0x2bc96b81, 0x04816572, 0x8137a081, 0xea407b02, 0x7f06814a, 0x097c819a, 0x3ef22003,
+0x077d1469, 0x32e06181, 0x1e7fa7de, 0xc7508658, 0x2d58ddad, 0x921d7e79, 0x3af381d7, 0x31b971a9,
+0xa7b38de5, 0xf274be04, 0x9690d41d, 0x857f4dff, 0xcf7f5cb0, 0x8117bc7f, 0x1b7f4a91, 0x288181d6,
+0x3f4d7b12, 0x7f7f979c, 0x4581b06d, 0x7faf7f81, 0xaf1dac81, 0x4d068bb7, 0x367f50bc, 0xdb7fbd41,
+0x4f7f7f38, 0x81ac15f8, 0x2c3725a9, 0x98577f4e, 0xb20f8197, 0x6f816981, 0x26c87aa2, 0x1781c2a1,
+0xf5449d24, 0x14cc2651, 0xe33d7f7a, 0x4d7f7ff2, 0x3554512e, 0x25c23b96, 0xde7f8d7f, 0x44bc34b3,
+0x2a7f3050, 0x1aec3857, 0xada98181, 0x2644d0ee, 0xcbc2333e, 0x7f8e7f87, 0x4aa03181, 0x11b736b7,
+0x3abb2381, 0x2f96817f, 0xe1476381, 0x83ca2b85, 0xfc3281ba, 0xa0d62222, 0xefbe354f, 0xa022be81,
+0xd77fb435, 0x17538367, 0xee85d87f, 0xa4a66071, 0xc8402561, 0x818a277f, 0x9d4ddd7f, 0x23bf327f,
+0x32ec1b81, 0x8c138d68, 0x237f1a15, 0x4a0e2b7f, 0x5b7f4981, 0xba747f29, 0xa1d37848, 0x0c7f03df,
+0x923f1d7f, 0x8faa7c7b, 0x35068194, 0x60d2f465, 0x27606681, 0x7fc37f8a, 0x31bd3bd5, 0xcf58445f,
+0xdcce241b, 0x88d9816c, 0xb9b2a7d2, 0x2205817f, 0x01ec81af, 0x4581c8a8, 0xdb0f1b6f, 0xca0628cd,
+0xf63881c7, 0x7fa3697f, 0x5246567f, 0xb77f7fa1, 0x297f897f, 0x4cb8c84b, 0xce9e977f, 0xbf811e0a,
+0x219d746e, 0x7adcfa81, 0xbcce1a61, 0x28987681, 0xfa7faeeb, 0xdb454581, 0xa5a5919d, 0xbf85a57f,
+0x34b68581, 0x925c812d, 0x189a4c7f, 0x3ad03756, 0xf8c97f13, 0x97227f81, 0xfd7f070e, 0x7c7fd41e,
+0xfe81b327, 0x81a6627f, 0x0016cf64, 0xded56665, 0xcc5fbd10, 0x81112f30, 0x4c6c877f, 0xefb9b53f,
+0x33bc2181, 0x5e797cc7, 0x2a10c047, 0x917a7f81, 0x3a81817f, 0x8197ccbd, 0x73df4f32, 0x264f522b,
+0xc1e9528f, 0xbb494681, 0xfbde6eab, 0x4f7f280b, 0x987a7f1d, 0x167f1f7f, 0x0b817f81, 0x8124a87f,
+0x927f8181, 0x7f81ad86, 0xc779dc81, 0xd0f681fb, 0xcfd8fb81, 0x19cf4981, 0xb87f4bf5, 0x4893529b,
+0x0040eb60, 0x7fc78bae, 0x474455dc, 0x0b7f7f7f, 0xa92f7f70, 0x7f3d9c73, 0x137fc699, 0xb4a3c6fa,
+0xcb7f5c1d, 0x9c259c99, 0xdf5183d9, 0xa62181a9, 0x9a273761, 0xa5e8cd8b, 0x41b4bf1b, 0xa9818110,
+0xb27f7f7f, 0x0e6bb7c4, 0x2e3e7f90, 0xa4c68172, 0xf73f7f7f, 0x81818164, 0x5299a157, 0x0a297f5c,
+0x9a46f024, 0x8178d77f, 0x02818181, 0x8181025c, 0xd96828bb, 0x77644a05, 0xb77e4427, 0x407fa650,
+0xab7f7f56, 0xaeeff9fe, 0x2f871d3b, 0xb8d7dd43, 0xe8817f7f, 0x7f4d0a27, 0x036a5b7f, 0xd4a3e67f,
+0x9122dd23, 0x627fb09d, 0x055c6534, 0x0689a1b3, 0x4f484a7f, 0x7f77b1e5, 0xc47f9d06, 0xd381c37f,
+0x3b819a7f, 0x4381827f, 0xed81817f, 0x95c3917f, 0x1b1e9ff3, 0x4c98cf7a, 0x81927f81, 0x703fd644,
+0xed5db0d6, 0x23225674, 0xf95a8187, 0xe6ac7f32, 0x488150e5, 0xf6b5e281, 0x29810449, 0xfdada97f,
+0xa6a19781, 0xfe36879a, 0xc96ac845, 0x3bf937bf, 0xa2812172, 0x84203765, 0x5f9e3403, 0x017f6a34,
+0x2cc6607f, 0x99877f7b, 0x2ad981d2, 0x81933581, 0xdf81338a, 0xd478056f, 0xfa7fa571, 0x1d818352,
+0x17c9db81, 0x9c7f7f52, 0xdf9bd4b1, 0x417f98a5, 0xca5517df, 0xc44b22d0, 0x58727f9e, 0x28817fd5,
+0x477f2fb3, 0x8b3f7f59, 0x0940765f, 0xa970b281, 0x0a0a7828, 0x81319e7f, 0x2dc34181, 0x4081668d,
+0xe7817fcb, 0x3641753a, 0xc17f3d81, 0xb88154b1, 0x73246eb5, 0xb0db8186, 0x09a2ec6a, 0xd82e2c71,
+0x336f7f81, 0xd6817f4e, 0x43814a81, 0xc579811f, 0xc0812803, 0x447fa1e0, 0x81b01b7f, 0x752152b3,
+0x4f15817f, 0xf97f61c0, 0xc99bd9b4, 0x2281307f, 0x607f8181, 0x7342b07f, 0x06bd9181, 0xb8b8bac5,
+0x3b3ca425, 0x8175e89b, 0xa50d7f4a, 0xbb56b781, 0x817fca6c, 0xac0fa7e8, 0x8e7894b7, 0x1d05cf50,
+0xf34f5b7e, 0xb65332e5, 0xc76e9375, 0x66d058a1, 0xe5a09f7f, 0xe493eaa5, 0x05fb81b5, 0x33817f14,
+0xee418105, 0x81a16f2c, 0x367fa849, 0x7aedbecc, 0x100f81c4, 0x81b2fb3c, 0xcc7fb181, 0x1b3ff096,
+0xd3b03a81, 0x4b815f75, 0x497f9c7f, 0x81015625, 0xa0817f81, 0xb0b8167f, 0x7eb7a3fe, 0xe97f6585,
+0x555a877f, 0x4b7f8181, 0x12a95e4a, 0xcb6f5afe, 0xd87b5fad, 0xbe655fa0, 0x8b81300b, 0xccb26381,
+0x39868173, 0xd6817fa0, 0xcf684e81, 0x7f3bae43, 0xfd8c20a8, 0xcfa0a31f, 0xc0307f81, 0x4e7f5d84,
+0xeb941e81, 0x6f77d070, 0xfa0b7f7f, 0x3cb88193, 0xf6818163, 0x3d5f8fbf, 0x40c4c73b, 0x4b7f4e4b,
+0xae968181, 0x818181b2, 0x81148181, 0x6b325381, 0xeae5582e, 0x7630307f, 0x1c0f6ba9, 0xa54a0457,
+0xd37fc693, 0x2345817f, 0xe44f1e7f, 0x3e4cc9cc, 0x3081babf, 0x817f45c7, 0x5265e57f, 0x427f81ca,
+0xe451817f, 0x8190b7de, 0xf0718981, 0x7f9ad381, 0xb9645da5, 0x7f7bed3e, 0x5ce37af9, 0x307f4ecb,
+0x0a7f8135, 0x81ffa7a0, 0x534fa1a5, 0x7f42d641, 0x0e501e61, 0x7f7f6edc, 0xc859c081, 0x377f85f7,
+0x0df9ab94, 0x817f7f7f, 0xfe7f7f81, 0xc1327ff4, 0xe84c842c, 0x7f1e5bc4, 0x1da77cf1, 0x1e817f53,
+0x5f9ab07f, 0x86209e4a, 0x204e81cb, 0x33c9928d, 0x275a2d8d, 0x7f810281, 0xfe7ff7ba, 0xfab77fea,
+0x658145e5, 0x73d57fd6, 0x01ec097f, 0x6d83207f, 0x49810cb5, 0xb5d9ce39, 0xf9e0436a, 0x629c81ed,
+0x48cf2c8c, 0x7fe37f7d, 0x5b257d81, 0x765f50b6, 0x2cc98403, 0x817fbebf, 0x127114c7, 0x347f287f,
+0xd2d72990, 0x81099d9a, 0x8143cac5, 0x8c452fc2, 0xd27f8f6e, 0x61957f25, 0xbc6fc54d, 0xce81f31f,
+0xd381787f, 0xac0e5156, 0xf081afc4, 0xb47f6f2f, 0xef811a81, 0x015ee99c, 0xd46de9d9, 0x30655a6d,
+0x09b2b87e, 0xaf13753a, 0xc6dd2a7d, 0xb9bd8190, 0x81537f7f, 0x669ff8ed, 0x5b810c81, 0x42e5a566,
+0x0c4174cd, 0xbdf9b7bc, 0x1c118e65, 0xe28f9b2a, 0x8c207f3a, 0x1e7f7ff4, 0xd6b57f1c, 0xf0131edf,
+0x38c9a381, 0x7f40817f, 0xb735817d, 0xa1a864de, 0xd99cbf57, 0x811a81f5, 0xb381e381, 0xe88e7fb6,
+0xfb4a5b89, 0x7fc006a3, 0x1c81653d, 0xbceaa09c, 0x8d7799d7, 0x4b407a81, 0xdc81bca1, 0x3437d76c,
+0xd79fe5c9, 0xd9adeea8, 0x163e8164, 0x2cc1b281, 0x3e81e9f1, 0x936504c9, 0x047f6f7f, 0xf981a776,
+0x203b2d68, 0x81dde8d1, 0x13e9e9bd, 0xe04108a3, 0x50304281, 0x486d7fb7, 0xbbff81ce, 0x31d43aa3,
+0x21813c7f, 0x81c8f989, 0x7f481024, 0x0a979b6a, 0x010081d7, 0x7792e641, 0x0654d37f, 0xa53da946,
+0x96c781d2, 0x41524ca6, 0x2ab2d581, 0x1c65bb79, 0xaaa494af, 0x81e09681, 0x3d7facf5, 0x04c3818d,
+0x2c1461c7, 0x788581d9, 0x1d3f2081, 0x49dfaec2, 0xfdf07f61, 0x40396d32, 0xc8835fbf, 0x7fb19f54,
+0x2fcc8142, 0xe7dcb4e1, 0x73c3a807, 0x7fc68137, 0x061e81ac, 0x81c70c7f, 0x1d817f73, 0xfdbace27,
+0xa5fa4081, 0x9b5575ca, 0xee81cc4b, 0xe85a7f53, 0x8daff2e0, 0xd1d1067b, 0x98ec3662, 0xa5818253,
+0xf8266d26, 0x38da26ac, 0x3f98912e, 0x4a10f144, 0xd845a345, 0x811bd786, 0x4b137f7f, 0x3427fa81,
+0xe981eb9f, 0x8f4ce6e7, 0x277f8181, 0xb0a5b03b, 0xd0633788, 0x4781b17f, 0xb27f3ee7, 0xd37f30b6,
+0x21c3a15f, 0x0492a4d0, 0x097a6c7f, 0x047f1c81, 0x994b7f81, 0x818ea981, 0xd46d7fca, 0x2b8a5381,
+0x9d424d91, 0x814d7f81, 0x32aa367f, 0x28ff1b73, 0xbea1dbde, 0x76db7f86, 0x248a8d37, 0x294b8136,
+0x6e8142d6, 0xec65687f, 0x66297f57, 0xdfb563b3, 0xd352ee79, 0x0689d45c, 0xc58123cb, 0x0b62bf8c,
+0x53c6d80b, 0x7fbc9773, 0xe4596e21, 0x2584812f, 0x1793b781, 0xaa815927, 0xb8659035, 0xccbe2281,
+0x5eabb4c9, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0xb339946b, 0xd7497238, 0xc36e8181, 0xd0816d3e, 0x7f7f2681, 0x6709bf21, 0x92e3bf81, 0xe54358cc,
+0x6bb5a661, 0x3a7f81f9, 0x8140f0fb, 0xc5a67f1c, 0x8d3381a5, 0x817f81c4, 0x72817fd5, 0xa72c76fd,
+0x68dc8b11, 0x9b5f4098, 0xc0f43965, 0x7f0ecf02, 0x7cfdd720, 0xe1a0ac15, 0x087fc3c6, 0x81b66e6a,
+0x410a893b, 0x81c491f4, 0x81d87033, 0x2056562a, 0x7f526cd8, 0x817fe90f, 0x81f78178, 0x81d93134,
+0x3699e0a2, 0x7fa181c9, 0x81f64081, 0x8f816b2e, 0x816ece59, 0xd548fd2c, 0xc4ee3919, 0x6d847f16,
+0x81e423c5, 0xfade4a40, 0x9e29eeb9, 0x7fe450f5, 0x5207177f, 0xf17f710b, 0x8cf291ad, 0xd09f9cf0,
+0x7f022d20, 0xb7ea81c6, 0xbb89cfa5, 0x1c6fd006, 0x7f8481dd, 0x81020914, 0xb14c81e9, 0x4d9b4f08,
+0x7f6064c8, 0x817f7fcc, 0x6b9819e9, 0xb253e7df, 0x724368fa, 0x816fe408, 0x7481a204, 0x0e6fec58,
+0x70449617, 0xf5a1da3f, 0x7f446e7f, 0x1005abce, 0x38664981, 0x8240472c, 0x10f52409, 0x818186dc,
+0xf7810be2, 0x9c2ad304, 0x81817f62, 0xcc40a43d, 0x5e6b81e7, 0x7ff0e2fb, 0x812a7f7f, 0xe3017f51,
+0x817f24dc, 0x85c49997, 0x863c7024, 0x7fc0ce3b, 0x637f8c81, 0x814c9dbe, 0x8ea08156, 0x2cf47f9f,
+0x5b55a9b1, 0x107d7546, 0xcd0381b9, 0xd8617f42, 0x7f81b8f1, 0xb506abd3, 0x745f2b2b, 0x7f81b7d5,
+0xbf7fdb20, 0x1ca3a610, 0x7fe5e9af, 0x20b37f08, 0x810e6f81, 0x9b7fe6ad, 0x1aa35d81, 0x46032cc7,
+0xad7f7f77, 0x8bd48245, 0x3dffaa81, 0x507f91d9, 0x907f9a25, 0x404b81b7, 0xc67f7f97, 0xb1eae864,
+0xed2a18c5, 0x2ea85ef3, 0x8153434e, 0x816daaf3, 0x7f03ad67, 0xa0ec264e, 0x640ca1e5, 0xf0818f2b,
+0xcbd27ff7, 0xa6a39206, 0x4ca811b9, 0x4c57a068, 0x8647e4c9, 0x7f438ad2, 0x7f945029, 0xc168e72c,
+0x7fed4781, 0x81f706cd, 0x62810667, 0x177f7f32, 0xb105d09c, 0x81fa7f16, 0x7f11fa53, 0xc8a6430b,
+0xececbb81, 0xe82644a6, 0x3e82f381, 0x28817feb, 0x90c18135, 0xd0f5810f, 0x507f0ba3, 0xfeb38808,
+0x8e6c66ea, 0x70a0c4c8, 0x8146912c, 0xb8e01cb1, 0x2b817f51, 0x64818207, 0x9f3a4e81, 0x7f4aece1,
+0x84aeafb6, 0xa17f8188, 0x9a7fe759, 0x1cbf5681, 0xad7f6bad, 0x818eebdf, 0x438181e9, 0xa7d07f22,
+0x75dbd318, 0x81817f3f, 0x5457bd92, 0x4b204ffc, 0x7f1c637f, 0x8b4c7ffe, 0xa4d97fe8, 0x6194ca37,
+0xb06c7f06, 0xad2f1ac0, 0xaef07f7f, 0x15818101, 0x22bf8d7f, 0x597f35cd, 0xb155ab0c, 0xc2838b0f,
+0x0f81f4e6, 0x181f7f81, 0x31e1817f, 0x6a2846c0, 0xede8048e, 0x2952c3e3, 0x09187fda, 0xce411cce,
+0xbbc197b5, 0x8181464a, 0x161922d0, 0xc37f292f, 0xbd736439, 0xc881b6fb, 0x81ba557f, 0x9da521f0,
+0x3e7f52dc, 0x3b3a813c, 0x7f544bc3, 0x46b1b3fc, 0xbeb18e34, 0x418156e1, 0xab22e318, 0x7fbe66e3,
+0x2237bfb9, 0x010081be, 0xc159b8df, 0xf449b264, 0x017f9e82, 0x9dbd7ff1, 0x09c7cbd7, 0x81bc537f,
+0x817fe1c7, 0x7f177f60, 0x7474bcdf, 0x3c7f6f70, 0x7f7f987f, 0x81812ecc, 0xca783f94, 0x64cc4da9,
+0xa0ba1d0a, 0x7aeec524, 0x43bb6b81, 0x1a338981, 0x206be419, 0x65819d5a, 0x7f81d73f, 0x81a67f36,
+0x22810442, 0x7fd4cef9, 0x6067ad85, 0xd6d17f30, 0xea7f8166, 0x457f7f84, 0x817f1bc8, 0x6b86be00,
+0x7f8bc555, 0x519d5bfa, 0xd07f97e4, 0x505c81d4, 0xf1eb8115, 0x72bdd002, 0x9da57f77, 0x817f12cc,
+0x81c03652, 0x441872fb, 0x554bdf67, 0x2e46f0d1, 0x81817f8d, 0x7ff5ce55, 0xd2ded97f, 0x817f67af,
+0x0539c336, 0xa37f2f7f, 0x8150637f, 0x8156d068, 0x827fbda5, 0x9f176b2a, 0x81878c0d, 0x81117f07,
+0xc0d15559, 0x869c81c4, 0x7fa498da, 0x46d5d102, 0x81f7a581, 0x816eca47, 0x67ad9d95, 0xccb49c2e,
+0x297c5440, 0x817f7cda, 0x9f55bd08, 0x2b7fc490, 0x817f817f, 0x377a8158, 0x91b5bf7f, 0xc87f4f21,
+0x977fc1d9, 0x7f3088f4, 0xe938b6ca, 0x41707434, 0x81a27fd5, 0xcf818116, 0x817f887f, 0x09cf3bc9,
+0x814edf19, 0x46206509, 0x34a36c81, 0x313fc7da, 0x92f34a81, 0x21e942d8, 0x365c16d1, 0x68907ff1,
+0xcb8190e3, 0x5e7f7fa3, 0x6fb78c98, 0xa1444250, 0x812bb37f, 0x83a26f0d, 0x739bab07, 0xcb2cea1d,
+0x668174ef, 0x288b8965, 0x95849a7f, 0xdc0981b0, 0xd875297f, 0x8153d5b0, 0x9d81e6dd, 0xae81d259,
+0xd981813d, 0x7f64ed35, 0x1f459b0f, 0xb8ebe4e5, 0x72812e81, 0x81909b54, 0x02f54fb3, 0xa87281f4,
+0x7f6381cc, 0x7f3cab5b, 0xb1958152, 0x814b9bfa, 0x81312b5e, 0xc2977f23, 0x347fbb97, 0x3b057fe6,
+0x40208144, 0x7f817fad, 0x54cb9deb, 0x37b34a28, 0x81781b81, 0x7f1b8130, 0x81e194f1, 0x882b7f1f,
+0x81dfc90a, 0xe4a97fa6, 0x9e81ab40, 0x971c2535, 0x5a7f7f3d, 0x47708116, 0xab778160, 0x81ac57e3,
+0xc2854dec, 0x81ea81a1, 0x8b347f7f, 0xe981d130, 0x93c70917, 0x817f812d, 0x81925016, 0x7f813953,
+0x52a5a5fc, 0x7a33d8e1, 0xcbd80281, 0x79df8101, 0x797afc87, 0x7581bbf0, 0x81567f94, 0x472ad4cd,
+0x23e49434, 0x4c7ffc03, 0x41b0717f, 0xcc67b7bc, 0x7f7f48bd, 0x8c1c81b9, 0x3a460d72, 0x9eb5fa34,
+0x03530615, 0x6c7f7754, 0x818167d3, 0x7fc22100, 0x7f3da881, 0xa24e7f61, 0x321bb411, 0xd981c827,
+0x76e8814a, 0x69ca13fb, 0x1390b881, 0xb1d08157, 0x7f4669a2, 0x7f237f13, 0x30268178, 0x0eb87f34,
+0xee1aaa30, 0x816596e1, 0x31813181, 0x88888243, 0x817de70e, 0x84811713, 0xd74d7f52, 0x06b17f35,
+0xed347f1e, 0x66d66058, 0x7f817fee, 0x035edde8, 0x819b18a6, 0x8e8198ee, 0x817fb5f5, 0x311e442b,
+0x957f941d, 0x4e6aa649, 0x7f677f41, 0x8d876acb, 0x7e7bb58f, 0x44c27fce, 0x6f39ec5e, 0x7f7f81d2,
+0xd43ba60f, 0x488150c8, 0x8181e9e8, 0xfe46ec02, 0xa2cc7fd8, 0x7f810781, 0x7f30c356, 0x22c97fc5,
+0xbcc97f40, 0xf2b2ce1e, 0x7b59537f, 0x46d994ea, 0x4ae2273a, 0x7f36d92d, 0x818ad281, 0xbf7f2b7f,
+0x8181abf8, 0x924f4eb0, 0xa62c81b6, 0x812b99aa, 0x447f817f, 0x2c7f5746, 0x0859b34d, 0x83e652db,
+0x7fc781ca, 0x819e5cfe, 0x55c5d07f, 0xb4bb3dff, 0xc24b8178, 0x93d28123, 0x15e63a7f, 0x7fc87f40,
+0x812fd94c, 0x991b8170, 0xb13593c6, 0x3b9a5119, 0x3b752581, 0x20b89686, 0xcac17f7f, 0x81237f6f,
+0x99ec643e, 0x02813100, 0x81124724, 0x3455436b, 0x8155cc81, 0x68136028, 0x81517f5d, 0xc57481f6,
+0xe4c88159, 0x81fba227, 0xaa814381, 0xb3818ebc, 0x457f8b51, 0x118181a1, 0x575b7fe7, 0x53571239,
+0xa7d35d43, 0x4b577f89, 0x1f817fc2, 0x6c7f9609, 0x9714813b, 0x81d723b6, 0x6c7f377f, 0xa3cf6826,
+0x08b27f45, 0xbf7f8184, 0x814de5a0, 0x8181a2fd, 0x167f3c70, 0x8a7fa9e4, 0x65ac4b7f, 0x7fd367c5,
+0x81112d7f, 0x8170811d, 0x817f589e, 0x8b7f7f44, 0xba2ab081, 0x527f5bf6, 0x2faad6e3, 0xc335a82e,
+0xb862c003, 0x81715776, 0x5081817f, 0xdd7585c0, 0xb7989d7c, 0x367f81b1, 0xa0818129, 0xc6f37f55,
+0x5006be1d, 0x817faac3, 0x7e667f81, 0xaf2c7f99, 0x347f897f, 0x2bb1aac8, 0x8112eee8, 0x7f5c62de,
+0x007f14d1, 0xa1a2140b, 0x95446419, 0x5e7fc82a, 0x7a7ff07f, 0x81fe7d31, 0x010a8149, 0x7f3e7fb6,
+0x397f81ae, 0x7b7f7fba, 0x797f5981, 0x7f7f170a, 0xb9cf087f, 0x0be6cb28, 0xdd97cf4e, 0x92520625,
+0x817f3ae4, 0x6c81c381, 0x440cc5ae, 0x2b7fb8b7, 0xe94a2081, 0x81967f4a, 0x7f817f9d, 0x7f81a7a1,
+0x815b52cd, 0xd59d57f6, 0x899e827f, 0x7f7f9aa0, 0x52819e7f, 0xda3a2223, 0x8b81073c, 0x818132d0,
+0x55638800, 0x9804bcb5, 0xc3810a7f, 0x6ddab6e3, 0x7fcae34b, 0x7f814a2d, 0xea7fed91, 0x3b9bb0d9,
+0x87d97f1e, 0x16535739, 0xcc2f7f81, 0x7f98813a, 0x5873bbe6, 0x241781f3, 0xbcc7cb33, 0x7ff69847,
+0x8d11c0dd, 0x9ac9d787, 0x66cff992, 0x7f7fc312, 0xaa4fe681, 0x39967f26, 0x201c7f7f, 0x9a7f4849,
+0x5768a814, 0x814d731b, 0x81917f81, 0x6eea7d7f, 0xad7f65fe, 0x3d3e81d3, 0xae672981, 0x7f1c81a0,
+0x9881053a, 0x81a16307, 0xf64c4063, 0xbc7b97d9, 0xa29dc0a1, 0x8161189c, 0x7478b3db, 0x87b330e1,
+0x817f0598, 0xcf422b0b, 0xc29b7ac8, 0xc2817faf, 0x8185581c, 0x81d0b675, 0xc93f7fa9, 0x814e3a02,
+0x815d6511, 0x5d81075f, 0xd768c13e, 0x89815437, 0xac810d85, 0x1a7fa5e9, 0x14a6bb81, 0x54531dfd,
+0x81dafd24, 0x978133dd, 0x818130be, 0xb67f5bb3, 0x2c7f4179, 0x81b281f4, 0xf3a463fb, 0xda36c4d4,
+0xb17f811d, 0x37ca75f1, 0x53257f7f, 0x3ef0208b, 0xdc71817f, 0x978181ef, 0x7f81d17f, 0x1197810f,
+0x277f7f47, 0x7ff6b1b0, 0x4562fca6, 0x725d89e3, 0x888197cf, 0x05477fd3, 0x4988077f, 0x81cbb5d9,
+0x047fcaa8, 0xdb7f7fc9, 0x81ccfe5f, 0xd91643ff, 0x7f3f7f7f, 0x03815ed4, 0x697c7f81, 0x815b814d,
+0x287f0d32, 0x7881a041, 0x247f95f4, 0xc87048e8, 0x3d815e7f, 0x71ba7f0b, 0x50815075, 0x7e53dc30,
+0x3f7755fe, 0x1d032571, 0x818cbaf0, 0xbda97f50, 0x7ffc0aad, 0xbf457f42, 0x66b48f81, 0x072c3f1c,
+0x433d9cfc, 0x71077f76, 0xac2d5564, 0xdc523811, 0x7f54a538, 0x7f707f00, 0x8c10a6f1, 0xf4a581d3,
+0xae875d1d, 0xd37f9747, 0x8124b869, 0x81a17745, 0x61bb8b7f, 0x227f8129, 0xa77fc381, 0x997f8119,
+0x817f812b, 0x81a78836, 0xdd557fc6, 0x907f6418, 0xbfa9accd, 0x4f815762, 0x97818181, 0xa0524fa6,
+0x815b5721, 0xc77f7f7f, 0x7f725efb, 0x437f614e, 0x81f15c6f, 0x7fb77f28, 0x473f7a1c, 0x7f81d71b,
+0x7f5133e9, 0x7cd17f32, 0xfb7572e3, 0x16c35e62, 0xc961a649, 0xdec47c37, 0x6d442844, 0x386b4616,
+0x9583c437, 0x81d57fae, 0x8114357f, 0x818f9db4, 0x7ff181d7, 0x773fb601, 0x4032fb29, 0x8613b71f,
+0x7f81b3f4, 0x1256f605, 0x297f817f, 0x9a7f2996, 0x5d81b87f, 0xc8907ffd, 0x817f7f35, 0xf6719ac7,
+0x7b7f523d, 0x18d8ca2e, 0x2681b97f, 0xc02a810d, 0x34cda181, 0x32e081bc, 0x016f7f08, 0x461bdaec,
+0x04330900, 0x633f61ac, 0xa3815204, 0xa534dda9, 0x7f81814f, 0x91a66329, 0x7f51aacd, 0x7ff681a7,
+0xabe476e8, 0xb57f9cae, 0x177f27c0, 0x7f2f8b0a, 0x1281a9ba, 0xd991af49, 0xea527f82, 0x9be09d46,
+0x28b2a2bc, 0x81c8a1d6, 0x5e1f4e71, 0x817f812e, 0x28b981cc, 0xb071cf04, 0x82cb8139, 0x81608181,
+0x819381ae, 0x818f90c8, 0x817f64c6, 0xd169c7c9, 0x8f548381, 0x87f7b03e, 0x6657817f, 0x81be8102,
+0x0d078c5f, 0x7ff97fd4, 0x7f814981, 0xb3bb7faf, 0x37c3dd6b, 0x4c6930b7, 0xb56ba479, 0xfc82520f,
+0x3494f934, 0xa2016c53, 0xc513eeba, 0x8c283bcf, 0x7fa6047f, 0x54319236, 0x42b2c19c, 0xf965c947,
+0x60777fca, 0x02767f47, 0x4921bb04, 0x81818fa9, 0x8eab7f5d, 0x81f4aa14, 0x1abdf97f, 0xbdaa220d,
+0xac368139, 0xddb1c212, 0x81d9fd99, 0x90b77f3f, 0x029ec8ca, 0x7f93d9db, 0x8563627f, 0xc5b72d52,
+0x2e6eacc0, 0x7f66815b, 0x50db375b, 0x4529813f, 0x7f8d817f, 0x44486f52, 0xbcd64c9a, 0x7fd2bf33,
+0x43507f58, 0x7281a4d3, 0x7ca82149, 0x29817fd0, 0x653544b9, 0x88c681a1, 0xd93c2bfe, 0x530835cf,
+0x5be26556, 0x7fb37fd1, 0x81e68174, 0xe88c0c42, 0xb63b817f, 0x394a81c9, 0x407f8107, 0x747f1f52,
+0x91816dcf, 0x5f818161, 0x8514aebe, 0x7f496bac, 0x5e818181, 0xe8e358ee, 0xae1a7f0b, 0xa4c97f05,
+0x77a77f52, 0x818160fd, 0x6bab7f81, 0xcec7e121, 0xf4810196, 0x4a7f68e3, 0xe56d5a7d, 0x813d2c6b,
+0x7d0b7ff5, 0x7bbd6760, 0x67812b81, 0x188197d7, 0x8146057f, 0x811eff1d, 0x818ecc4d, 0x4a786245,
+0x72593331, 0x2e81556a, 0x66aad481, 0x94818128, 0xde89ba81, 0x4df07227, 0x7f73ff8f, 0x7f44b981,
+0x9bf9e707, 0x46811bff, 0x85a96a36, 0xc13b7f15, 0x6670ba65, 0x81fcefee, 0xae8187b9, 0x73c3baa9,
+0x819e8123, 0x9cfbc6aa, 0x7f89c73a, 0x7fde9812, 0x97136581, 0xc38181e6, 0x81de9c0c, 0x4994ab0e,
+0x30977f06, 0x59dda72a, 0xc9f87fd1, 0x8186b4d7, 0xba86de81, 0x98a24c3b, 0x12157f3f, 0xd7674b1d,
+0x81816042, 0x8da8926e, 0x397f81f6, 0x3dd281b1, 0x7f6570ba, 0x7f875412, 0xd74f5be9, 0xab81f207,
+0x7feaa863, 0xab81da0d, 0x7ae79023, 0x357f8111, 0x654a468e, 0x521c2306, 0x2f817f37, 0xdb818a41,
+0x50b5b30c, 0x71817fdc, 0x7f7f7f04, 0xb13471fa, 0xd1843f7f, 0xb700ece6, 0x109064ea, 0x989b4b03,
+0x27556fd8, 0x5ecee700, 0x5f5a2281, 0xa81c81dd, 0xac54b6bb, 0xe60f1ae8, 0x139dc4dc, 0x22818109,
+0x2c7fc74f, 0xa69cf331, 0x9d272281, 0x7f9a6da8, 0xb1bb8f45, 0x81815a6e, 0x8315517b, 0x638181f0,
+0x273db266, 0x90777f18, 0x047d763a, 0xbdf50a4e, 0x7f5f5c12, 0x817f7f53, 0xcb177385, 0xb2ca7f22,
+0x818eaa17, 0x815d4c81, 0xa67fc281, 0x7fd856eb, 0x01becb84, 0xa8e2685d, 0x7fadbe7f, 0x1b7f6a05,
+0xef47f495, 0x817f1b1b, 0x8c8d0b81, 0x57b9a5d4, 0xdc298159, 0x5e81a7e2, 0x81467f5b, 0x370f6df0,
+0xc49c30a1, 0x7a545710, 0x974b81ff, 0x458c814a, 0x237f17dd, 0x427fb6da, 0x1a7fe5de, 0x817f8121,
+0x817f1c96, 0x9c817f90, 0x0e7fd365, 0x818aa15b, 0x7fd302f2, 0xdb7c138e, 0x7fe68181, 0xbf818112,
+0x7f2e7fc8, 0x81728101, 0x6482d830, 0x59e24b0b, 0x9b67c284, 0x6e811018, 0x81a42c32, 0xd87a4da2,
+0x817f2d41, 0x3e2fbce2, 0xd1d44623, 0x7464b44c, 0xcc255f95, 0x56c93b38, 0xa87f1491, 0x04819c5c,
+0x7f457fd8, 0x8d6bb866, 0x819c8181, 0xbc118166, 0x3d4c2a5f, 0x7a6d51fe, 0x79065067, 0x8181d1fb,
+0xff6f2b08, 0xf5be7f35, 0x9fa567f5, 0xabb581b4, 0x81819a5e, 0x7f8187c5, 0xaa7f5669, 0xdf526044,
+0x7f6ea5f5, 0x7f3a68c7, 0x4feb7fb5, 0x627f2850, 0x39f49181, 0x71ec22ea, 0xc17f4c44, 0x56f4db23,
+0x7f08cc95, 0x977fde95, 0x7f4f7f81, 0x81e07f1c, 0x5e7c7fe9, 0x1c3534ce, 0x7f907f2b, 0x7f83418b,
+0xeb81daec, 0xa6fc892a, 0x757f7ffb, 0x6281cc2c, 0xb826cecb, 0xc7810a2e, 0x60d1906e, 0x7f8175ed,
+0xd085cb36, 0x88c4811a, 0x5e3e707f, 0xaba57fff, 0x099c127a, 0xbac67fb7, 0xa9817d82, 0x4f6c7faf,
+0x43d17a0b, 0x92a13dc8, 0x81995d8d, 0xab7f90fd, 0x5f1f8189, 0x767f8101, 0xb7caa2bc, 0x7f8177cd,
+0xe0655857, 0x81cfebeb, 0x81af6fc0, 0x57ac6dae, 0x437f8176, 0x513c60fb, 0x9ef3c081, 0x78d0d12e,
+0xa40c7f0e, 0x438101c0, 0x81816405, 0x6f527f04, 0x8d0fa47f, 0x6d7fbb7f, 0x39187f74, 0x3c7f5f06,
+0x677f7fdc, 0x8114250d, 0xe08373c7, 0x9c7f7dd8, 0x816341a3, 0xdf7f073e, 0x7f818174, 0xca84e8ff,
+0xd6ff70ef, 0x7fa1a3c7, 0x7f7f8148, 0x81de7fa2, 0x4d323671, 0x5aaafbff, 0x05ac7f7f, 0xd58102e8,
+0xad6c45e4, 0x81677f27, 0x818132ce, 0x7fa55a1c, 0x553029ce, 0x81a47f06, 0x81ca6189, 0x5cd581af,
+0x70f34733, 0x676d431f, 0x81387f66, 0xef916df0, 0x72099950, 0x867f81fe, 0xaa7f657f, 0xd7521bef,
+0x81d573c6, 0x7f76bcd6, 0xaba4c10b, 0xe394b7d7, 0x82579781, 0x88f5715a, 0xf7815cda, 0x65817727,
+0xeab07f22, 0xbb5f7c40, 0xc0a48139, 0x95442a2d, 0x857f7d81, 0xcd7a81ee, 0x7971819e, 0x3a31f0fe,
+0x537f6181, 0xc307bed6, 0x8936627f, 0x98b18136, 0xd07c817f, 0x7f7f8126, 0x133a607f, 0x98d40015,
+0x368a8123, 0xe181501d, 0xc9817681, 0xa27b2e00, 0x47dd81e1, 0x0e7f81d3, 0xf3287fce, 0x7f3400c9,
+0x8d65c745, 0x4c8148c4, 0x21817f7f, 0x81ac0af0, 0x4462c1fa, 0xa99e4e8e, 0x7f153ad8, 0x8168bb47,
+0x8370e19d, 0x7f3281ca, 0xf2437283, 0x667f279d, 0x9cb4c17f, 0xde814315, 0x72d3a17f, 0xac113b66,
+0x6c13abef, 0x7f816cb5, 0xc8c7c37f, 0xa7d1862e, 0x8b7fb87f, 0x9dd9a384, 0xb69b22f0, 0x157f710a,
+0x9007c13f, 0x4518caf0, 0x836c4246, 0x03f981d1, 0x817f7f7f, 0x4581b92f, 0xb4718193, 0xa8815e05,
+0x437f81fe, 0x52817fdd, 0xb1477f54, 0xc12e3cba, 0x7f81815f, 0x4e737f32, 0x817fc141, 0xa67f7f58,
+0xd19dab37, 0x8b9eb14b, 0x7fe8be30, 0x905d7fba, 0x16ae520b, 0x81015d10, 0x71812450, 0x1de37f1b,
+0x811fa6af, 0xdf77b8e9, 0x647ff1bf, 0x17be7fbb, 0x817f6224, 0x8115e99f, 0x7fca7f7f, 0xd48f0fa2,
+0xda7fc4ac, 0x10649756, 0x2f89af26, 0xdb5f3ec4, 0x817fde7f, 0xbde94df1, 0x9a707fb7, 0x7f7a656b,
+0xfad88c3f, 0x7ccc7f5c, 0x7f8cc477, 0x7fc26452, 0x28c7812f, 0x85b7a1ab, 0x818181ad, 0x404ce719,
+0x540fe3e5, 0x705bf0fd, 0x6206a54a, 0x89486861, 0x75e25f81, 0x3c9bc93d, 0x3457c36d, 0x57ab2f25,
+0x3cd9bd13, 0x81769cbe, 0x87557fae, 0x025c7109, 0x05457f64, 0x5f427f13, 0x5c7f26be, 0xb9818130,
+0x34e63305, 0x8a81ebcd, 0x673326ba, 0x05647ff7, 0x818b8181, 0x8c81782a, 0x4bc0b30f, 0x759749c7,
+0x399e99f6, 0x7fdb4313, 0x9c7f5cae, 0x6cc2a611, 0x811dab81, 0x7f7f413b, 0x4fb37081, 0x818c8164,
+0xac4c01d8, 0x1f63813e, 0x81db7881, 0x8194404b, 0xcc9bc55f, 0x542900eb, 0x87ff34c5, 0x507f7fa2,
+0x7fd97f03, 0x79e428e3, 0x2f7f7c6c, 0x57813f13, 0x7f7f817a, 0x61c40926, 0x68a9457f, 0x63ea9f2f,
+0xea81a8ec, 0xfd81301c, 0x81cd8181, 0x812cf7fc, 0xc996b697, 0x81895df8, 0x8d4ae3ca, 0x4c5de834,
+0x81643d19, 0x202babce, 0x55a89081, 0x64ba81f9, 0x7481db7f, 0xa0eba6bf, 0x81c12ee3, 0x8181a75d,
+0xc8e9939c, 0x0981295a, 0xf22e527f, 0x817f3314, 0xc4f17f5e, 0x8c83651a, 0x7f74a17d, 0xbdd28405,
+0xb6bc4795, 0x388c7cdd, 0x957f7f7f, 0x1db7ec29, 0x68f59c45, 0x8142eaa1, 0x81f0b543, 0xa48163fe,
+0x81d08134, 0x7d673f5d, 0x8ecdcf94, 0x6e56195a, 0x7f222687, 0x7fd8fb10, 0x81aa977b, 0x22014258,
+0xd541be81, 0x817f62fb, 0x707fea79, 0x7f817f60, 0x4b7f3c7f, 0x60a4032c, 0x1c68c2ae, 0x7fc27f19,
+0xd5a55cd4, 0x09a651f4, 0xb5447f7f, 0x7f815bfe, 0xe681d381, 0x1781f900, 0x8eb6b0d7, 0x1d90fdf8,
+0x528147c4, 0x816b7f46, 0x7f6381c3, 0xd5d2088b, 0xcce4ae52, 0xdf4ec304, 0x967e5e1f, 0x567f1439,
+0x317f810a, 0x815f814b, 0xe13ee67f, 0x7f8177a3, 0xac69c42a, 0x7f5837e7, 0x61b481c8, 0x777f812f,
+0xcea38116, 0x6b6b7f37, 0x8feac838, 0xf9457f3c, 0xe5107f74, 0xcc957f56, 0xa3ab7f81, 0x81817f6e,
+0xc5817f2b, 0x197d0d99, 0x7ad0c84a, 0x81ada865, 0x81b31c81, 0xee7f9b54, 0x815a3406, 0x3f617fce,
+0x3d4db8c2, 0x5ac39e72, 0xd390812f, 0x27c6ede7, 0x6f69d981, 0x2981f141, 0x7faa2681, 0x787f6668,
+0xc24ec00e, 0x7f008142, 0xfa811aad, 0x2d567fb0, 0x5adb7f65, 0x8a864fc5, 0x6d817f85, 0x307f7f1f,
+0x5c817f47, 0xcc7f43b6, 0x9bb08159, 0x496f7f2f, 0x41e383c2, 0x4e7f7f88, 0x71ce63e4, 0xe07f4c7f,
+0x857c58ad, 0x8599641d, 0x655c687f, 0x97a64fde, 0xdd42707f, 0x29ced6b6, 0xdf25c153, 0x7f047fbb,
+0x7c5f462e, 0x61d08548, 0x7f7fab7f, 0x48b1ecb0, 0x93c63349, 0x039c7fe3, 0x817fce1a, 0x29bb7112,
+0x7f3bbaf0, 0x81818d2f, 0x7f5b3d41, 0x1fa18160, 0xc481af81, 0xfc818130, 0xdae2bd73, 0x4d3c81cc,
+0xa47f5f0a, 0x5e3ad1a6, 0x1a816eab, 0xb307dbd0, 0xa8798b88, 0x7f81252a, 0x6d7f2899, 0x4d7fa214,
+0xc375762c, 0x7fb655ab, 0x5bb98185, 0x1381682c, 0x5281ca7f, 0xc56d7fc8, 0xa81d8170, 0x8daa50f4,
+0x8bbf7f03, 0xcf7fb0c2, 0x3b733caf, 0x7f756442, 0x8c81353c, 0xf7e82f0f, 0xa5a620f2, 0x8ae39fea,
+0xada55ad4, 0x74f1de4c, 0x37714753, 0x538193e3, 0xb1811481, 0xe5bd81cb, 0x70fc4ea8, 0x888473eb,
+0x30b57f1a, 0x90c3f010, 0x81817577, 0xea8c4ae4, 0x6977547f, 0x549481a8, 0xf27f54b8, 0xf87f7fd3,
+0xef81843e, 0x5a437fbb, 0xa77f8181, 0x77354c05, 0x9781667f, 0x7fc2ae7f, 0x0b81b868, 0x1267b5e3,
+0xa0de743b, 0xb4cce348, 0x8192819d, 0xf0817faf, 0xecc781ab, 0x7f57af2a, 0x499e13c0, 0x7f3d632a,
+0xac96fcc8, 0x81727829, 0x7f7ff281, 0x81819bb4, 0xc5bfd358, 0x76553120, 0xb57dbcb5, 0x9b425d12,
+0xb0814cc1, 0xea3d393b, 0x1dde5e27, 0x03a6f127, 0x39a9a981, 0x94304751, 0x3af97f00, 0xceaa49d8,
+0x3c8124d1, 0x7f24b547, 0x2830e08d, 0x3d7a8f0e, 0x456ffc4c, 0x814e7f4a, 0x357f817f, 0x7f61bc51,
+0xd7097f44, 0x213ecf47, 0x815281bd, 0xa9a58187, 0x0c3cbfb2, 0x18f92fa4, 0x307f7f52, 0x727f3361,
+0x6cdc8e37, 0x7f9d9e24, 0x64466e7f, 0x2491328c, 0xd58181cb, 0xc97ff4b1, 0x1890627b, 0xa48168b3,
+0x7fad44dc, 0x411b7f43, 0x6681647c, 0xc5171bcd, 0x4a6d7fd9, 0x7e369d2b, 0xf8124f61, 0xa71515f1,
+0xb381ec09, 0xc4ab71c0, 0x9e2e977f, 0x7f7f0d58, 0x1cdb7b16, 0x81f87f81, 0x517f7f60, 0xf4a3ea33,
+0x5c2112c3, 0xc67f7e06, 0x9d7f78c6, 0x811730e4, 0xa29b6170, 0x81817fd1, 0xb6637f87, 0x4f1c540d,
+0xe57f7707, 0x277d5c28, 0x7f817f21, 0x5e31e1ab, 0x7f81cd81, 0x815daab2, 0xec5284bc, 0xb45d7b63,
+0x7f4d815e, 0x0860494f, 0x81874034, 0x81d0f00a, 0x5b4274ea, 0xdce04fd7, 0x8188680f, 0x827f7fc7,
+0x8137e715, 0x9f7f6699, 0x786e75eb, 0x8253202d, 0xb2813ddd, 0x7315a11a, 0x81c18164, 0x7f7f8141,
+0x6870da25, 0x117f3efd, 0x7f1c5f1f, 0xcb6d63bf, 0x45561890, 0xc3df8136, 0x23275f32, 0x81817f5d,
+0xa50f7fde, 0x7f3ba6ae, 0x37a4bbf4, 0x81a6fd1a, 0x9b9bb6ec, 0x8b2cff0a, 0x2035d781, 0xa1c47fce,
+0x095dee2d, 0x7f3a2d51, 0x69727f7f, 0xec8aad61, 0xb0dbcc42, 0x2e706fee, 0x962a9d53, 0x81814554,
+0x759026dd, 0xb38851cf, 0x817fa70b, 0x7f462fb9, 0xcc7faf23, 0xa2981632, 0x3e8d8160, 0x07815dd2,
+0x82817f22, 0x5a755325, 0x45c77f81, 0x81653cac, 0x93f73dd9, 0x3d81c4cd, 0xf67aa181, 0x467e7f1f,
+0xe6c10cfa, 0x9bd4c12f, 0x6c51ca85, 0x4d7f2835, 0xc0bb341b, 0x81812aed, 0x87a181be, 0x4f7f7f6d,
+0x81c9e3c4, 0x117f95bf, 0xd457e634, 0xb84b567d, 0x5618f922, 0xda7fc1ed, 0x7f7f81d6, 0xa07da0b1,
+0x2e627f0a, 0x814ee836, 0xb65bff90, 0x3e29b6de, 0xb1b78f5d, 0x1724a1f0, 0x81484221, 0xe16d7fb6,
+0x578181f2, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
+
+hard_output0=
+0xb5bc6ac8, 0xf5373664, 0x1310345c, 0xd5bae4e7, 0x1fc9e83e, 0xebfdfded, 0x84bd86ab, 0xb7aabe00,
+0x60b44fea, 0xb9067464, 0x30325378, 0xa9195955, 0xf70c6e5c, 0x90922632, 0xc90b1cdb, 0xf2f5fb69,
+0x73056b63, 0x1a33bf3f, 0x17755b5c, 0xc58bff6d, 0x2f4390b2, 0x2869d508, 0xe7c7dfe8, 0x38552963,
+0x21da5367, 0x07282b9b, 0xa4767105, 0x1e294251, 0xe350a940, 0xb8a6aa27, 0xed12d778, 0xf10d9ece,
+0xab93527f, 0xcf2da7e7, 0x68f6d0b1, 0x811f4bca, 0x577b06b2, 0x3234f13e, 0x30bab7df, 0x8dc47655,
+0xbb843bed, 0x86da3aba, 0x30950c97, 0xdd096d7a, 0xa871fd6c, 0x8bee4e6b, 0x8fea30d0, 0x6c05b4d2,
+0xf3e144d3, 0xd24ebb1f, 0x065635e5, 0x8d3f2cf9, 0x536c6c6a, 0xfbb0a5d0, 0x3d707b42, 0xc44d5982,
+0xa5f4ad8f, 0xf32c0970, 0x1bccf1a6, 0x05916020, 0xa64fb176, 0x5ede6a35, 0xaf4966da, 0x9df5e0e7,
+0x75042abc, 0x9ef10481, 0x11ddcbc8, 0xa0f5518c, 0xd5c23418, 0x2393d558, 0xfbe7dfeb, 0xed1c64c2,
+0x86a36508, 0xde2dfb1e, 0xb8d0fef9, 0x24505232, 0xc894e71c, 0xbcc752a0, 0x40b74e83, 0x90d23c8c,
+0x728e4a61, 0x108f0b08, 0x66f522ee, 0xc258d851, 0x35a31c44, 0x11311b5b, 0xfd3d5be9, 0x5ae448ff,
+0x4f64994b, 0x5b8247a9, 0x4021114d, 0x2f0b6e82, 0x5eaa9828, 0x50ac71c0, 0xfb86ee52, 0x0dc1ac9b,
+0xbbd47645, 0x8f357115, 0x978ceea0, 0xd557db99, 0x99b30388, 0xfc9a8a1c, 0x0f75be1a, 0x50143e22,
+0x8840989b, 0x738ec50e, 0xe6b2783d, 0xf67899c8, 0x27ebed69, 0x6c415a16, 0x3a6cc2dc, 0xcd4e4e5d,
+0x6cb12b2e, 0xdb88d7c0, 0x79cd1582, 0xbc422413, 0xe72ad2f4, 0x8eaac30f, 0x0bd86747, 0x6d87f69d,
+0x15d62038, 0x4b375630, 0x0d51b859, 0x16db2cb2, 0xf210603a, 0x0abeb833, 0x55c694d0, 0xe57ca43b,
+0x0ba94428, 0x1398a406, 0xe47d3889, 0x5a20203d, 0x250d7a1a, 0xd930ffec, 0x03992e79, 0xf2759376,
+0x024ec121, 0x91fc3a2c, 0xb7e11cc5, 0x4ff7d459, 0xb8700134, 0xd6e61758, 0x4eba0a32, 0xb747e3ec,
+0x7073fad7, 0xded80f99, 0x331e2f1b, 0xfa1f1bed, 0x056424a2, 0x1d1d95e0, 0x550b9ec8, 0x51ee2a38,
+0x19525153, 0xd70c4cd5, 0x0d6cd7ad, 0xe44d1cf2, 0x30dfecda, 0xdacd7fe8, 0x7321d795, 0xddf48ef4,
+0xe271e6a4, 0x9c1feecb, 0x951fcd7b, 0x8acc5a03, 0x3fb83527, 0xe306de74, 0x7b9cd6ee, 0x8e140885,
+0xd4c91e8d, 0xe8c39733, 0x0f02f87f, 0xfb06b1b9, 0x0dc9349c, 0xf76bae8e, 0x4f642a07, 0x3d48a9aa,
+0xe3ea323a, 0xa1cd5c8a, 0x40aa0e70, 0x132042d3, 0xa9732f6c, 0xd15a00c4, 0x43d3b046, 0x9a51ebd4,
+0xc46ee0ed, 0xe2a2148b, 0xf5c478f0, 0x1fb01cf3, 0xf4f321ec, 0xd973811f, 0x11ad11b9, 0x5c67adda
+
+e =
+34560
+
+k =
+6144
+
+rv_index =
+0
+
+iter_max =
+8
+
+iter_min =
+4
+
+expected_iter_count =
+8
+
+ext_scale =
+15
+
+num_maps =
+0
+
+code_block_mode =
+1
+
+op_flags =
+RTE_BBDEV_TURBO_POS_LLR_1_BIT_IN
+
+expected_status =
+OK
diff --git a/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e34560_sbd_negllr.data b/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e34560_sbd_negllr.data
new file mode 100644
index 000000000..b5ef62461
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e34560_sbd_negllr.data
@@ -0,0 +1,1224 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2017 Intel Corporation
+op_type =
+RTE_BBDEV_OP_TURBO_DEC
+
+input0 =
+0x0a45ef00, 0xb2bdc60f, 0xc810d206, 0xf21cc300, 0xb0c93da1, 0xaae019d7, 0x23ba3c29, 0xa61d1e09,
+0x202906d1, 0xd2b61ef3, 0x59e7f241, 0x2ec8daec, 0x68015520, 0x0912f4a3, 0x01282329, 0xa1fd1439,
+0x0701231b, 0x0fdcba0a, 0xbe97c6c3, 0x0438e652, 0xd5f644d4, 0xbd0e5f4b, 0xfcb6d0d4, 0x0825b15a,
+0x362e2fc8, 0xbbd5abda, 0x0df8c12d, 0xd016b5de, 0x1e439a0c, 0x44c94242, 0x00e2e8c5, 0x0639d241,
+0xef6aa40b, 0x90de9def, 0x43e0ea14, 0x31dd07cf, 0xbad70a05, 0xcffc228a, 0x00293bd7, 0x6038080c,
+0xdaeb3e20, 0xdd260c4c, 0xaa41fb3c, 0x6eeef0d4, 0x5b02c0f3, 0x14d6ac69, 0xfef0ce44, 0xc5abccf2,
+0x2a0f00c4, 0xd6cadb30, 0x38e212cf, 0x5e9abc29, 0xf105fce4, 0xde34e024, 0xb9d42365, 0x281eb22e,
+0xb219c055, 0x6504b01e, 0x465602ab, 0x1233a4e7, 0xa9ebf4cf, 0x63c1ed3f, 0xdbe9b71f, 0xf994579c,
+0x22f359b5, 0x3606379d, 0xae30fa1e, 0x1d6e290c, 0xc6e0440a, 0x2f129132, 0x1b317bf6, 0xcfdbc119,
+0x32022857, 0xaef168dc, 0xa1251d37, 0x65eec43b, 0x9630e70e, 0xe9e1fd98, 0x3e02d8ab, 0xf348af3e,
+0xf7b0f027, 0x2ff021db, 0xecae5bd4, 0x1b2f3e34, 0xbb2511c0, 0xd611ddad, 0xf951d2d6, 0xb1dd0191,
+0xc325cf35, 0x58bdf4b7, 0x36094dd7, 0x07cd3b44, 0x02c4ae4d, 0x812af6d9, 0x32f63731, 0x31103329,
+0xac0033ff, 0x817f583f, 0xc4817f88, 0x8d81790a, 0xa6a2817f, 0x7f81910a, 0x7fc5ed7f, 0xbf2f7f8d,
+0x7ff14707, 0x49cc3bda, 0xb04d5a2d, 0xd8d392b0, 0x7f69d3e1, 0x83ae43ad, 0x99b7da75, 0x3a7f7fd3,
+0xd46d6fd2, 0x4f7fc524, 0x137f812f, 0x587fcd8a, 0x81c481bf, 0x9caa6184, 0x0bc3a499, 0xe2901a23,
+0xfeb59b6f, 0x7f818171, 0xf68ed39d, 0x8113a975, 0x81dd6681, 0x7ffe707f, 0x5836757f, 0x48a98122,
+0x7f724081, 0x81588447, 0x59f8b799, 0x7f6dbab0, 0x817f8f09, 0x13c3ecb6, 0x7ff98d64, 0xc4911e81,
+0x33922f9b, 0x05c9e85c, 0xa19071b3, 0xec1ca24e, 0x02a48181, 0x813b8196, 0x7fca7d51, 0x7f81814d,
+0x00815911, 0x242a7f5f, 0x29d6ee98, 0x8a61887f, 0x4e815e7f, 0x773e811d, 0x8e65d1a7, 0x8d514860,
+0x3081b248, 0x7f2393ab, 0x815d2e31, 0x817f4be2, 0x81818519, 0xa07f677f, 0x0defa853, 0x22811c4c,
+0xbe81d32d, 0x2d7fdc7f, 0xd8f3195c, 0xf69bc13a, 0x7f7fdae1, 0x2a56717f, 0xd4811c7c, 0xbe218c81,
+0x81a556d3, 0x3f43a8c4, 0x6a95b0cf, 0x427f79db, 0x959cbc5c, 0x9f00dd19, 0xa1e8c5d4, 0x59814997,
+0x4e35eb7f, 0xf87f348b, 0x76749124, 0xab7f7f1c, 0xf0816c81, 0x8c62b45d, 0x744ec34f, 0x329a7fce,
+0x9048b815, 0x0076dcd0, 0x812d2981, 0x98d5cb15, 0xd29652cc, 0x2cd15e33, 0xc2557f91, 0x03517f6a,
+0xfc1cc134, 0x0f7f6a00, 0x81939c0e, 0x7f4677a9, 0x7f597f5e, 0x4f972a86, 0x81b2ab81, 0x207f7f69,
+0x85b9b234, 0xc1857fac, 0xedaa7c08, 0x7f50057f, 0x7f1dc26d, 0x7fa47f81, 0x7ff57f76, 0xb3bca5cc,
+0x6b31d550, 0xce3a6583, 0xdac01f7f, 0x81184838, 0x65239c09, 0xde415bf5, 0x7f7f3881, 0x097fdc7a,
+0x81698160, 0xa8da57db, 0x3281530a, 0x628d057f, 0xad7381f2, 0x18a35579, 0x3d909f7f, 0xbf7f7f81,
+0x8181eb36, 0x6bd45881, 0x578c7520, 0x417fdc89, 0x307f5bad, 0x667f8181, 0xe1b44f6e, 0x817f7f2b,
+0xd55cb62e, 0x8aa0ab9a, 0x81e42e47, 0xbc925270, 0x77aa4a90, 0x56247581, 0x8ff5f670, 0x7d7f9cc7,
+0x3a013a2e, 0x10810005, 0x815eab7e, 0x812fe1c6, 0x81f0b47f, 0x7f2b8c03, 0x7f7fc07f, 0x7e497281,
+0xd1d70cd5, 0xd981b501, 0x0c63b57f, 0xd8a8ea7f, 0xdeaece7f, 0xa08107f0, 0x9f54e62e, 0xa8cfc431,
+0x7f985ee1, 0x811ae887, 0x7f81df4d, 0xc081d1bb, 0x81a15a9a, 0x7f44bf05, 0x037f057f, 0xf22c7f9d,
+0x7f7f7f7f, 0x81856e03, 0xbcb08381, 0x46bb372d, 0x7f7bd59c, 0x8157e815, 0xa1910b3a, 0x5c537f7f,
+0x3e81717f, 0x4851ac7f, 0x813b7f83, 0x867fb25e, 0x098131ca, 0xb06fc77f, 0x7f60e97f, 0xa25f5c46,
+0xe82eae48, 0x40bf987f, 0x817f81e2, 0xf5b2c831, 0x810597de, 0x045c7f4b, 0x81e33f36, 0x81aaf35e,
+0x81817fc6, 0xe700587f, 0x93b37fea, 0x9f81fc97, 0x4def727f, 0x6bc07fe7, 0x7f811076, 0x81248175,
+0x0a7e5cf6, 0xcd7f7f81, 0x7f49f37e, 0x8181917f, 0x7f70df81, 0xd17f81b5, 0x1f6b4ef7, 0xa21d6b8b,
+0x7fb0461a, 0x5c027581, 0x81819bb4, 0x816ee78f, 0xad7f817b, 0xe481a10a, 0xa1cb8d81, 0x32813e3a,
+0x947f7f81, 0x8184bff3, 0xa96cd072, 0xeb0c5881, 0x814ab385, 0xe3f67f7f, 0x584a81c9, 0xdbc5c781,
+0x78816e49, 0x817f8a81, 0x7f3f7fff, 0x56d89f40, 0x4397e427, 0x7f29b20d, 0x7f597fad, 0x35817f65,
+0x0a7f3b19, 0x61c97f81, 0xc6817a65, 0xaa5ceb7f, 0xfc427fef, 0xb8684c75, 0x447fbaa3, 0x4d7fae7f,
+0x8196e3bb, 0xe1588132, 0x7ff27f34, 0x8173bff4, 0x7f705f6d, 0x7f7f817f, 0xa353354c, 0x7f58ca67,
+0x7a5a7f9c, 0x1e81ee7f, 0x98d681d9, 0x9e60c443, 0x7f7f39a3, 0xc79bc87f, 0x3ae8827d, 0x9f812e81,
+0x7f6f8170, 0xa987947f, 0x2481aa81, 0x538fdd7f, 0x237f1442, 0x14e99a84, 0x6e62b068, 0x7b810541,
+0x73a57fad, 0x69977881, 0x9be9cd7f, 0x9a48537c, 0xfccc7f47, 0x7f40a457, 0xbc63b4b8, 0x74bb447e,
+0x36817f12, 0xd371cd1f, 0x7f1ed17f, 0x36624bbe, 0x726c811b, 0x4abe5c58, 0x81de39c1, 0x7b5ae996,
+0xaa818105, 0xa881bebd, 0x5e7f6edb, 0xa8d08165, 0xd495f17f, 0x7fd06098, 0x7fb157fc, 0xc0f661d3,
+0xd09f812a, 0x7f8ef77f, 0x69477f00, 0xf45f8481, 0x0f7fa07f, 0x97f17f7f, 0x6ceaac7f, 0x7f7f8163,
+0x7fbcbe98, 0x698b697f, 0x79c0da81, 0x8b81e681, 0x81817f36, 0x6b814881, 0x7f918ec6, 0xb67aed0e,
+0xc5020b85, 0x81ee8c18, 0x7ff650a5, 0x814f6233, 0x508139a1, 0x814e6aa1, 0xa055487f, 0x3ed75817,
+0x4f7f81da, 0x1ddcfa81, 0x7f7f1dbc, 0x825b6454, 0x2ee6819b, 0x73eb6861, 0xf7fe9516, 0xe3816dc5,
+0x527f3f7f, 0x550d8fb9, 0xf3f82681, 0x5954b562, 0x7e7f20bc, 0x817f6b4f, 0x8108bc22, 0x17fb8113,
+0x7b040f33, 0x586282d5, 0x078c5c7f, 0xe17fc493, 0xdd813545, 0x9ba17f6e, 0x7fccfad5, 0x916f7fa3,
+0x21ce7f1f, 0x1a037f81, 0x8e4d0081, 0x7a360731, 0x167fd77f, 0x96762a84, 0xca5660e3, 0x45f0d87a,
+0x7fd151ae, 0x9e7f22a6, 0x7f817f8c, 0x1501b9cb, 0x886c4184, 0xea627f6c, 0xc53e7f08, 0x1a63d6eb,
+0x481b4a73, 0xca816575, 0x167f7f7f, 0x15814549, 0x6d985e81, 0xa60b1f62, 0xa1818181, 0x33af7f7f,
+0x816c7ff7, 0x7f81b67f, 0x08602281, 0x9a81815b, 0xe6787f3f, 0x7aba4f81, 0x5015817f, 0x1d02d55e,
+0xbaf3e826, 0xc34ca8cb, 0x503e7c82, 0x647a7f60, 0x7f810873, 0x81149d63, 0x7f818181, 0x7f7ff3d1,
+0x11d8dce2, 0x7fe3634c, 0xb63c535b, 0x810e6181, 0x81277f54, 0x817fa2dd, 0x34c34476, 0x848a65f8,
+0x96f911b0, 0x9aa76464, 0x8200816e, 0x6d7f56a6, 0xcdb9e57f, 0x874e836a, 0x93a363a6, 0x41c09883,
+0x8144c072, 0x52a77fef, 0xe8ded5e2, 0xf6857f81, 0x81b79f4c, 0x7f7f71a2, 0x2b5852bc, 0x1f7b43b0,
+0x4c5aa37f, 0x557f3d2a, 0xa17fb581, 0x7349d204, 0x4042ec2b, 0x89cd96bb, 0xd3368281, 0x7f7b8181,
+0x0f28f5cd, 0xe8aa4d23, 0x88628b33, 0x8181817f, 0x758197af, 0x37b43b4a, 0xc081c1a5, 0x8e3c4881,
+0x7fcb0983, 0x55fe14e4, 0x734c7f20, 0x89267c21, 0x7781a4b7, 0x7f7f4eb3, 0x81ac8fa2, 0xddc20981,
+0x7f9b2659, 0x2d7fc65e, 0x818181e8, 0x6a176a89, 0xaa7fb68e, 0x5c5446d2, 0xda7dcc81, 0xc3a5e054,
+0x7881477f, 0x7057146f, 0x00764b7f, 0x7fa87f7f, 0xa4ff8181, 0xf07f7f7f, 0xa37a5cd3, 0x28a881b1,
+0x13e0cb4f, 0x8f7f9804, 0x3d343181, 0x567fda8a, 0x5828c7d0, 0x434fe70a, 0x7fd5fe78, 0x1f818181,
+0x686103cf, 0x62aab5ee, 0x5506cb88, 0x5428ad7f, 0x51908c1a, 0x6d5db4ef, 0x3f7f686a, 0xa6a15a8d,
+0x917f7f53, 0xb77fea86, 0x7f816aa2, 0x6ae581d7, 0x54ad634a, 0xd59ca328, 0x6d815bfa, 0x5f470046,
+0x23818188, 0x817a9419, 0x7f57dc81, 0xb02a81ad, 0xe986757e, 0xd9810681, 0x81f7be26, 0xbcb5cf7f,
+0x63776b56, 0x4358bc47, 0x528aa47b, 0x9e7f7181, 0xd0818100, 0x0d811a7f, 0x7f818155, 0xbe207fc3,
+0xb70d393c, 0x812bbd48, 0x7f7f7d0e, 0x81b5ab00, 0x1ecb8681, 0x24c67fcd, 0x2fc7ed01, 0x5503a881,
+0x7f3d7fb4, 0x9a81559e, 0x6508d5f4, 0x08b56b7d, 0x96d84e10, 0x7fac9ec1, 0x817ca281, 0xd9b01081,
+0xaf81d3a7, 0x8102b34b, 0xa0f98181, 0x7f7f929e, 0x3cf6d023, 0x990ed581, 0x147f817f, 0x81483a81,
+0x68375130, 0x487f1451, 0xa0973d81, 0x87d4d4f7, 0x90633e22, 0xbc7f45e0, 0x2c4ea77f, 0x0811896e,
+0x8d7f52e9, 0x8120aeb0, 0x3d159d81, 0x93cb0097, 0xce81bb81, 0x74194855, 0x4e7f3f26, 0x817f819f,
+0x4531814f, 0x517f7fbb, 0x4981a87f, 0x4c810f4e, 0x3239b67f, 0xa17f194c, 0x81e58e81, 0x7f4890e5,
+0xb07ffa3c, 0x937fa181, 0x447fa516, 0xbab5000e, 0x887f7f7f, 0x8181b17f, 0x7f82d4ad, 0x7f828159,
+0x81b35c57, 0x23bcb1dd, 0x819446c7, 0x7fbf9ea6, 0x817f7fc1, 0x33817f81, 0x5cfe7fb6, 0x7f81fc61,
+0x91477f4c, 0x88994381, 0x65bb447f, 0x198d61ae, 0x817f9f7f, 0x557cbcb8, 0x81fab781, 0x1bab3f7d,
+0x7f812298, 0x7f44fadc, 0x1dc1c665, 0x7fde3a8d, 0x94c37f2b, 0xc7d8eb23, 0xdaae8181, 0x129c68bc,
+0x7f819111, 0x7f32ce2c, 0xf0d17f02, 0x7f6a817f, 0x5cd564e0, 0x7f7fc47f, 0xd6995c9d, 0x70a7d476,
+0x3b7ff299, 0x7f2f237f, 0x4381ac1f, 0x0bd67fb2, 0x81ba594d, 0xa6777fd5, 0x881cc254, 0x8189977f,
+0x7f813b3e, 0xc17f7f7f, 0x3baa3dc9, 0x81007f57, 0x7f810295, 0x81f7a1c3, 0x7f65de7f, 0x4ca87f53,
+0x407f81b9, 0x7f436fa6, 0x399f9581, 0x7f177f86, 0xbc698194, 0x447fd081, 0x81663d37, 0x01faee9b,
+0xc485ff7f, 0xed6ff281, 0x4c6713c4, 0x28b0487f, 0x7f88e8c9, 0x8169016d, 0x7f7f71dd, 0x474bf37f,
+0xb756b143, 0x95caeed0, 0xec7f872d, 0x437f23e1, 0xb42b3030, 0x662f8d76, 0xd4818f71, 0x8161fd50,
+0x8863663e, 0x78256b06, 0x661b549c, 0x8e817fb4, 0x06b98354, 0x5a905ec1, 0xec960281, 0x2c30bbe3,
+0x937f7f63, 0x6ade543f, 0x7f7f9f5e, 0x98dac336, 0x81327f73, 0x677f6d46, 0x637f5c7a, 0x82478181,
+0xedbc9014, 0x9a7f431b, 0xb2d25981, 0x7f898181, 0x81815ab1, 0x2d7fa683, 0x7f03b2b0, 0x89bc7f18,
+0x81947fb8, 0x1995817f, 0x78e54c17, 0x816cb1c3, 0x1a2681e0, 0xac3a7f8a, 0xdff245bb, 0x422ada81,
+0x1ed1e07f, 0x7f6f5276, 0x8481db81, 0x9a817fe4, 0x1e132dab, 0x5c7fdf7f, 0x7d81ac7f, 0x937f7fe0,
+0x49568171, 0x3f81907f, 0x81466896, 0x7f667f2b, 0x577f9a7f, 0x7fd73c0b, 0xc946df59, 0xd72f767a,
+0xb51d326a, 0xc77f4f7c, 0xbc814bf5, 0xdae47fab, 0x40a64f73, 0x898188ea, 0x1c751c97, 0x7f8ed37f,
+0x81b9585f, 0x6eb6758e, 0x5e11b233, 0xf0a47f81, 0x81709065, 0x447fbcc6, 0x58d1819b, 0x9fa36e74,
+0x817fa9f3, 0x9f506f66, 0x81cd047f, 0x187f8136, 0x9d810500, 0x64cd8eb0, 0x7f817f7f, 0xf850e2f6,
+0x81b61869, 0x606a66c4, 0x81638118, 0x20dca772, 0x6287b381, 0x8e056874, 0x086d99b9, 0x54438172,
+0xb281697f, 0x5c470c16, 0xb0340523, 0x7f81b96b, 0x4451b8a1, 0x7f7fe6db, 0x57887f3a, 0x14438129,
+0x927758ce, 0xe27fa16a, 0x8c30bd81, 0x7b7fff47, 0x41e58175, 0x35812462, 0xe7ff4358, 0xb4c04079,
+0xa87c108b, 0x81aae151, 0x3d797f8e, 0x33007f3c, 0x27c2715a, 0x188c7fba, 0xb481e081, 0xe026d96e,
+0x402d8185, 0x7066ffcd, 0xc5914e7f, 0x977f655f, 0x7f68b5d9, 0xcad3235d, 0xc77f8e81, 0x1cb4817f,
+0x7f473044, 0x15168159, 0x7f5c81d2, 0x7f99bd6f, 0xb7ab0006, 0xf2487f41, 0xd2de0f82, 0x6a81627f,
+0x2e8e87fa, 0x25187fb3, 0x6d31b393, 0xdd3d4b81, 0xa942a11d, 0xd21281d0, 0xe6b0e17f, 0x8a5646ad,
+0x907f8124, 0x7f81d2e2, 0xd8c8e17f, 0xeb8b7f81, 0x3ad8bb1a, 0x7f7fbf81, 0xcb30ddf4, 0xa09134d8,
+0x8187d2bc, 0x4949168a, 0x53998181, 0xd5e21412, 0x81811cb0, 0x11349a98, 0xdab2afe4, 0xd97f7f7f,
+0x7f7f8181, 0x327e7fd4, 0x97818114, 0x827b6517, 0x5f0aabbd, 0x7f905b81, 0xafdde37f, 0xcd40cf7e,
+0x7f56817f, 0x95810db2, 0xaf7fd131, 0x8181811a, 0x9e7f8f73, 0xe250d481, 0x7f2abb90, 0x5f7d981f,
+0xb3257f91, 0xec657f2f, 0xfa815e3a, 0x6e223481, 0x6c00eaa8, 0x7fb19394, 0x8799c181, 0x810e7fde,
+0x7d478181, 0x7fdc76bd, 0x035f8102, 0x627f447f, 0x7ff7ff7f, 0x81265db0, 0x6e81ac2c, 0x8802d277,
+0x81c3f781, 0xec81d259, 0x817b7d81, 0x7a5b7f7f, 0x4953ab64, 0x896a52a0, 0xb28111f8, 0xd25d8f0e,
+0x7f818174, 0x813f7f3b, 0x7fff7f72, 0x0fa87f88, 0xbcfad248, 0x507dd360, 0x7fae817f, 0x81f27f81,
+0x72fa4d1b, 0x5a21d2a1, 0x6381817f, 0x5fb55ab3, 0x8ec3816f, 0x257f4ab5, 0x4c74ef81, 0x19a3f27f,
+0x752746c6, 0xe17f8181, 0x7f7c8199, 0xdb9981a1, 0xcb984bd7, 0x815ea881, 0xdc50e0d9, 0xb9366f24,
+0x7f455dec, 0x817cb181, 0x424856f3, 0x67ab02a5, 0x0081657f, 0x105e8191, 0xeab817a7, 0x3a7f6d5a,
+0x425a1503, 0xeaac317f, 0x7fbe2cd0, 0xd2819a6d, 0x34887f6b, 0xef7f817f, 0xc3577f8f, 0xb124a664,
+0x9981167f, 0xb4946031, 0xb8817f7f, 0x81c570ed, 0xc9c88181, 0x3a4cdf81, 0xd9514781, 0x8948c0fe,
+0x2d5a8111, 0x68817f7f, 0x6be87f81, 0xa62c0381, 0x857f7fba, 0xa8c4ab7f, 0x279cc57f, 0x98816e0b,
+0x817ff70e, 0x21536d81, 0x875ca181, 0x008164f2, 0x96955a53, 0x57a53917, 0x6517faad, 0xdecd7f49,
+0x81819c32, 0x7f7fc25d, 0xfd81b181, 0x9f818166, 0x9c7f107f, 0x7f15b67f, 0x81636692, 0x18f276b5,
+0xbb9d08e2, 0x6c25797f, 0x417f43fc, 0xd0a37eca, 0xd4702b8f, 0x5c72ba00, 0x7f9dcdbe, 0xd4ad8122,
+0x39f1a381, 0x9b419181, 0xac816ace, 0xfb7c81e6, 0xdd7f7fb9, 0x2a27bb61, 0x3781499f, 0x7f6a7f93,
+0x4bbf81a5, 0x4a07e527, 0xab4f8143, 0xc2703e81, 0xb1813d81, 0x81747ba3, 0x11cb7f81, 0xd7a385fd,
+0xc9d0c981, 0x647fe554, 0x811d3681, 0x18817fdc, 0x81811bef, 0xd381845e, 0x466539da, 0x1081617f,
+0xb5b99261, 0x56cd7f8d, 0xaaa79076, 0x7f814a81, 0x7f7fe313, 0x7f7f8170, 0x5df9817f, 0x102fe72a,
+0x0c7f79ae, 0x4368d9e1, 0x6b0af013, 0xc13ed920, 0x98ed6a7f, 0xc494d37f, 0x81816a35, 0xc27f7f4f,
+0x451a7f3a, 0x4c812e15, 0x032f49b1, 0xbd7f02a1, 0x507f0d67, 0x9c5f007f, 0x8712c21b, 0x6ba7385a,
+0x7fb62c58, 0x7f818bcf, 0x7f7fc57f, 0x4141698d, 0x1e817f5c, 0x813fbe97, 0x6f817fa8, 0x51637759,
+0x7f4ed17f, 0x81ac2c28, 0xf1c75bfd, 0x1463c260, 0xcb7f7fcf, 0x7483675a, 0x40eb7f7f, 0xad7f81a2,
+0x7f817f50, 0x66816683, 0x407f8c81, 0xaf8190b3, 0x81d347f2, 0x5a215a81, 0xca7f8132, 0xd0528ef2,
+0x8129c3a0, 0xa4a7c52b, 0x0b816383, 0xbc7faf5d, 0x38d34e66, 0xff65a68b, 0x817999d7, 0x5a620463,
+0x885a817f, 0xad947f81, 0x7f1c902c, 0xaa0e9003, 0xd7ccb971, 0x64a68198, 0xb2337f11, 0x81a4d5dd,
+0x817f81fd, 0x7e814f81, 0x817f3da2, 0x8381fd08, 0x81a35a81, 0x7f0099e3, 0xfa1f5850, 0x6773efd6,
+0x6e7e5268, 0x138e7fc5, 0x81449526, 0x815781c2, 0xca2faff4, 0xf37f7f64, 0xaa080369, 0x7fb07f5c,
+0x81397fcd, 0x972dbbbe, 0x813f8e81, 0x812ed669, 0xbf76e310, 0x0be7f981, 0x81929781, 0x577f8644,
+0x0cc7e94b, 0x7e1d2995, 0x7ace8119, 0x81814867, 0x617f505c, 0xb9ad7f3e, 0x3ad56e18, 0x81e5b75d,
+0xca874729, 0x7f81ad9c, 0x5881813e, 0xbb240a46, 0xcc908863, 0x6fc2815b, 0xfa4bca7f, 0x8f817319,
+0xfe819dae, 0x81814281, 0x867f21e9, 0xfdaa0500, 0xd08c9e41, 0x99ea3b94, 0x7fa9394c, 0x81337f7f,
+0xb57f23f9, 0xc59a8181, 0x815a7fa4, 0x16c9c781, 0x9f17b97f, 0xb2817f89, 0x7fbd95a5, 0xb27f7f8e,
+0xa5e0b5c9, 0xefabff4c, 0x7fb7ea7f, 0x9aec9841, 0xb0e1784b, 0x81b29d1d, 0x7fba1781, 0x81f7086b,
+0x8129f27f, 0x818181ea, 0xc1ce8113, 0xfbfbaacf, 0x9d4c14ed, 0x40c1ea26, 0x6051cd3f, 0x6cd681be,
+0x4c469beb, 0x17637f22, 0x81882850, 0xbc91d4be, 0x6e318122, 0x95628181, 0x6c7f7f33, 0x6c47537f,
+0xa8d27f7f, 0x3de9b857, 0xc73a2c81, 0x4e7f8101, 0x3b7f817f, 0x3a78815c, 0x1a67771c, 0x5a8286a4,
+0xf7b98166, 0xd3b37f81, 0x4eb17f2f, 0xc1098181, 0x969a7fc5, 0x0bfbfbb9, 0x316f8194, 0x7f6f8184,
+0x484ec57f, 0x364a007f, 0x1f81817f, 0xc5b9ac81, 0xbb81b97f, 0x1f82647b, 0x2c4b4600, 0x89813d0c,
+0x75ffc374, 0xad7f5e23, 0x0af481a5, 0x3d0e3eee, 0xa49481cb, 0x39815284, 0x8187f438, 0x1a7c7f7f,
+0x817fa8b5, 0x7fca781e, 0xb401d779, 0x424c7fda, 0x3c429944, 0x488d7f7f, 0x78966481, 0xaf687f5d,
+0x89052b37, 0xbf7f407f, 0xe07fce79, 0x9fdf45d3, 0x8181de83, 0xe67f7f5a, 0x7fe6a3fa, 0x38705b81,
+0x81518232, 0x7d5d9978, 0x270372c9, 0x818568a2, 0xca7f66c8, 0x43a06a3c, 0x831b4281, 0x853a7fb0,
+0x8178cf45, 0x7f7f7fbc, 0xbdb69d20, 0x525c5392, 0xc081d97b, 0x18217f16, 0xb6ec7659, 0x0861819b,
+0xc48b819e, 0x817f38f2, 0x7f7f787f, 0x7f365c81, 0x64a9f87f, 0xe4e67dac, 0xd1580073, 0x81817f54,
+0x597f2ced, 0x575cabd0, 0xce81d781, 0x819c81a4, 0x7f5aceb2, 0x7f57ac33, 0x81e4d87f, 0x1df5d24d,
+0x7f4f7f7f, 0x7feb81e8, 0x6a81816a, 0x7f668144, 0x3431b13e, 0x3cc6b82b, 0x815dc38c, 0xc65781b0,
+0xae897f81, 0x9751537a, 0x817f0e88, 0xb15e69ea, 0x6f7f7f90, 0x24e681a4, 0xd97fa74f, 0x1881fa61,
+0x2e743b95, 0xeb817f7f, 0x7fcd677f, 0x317f7fec, 0x9246f573, 0x2e7fae81, 0x7eb72b7d, 0x4d8144bd,
+0x3f7fcb81, 0x7f619f9d, 0x51e7b87f, 0x81688e5c, 0x0d3d55d4, 0xb9b0817f, 0xaec17fd2, 0x017f2ffb,
+0xa8af3550, 0x81187f3d, 0xa033427f, 0x38c83442, 0x7f7f8181, 0xe38a35cc, 0x1f00c081, 0x7f297f7f,
+0xd17f7f81, 0x6e81c637, 0xc4387945, 0x26839381, 0xd481e281, 0x0b72bf12, 0x057f9e7f, 0x5eef2c81,
+0x9216b507, 0xd7906948, 0x637f627f, 0x0a11bfaa, 0xd605bd9e, 0x81ea9c81, 0x72f03c3d, 0x4f819f7f,
+0xc563d7b7, 0xad5a3899, 0x7ff15105, 0x7f692e81, 0xbf79c6c9, 0x3c738181, 0x7f4a0597, 0xecb5d588,
+0x7f7f2b3c, 0x888144dc, 0xbd7f6e61, 0x6b6e81e5, 0x5d5b1caf, 0x4c743b73, 0x7f727f2f, 0x667f3551,
+0x8fc63881, 0x81565a6c, 0x61817f3d, 0x0aa5d083, 0x81215ea2, 0x60461f02, 0x0d7fc1ee, 0xe77f813b,
+0x40d9767f, 0x1c817fa8, 0x7f815e7f, 0xa5447f7f, 0x2ac45607, 0x81417f7f, 0x00aceb81, 0x8181cfe4,
+0x817f81aa, 0xaa3eda6e, 0x7fbd4adc, 0xf8bb5deb, 0xf0867fe7, 0x3f33a481, 0x819e1bb7, 0x81458b81,
+0x9573148c, 0x986d1ee0, 0x45deb557, 0xcf7f688f, 0x23d5b1a9, 0xc3fdfeb0, 0x3fad633c, 0xe4be21bb,
+0x81819acf, 0x567f1571, 0x5a2c130b, 0x7f14e77f, 0x37d38908, 0xe55da5d4, 0xf2e16033, 0x23db8181,
+0x7f8160bf, 0x177fa17f, 0xa00f4dc8, 0x47818153, 0xf7817b81, 0x529681a0, 0xeca34413, 0x7f49a081,
+0x2c9c81c3, 0x8181ae14, 0x8125425f, 0x39b1123a, 0xe4e781b8, 0x4f83e39f, 0xd298507f, 0x49e92f7f,
+0x26bac981, 0xf0a27f49, 0x81d281a8, 0x993dc681, 0x48c19a95, 0x98af7a6f, 0x3baa107f, 0x899d3c00,
+0x7f814467, 0xc6e821df, 0x05226d8c, 0x9a813aba, 0x8d818117, 0x81688142, 0xd9244ff9, 0xdb0da3d0,
+0xbef62430, 0x55868181, 0x8176d83f, 0x33813ef2, 0x941a6534, 0x81d0741b, 0x4e37927f, 0x6b2515e2,
+0x8181aa81, 0x9581605b, 0x678113a0, 0x6e7f2681, 0xc1819f81, 0x813ca072, 0x7f81b97f, 0x3d95817f,
+0x81233f81, 0x911e90e0, 0x76a6d5d9, 0xc6b5057f, 0x5262b67f, 0x81812681, 0xa68110fa, 0xc74a6049,
+0x478eef7f, 0x8ea225d1, 0x77fd31f8, 0x7f568422, 0x81207f81, 0x94628118, 0x81a47fc0, 0x7f637f7f,
+0xa8898caf, 0x8125b97c, 0x3de89f9a, 0x7f81bb71, 0x24183337, 0x88c0437f, 0xe97f6bb5, 0xa0dc007e,
+0x36dcd381, 0x887cd84a, 0x0a817381, 0x9b818176, 0x46327ffa, 0x487f926d, 0x07508107, 0x7f7ffe06,
+0xcefe7f7f, 0x028172d9, 0x7f7381da, 0x81f97f58, 0x81818d0d, 0x06597fcb, 0x817f7ff5, 0x8e999e7f,
+0x7fd22e8f, 0x81766ae5, 0x817f7f86, 0xca81bf7f, 0xfd144e10, 0x947ff681, 0xa9817f4f, 0x7f187748,
+0x81819081, 0x8170ca74, 0x7a5d9c79, 0xbe483f81, 0x6f7f9fa0, 0x7fb0505b, 0x7fc7f15f, 0x81793081,
+0xbc7bb830, 0xce7ff56d, 0x81e02681, 0xa5968113, 0xa47fd381, 0x81a68197, 0xf4ca2a7f, 0xd220acb6,
+0x7f837ae6, 0x5c812609, 0x847fd94f, 0x6adf9afc, 0xb17fc822, 0xfd1b82ec, 0x8dfbf181, 0xbe008215,
+0x1dfd1081, 0xd1768cc8, 0x76818144, 0x7a917f9b, 0x0c6aada1, 0x16d3654e, 0xea1a8d7a, 0x9508c955,
+0xbfe88c4c, 0x593fa4d6, 0x8c45818e, 0x7f7f557f, 0x7f1dcc7f, 0x984c8181, 0x6b817f7f, 0x6c8131d9,
+0x4c8185e0, 0x678457da, 0xa6bb81f1, 0x79c0ca67, 0x7fe2c433, 0x257b8381, 0x37323c7f, 0xd768283d,
+0xdde15d81, 0x7996d7be, 0x7fd38110, 0x81706b66, 0x7feb685e, 0x817fba69, 0x8182ec99, 0x53c67fac,
+0x7f7fc1da, 0xf8afcee6, 0x09816181, 0x8a4f9e6c, 0x5b94c2c6, 0x812b3b97, 0xd0237f7b, 0x81817f64,
+0x81768181, 0x7f24b359, 0x1f326247, 0x7f7f5e38, 0x81267f42, 0xff8781be, 0x85817758, 0x7f172281,
+0x81599137, 0x22423760, 0x81c8e277, 0x7f46f381, 0xbb668184, 0x7f547f7f, 0x4aa27e87, 0x217f8c35,
+0x925eb643, 0x48b89ac8, 0x7f9d8181, 0xffe3a47f, 0x3e810ac3, 0x7f2c7fa0, 0x847f4681, 0x8106818d,
+0x81787f10, 0x3e2a5fa5, 0x81a38181, 0xfa7f712b, 0x74dd166f, 0x0d2819a4, 0x557f426d, 0x7f818158,
+0x1b817f93, 0x927f0e81, 0x7f1b9a56, 0x78c78898, 0xbb07493f, 0xd4b37f1b, 0xae8aafef, 0x7fc2c3a0,
+0xb1bb3d19, 0x1189816f, 0xc2813c7f, 0xc27ff3be, 0x7f3bc183, 0xd1817c7f, 0xc6817fa9, 0x0f9ad87f,
+0x7f10c96f, 0x517f7fca, 0xb9958181, 0x9870315a, 0x1c091752, 0x7f0a4746, 0x509ec654, 0x168190cf,
+0x8e3d0000, 0xc0817f69, 0x7f8a6f85, 0x7fe8b634, 0x2631815a, 0x67942d85, 0x5a7f8b38, 0xa2a07e1d,
+0xfa816e81, 0x3c81bc7f, 0x813b7fed, 0x81aae601, 0x7f81ba4e, 0x81817fa7, 0x32453b81, 0x8e8aa579,
+0x7f81d1e2, 0x78a4847f, 0x81819b57, 0x13137779, 0x81c5557f, 0x7fd18195, 0x049928a6, 0xedd7897f,
+0xa0816adf, 0xb0815ab9, 0xb2c73281, 0x7f01a4b5, 0x5ebacf94, 0x7fbb8181, 0xa97f7fd1, 0xec9d5661,
+0x3da381ec, 0x4445a98f, 0x291ca97f, 0x9d948d9b, 0xf9f0d592, 0x8b1fcd81, 0x81d54fea, 0xdb81600e,
+0x69a781c0, 0x817f78f0, 0x818181a4, 0x36810aa0, 0x646f9f7f, 0x70c25f34, 0x9471817f, 0x3e5081db,
+0x5cc37f74, 0x7f0a814d, 0x990ba07f, 0xe55babcf, 0x59813a5b, 0x26b96e7f, 0x199c8125, 0x812e0db3,
+0xe581b498, 0x8174a97f, 0x440f7ff0, 0x812d487d, 0x227f9881, 0x7fcb77b8, 0x157fc3e9, 0xdbfcff7f,
+0x81085d64, 0x44a9bdaf, 0x42998481, 0xb885b098, 0x94817f94, 0x81d3367f, 0x48394f81, 0x817a697f,
+0x64671052, 0xbd81153c, 0xd8637f02, 0x558cd081, 0x8485d766, 0x9ea7c1ae, 0x81b2afc6, 0x81657f40,
+0x62d4f31b, 0xbd7f7f8b, 0x7b909c60, 0x2f81734e, 0x5060ab22, 0x10b62281, 0x1d83812a, 0xc7aa8866,
+0x31444bc6, 0x815d6281, 0x822f8f58, 0xb75aa477, 0xc21f9a27, 0xd3545a36, 0xad30af19, 0x6b813f7f,
+0x0000188d, 0x7fa14165, 0x177a549f, 0x8f9e037f, 0x1cd8f7f1, 0x1e7fb9d0, 0x557363c3, 0x7f9c1a26,
+0x769fda1c, 0x7f7f8192, 0x157f7e7f, 0xcb61817f, 0x4a9d3d64, 0x8148aa58, 0x637fd2d0, 0x308481d2,
+0x95a8324b, 0x7f7f3681, 0xbe407f4b, 0x2b769128, 0x8156657b, 0x7f7f7f7f, 0x45c97f0c, 0x81577f8d,
+0xe90f8181, 0x817f689e, 0x2781f97f, 0x7fd1a966, 0xa07f6a14, 0xddbb7fab, 0xa53f57fe, 0x56c77f81,
+0x35e0837f, 0xde818164, 0x7f5bb62f, 0x7ffe814c, 0x4a8fe8cb, 0x7f7f5b81, 0x81137fbf, 0x8157a240,
+0x81048171, 0xa9d17f18, 0x8458817f, 0x81424a81, 0x9d817fb2, 0x31ef5181, 0xd081507f, 0x567b6e81,
+0x91a3276b, 0x7f257f81, 0x98d9a897, 0x8eb301e8, 0x7f8a11a8, 0xac7fb482, 0x1420dd00, 0xa629e6aa,
+0x98628159, 0x4a815981, 0xf081eda7, 0xaf5ac540, 0xde387936, 0xf6f2cc49, 0x7fa88152, 0x4587a0b6,
+0x0549f981, 0x7f6a817f, 0x7fde8f79, 0x7fd77f81, 0xbd58b276, 0x477f5db5, 0xa3d0817f, 0xb3811743,
+0x378d5f7f, 0x889c8175, 0x00d9bffb, 0xa386f71b, 0x9b9b5a7f, 0x05301691, 0x077afd81, 0xc9813d20,
+0x655b8118, 0xb1810fc4, 0x2ae18160, 0x7f818141, 0x81c2db39, 0x7f3cd124, 0x52c77f7f, 0xcfdb5141,
+0x8113b964, 0x0c0bd10c, 0x8137637f, 0x56bf8149, 0x5fceb17f, 0x01857f81, 0xea81917a, 0xd67a3c7f,
+0x5fd93fa4, 0x93720000, 0x31e08193, 0x957faa7f, 0x30e1b019, 0x557f19fc, 0x327f5c1c, 0x81e98181,
+0x567f6f7f, 0x817f60bc, 0xe4f481a2, 0xb1f2aa31, 0xba5b7f36, 0x4d2bd790, 0x914d4e38, 0x817f7722,
+0x10fb7fcd, 0x2f7f3026, 0x8c7f3c92, 0xbe81392b, 0x1cae7f78, 0xb6cb6581, 0x2f52db43, 0x49cb7f71,
+0x7fe6dfe9, 0x232e7e66, 0x1497965f, 0x67316ca2, 0xaf71c384, 0x727fbd7f, 0x5e7f6ab9, 0x7b5181bd,
+0x38e38170, 0x48cae97f, 0x4a81669c, 0x3d2d7f7f, 0x69508352, 0xac988181, 0xe093a587, 0xbd907753,
+0x817fb87f, 0x894ac8c0, 0x9f7f9ccc, 0x6336a2de, 0x7f7fd741, 0x75b723c5, 0x396e7fc6, 0xc5c0819d,
+0x813c7172, 0x816a7fa6, 0x95bdf475, 0x69b21f5f, 0x817f7f06, 0x4c90685e, 0x7fea7f7f, 0x7f958f0b,
+0xf6a7937f, 0x5b6caa7f, 0x5fbf7f30, 0x4c6cb506, 0x7f097f95, 0x8181d881, 0x817f34b8, 0x937f7089,
+0x830181a8, 0xa6b2817f, 0x4912930e, 0x7f8fd67b, 0xf69bd281, 0x7a5fd981, 0xc4aa7f7f, 0x817f819b,
+0x9c05c2f5, 0x8f579881, 0x5aa4818e, 0xc14dc0bd, 0x7fce0981, 0x147fcd41, 0x817fe75b, 0xf8e1a54f,
+0x817f8981, 0x1334585f, 0x810281db, 0x146db1bd, 0x25347f7f, 0x9cbf987f, 0xb6736d0c, 0x814ab481,
+0x0fd1653e, 0x7fd67170, 0xe564ce22, 0xd05df37f, 0x10871f96, 0x9dc9e03e, 0x53bc03ad, 0xc47fd1c5,
+0xaa4dd88d, 0x00004ad1, 0x8a35a85a, 0xcff89253, 0x64d0819b, 0x149ab17f, 0x819f7a33, 0x49fc81c7,
+0x1881d433, 0x196171c4, 0x784dbdae, 0x8193148e, 0x75b63674, 0xdf81e4ab, 0xad299a6d, 0x8168b3d3,
+0xeea6426e, 0x81c99981, 0xb17f647f, 0x814ec5d2, 0x2e3b16a8, 0x81597f81, 0xa97f8181, 0x2caec714,
+0x387906fd, 0x818181be, 0x7f7fbcb3, 0xd55a81e6, 0x8134ae81, 0x7fc3817f, 0x9853ee56, 0x5881999d,
+0x9ea98184, 0xfa8181a6, 0xceff5978, 0x688e505f, 0x7fbbb830, 0xc678d06a, 0x3c90e3ae, 0x4b6d7f23,
+0x24cd7f58, 0x7f92c181, 0xb1a97fc2, 0xba872981, 0x66ec49a3, 0x7f7f26b5, 0x7f8163b8, 0xae7f7f7f,
+0xde7f3781, 0x4147d381, 0xe191cb81, 0xd45b81c3, 0x474c9e91, 0x55b546db, 0x0e81b5a6, 0xb5b976aa,
+0x7f7f7f3d, 0x968a81d7, 0x7f1f9333, 0xb37f7f7f, 0x2f7f6418, 0x2532a07e, 0x8b81bf44, 0x89818144,
+0xa1572ffd, 0xfebf182a, 0xe54d7f5f, 0x107f8949, 0x00210081, 0xc53345a1, 0xa2818ff6, 0x81c181e2,
+0x9b81f1d5, 0xd1061965, 0xb7a47ff0, 0x81817fb0, 0x18bc6181, 0x7ccc5981, 0xbe2b9dae, 0x038f8173,
+0x7f3bec4d, 0x81ec81b0, 0x817b9a6a, 0x817cb47f, 0x7fa98fb5, 0xb0355e36, 0x8dad6109, 0x4b138116,
+0xa3e19d81, 0x449ab793, 0x984acd21, 0x168aeb94, 0x85baac5d, 0x7fac8173, 0x81ad81d9, 0xa34abb7f,
+0x81ca817f, 0x817f6074, 0x7fbc0000, 0xc79b108a, 0xc06990ca, 0x317f12cf, 0x9281e743, 0x90c681fd,
+0x17b57f3a, 0xbdd05681, 0xfafcef3d, 0x6f0a0d81, 0x4337197f, 0x7f4881af, 0xb592de71, 0x44c24881,
+0x536f9532, 0x21506996, 0x68489d79, 0x4aaf4312, 0x740c9447, 0x657f6673, 0x637f7f0f, 0x81205569,
+0x8fb3fe9c, 0x4881995c, 0x8163cfb0, 0x17a4817f, 0x7f59ad84, 0x6d0c30d2, 0xbdc6b981, 0x1bfa8155,
+0x7f22a8ca, 0x9c9a817f, 0x3bdba778, 0xf6817eb1, 0x07858141, 0xc037817e, 0x3f2c868c, 0x8181d07f,
+0x02b704dd, 0x467f6bc8, 0x4881ab7f, 0xa25c814e, 0xcb4d8e6e, 0x477c7f88, 0xd991aecb, 0x9c81b243,
+0x12d6b7e6, 0x03d745a0, 0xdf0bc9d8, 0x52637f85, 0xd557817f, 0x96342cc0, 0x81423981, 0x70657f81,
+0xde8181cb, 0x8a81de2b, 0xf55d3e2f, 0x2d717f81, 0xba81289e, 0x99c27f7f, 0x81c5817f, 0x90be817f,
+0x918ea3dc, 0x8de39c22, 0xce577f93, 0x3f7f8186, 0x9e817f7f, 0x816c8aeb, 0x3d818e2e, 0x8181be9f,
+0x0fb9429c, 0x3c7f5155, 0x81275b24, 0xa47fda70, 0x84cc88c5, 0x70797f81, 0x812eaebb, 0x16a1314f,
+0x7f7f817f, 0x38b61a4c, 0x7fb7388b, 0x7fb6e681, 0x5581987f, 0x9281c37f, 0xc45b7f7f, 0x8b35b97f,
+0x7f7f7f81, 0xa23c0e3b, 0x7f9b2083, 0x9cc39283, 0x8843699c, 0xc07f81dc, 0xa1f98b7f, 0x81d245b5,
+0x8181597f, 0x1aa93681, 0x000001df, 0x81574196, 0x7f3f3df1, 0x6fc8c7c4, 0x5e4d7f8c, 0x81b4dc44,
+0xd56f7f8b, 0x8116a381, 0xb03f5f81, 0xf5020639, 0x7f02b25c, 0x55818143, 0xab658147, 0x357f1daa,
+0x296ac18e, 0x8186e57f, 0x7464272d, 0x417863e1, 0xeae67831, 0x1a605547, 0x45ffb1d5, 0x7f066c81,
+0x81bfb062, 0x4cb8f381, 0x81817f7f, 0x145a4bc0, 0x2e813d7f, 0xc6524d71, 0x81818181, 0xc9d681fb,
+0x2a5db57f, 0x12c97fa7, 0x317f7f48, 0xf9b88131, 0x354c1389, 0xd77f8155, 0x811b4dbe, 0x9d3d457f,
+0xf9dc2f28, 0xb01c8181, 0x5a81716d, 0x7f7f3d81, 0xd87f867f, 0x817f0581, 0x564f8181, 0x7f678181,
+0x5cdd7f91, 0x07ad3f96, 0xb4dd9e34, 0x7f7fd50d, 0xa67f81b6, 0x01353420, 0x6481798a, 0xa5a68181,
+0x9c7f816e, 0xafc73c84, 0x427b8d32, 0x1bbb817f, 0xd45c7fa5, 0xb0c2ec48, 0xb459aa7f, 0x70818181,
+0x5ec983e7, 0x81294066, 0x81447f6f, 0x9b819f5e, 0x7fb1a47f, 0x81b8a081, 0x5f91c62b, 0x7f63de81,
+0xdc813ff2, 0x817f81ce, 0x3d677f0b, 0x4da9dae5, 0xcc8190d9, 0x1d7fbbfa, 0x5ffdd2b7, 0x69624b8f,
+0x50963e7f, 0x7f7fa281, 0xcc4b8149, 0x8102da7f, 0x3f7f9df5, 0x435732c5, 0x7f07d881, 0xb20fe07f,
+0x4896ac46, 0x44b3ed39, 0x7f7f8127, 0x9e7f81e4, 0x8181b15f, 0x7c818132, 0x7f41980b, 0x299ea18d,
+0x7f196381, 0x7fc95f36, 0xbecb7f35, 0xdaa80000, 0x292a7fe2, 0x3292947f, 0x7f98e9c5, 0xb77c984e,
+0x74847f81, 0x917f487f, 0x537766db, 0x30b71c7f, 0x81237f81, 0x9d7f9542, 0xfc75737f, 0x72499c3a,
+0x6885625b, 0x7f061c6d, 0x818e7f81, 0x5b814381, 0x81f17f4d, 0x4d81b6cd, 0xd2f7d778, 0xe5e9d5db,
+0xf7f081c2, 0xb80b0481, 0x975658f2, 0xe8b1197f, 0x81634b1a, 0x7f6bd994, 0xdbd67f7f, 0x757f3406,
+0xc4d07f7f, 0x63e7507a, 0x102b7709, 0xe08cf836, 0x1db26230, 0x1a814510, 0x40679bdb, 0xf336a87f,
+0x7fc3bf7f, 0x818e69c8, 0xf67aa2a3, 0x75425b7f, 0xa4b654c1, 0x7f7f5ac1, 0x5f10488d, 0x57dc7f30,
+0x7d817f81, 0xfc81237c, 0x388a81d6, 0xbce67f42, 0x7f7a7f56, 0xfbb7ff87, 0x467f4681, 0x22dc9b7f,
+0xba939029, 0x4a44c1a5, 0xa4be71d3, 0x7ffb3589, 0xfefae9a6, 0xa1963e4f, 0x66b3d6b3, 0x81506f83,
+0xee7f32ee, 0x7ffe7f7f, 0xbf505c53, 0xd769ca7f, 0x69c267d2, 0x7f9f8346, 0x3f7f7f7f, 0x48813f51,
+0x7fed8115, 0x9e81aef0, 0x7f7f22e3, 0x819fa190, 0x55457f81, 0x7f813b81, 0x251b4a0d, 0x6476818e,
+0xc4d8da21, 0x52fd2d4b, 0x81943c7f, 0x273ce481, 0x7d53817f, 0xcd9d9058, 0x754151d2, 0xcb9f365b,
+0xac73ecd4, 0x7ffd9a4b, 0x577f2d92, 0x41c60481, 0x81297fa9, 0x9f7f850f, 0x8c513329, 0xe854c39f,
+0x34bb4a20, 0xc37f5178, 0x0787cc22, 0x6c86717f, 0x75815a48, 0x2023777f, 0xd37fdd7f, 0x6a819cf7,
+0xdc44f5e3, 0x258157bd, 0xe8e7813d, 0xb9118195, 0x9a5a4581, 0x2d8c517f, 0x0c728161, 0xaec769ac,
+0x1f554191, 0xfc8be381, 0xca703b7f, 0xab813d5a, 0x3f7faced, 0x707a2181, 0x7f1b8c7f, 0x7fad7f99,
+0xb307377f, 0x6c9d5b81, 0x7f3bfac6, 0x8182567f, 0x5a246cdd, 0x55408105, 0x277f7f84, 0x7fa09c52,
+0x817fa355, 0x404fd360, 0xecbc4281, 0xc6897f20, 0x7881ae81, 0x407f81e1, 0xfb35587f, 0x9b67fb81,
+0x7f8103ad, 0x36708155, 0xab81f381, 0xa3fe6417, 0xa97f7f98, 0x3cf7cd7e, 0xae1b4dc6, 0x8ac2f749,
+0x7fb35e89, 0x07e0743b, 0x7f818135, 0x81a15481, 0x93819bbc, 0x81f68114, 0x194ccd81, 0x81527f7f,
+0x583ba074, 0x91654d78, 0x4e81398d, 0x0c54567f, 0xe453d054, 0xd37f8175, 0xd57f81ea, 0x345e5b7f,
+0x3589262c, 0xa8b886de, 0x811b8197, 0xbbc890ee, 0x8db0b9dc, 0x9fcb817f, 0x39817f7f, 0x55391fe5,
+0x7f7f3f92, 0x5a7f55d9, 0x747f3c71, 0x43e31da0, 0x67dccd81, 0x81ddffaa, 0xc32a5881, 0xb9816d7f,
+0x424d7f7f, 0xb97fa435, 0x7fdb7f81, 0x48fb8182, 0x8181407f, 0xba7fa88d, 0xa16d467f, 0x81cb8a81,
+0x8181a66c, 0x8c747c1b, 0xb4810470, 0x8133dc82, 0xbc77727f, 0xee981437, 0x7f2e8981, 0x26be1939,
+0x12da817f, 0x81a1da61, 0x1d2af46f, 0x7f3781f5, 0x29500000, 0x657fc67d, 0x81817f7f, 0x49e406cb,
+0x0b787faa, 0x7bc2643b, 0xe4e4f0ec, 0xd28175e5, 0x7f425abc, 0x900c1828, 0x7fa85f7f, 0xe8365361,
+0xc5d87fa2, 0x81baffab, 0x81818612, 0xbcb5af1b, 0x7a7e5d7f, 0x81b07f7f, 0xa27aba93, 0x817fd881,
+0x818481b0, 0x7f8d1c22, 0xb48c869b, 0x977f9429, 0x9a8c7fc5, 0xb8d9b270, 0x6e340e88, 0x670f7f39,
+0x7f4efebd, 0x41b5b57f, 0x7f277f0c, 0x5f177f23, 0x94818592, 0x68362b87, 0x6681ea7b, 0x7f187fd2,
+0xa38131ae, 0xc97f698e, 0x25bd8155, 0xe37d88d6, 0x2d018f4d, 0x391e7f7f, 0x7f7f845a, 0xe8f8ee81,
+0x4beb9d63, 0x7fd47ff8, 0x5e5781ec, 0x237ffe3a, 0x8e818168, 0xa1e781e7, 0x85de7f81, 0xbaaad281,
+0xa7486481, 0x555e737f, 0xa2b28f7f, 0x70635a47, 0x7f837fd8, 0x64ea8641, 0xc20c7f81, 0x0b9e738e,
+0x698e8145, 0x783a5a00, 0x7f376e81, 0x7f8cbd20, 0x7f548181, 0x81149934, 0x3dad456a, 0xb4561fed,
+0x815d8127, 0xaea4bb24, 0x2187755a, 0x847ff0b7, 0x7fdb9039, 0x81887695, 0x8781e111, 0xe0de037f,
+0xc879f7ca, 0x7fc18381, 0x7f7ff7bf, 0x958b7f81, 0xa65fe7ad, 0x3481817f, 0x9f897b7f, 0xa2bb7f7f,
+0x31018170, 0x70e08c81, 0x4c1da62b, 0x16f27ff7, 0xdf0781ed, 0xbf4081c0, 0x3a233c53, 0xf8aed938,
+0xef24617b, 0x812681ab, 0xa66e4db4, 0xef9b65b3, 0x00007f44, 0x7f7f997f, 0x7f341fc7, 0x0f9b2be4,
+0x7ff67f81, 0x81817e2a, 0x4b4d7f81, 0xc0706505, 0x81fc60e1, 0x30d87f9c, 0x7fff9c0d, 0xa789757f,
+0x3881d769, 0x6367bf81, 0x9bae7f8d, 0x8e81bbb6, 0x61e88127, 0xc96c7fbf, 0xdf813181, 0x7f7f7de7,
+0x3e817f81, 0xb97f817f, 0x8b927f81, 0x5e74742d, 0x7c49817f, 0xbc1172b1, 0x81818181, 0x6dd2d4bb,
+0x98f3e058, 0x7f81efde, 0xaeee76df, 0xd57fca01, 0xf5817f81, 0x26747f81, 0xdc3f8181, 0xc335c749,
+0x7f2f7f7f, 0x7f02e67f, 0xfb706975, 0x8f4efde7, 0x819b414c, 0xb14cde70, 0x22e6812e, 0x3843892d,
+0x6f81ce60, 0x50c12725, 0xb4e279d5, 0x7fb1ac7f, 0xbc7f8183, 0xc7767881, 0xb6e71854, 0xb37f7f77,
+0x3d7f7f7f, 0x817f6824, 0x4981ae81, 0x7f811a7f, 0x58c37f74, 0xbef5a27f, 0x92a62541, 0x8643aa3c,
+0x8f838181, 0x397fe4f4, 0x8a814677, 0x93e3affa, 0xa6fa21e9, 0x7a3e7f7f, 0x332a7872, 0xf28c8176,
+0x227f573d, 0xbbbb6348, 0x7fefb2de, 0x43817f69, 0xc4c37b31, 0x747fa118, 0xacb3819c, 0x7f689f89,
+0x74e0604b, 0x81b57f88, 0xe925a0cf, 0x81be2181, 0x126d34f1, 0x7648d74e, 0xd760b29b, 0x04d0fda1,
+0x3b858181, 0x1be20981, 0x8127ac7f, 0x8a6b8181, 0x7f616ca2, 0x37e6e881, 0x7f9b82c0, 0x7f6e7f93,
+0x8dc72420, 0x752f3d39, 0x5e7fd2e5, 0x7f25c372, 0xe97f2677, 0x307f0000, 0x81383b86, 0x713de0fd,
+0xe47c817f, 0xf0214e8f, 0x8108349e, 0xe0c92881, 0x7fafb0e2, 0xe939b48c, 0x4855d8ae, 0xb581e469,
+0x967feb6a, 0xba543d20, 0xc47f0c62, 0x2a28e6b2, 0xd27fb09a, 0xbadf7f7a, 0xbf98d54c, 0x5f54cfa3,
+0x4881248d, 0xc97f7f53, 0x17816966, 0x3450877f, 0x4ff681c8, 0xfdb8786d, 0x0209730d, 0x7fbbba84,
+0xc5994cff, 0x4d31cc44, 0x7fb99400, 0x239d757f, 0xa2bd517f, 0xd5558194, 0x93818191, 0x819b8190,
+0x447f9289, 0x777f3e81, 0xc2c04a7b, 0x27c38eaa, 0x437a383d, 0x7f812432, 0xbd77707f, 0x7f81ea6d,
+0x40256698, 0x81a95b58, 0x2fb47f81, 0x74b64d86, 0x70f07f23, 0xd7d6bbd5, 0x817f18a6, 0xe862327f,
+0x3ff56cff, 0x7f7f8197, 0xcb75c381, 0x58954f57, 0x43818176, 0xa903811d, 0x7f6abbfa, 0x8cd7a77a,
+0x55814473, 0x7f819e1a, 0x557f9e89, 0xa9c955e0, 0x648191b0, 0x81a97f51, 0x1dbc1181, 0x685a6b36,
+0x7f2e5ef2, 0x59819afb, 0x3f30fd68, 0xe986702b, 0x810a2581, 0xfedf7781, 0x947ffb3a, 0xa9777f29,
+0x9c547f3d, 0xe36d7f07, 0x81909281, 0x2b87817f, 0x07aa817f, 0xd9137f30, 0xb791d3ff, 0xb84869c5,
+0x4db4e1ce, 0x81beed66, 0x1637adce, 0x10a1897d, 0xfd817fbb, 0x5771c343, 0x3b16dc58, 0x7fbf813f,
+0x7f9ba269, 0x353a7e21, 0x14f07fa6, 0x7f81815b, 0x484bb301, 0x0000c27c, 0x59141b93, 0x7f637f3e,
+0x3012937f, 0xf2a2b350, 0x1d7f7f7f, 0x81b6d4ed, 0x4fc3ba54, 0x3f7f107f, 0x02af3855, 0x598c814a,
+0x3eb09fd7, 0x636832b6, 0x7f9e817f, 0x7f939c7f, 0x7fa99581, 0x7f817fb1, 0x387f3475, 0x9893f771,
+0x52813581, 0xc5c75881, 0x7f787887, 0xb97981d0, 0x27436262, 0xfae6f21d, 0x81cacf5d, 0x41a5de81,
+0x81817d81, 0x3b2f7f9e, 0x5dc0ade8, 0x3d0e8154, 0x81bd3a0a, 0x6e818153, 0x7f818123, 0x817fc575,
+0x811b669b, 0x7f037929, 0x26acac81, 0x7fb3efb6, 0x82817fc3, 0x0c81f981, 0x607a677f, 0xc8258116,
+0x0ae77a50, 0x816fba35, 0x7f256549, 0x04c57f89, 0x4381075f, 0x81cd3b56, 0x8ccdad7f, 0x7fa45cd5,
+0x817fb67f, 0xb7698dbe, 0x5562298b, 0x688c257f, 0x9d7fde81, 0xe57f4e81, 0x7f81c9ea, 0x281a41f9,
+0x7ffdfc6c, 0xaa32217f, 0x81a08166, 0x8181b1ae, 0xc447880e, 0x2b81367f, 0x2944a47f, 0xc6de9b49,
+0x81816841, 0x54fa7fa8, 0x587beb7f, 0xe3475a81, 0x81dc2cb1, 0xa95dc06d, 0x8bd7477f, 0xb05d7f81,
+0xb4c19d7f, 0x43817f53, 0xde7f5c7f, 0xe3d2817f, 0x8948aadf, 0xc17f7ffb, 0xd08188c1, 0x8181204e,
+0xb3b6d781, 0x7381b381, 0x787f7681, 0xee640849, 0x657f8181, 0x811b329b, 0x5c728eed, 0x0c7f59c9,
+0x4cc3b12c, 0x814f7e3d, 0x5f7f7f46, 0xf9817fd9, 0xb1b5ba76, 0x1f42609e, 0x3db30000, 0x400d7f46,
+0x7f7f7f81, 0x45d36281, 0x81df9581, 0x7a7f7f53, 0x8181330a, 0x7ff5c3ab, 0x9e81b4bd, 0x7f70c27f,
+0xac1666b3, 0xcf7f52e2, 0x817fea30, 0x8c4b3f7f, 0xa085bde5, 0xabae307f, 0x817f7fde, 0x17bc61b4,
+0x914ccc4b, 0xe1e56bae, 0xac294f88, 0x75e562cd, 0xbfbd35cd, 0xed507f81, 0x81afcf81, 0x7fdc819b,
+0x5a0385e8, 0x4f2aabf2, 0x569c7f3f, 0x7fbee1bf, 0xb0407fc4, 0x6b548214, 0xbcd6877f, 0x3d6e7716,
+0x9a8134a3, 0x0a7f7f81, 0x29d73eca, 0xadbe7f65, 0x7fc1bb81, 0x7f63dc7f, 0x7f815430, 0x810e2366,
+0x7f36057f, 0xda39d7d0, 0xe9855ddb, 0x7fffa2f9, 0x3b9a8181, 0x7f06b781, 0x844db0a2, 0x7b1d7fa3,
+0x99a795ad, 0x7b819a6a, 0x3781819a, 0x867fc788, 0xa181817f, 0xfcc3637f, 0x747f5a5a, 0xf27f690f,
+0x2f8a9c2f, 0x617f7fb3, 0x81b4b1c2, 0xa2818b96, 0x7f7f7fa6, 0x20707f81, 0x7fc9817f, 0x55577fc3,
+0x777b40b9, 0xdffa3781, 0x38ba0e4e, 0x4f667d32, 0x9cf081ea, 0x8187d122, 0x79af9ebc, 0x647f99c2,
+0xd1a47f79, 0xaba67f7f, 0x6b270e96, 0x90c07265, 0x817f4b81, 0x71f31f65, 0x2d818692, 0x65570681,
+0x81f59b98, 0xe6b181ec, 0xc5b1a58f, 0x7fb2c981, 0x7fdb5914, 0xe37f81bd, 0x7fefd823, 0x9a7f9ccb,
+0x631762c2, 0x7f4e81b8, 0x813d88c1, 0x9768c97f, 0xbb867f81, 0x2cd79456, 0x00004aa7, 0x8ec66e57,
+0x7f7af878, 0x747f3cb4, 0x8c774fa4, 0x7f8df013, 0x8c5c7264, 0x3aade68d, 0x81819c30, 0xb0d38147,
+0xbd816181, 0x4f415cbc, 0x7f21f710, 0xf7ba5565, 0x81df367f, 0x637f7f9a, 0x7f182e7f, 0x6f81996f,
+0xca547fe5, 0x637f8db9, 0xccb4fe59, 0x55ca7f81, 0x7f7f7fae, 0xceffc677, 0x2955d0f8, 0x91a07f7f,
+0x7f818181, 0xebc2f87f, 0x7f213646, 0x94a2a981, 0xd1819bdc, 0x7f866084, 0x2381ff8b, 0x75b58114,
+0x447f162b, 0x5275e0a3, 0x37578cc2, 0x0dc1ec31, 0xb73681a8, 0xb081978a, 0x74429a2c, 0x698859dc,
+0x937fb91d, 0x7fcdc06e, 0x81b4ffff, 0x7e2b168d, 0x4b649aa9, 0xe648be08, 0x44e37b7f, 0xc0fc27e9,
+0x1b16521e, 0x81577fc5, 0x7f8152a8, 0x2981ee7f, 0xf08dd19f, 0x7d93ed81, 0x814435c5, 0xe6c67f29,
+0x7ffc8111, 0x87f65881, 0x3f62563a, 0xa09a81f9, 0x490f5781, 0xc70d6284, 0xfb818181, 0x56817f38,
+0x87420960, 0x0d2dedb3, 0x8ef18143, 0x4c5b4a62, 0x8f947f81, 0x667f8121, 0xcc817f81, 0xb567a44c,
+0x7996b182, 0x736e9881, 0x81627f7f, 0x7f8e7f81, 0x725ee43d, 0x9f436a50, 0x7f055d88, 0x93498181,
+0x21d08f7f, 0x26f17f3c, 0x581d939b, 0x90595ba7, 0xf5200e81, 0x4b91b78f, 0xcb7fc693, 0xe87fd04b,
+0xaf81087f, 0x14ac4a01, 0x7f7d7f81, 0xe014dd7f, 0xc2816aed, 0x79760a93, 0x7f9b817f, 0x81480000,
+0x844d73a5, 0x7f8181bb, 0x819dae3f, 0xc87f8e82, 0x9d81a23e, 0x7fbd813a, 0x8181702e, 0x4fab7a67,
+0xd57f70b6, 0x817c53ac, 0x1355de7f, 0x4264437f, 0x81b0ff2f, 0x16d6e094, 0x7fc40f55, 0x7f9b7edf,
+0x7f5a7f81, 0x7f996e66, 0x8e932881, 0x7f817f81, 0x6d4ca679, 0x815f871e, 0x81b4817f, 0x7fa97f81,
+0x5e03827f, 0xbcd8b6a8, 0xc5683edc, 0xbb007fdc, 0xea266973, 0x498e467f, 0x86b1cc7f, 0x17814738,
+0x81b7ae62, 0x56fea8f3, 0x5eac534d, 0x54f67f81, 0x24add4ce, 0x811a7881, 0x81cfc383, 0x9f2f81ef,
+0x7f1f41fe, 0x819e3781, 0xcc73a3b0, 0xee148181, 0x7181d87c, 0x81c1c9e2, 0xfee4727f, 0x9b608139,
+0xa2ec4ace, 0x7f810c7f, 0x9a7f2288, 0x46b169e4, 0x9b40817f, 0x547f2f7f, 0x81ef4f81, 0x243fffe3,
+0x8181dd3f, 0x347f6596, 0x7f59c3fa, 0xa26cc7ac, 0xf7384881, 0xbdc0a118, 0x7f8173a8, 0xabf1b3e3,
+0x7e3e8eac, 0x30c07bce, 0xbca0b981, 0x75816414, 0x81377f81, 0x7f7feaa1, 0xd8287f86, 0xfbd98bd1,
+0x7f987fc1, 0x81b8347f, 0x8c7f37e2, 0x987f3c7f, 0xb5f681ab, 0x347f1adc, 0x1b815481, 0x91f17f60,
+0xbf85a67f, 0x6d7f2374, 0x587f3c1b, 0x74b0ae9c, 0x97a64fb4, 0x1437697f, 0xc77f3b81, 0xf4e0bbad,
+0xb6892b64, 0x5ed0e47f, 0xa55c8100, 0xbbe24e10, 0x50bb6551, 0x6db5349d, 0xaaae405f, 0x4d7f4f6d,
+0x989e95a5, 0xcae9bf2b, 0x811e7f4d, 0x90538181, 0x7f9f096e, 0x4126a5df, 0x1369537c, 0x81a73581,
+0x722f1409, 0x8b297c54, 0xf17f5081, 0xc22b4595, 0x7f6fde57, 0xdea96095, 0x7f98814f, 0x40f8fb81,
+0x697fd77f, 0x35e07f33, 0x27459a7f, 0xc0818181, 0x3e817fb2, 0xdd5eae81, 0x8a8efd53, 0x13e91281,
+0x2c486ba8, 0x7f6b447f, 0x7f818120, 0x1c496781, 0xf8e45993, 0x48817f81, 0x009db045, 0x7fd9c722,
+0xab817fe2, 0x73bd7951, 0x687fa97f, 0x7f7f7fb8, 0x4f447ffb, 0xfc31d9c2, 0xc1d5d865, 0x526abd82,
+0x7f6e7f47, 0x6b31817e, 0x8509817f, 0x5581fcbf, 0x7f9bd8ac, 0xcc22f37f, 0x547fa07f, 0xbd4fd2bb,
+0x6f49a523, 0x835e896c, 0x65458e81, 0xd0e37fd2, 0x81587fe0, 0xd95fb08b, 0xd938d43f, 0x11e67fc6,
+0x7fec3c2e, 0x7f8581d5, 0x017981b9, 0x812c8133, 0x307415cb, 0x2081bd7a, 0x994d5c83, 0x53812ab3,
+0x7f8190bc, 0xad811645, 0x73c1ca14, 0x94c87d32, 0xbd4a7063, 0x7f442f7f, 0x06812617, 0xc481acc0,
+0xc7bacc81, 0x81de5481, 0x7fa3167f, 0x4a3a385f, 0x2b817f37, 0xae912b7f, 0x32c4cfeb, 0xc3bf3bb1,
+0xa4a63e50, 0x846c7b7a, 0x5c81816a, 0x75813daf, 0xd0665307, 0x6031117f, 0x507f5429, 0x29bfc44e,
+0x81b69437, 0xa4c54d61, 0x81391b7f, 0x98347fec, 0xf7da5b06, 0x7e3d8b7f, 0x7f7f1abe, 0xa955d23a,
+0xb7810000, 0xa1608164, 0x5f813cfb, 0x16602281, 0x5fb6814d, 0x3c3fd67f, 0x5dae83eb, 0x58ac2c2c,
+0x097f5d25, 0x6081da52, 0x7fd4818c, 0xe181d13c, 0xc66d7f2c, 0xe94a00a3, 0x2cec12a0, 0xe84c6398,
+0x64398162, 0xd056816f, 0x8147e081, 0x9ceb75c0, 0x7fbec481, 0x16d15734, 0x8158cd7f, 0x369c8172,
+0x2a479b81, 0x7f4e9686, 0xb1494e0f, 0xe5816226, 0x057f7f55, 0x81dba929, 0x8f1890e4, 0x5e7f817f,
+0x7f7f8162, 0xfced63c7, 0x370aadc1, 0x5f09b34f, 0x7fc0be25, 0x36927fec, 0x814d0ab6, 0xfd077f60,
+0x8162f9ab, 0x8185597f, 0x2bac2f66, 0x28e6aa9f, 0x814dc1c6, 0x717f3841, 0xffd1078b, 0x4f5b8a12,
+0x7f429a7f, 0x7f734d7f, 0x43817faf, 0x7f4e7f52, 0x232e0524, 0x7f4158e4, 0x327f7f7f, 0x89b464d8,
+0x8130a3a7, 0x7fe6ac32, 0xd1818e81, 0x427f957f, 0x8150c60e, 0x3cb50481, 0x31955f7f, 0xec427f9f,
+0x99eb5f69, 0x8ac893da, 0xf97da17f, 0x7f847f73, 0x7f97ce7f, 0x7f7fe806, 0x8984629e, 0x34539cba,
+0x8a64a575, 0x25297f49, 0x1c509d07, 0xd5aa7f7e, 0x74817f79, 0x81819981, 0x95815a8b, 0x9518a19f,
+0x3d9183ce, 0x817f00a1, 0x30306781, 0xc67f7f7f, 0x81594a49, 0x3d620f81, 0x3481bd81, 0xc3af8e63,
+0xc249dc8b, 0xe5fa637f, 0x81185512, 0xa0b48307, 0x814c817f, 0xc6dac58b, 0x8b5c781a, 0x81982c81,
+0x0000b269, 0x8105f78d, 0x81ad60f7, 0x81ffb8cc, 0x917ffed4, 0x104fc0a1, 0xfa38b45b, 0xb5318137,
+0xbd781466, 0x0bd8068c, 0x72c57f91, 0x8181b48e, 0x7f81aedc, 0x43677f7f, 0x7f4f7f3a, 0x437f8178,
+0xe99d0b81, 0x868792bc, 0x17727f57, 0xada05e06, 0x694d707f, 0x9081e59b, 0x7f3a8181, 0xb2bae481,
+0x7f81dde5, 0x3e307f7f, 0xcaa07f3a, 0x2e1a8170, 0xed0f4881, 0x297f7f61, 0x81cc815e, 0x4fec813b,
+0x1a4f02b2, 0xc6e66a4e, 0xe9817f6f, 0xc2c36a02, 0x302e9f60, 0x4ea28137, 0xb9d57f32, 0x462a7f81,
+0x9085bb36, 0x7f7f817f, 0x3c714908, 0x70c9c17e, 0x5a7f204b, 0x8fbf6f70, 0x97880981, 0x0cbacfdb,
+0xb80f6d81, 0xb6bb3aef, 0x81691db8, 0x1081e2df, 0x7f0504a0, 0x797d5e7f, 0x006de423, 0x7f19f16f,
+0x1eb28181, 0x819f7f81, 0x7f6a84b9, 0x936537f2, 0x14a87f81, 0x7fa9cb81, 0x81813a8c, 0x8182c47f,
+0x56758144, 0x81c55c97, 0x86de0b81, 0x818181d9, 0x7f386281, 0x7fbb2738, 0xffd18d81, 0x17e1eb34,
+0x656449b7, 0x7f7fbe33, 0xd7f681b6, 0x77313c4f, 0x7dc9151e, 0x28debefb, 0x7f7f5c62, 0xa850b25f,
+0x81166b59, 0x7aea7f05, 0x325d81a1, 0x7fd06471, 0x93137fbb, 0x43a51892, 0x3e326cfe, 0xab81a942,
+0xb208d017, 0x817f0781, 0x08fcca86, 0xa31a7f81, 0xeb93206a, 0xd4fa21f4, 0x684f9029, 0x7f817f57,
+0xdca7812c, 0x7f7f0000, 0xf2dc5a96, 0x7f62aa7f, 0x918d1c7f, 0xfbb5add6, 0x407fc0da, 0x4d5d9f7f,
+0x935d8166, 0x817da9b1, 0x205d7f3a, 0xe08b4181, 0xd8bd7f7f, 0x4f33818c, 0x8105b781, 0x2f81cd81,
+0xbaf8a48d, 0x2b81aa7f, 0x90b5810d, 0xbc62c181, 0x1592f72a, 0x4d81b5fe, 0x7f81e447, 0x99d22181,
+0x303e3ea5, 0xa23078a5, 0xba8a7995, 0xd5282790, 0x6681453a, 0x7ff7ab7f, 0x7f4e8195, 0x8bc48181,
+0x817fd481, 0x81b98142, 0x265a8182, 0x81f768a7, 0x85f11690, 0x7f957f7a, 0x109981a4, 0xeabba365,
+0x577f9057, 0x5f7fae65, 0x817f8199, 0x718e3daf, 0xd6818181, 0xd1a1cc81, 0x97a48187, 0xd8d14520,
+0x497b7f10, 0x7f81d781, 0xb77f747f, 0x7f813974, 0xc52a7f7f, 0x7a292226, 0x81602ef8, 0xe481cc7f,
+0x0b4266a9, 0x4722287f, 0x7648747f, 0x9c861ec6, 0x4ba9efbe, 0x2063813f, 0x5b277f81, 0x54608181,
+0x81b3ae7a, 0x5b812281, 0x6c306f81, 0x4fa0bcd5, 0x540c85d5, 0x2f81817f, 0xd2c9078a, 0x4281a39a,
+0x3e7fa1d8, 0xa47fb881, 0x3efe9c7f, 0x7f5f6c23, 0x4681d46f, 0x49cb81c9, 0x7f4eaa68, 0x2e7f7fac,
+0xbb497fd0, 0x3a4253a8, 0x91a6aaaa, 0x4f7f5a52, 0xf9375fad, 0x8b2a7f2d, 0x746e7f81, 0x7fb0cbe0,
+0x5a917fd1, 0x5b65867f, 0xe9606f9c, 0xe9f8814e, 0x3045cf65, 0x937fad52, 0x760f5a81, 0x9be4ba50,
+0xb59d81e5, 0x0000d77f, 0xd481bd81, 0x27224a55, 0x61467c81, 0x91d865df, 0xffa17fe4, 0x7f8a0c68,
+0x1640fd52, 0x987f7f6e, 0x4d815a5a, 0x3081b65b, 0x7d7f6c8e, 0x5b26bf60, 0x44814281, 0x5a813427,
+0x81f47a3b, 0xef9281eb, 0x81994ca6, 0x7081317f, 0x7f7fd49a, 0xfb8c8e7d, 0x546ad581, 0xd6817f16,
+0x7f3e4b81, 0x4f4c4898, 0x817fe22f, 0x819a37c9, 0x387f1a55, 0x8cfddd03, 0x318aa9bb, 0xcb6e2d90,
+0xa47f0d1b, 0xae81c204, 0x7f797f27, 0x0a7f65ad, 0xe4ac81af, 0xb2d74d81, 0xca0fad81, 0x357f69a8,
+0xad71a581, 0x5be9d4de, 0xaebe8181, 0x95817fd8, 0x8f7aedb6, 0x0a81e59e, 0xa07f20eb, 0x7e66427f,
+0x56769b04, 0x2e8149f1, 0x81f6f87f, 0xc3813768, 0xbcc28850, 0x6cbd3dac, 0x7fda99dc, 0x657f7fd5,
+0x7fcf7f60, 0x81233698, 0x81daf17f, 0x867f7f7f, 0x7fda7f36, 0x0c7fae20, 0x7f817d78, 0x7fd09481,
+0x818f30e0, 0x7f437c7f, 0xaecc2b3e, 0xcf427fca, 0xccfd2cce, 0xefd898bc, 0x7f5b81e2, 0x1d4b812c,
+0x865871ae, 0x553ab4ae, 0x69817f7f, 0x811a745a, 0xa32a163d, 0x2e967f57, 0xff817f7d, 0x70d43e9a,
+0x814681ae, 0x9f817f31, 0x819b8110, 0xfca3819d, 0xc4fc45b2, 0x56b2817f, 0x7c811d7b, 0x997f8181,
+0xbe0dc3d8, 0x9f5b56a6, 0x7f8181e2, 0x5d59eb29, 0xa357e4c6, 0x8161817f, 0x3c7e7f32, 0x7fd07f06,
+0x817f82ad, 0x93de8341, 0x92850000, 0x0c65c06f, 0x0a4d2817, 0x7705d752, 0xbcd8687f, 0xc4397f7f,
+0x1b7ffd47, 0xada5012d, 0x7f8158e5, 0xba617e10, 0xa97d811f, 0x1fb61081, 0xac41e74e, 0x8c7ea7a3,
+0x997f452e, 0xb5858149, 0x5c3cb0a0, 0xc8ffab38, 0x49d65d7f, 0xbbd07c81, 0x35b06b7f, 0xcc7f7f7f,
+0x50c42881, 0x707f7fde, 0x7fd67f7f, 0x7f819981, 0xd4d6a781, 0xcb103b7f, 0x7f4fee9f, 0xb3997fe0,
+0x7f9381a5, 0xbc7f9a28, 0xf4aa819f, 0x7fe862df, 0x316dd1f8, 0xb4a66f81, 0x98816581, 0xdb817f2e,
+0x34819ee0, 0x746c817f, 0xdc9cd3e1, 0x8e7fab2d, 0xec368b2e, 0x7f8381c8, 0x817f7f7f, 0x814de179,
+0xed5b7f4d, 0x274bdfa1, 0x5851250b, 0xec811a81, 0x7f365569, 0x57935681, 0x08757781, 0x196d813e,
+0xa67581b5, 0x83a7d981, 0x73988163, 0x816eb57f, 0x2ce47e40, 0x5bef6481, 0xb131155f, 0xc2f9817f,
+0x519b67b4, 0x7d2c7f59, 0x7fdb8150, 0x5c7fc881, 0xca285c9d, 0x7f7f7fe6, 0x39aabd59, 0xb9b494e6,
+0x81401831, 0x74247792, 0xab7dfaab, 0x817fcd81, 0x819b25e3, 0x587f337f, 0x817fd238, 0x818a332c,
+0x9db6bcc3, 0x1681c227, 0x7058306d, 0x50a27f64, 0x8181a4b2, 0x7fe2a57f, 0x8d5f4777, 0x7f7f8f81,
+0x6e8381f7, 0x22518136, 0xae72d0d6, 0x7f9bba7f, 0x8117d27f, 0x792b7ff0, 0xe45892e0, 0x8e6f5c34,
+0x3994817f, 0xa981afca, 0x0000a592, 0x7f811d81, 0x09548181, 0x0ea8127f, 0x7f7fb49d, 0xd6690b81,
+0xa1846059, 0x81d15d81, 0x6ccaf481, 0x81ddef83, 0x7fccc681, 0xab502722, 0x4620e862, 0x3981de76,
+0x7f81889f, 0x5b818154, 0x797222dc, 0x4b8153a6, 0xa470816d, 0x7fb2657f, 0x81150b64, 0x89dc1f57,
+0xaa636e7f, 0xe59cba67, 0xb3b2da41, 0xc7818192, 0x7637d0d9, 0x1a78a78c, 0xaf5e3f5c, 0x8181a581,
+0x56285469, 0xeed47f7a, 0x697ff6a5, 0x7f7b7f1e, 0x398181cb, 0x999fe4a0, 0xc17f8816, 0x5c815aa2,
+0x78717fce, 0x7f7f842c, 0xf07f4c43, 0x7f818148, 0xbc66c134, 0x8168ce22, 0xaf1791a8, 0x3522ae40,
+0x95afa97d, 0x435d4e69, 0x2ab59d7f, 0x8197c47f, 0x93cfe645, 0x8dba727f, 0x227f7f81, 0xb17feb7f,
+0x702a7f81, 0xebd463b7, 0x5381e929, 0x817dba7f, 0x5c811a24, 0xfa7f814d, 0x817f8197, 0x2f7f704f,
+0x36817f7d, 0xe87f0d7f, 0x54b07fb6, 0x81733686, 0x8fcb7fcf, 0xd888c623, 0x2de5ebc5, 0x8f6f6569,
+0x7f7981f9, 0x908136b1, 0xa93a7fb5, 0x405f8141, 0x01a54dbc, 0xb6815763, 0x8ccc3ffc, 0x5681105b,
+0x4a1498bf, 0x4c6f82e5, 0xa67f556c, 0x7f5d564f, 0xdb8132d0, 0x1e958139, 0xe386811b, 0x04845a40,
+0x7fbd8109, 0x833b62ec, 0x81f40717, 0x701d8181, 0x8191ee44, 0xae2d9d7f, 0x3fa17854, 0xcbcad981,
+0x73c2d681, 0x5f738681, 0xb87081dd, 0x817f0000, 0x037fcda9, 0x922caef5, 0x7cc7f91e, 0x9a7fbd88,
+0x81819528, 0xf2cd7f53, 0xfd7c8170, 0xfb7fb997, 0x7f7f3f7f, 0xe4818154, 0x18c4414b, 0x4fa48da4,
+0x81718181, 0x817c957f, 0x7f2e1582, 0x09bc81bf, 0x5e4b817f, 0xd5590d7f, 0x7f818b44, 0x88abcf7f,
+0x39508181, 0x81ab86bf, 0xba58c325, 0x65bc83ed, 0x3402857f, 0x81c61e7f, 0x8bbab505, 0x81b2aba0,
+0x8153ec32, 0x6803d681, 0x819d817f, 0xb6de31a4, 0x367f7fc2, 0xb1048db9, 0x6389815b, 0x7ffb7b01,
+0x8f1b817f, 0xc1817f7f, 0x04187f64, 0x45cfac7a, 0x0f1b578c, 0x0f209f24, 0x33817f7f, 0x7f7f7f81,
+0xac814781, 0x5a9d3dbf, 0x62a65581, 0xcb8a7353, 0x7f81c5b8, 0xba447fa1, 0x9081774d, 0x7af9ed38,
+0xb6849bce, 0xacf07c18, 0xa1894581, 0xd7634242, 0x2d0e8174, 0xdbf799d9, 0x7fe7b446, 0x84110cf7,
+0x6474da81, 0x8185e120, 0x9da4f123, 0xd07fce54, 0xa9cdf7af, 0x84db817f, 0x9e9a23b7, 0x81774c7f,
+0x7f818152, 0x817f5243, 0x39058181, 0xbbc91e81, 0xe3d87581, 0x81b66581, 0x7fb06a61, 0x0bcd0fdf,
+0x8188dee9, 0x1cd87f92, 0xf036977f, 0x977f4d61, 0x1da12581, 0x3a7fbee0, 0x87467fa8, 0x7fe27fa3,
+0x89d37f7c, 0x397c7ff4, 0x57e64171, 0xc4819181, 0x93677f41, 0x65be2517, 0xbe6c7f7f, 0xaa7f7f81,
+0x255d650e, 0x098181c9, 0xe8124525, 0xc73a4949, 0x24d14b47, 0x6730f681, 0xfe251c6e, 0xbc7fa092,
+0x81917f5f, 0x81d1ab81, 0xd6128193, 0x13d62e52, 0x941c14f4, 0x25b452c6, 0x7f9c947d, 0x815d3f42,
+0x81c8c9d0, 0x7f524663, 0x40ae7524, 0x2f81c77e, 0x815c8483, 0x7f7fb27f, 0x7fc37f44, 0xe07f9db7,
+0x7b812117, 0x1c965b7f, 0x1822ad4b, 0xccb9e67f, 0xc5b18115, 0x7f8c377f, 0xd13939cb, 0x38e8147f,
+0x4e722d21, 0x9e81ef00, 0x81c0fa81, 0x812d8158, 0x9d84a57f, 0xefc32797, 0x7fc9987f, 0xa37f8199,
+0x81812681, 0x81818190, 0x89a9814c, 0x7945c381, 0xa57f816d, 0x7d65af81, 0x81bb7f72, 0x1c81cd7f,
+0x6d3e4e7f, 0x6cbef90d, 0xca24894d, 0xb04892b6, 0x7f7f1e81, 0xf57f5965, 0x0769a7b0, 0x698562b9,
+0x16817f7f, 0xabb94bb7, 0xc35c81f3, 0xb9b5728e, 0x8181641f, 0x81d2d2be, 0x9181bb37, 0xf82b9222,
+0x7bdc7ff5, 0x9b812fa1, 0x8173f4ec, 0x94810185, 0x2bd00d63, 0x814c50dd, 0x9be376e5, 0xed7f90dc,
+0x817bf98c, 0xe1df634d, 0x287f81ae, 0x27a4f115, 0x62101a81, 0x2723b481, 0x9c507f66, 0x44a01769,
+0xbfd13025, 0x7f815b81, 0x5d5c817f, 0xb37f7fa5, 0x7f79b2c6, 0xa1e2847f, 0x813ac57f, 0x417f8b7f,
+0x4b505b55, 0x22d47fbb, 0x7f886ad7, 0xf78c7f48, 0x53a5245d, 0xdfd37f1b, 0xb37f81c4, 0x907fc99f,
+0xa393f1c0, 0x7f5f7015, 0x37be3fb3, 0x7f4c9e28, 0x7f770000, 0x9b7a0531, 0x7f35cdde, 0x5b4047cf,
+0x81881773, 0xdc6e9ea5, 0x517f477f, 0xb2a77f81, 0x9981472d, 0xd4c57f81, 0x6ef2a77f, 0x81d481a3,
+0x3d87307f, 0x214321bd, 0x7b7f7f8e, 0x997f1cbe, 0x266681ec, 0x3639f87f, 0x687f7fed, 0xf17f8191,
+0x1558ae38, 0x815ac086, 0x81247f78, 0x7f612db7, 0x128d7fc9, 0x187fbf81, 0x4a898116, 0x3a6c818d,
+0x7f7fdcf1, 0x60cb3e9c, 0x81bf627f, 0xe7c17fa1, 0x52247fd2, 0x814781dc, 0x6eb67f1a, 0x9d0b7f7d,
+0xc2b238f8, 0x81b1427a, 0xa1555aad, 0x103c0c29, 0x97319c81, 0x05ab3a7f, 0x811f1d7f, 0x817f8195,
+0x40bffc7f, 0x3aa38f4a, 0x46e17fcb, 0x6781fc31, 0xb725a5e4, 0x427f8cbd, 0x7f857fd4, 0xca1f7f9d,
+0x2f77c6b9, 0xdde30a0e, 0x7f93fca2, 0xc6aa7fc7, 0x7f9e7f7f, 0x9b78012e, 0xdda0d07f, 0x0b4c7f83,
+0x7fee4b44, 0x81640552, 0x40d573c0, 0x390efbce, 0x327fb881, 0xf5e69aec, 0x81e9c7d1, 0x81717f74,
+0x81817d78, 0xac6eba86, 0x41a2d07f, 0x8981da45, 0x5264b681, 0x527f46f2, 0x949e7f52, 0x7fdd7fbd,
+0x81678102, 0x87756c64, 0x3d2a81ca, 0xc87f8107, 0xd17fb64a, 0xa7b553b5, 0x8191812a, 0x55ddbf7f,
+0x517f7b7f, 0x897aad7f, 0x63817f8d, 0xd9547f7f, 0x43437351, 0x84818181, 0x3a7f8127, 0xccbfdf7f,
+0xe1191588, 0x81c80c65, 0x7ffcf571, 0xcc147b7f, 0x00007081, 0x2b7f7f7f, 0x889b3a2b, 0x5358e78b,
+0xfcb917ab, 0x81c3f74d, 0xd57faa18, 0x69937f23, 0xd7321b81, 0x5db1ad81, 0x17577f0a, 0xf48118bf,
+0x81822681, 0x2981e87f, 0xc16e6c7f, 0x891d38ae, 0xf37f813f, 0x81b96b55, 0x2fcd81b1, 0x23b5f981,
+0x695c4d28, 0xa0810fab, 0x6cd5ea3d, 0xefc68ec4, 0xae32887e, 0xa27f0b17, 0x7f8baa97, 0x8116b3a1,
+0xa393817f, 0x817019f0, 0x1d7f8193, 0x18f0d764, 0xb27fb7c9, 0xc4da637f, 0xcd586f56, 0x7f23810d,
+0x572f25f3, 0x05df7f15, 0x817f815c, 0x8b147f84, 0x0f817f6b, 0x7f1f7f7f, 0xbccee4a8, 0xcb5ad7ed,
+0x33a5f88b, 0xc7817ecd, 0x8781817f, 0x817e6444, 0x6697817f, 0xf9490257, 0x83d5f581, 0x7168b332,
+0xf4ed4781, 0x17e0c1c4, 0x16b9c997, 0x8581247f, 0x81887b3f, 0x2281a5c7, 0xce437f0f, 0x994c6f81,
+0xbcd09735, 0x9269d57d, 0x449a7e61, 0x8c6e7f81, 0x81b38c7f, 0x81db7791, 0x62602681, 0x3246817f,
+0x81bb2881, 0x6d2510b4, 0xb07fbf69, 0x49ea817f, 0x938153e7, 0xf17f425b, 0x3b817f89, 0x36b48181,
+0x837c1d0a, 0x853cbd2c, 0x2950527f, 0x388de1bc, 0xfa1c7f54, 0x7b507f7f, 0xad311c42, 0x8d8ae6c3,
+0x9081677f, 0x58810e81, 0x984b4881, 0x4b9f407f, 0x819a00ff, 0x857faee2, 0xa06d9fb5, 0x448979b8,
+0x9cc0f17f, 0x7f2fce7f, 0xa0b9ad7f, 0x428a7f7f, 0xdf562afa, 0x7f6f0000, 0xe04a5bef, 0xa7ad2867,
+0x23818146, 0x7f7f0642, 0x7f481981, 0x7f810f81, 0x99a9db81, 0x64d437cd, 0xaf7fcb6d, 0x81815311,
+0x723c81bd, 0xcc7fc729, 0x81a47e49, 0x9abce744, 0x7385eb5b, 0x7f7f5b7f, 0x2bb3819d, 0x81fd7f49,
+0x7f5f8198, 0x7fb6a2f3, 0xe97fc33c, 0x436c79d3, 0x5ea67fff, 0x5a7ff2ac, 0x28aa713c, 0x8181c681,
+0x7f7c8846, 0xaf817f39, 0x90bcc57f, 0x841c7f4a, 0x817f8181, 0x7f4e811b, 0xb53a81ce, 0x7f451a7f,
+0x5f38027f, 0x7b81e4f3, 0x817f87c6, 0x8141318c, 0x532c81a4, 0x817fc84c, 0x919d33db, 0x29f2b781,
+0x7f568139, 0x4658b1a6, 0x7f69342d, 0x81ab9582, 0x367fa301, 0x47468181, 0x7f8c8181, 0x81216a81,
+0x9b577f7f, 0x7f447f7f, 0x72ef4649, 0x45418103, 0xee48bb81, 0xa7027c7f, 0x0ea4237f, 0x6b717cf4,
+0xa296a17f, 0x17007f7f, 0x869835c8, 0x8a7f77ec, 0x5d7b8139, 0x32688f81, 0x7fdab0b3, 0x815c7f7d,
+0x06a01fb6, 0x814981de, 0xa1c681d8, 0xdc6ff522, 0xd13081b1, 0x9c5a7ff5, 0x7f7f7f5c, 0x86faa148,
+0x811a696b, 0xbb7fa2c5, 0x815779bf, 0xae3b7f48, 0x8c45d6de, 0x7f867f9a, 0x3e359b7f, 0xb7c48181,
+0x78c27f95, 0xc4818181, 0x81cd7f3f, 0x558a8193, 0x7f4ca874, 0x4e1eb447, 0x2744355f, 0x9020ead4,
+0x16e47ff6, 0x708123b7, 0xbeb61418, 0x27fcdd50, 0xde21e5d8, 0x9500a3db, 0xefc29f4d, 0x5ef0c542,
+0xe02a3bc8, 0xe91a38bf, 0x24f81e3c, 0xe0fe4f11, 0x3be6891d, 0x7fef09ae, 0x16977ff0, 0xe8b74a18,
+0x1a50fa2e, 0x24c04bf9, 0x39c84714, 0xbed7f6c1, 0xaeddab44, 0xa7f9ca2d, 0x275dc01b, 0x1df6e74b,
+0xc3171107, 0xbcc93481, 0x1403f685, 0xcc1c0439, 0xb602ebaa, 0xe235d0e1, 0xf1afe3e3, 0x0814c025,
+0xb4f93607, 0xa709c243, 0xbbfabdd8, 0xfd3e81e7, 0x2f9ae335, 0x1c1d52e9, 0x00f133a5, 0x23eee238,
+0xc625eced, 0xefd56878, 0xe3cadc03, 0x585db90a, 0x024ace2b, 0xe3d804ef, 0xdf54d5a1, 0xc9e11709,
+0xc3a20ccb, 0x18c0005f, 0x52424437, 0xccaba110, 0xc75736d6, 0xa8f1401a, 0x3186aa67, 0x0b1aaebe,
+0xf952cf90, 0xfa4edd16, 0x9d72bee5, 0x2824f455, 0x9a3cb150, 0x6bbfe929, 0x6a6f5f9d, 0xbfa5385f,
+0xf89828bc, 0x6b6d0baf, 0xcab514c5, 0xa9baf505, 0x24cff2c2, 0x1c2511d8, 0x3abccde9, 0x7f60deef,
+0xbbf4dddd, 0x11366331, 0x0241c141, 0x5111c984, 0xc17f54da, 0xed4c1bb8, 0x0af6fb57, 0xfd2c28c0,
+0xe790142d, 0x6bff6403, 0x7fd8cce3, 0x3c282cc0, 0xea48f68b, 0x3ecdd5e3, 0xb917f2e5, 0xd2b25334,
+0xf65b10b5, 0xfdd0d4be, 0xe6e22cc9, 0xc59ec206, 0x3f3238cc, 0xbcbe2fd0, 0x2418c910, 0x3d07f7cc,
+0xa25bf9cf, 0xdb81ebfc, 0xd35b2203, 0xde2d23cc, 0x3cd706d5, 0x0e34f6f5, 0xc2d20000, 0xfef1e4e0,
+0xd26ad6e1, 0xfa130b0d, 0x324b211c, 0xc5dfc3a9, 0xf83ebec9, 0x0dd627c0, 0xcee99850, 0x4fcd1533,
+0x04597ff0, 0x40d0ff25, 0x045cd181, 0x908f9ca1, 0xd0417f7b, 0x2f0a2c87, 0xfef998c7, 0xcc3370f3,
+0xb0f4267f, 0x1bbe5072, 0xd8d6063a, 0xd058cb32, 0x448fffad, 0xa9b50064, 0x184ebdf7, 0xfe2e3538,
+0x561f16a6, 0xe7f20181, 0x449b95f9, 0x0338f7b2, 0x4012bcae, 0xd67f6797, 0x4966f6f2, 0x1dcc60c0,
+0xeecec631, 0x279f81c4, 0xc9f751be, 0x75994dc8, 0x01001ded, 0xb0ba1822, 0xbb14eff9, 0xb2dae837,
+0x4cf69e23, 0xf35d6ad7, 0xf69e57c9, 0x3727d2e3, 0x31b3517f, 0xc1da575d, 0x30e2c1d5, 0x54d7beef,
+0x293edf19, 0xeb37d80e, 0x296cee35, 0xeff14f04, 0x232d06de, 0xb2815853, 0x2c601508, 0xa5ecb6ff,
+0xb407f524, 0x4ccd9a19, 0xe448b0c2, 0x01ebd4c6, 0x52fc03a1, 0x286afce2, 0xe4d45ebb, 0x2953101d,
+0xca12d31f, 0x10cb00dd, 0xd2ae6347, 0x46e82f44, 0x45d64600, 0xae393c05, 0xf7219fb9, 0xeffe09d2,
+0xedfbb5d1, 0x07070413, 0xd7d6ec37, 0xa0f7a621, 0x75bd023f, 0xc45b5d37, 0x19ca9b39, 0xd1ee50b7,
+0x50062231, 0x301ca07f, 0xbeadd410, 0x1ce01d02, 0x51a5fbff, 0xd9104c7f, 0x79e4f23a, 0x33e47449,
+0x1ceda8ea, 0xf6d65581, 0x418dd3e3, 0x9fc1e612, 0x54f747d9, 0x839acbce, 0x0000221c, 0x031434b6,
+0xcc48960f, 0x1045ea23, 0xa8d7f8a1, 0xaf01243e, 0x2bf461c7, 0x9c2139dd, 0xd42bd5d5, 0xf8c2f5d5,
+0xdeb61f4b, 0xf12ac9cd, 0x107f3209, 0x818d1d3c, 0xca34572c, 0x34da0052, 0xf9a951e2, 0xdf34d209,
+0x0f8b37c1, 0xa7dee3d3, 0x1a390c98, 0x1d16e135, 0x33c3ad66, 0xd9e2cca4, 0xcbabcce4, 0x2eadd581,
+0x81383b81, 0xc0db251b, 0x0a6e91c3, 0xdab3c725, 0xd2293bfc, 0x22d6abb5, 0xdb524adc, 0x30cf5f24,
+0xb92527e8, 0x6000b7bf, 0xfefe1fe4, 0x2cf9035e, 0x2743f125, 0xd007b3ad, 0x2dd5e43a, 0x5a35e7b9,
+0xea06e5b7, 0x39f3e1aa, 0x592614f3, 0x7fc3bab7, 0xf1aefe00, 0xf3e9b9fc, 0xcd81aee6, 0xae3e31cc,
+0x95d8fbc7, 0x7f26bbf8, 0xf20e57e3, 0xf9eee307, 0xfde2bff2, 0x10e8f7db, 0xfbb0de50, 0xdfaa10e8,
+0x5e18ee3a, 0x0520a445, 0xddd2bc9e, 0x13c97536, 0x33cf5159, 0xfac6d2f7, 0x18ca01e5, 0x112251da,
+0x0211d9b6, 0x375feb63, 0x9a25b9cf, 0xfb5bf632, 0xe5b4a803, 0x95f55e8d, 0xdbede748, 0x39aed0bf,
+0x5efd9c49, 0xcc7fd13c, 0xfba1a3d7, 0xa8a80206, 0x08f7e7d3, 0xd1fac77f, 0x32fb9272, 0xe1829834,
+0x45408175, 0x34e4eec0, 0x0ca4ecae, 0x15e31638, 0x1d072d02, 0xee44d6ee, 0xafa5282c, 0x4d4d9f2a,
+0xcdfc0f24, 0x9dfaf345, 0xbf3839c3, 0x3268a3e3, 0x2e4eacb5, 0x93dce12c, 0x4a484f3b, 0xdf7d0000,
+0xeb113c3d, 0xd4bdf13f, 0xecc0f511, 0xd4cdf8c2, 0x42fc05f9, 0x53be2def, 0xb22e49cf, 0xead92e2e,
+0xf956f1cc, 0x02c821e0, 0x1da533e5, 0x1fc50531, 0x34c30f37, 0x7ccba6e4, 0xab1afe2e, 0xb93bd67f,
+0xea28a8a8, 0xf3ef282e, 0xac0c507f, 0xd0cbdd53, 0xd344ea1d, 0x472a1029, 0xed099f70, 0x1240edc6,
+0x7f143244, 0xbae0d3d5, 0x7a4bddfd, 0x5f07d846, 0x1cdf4aaf, 0x4fc40ac1, 0xcfca381a, 0xb67fd847,
+0xd381dde6, 0xdad40d1d, 0x64cb2d07, 0x171a8bc6, 0x11110cbf, 0x2c442dff, 0xbe90f52b, 0xd75500e5,
+0xd8459ef9, 0xff0bc92f, 0x44a903c8, 0xb767d7f2, 0xc281fc02, 0xca534906, 0x25fdec32, 0x5f2aaeb2,
+0x121b376c, 0xe3e41dd2, 0x12ecd9f8, 0xc5071a9d, 0xfaaeee7d, 0x183a1a57, 0xadcb921d, 0x1e33a3b2,
+0x72e52634, 0xc8d4e81e, 0x3b1e0200, 0x321e1608, 0x49add232, 0x0516ff41, 0xc23181d3, 0xfa4e0151,
+0xa63502cb, 0xda381204, 0x72d92da5, 0x7cd7ebff, 0xce08d106, 0x61c6f034, 0x55310f68, 0xed66c357,
+0xc527d609, 0xdab11518, 0x41b808e5, 0x5f21e65e, 0xd4f6f036, 0xfc40008d, 0xaa7f19a0, 0xbff0ac1b,
+0x78283b60, 0x1d0a4a03, 0xd6d0d016, 0xf1f23847, 0x58d93518, 0xd6d481b7, 0xaf11e02e, 0x5c74b67f,
+0xd5734f27, 0x2fb07fc2, 0x29564eff, 0xcafae603, 0x1228f673, 0x3367ce30, 0x132d1342, 0xc80c10e9,
+0x68ad07f9, 0x379c0c9c, 0x3a73c010, 0xc1a534bc, 0x69b0fc14, 0xf0d3ba81, 0x0d07bbe3, 0x3319fa45,
+0x38815afe, 0xc1a67850, 0x7fe740fe, 0xc43fb638, 0xa0864249, 0x07a7dc33, 0x05e606d4, 0x3c6a81ca,
+0x0cdb2635, 0x5dd3f756, 0xcbf09b70, 0x53b2a5b3, 0x5f035ab0, 0xfdda1fbd, 0x0510ac20, 0xa8611f44,
+0x38ceb74c, 0x5048e2e5, 0x907f0238, 0xd9ad00d9, 0x7c247736, 0x8aabe3c6, 0xf5443d27, 0x7ff84622,
+0x4bcc0a34, 0x797dc7e0, 0xf914e5f2, 0xa12df5d7, 0x0fdc23f9, 0x377f50c3, 0x8f47bf82, 0xb9948a4a,
+0x8135ca9e, 0x523ace17, 0xd299fb23, 0x523b5407, 0x38b42a22, 0xadee2cd8, 0xee04b9c8, 0x2de3a5e2,
+0x9f132faa, 0xa0030325, 0x019996f4, 0xd6c5562a, 0xf3e19255, 0x00ff2432, 0xe8f6cf36, 0xe55a7f14,
+0x7079f06f, 0x1e11ff0b, 0xcbe89aa8, 0x6b363996, 0xe61dd6f7, 0x15133821, 0xf35940f9, 0xd9b139c1,
+0x2ad6e10b, 0x2a29c0c6, 0x3c6ee3ce, 0x4b0a3624, 0x23cc10df, 0x17cdb502, 0xa46eaa3f, 0x42350300,
+0xed66334e, 0x1d6fc255, 0x3213e4c5, 0x23d4a65a, 0x05b9a3e9, 0xbacd0c19, 0xc9c5b5b1, 0x8e12670d,
+0x4aabbe2d, 0xb815e3c7, 0x5a2dd152, 0x3ef6551c, 0xf0a1b4f3, 0xb8b8459b, 0xc52dd72e, 0xb9f4b9f7,
+0xbd05dcc8, 0xfae04029, 0xb16ad8df, 0x03d167d4, 0xaf08525b, 0xdbdf3117, 0x4192d163, 0x00a2caad
+
+hard_output0 =
+0xb5bc6ac8, 0xf5373664, 0x1310345c, 0xd5bae4e7, 0x1fc9e83e, 0xebfdfded, 0x84bd86ab, 0xb7aabe00,
+0x60b44fea, 0xb9067464, 0x30325378, 0xa9195955, 0xf70c6e5c, 0x90922632, 0xc90b1cdb, 0xf2f5fb69,
+0x73056b63, 0x1a33bf3f, 0x17755b5c, 0xc58bff6d, 0x2f4390b2, 0x2869d508, 0xe7c7dfe8, 0x38552963,
+0x21da5367, 0x07282b9b, 0xa4767105, 0x1e294251, 0xe350a940, 0xb8a6aa27, 0xed12d778, 0xf10d9ece,
+0xab93527f, 0xcf2da7e7, 0x68f6d0b1, 0x811f4bca, 0x577b06b2, 0x3234f13e, 0x30bab7df, 0x8dc47655,
+0xbb843bed, 0x86da3aba, 0x30950c97, 0xdd096d7a, 0xa871fd6c, 0x8bee4e6b, 0x8fea30d0, 0x6c05b4d2,
+0xf3e144d3, 0xd24ebb1f, 0x065635e5, 0x8d3f2cf9, 0x536c6c6a, 0xfbb0a5d0, 0x3d707b42, 0xc44d5982,
+0xa5f4ad8f, 0xf32c0970, 0x1bccf1a6, 0x05916020, 0xa64fb176, 0x5ede6a35, 0xaf4966da, 0x9df5e0e7,
+0x75042abc, 0x9ef10481, 0x11ddcbc8, 0xa0f5518c, 0xd5c23418, 0x2393d558, 0xfbe7dfeb, 0xed1c64c2,
+0x86a36508, 0xde2dfb1e, 0xb8d0fef9, 0x24505232, 0xc894e71c, 0xbcc752a0, 0x40b74e83, 0x90d23c8c,
+0x728e4a61, 0x108f0b08, 0x66f522ee, 0xc258d851, 0x35a31c44, 0x11311b5b, 0xfd3d5be9, 0x5ae448ff,
+0x4f64994b, 0x5b8247a9, 0x4021114d, 0x2f0b6e82, 0x5eaa9828, 0x50ac71c0, 0xfb86ee52, 0x0dc1ac9b,
+0xbbd47645, 0x8f357115, 0x978ceea0, 0xd557db99, 0x99b30388, 0xfc9a8a1c, 0x0f75be1a, 0x50143e22,
+0x8840989b, 0x738ec50e, 0xe6b2783d, 0xf67899c8, 0x27ebed69, 0x6c415a16, 0x3a6cc2dc, 0xcd4e4e5d,
+0x6cb12b2e, 0xdb88d7c0, 0x79cd1582, 0xbc422413, 0xe72ad2f4, 0x8eaac30f, 0x0bd86747, 0x6d87f69d,
+0x15d62038, 0x4b375630, 0x0d51b859, 0x16db2cb2, 0xf210603a, 0x0abeb833, 0x55c694d0, 0xe57ca43b,
+0x0ba94428, 0x1398a406, 0xe47d3889, 0x5a20203d, 0x250d7a1a, 0xd930ffec, 0x03992e79, 0xf2759376,
+0x024ec121, 0x91fc3a2c, 0xb7e11cc5, 0x4ff7d459, 0xb8700134, 0xd6e61758, 0x4eba0a32, 0xb747e3ec,
+0x7073fad7, 0xded80f99, 0x331e2f1b, 0xfa1f1bed, 0x056424a2, 0x1d1d95e0, 0x550b9ec8, 0x51ee2a38,
+0x19525153, 0xd70c4cd5, 0x0d6cd7ad, 0xe44d1cf2, 0x30dfecda, 0xdacd7fe8, 0x7321d795, 0xddf48ef4,
+0xe271e6a4, 0x9c1feecb, 0x951fcd7b, 0x8acc5a03, 0x3fb83527, 0xe306de74, 0x7b9cd6ee, 0x8e140885,
+0xd4c91e8d, 0xe8c39733, 0x0f02f87f, 0xfb06b1b9, 0x0dc9349c, 0xf76bae8e, 0x4f642a07, 0x3d48a9aa,
+0xe3ea323a, 0xa1cd5c8a, 0x40aa0e70, 0x132042d3, 0xa9732f6c, 0xd15a00c4, 0x43d3b046, 0x9a51ebd4,
+0xc46ee0ed, 0xe2a2148b, 0xf5c478f0, 0x1fb01cf3, 0xf4f321ec, 0xd973811f, 0x11ad11b9, 0x5c67adda
+
+soft_output0 =
+0x81818181, 0x7f7f7f7f, 0x7f7f7f81, 0x7f817f81, 0x7f7f8181, 0x7f7f7f7f, 0x817f817f, 0x81817f81,
+0x7f817f81, 0x7f817f81, 0x7f81817f, 0x7f7f7f7f, 0x7f7f8181, 0x7f81817f, 0x817f8181, 0x81817f81,
+0x7f7f7f81, 0x817f7f81, 0x7f7f8181, 0x7f817f81, 0x7f81817f, 0x817f7f7f, 0x817f8181, 0x7f7f8181,
+0x81817f7f, 0x81817f7f, 0x81817f7f, 0x817f7f7f, 0x7f7f7f7f, 0x817f7f81, 0x7f7f817f, 0x7f817f7f,
+0x7f818181, 0x8181817f, 0x81818181, 0x7f817f7f, 0x7f7f817f, 0x81817f81, 0x7f7f8181, 0x817f817f,
+0x7f817f81, 0x7f7f8181, 0x817f7f81, 0x81818181, 0x817f817f, 0x81817f7f, 0x7f7f8181, 0x7f7f8181,
+0x8181817f, 0x817f7f81, 0x81818181, 0x817f8181, 0x7f7f817f, 0x7f7f7f81, 0x7f81817f, 0x7f81817f,
+0x7f81817f, 0x8181817f, 0x7f7f7f81, 0x817f7f81, 0x7f817f7f, 0x7f7f7f7f, 0x8181817f, 0x7f81817f,
+0x817f7f81, 0x7f7f7f7f, 0x7f7f7f7f, 0x7f7f8181, 0x7f7f8181, 0x7f817f7f, 0x7f81817f, 0x7f7f817f,
+0x81817f81, 0x81817f81, 0x81817f81, 0x817f817f, 0x7f817f7f, 0x7f81817f, 0x81818181, 0x8181817f,
+0x7f817f7f, 0x817f7f7f, 0x7f7f817f, 0x817f7f81, 0x7f7f7f81, 0x81818181, 0x817f8181, 0x7f7f7f81,
+0x7f817f81, 0x7f817f81, 0x81817f81, 0x7f7f7f7f, 0x7f7f8181, 0x81817f7f, 0x7f7f8181, 0x7f7f817f,
+0x7f7f817f, 0x81817f7f, 0x8181817f, 0x817f8181, 0x81817f81, 0x817f7f7f, 0x817f7f81, 0x7f81817f,
+0x7f7f7f7f, 0x7f817f81, 0x7f7f817f, 0x7f817f7f, 0x81818181, 0x817f7f81, 0x7f817f81, 0x7f817f81,
+0x817f7f81, 0x7f818181, 0x7f81817f, 0x817f817f, 0x7f7f817f, 0x81818181, 0x7f818181, 0x8181817f,
+0x817f7f81, 0x7f81817f, 0x7f7f7f7f, 0x81817f81, 0x817f8181, 0x7f818181, 0x817f8181, 0x81817f7f,
+0x7f7f8181, 0x81817f81, 0x7f7f817f, 0x817f817f, 0x81818181, 0x7f81817f, 0x817f817f, 0x81818181,
+0x817f8181, 0x817f8181, 0x817f8181, 0x7f817f81, 0x7f7f7f81, 0x7f7f8181, 0x7f817f7f, 0x7f7f817f,
+0x7f817f81, 0x7f81817f, 0x817f7f7f, 0x7f7f8181, 0x7f817f7f, 0x7f7f8181, 0x7f7f7f81, 0x817f7f7f,
+0x7f817f7f, 0x817f817f, 0x7f817f81, 0x7f817f81, 0x7f7f8181, 0x81817f81, 0x8181817f, 0x81817f81,
+0x817f7f81, 0x7f818181, 0x7f7f8181, 0x817f7f81, 0x7f817f81, 0x817f7f7f, 0x7f7f8181, 0x81817f7f,
+0x7f7f7f7f, 0x817f8181, 0x81817f81, 0x7f7f7f7f, 0x817f817f, 0x7f7f7f81, 0x7f7f7f81, 0x81817f7f,
+0x8181817f, 0x817f8181, 0x81817f81, 0x7f7f7f81, 0x7f7f7f81, 0x81818181, 0x81817f81, 0x7f7f8181,
+0x8181817f, 0x7f817f81, 0x7f817f81, 0x7f817f7f, 0x8181817f, 0x8181817f, 0x81817f81, 0x817f8181,
+0x81818181, 0x7f817f7f, 0x81817f81, 0x7f817f81, 0x7f817f81, 0x7f817f7f, 0x8181817f, 0x817f8181,
+0x817f7f81, 0x817f7f81, 0x7f817f81, 0x817f8181, 0x7f7f7f81, 0x7f81817f, 0x81818181, 0x8181817f,
+0x7f7f8181, 0x7f7f7f81, 0x81817f7f, 0x7f818181, 0x817f7f7f, 0x7f817f7f, 0x7f7f7f81, 0x7f817f7f,
+0x8181817f, 0x7f81817f, 0x817f7f7f, 0x817f817f, 0x7f7f7f7f, 0x7f817f81, 0x8181817f, 0x7f81817f,
+0x7f81817f, 0x81817f7f, 0x817f7f81, 0x7f817f81, 0x7f81817f, 0x7f7f7f7f, 0x81817f81, 0x81817f7f,
+0x81817f7f, 0x81817f7f, 0x7f818181, 0x8181817f, 0x7f7f8181, 0x7f818181, 0x7f7f8181, 0x7f7f8181,
+0x817f7f7f, 0x81818181, 0x7f818181, 0x7f7f8181, 0x817f7f7f, 0x7f7f7f7f, 0x8181817f, 0x7f7f817f,
+0x7f7f8181, 0x7f817f7f, 0x7f817f7f, 0x817f8181, 0x7f7f817f, 0x81817f81, 0x817f8181, 0x7f7f817f,
+0x81817f7f, 0x7f7f7f81, 0x7f81817f, 0x7f817f7f, 0x7f81817f, 0x7f7f817f, 0x817f817f, 0x81817f7f,
+0x817f817f, 0x817f7f81, 0x81818181, 0x81817f7f, 0x817f8181, 0x817f8181, 0x817f7f7f, 0x7f7f7f7f,
+0x7f81817f, 0x7f818181, 0x817f817f, 0x7f818181, 0x7f7f7f7f, 0x7f7f7f7f, 0x8181817f, 0x7f7f7f81,
+0x7f7f7f7f, 0x7f7f8181, 0x7f817f81, 0x7f818181, 0x81817f81, 0x7f7f7f81, 0x817f7f81, 0x8181817f,
+0x817f817f, 0x7f7f7f81, 0x7f818181, 0x81817f81, 0x817f7f81, 0x7f7f7f7f, 0x817f817f, 0x81817f7f,
+0x817f7f7f, 0x81818181, 0x8181817f, 0x81817f7f, 0x7f7f7f7f, 0x817f8181, 0x7f817f81, 0x817f8181,
+0x817f7f7f, 0x7f7f7f81, 0x817f8181, 0x81818181, 0x7f81817f, 0x817f7f7f, 0x7f81817f, 0x817f817f,
+0x7f817f7f, 0x7f818181, 0x7f818181, 0x7f817f7f, 0x81817f7f, 0x7f817f7f, 0x7f7f817f, 0x81817f81,
+0x81817f81, 0x817f7f7f, 0x81817f7f, 0x81817f81, 0x7f818181, 0x7f7f7f7f, 0x7f818181, 0x7f7f817f,
+0x7f817f81, 0x81817f81, 0x7f7f7f81, 0x817f8181, 0x81818181, 0x7f81817f, 0x817f7f7f, 0x7f817f7f,
+0x817f7f81, 0x7f7f817f, 0x7f7f8181, 0x7f7f8181, 0x81818181, 0x7f81817f, 0x7f81817f, 0x817f8181,
+0x7f818181, 0x817f7f81, 0x817f7f7f, 0x7f817f81, 0x7f817f7f, 0x817f7f7f, 0x817f7f81, 0x7f817f81,
+0x8181817f, 0x7f81817f, 0x81818181, 0x7f7f7f81, 0x81817f81, 0x7f818181, 0x7f7f7f7f, 0x7f81817f,
+0x8181817f, 0x8181817f, 0x7f7f7f7f, 0x7f818181, 0x817f7f81, 0x7f7f817f, 0x817f7f81, 0x81818181,
+0x817f817f, 0x7f818181, 0x81817f81, 0x81818181, 0x817f7f81, 0x7f817f81, 0x7f7f8181, 0x817f817f,
+0x817f7f7f, 0x817f8181, 0x81817f81, 0x81818181, 0x817f817f, 0x7f817f7f, 0x7f817f7f, 0x7f817f81,
+0x817f7f7f, 0x81817f81, 0x817f7f81, 0x7f7f817f, 0x7f817f7f, 0x7f81817f, 0x8181817f, 0x81817f81,
+0x81817f7f, 0x7f817f81, 0x7f81817f, 0x81818181, 0x7f7f817f, 0x817f7f7f, 0x7f817f81, 0x8181817f,
+0x817f8181, 0x7f81817f, 0x81817f7f, 0x7f817f81, 0x81818181, 0x7f81817f, 0x7f81817f, 0x7f81817f,
+0x7f7f817f, 0x7f817f7f, 0x7f81817f, 0x817f7f81, 0x7f81817f, 0x81818181, 0x7f7f8181, 0x7f818181,
+0x8181817f, 0x81818181, 0x8181817f, 0x817f817f, 0x7f81817f, 0x81817f7f, 0x7f81817f, 0x7f817f7f,
+0x81817f81, 0x7f81817f, 0x7f7f817f, 0x817f8181, 0x81818181, 0x7f817f81, 0x81817f81, 0x7f817f7f,
+0x817f7f7f, 0x7f7f817f, 0x7f818181, 0x817f8181, 0x7f7f7f81, 0x81817f7f, 0x81817f7f, 0x7f7f7f7f,
+0x7f818181, 0x7f7f8181, 0x7f81817f, 0x7f7f817f, 0x8181817f, 0x7f81817f, 0x8181817f, 0x81817f7f,
+0x817f7f81, 0x817f817f, 0x7f7f7f7f, 0x817f8181, 0x7f7f8181, 0x817f817f, 0x7f817f7f, 0x81818181,
+0x817f7f7f, 0x7f817f81, 0x7f7f7f7f, 0x817f8181, 0x7f7f7f81, 0x7f7f8181, 0x81817f81, 0x81817f7f,
+0x7f818181, 0x817f7f81, 0x7f818181, 0x817f817f, 0x7f7f7f81, 0x817f817f, 0x7f817f81, 0x7f7f7f81,
+0x7f818181, 0x7f7f817f, 0x81818181, 0x817f7f81, 0x81817f7f, 0x8181817f, 0x817f8181, 0x8181817f,
+0x7f818181, 0x7f817f81, 0x8181817f, 0x7f817f7f, 0x8181817f, 0x7f817f7f, 0x7f7f7f81, 0x817f7f7f,
+0x817f8181, 0x7f7f7f7f, 0x817f8181, 0x81817f81, 0x81817f7f, 0x7f7f8181, 0x81817f81, 0x7f7f7f7f,
+0x7f818181, 0x7f818181, 0x7f7f7f7f, 0x8181817f, 0x7f817f7f, 0x81817f81, 0x81817f81, 0x7f7f817f,
+0x7f7f7f7f, 0x817f817f, 0x7f7f7f81, 0x7f7f7f81, 0x7f7f817f, 0x7f817f81, 0x81818181, 0x817f8181,
+0x7f7f817f, 0x81817f7f, 0x7f7f7f7f, 0x7f81817f, 0x81817f7f, 0x7f817f7f, 0x81817f81, 0x7f7f7f81,
+0x817f8181, 0x81818181, 0x7f81817f, 0x7f817f7f, 0x7f7f7f81, 0x7f818181, 0x817f7f7f, 0x7f7f7f7f,
+0x817f7f81, 0x7f818181, 0x7f817f7f, 0x7f7f8181, 0x7f7f8181, 0x81817f81, 0x81817f81, 0x7f7f7f81,
+0x8181817f, 0x817f7f81, 0x7f818181, 0x817f8181, 0x817f7f81, 0x7f7f8181, 0x7f7f7f81, 0x817f7f7f,
+0x7f817f81, 0x81818181, 0x81817f81, 0x7f81817f, 0x7f7f7f81, 0x817f817f, 0x8181817f, 0x7f818181,
+0x817f817f, 0x81817f7f, 0x7f7f7f7f, 0x7f817f7f, 0x8181817f, 0x7f7f817f, 0x7f7f7f7f, 0x7f81817f,
+0x7f817f7f, 0x7f7f8181, 0x7f7f8181, 0x7f7f8181, 0x81817f7f, 0x7f7f8181, 0x7f7f8181, 0x8181817f,
+0x817f7f81, 0x7f81817f, 0x7f817f7f, 0x8181817f, 0x7f7f817f, 0x7f7f8181, 0x7f7f8181, 0x7f817f7f,
+0x817f817f, 0x7f81817f, 0x817f7f81, 0x8181817f, 0x81817f7f, 0x81818181, 0x817f817f, 0x7f7f817f,
+0x817f8181, 0x7f817f7f, 0x7f817f7f, 0x817f817f, 0x81817f81, 0x7f7f7f81, 0x7f81817f, 0x7f7f7f81,
+0x8181817f, 0x817f7f7f, 0x7f7f817f, 0x7f817f7f, 0x7f7f7f81, 0x7f817f7f, 0x7f7f8181, 0x817f817f,
+0x7f7f8181, 0x7f7f7f81, 0x817f8181, 0x7f7f8181, 0x81817f81, 0x8181817f, 0x7f7f817f, 0x7f817f81,
+0x7f817f81, 0x7f817f81, 0x7f817f81, 0x817f8181, 0x7f7f7f7f, 0x7f817f81, 0x817f7f81, 0x7f7f7f81,
+0x7f7f817f, 0x7f817f7f, 0x7f7f7f7f, 0x817f7f81, 0x81817f7f, 0x81817f7f, 0x81818181, 0x7f81817f,
+0x7f7f7f7f, 0x7f7f7f81, 0x7f817f81, 0x8181817f, 0x817f817f, 0x817f817f, 0x817f817f, 0x7f817f7f,
+0x81818181, 0x7f817f7f, 0x7f7f817f, 0x81818181, 0x8181817f, 0x81817f7f, 0x81818181, 0x817f817f,
+0x8181817f, 0x7f7f7f7f, 0x7f7f8181, 0x7f818181, 0x7f7f7f81, 0x817f817f, 0x7f7f817f, 0x81817f7f,
+0x8181817f, 0x817f817f, 0x7f7f817f, 0x7f81817f, 0x7f7f7f81, 0x8181817f, 0x817f7f7f, 0x817f817f,
+0x817f7f7f, 0x7f7f7f7f, 0x81817f81, 0x817f7f81, 0x7f817f7f, 0x81817f7f, 0x81817f81, 0x7f817f81,
+0x817f7f7f, 0x817f817f, 0x7f817f7f, 0x817f7f81, 0x817f817f, 0x81817f81, 0x81818181, 0x7f817f7f,
+0x8181817f, 0x817f7f7f, 0x81817f7f, 0x7f817f7f, 0x817f7f7f, 0x817f7f81, 0x7f7f7f81, 0x81817f7f,
+0x817f7f81, 0x7f817f81, 0x7f7f8181, 0x7f81817f, 0x81817f7f, 0x817f7f7f, 0x81818181, 0x7f7f817f,
+0x817f817f, 0x81817f81, 0x817f7f81, 0x81817f7f, 0x7f7f7f81, 0x7f817f7f, 0x81817f7f, 0x817f817f,
+0x7f817f7f, 0x7f817f7f, 0x81817f7f, 0x817f7f7f, 0x81818181, 0x8181817f, 0x7f7f8181, 0x7f817f7f,
+0x7f817f81, 0x7f7f8181, 0x81817f81, 0x817f7f81, 0x7f818181, 0x7f817f81, 0x7f7f7f81, 0x8181817f,
+0x81817f7f, 0x817f7f7f, 0x7f818181, 0x7f818181, 0x7f81817f, 0x7f7f8181, 0x817f7f81, 0x7f817f81,
+0x81817f7f, 0x81818181, 0x7f81817f, 0x7f7f8181, 0x817f817f, 0x817f7f81, 0x81817f81, 0x817f7f81,
+0x81818181, 0x817f7f7f, 0x7f818181, 0x81818181, 0x7f7f817f, 0x817f817f, 0x7f7f817f, 0x7f817f7f,
+0x7f817f81, 0x817f7f7f, 0x81817f81, 0x7f817f81, 0x7f817f7f, 0x817f8181, 0x817f817f, 0x7f818181,
+0x817f7f81, 0x817f7f7f, 0x81817f81, 0x81818181, 0x7f81817f, 0x7f817f81, 0x7f817f81, 0x817f8181,
+0x7f818181, 0x81817f81, 0x7f817f7f, 0x7f7f7f81, 0x7f7f817f, 0x817f7f81, 0x7f7f7f81, 0x81818181,
+0x7f7f8181, 0x7f7f817f, 0x817f7f81, 0x81817f7f, 0x7f81817f, 0x7f81817f, 0x817f8181, 0x7f81817f,
+0x8181817f, 0x81818181, 0x7f7f817f, 0x817f8181, 0x7f817f7f, 0x7f7f817f, 0x817f7f7f, 0x7f7f7f7f,
+0x8181817f, 0x7f7f7f7f, 0x81817f81, 0x817f7f7f, 0x7f7f8181, 0x817f7f81, 0x7f7f817f, 0x7f81817f,
+0x81817f81, 0x7f7f8181, 0x7f7f7f81, 0x7f817f81, 0x81817f7f, 0x7f817f81, 0x7f817f81, 0x7f7f817f,
+0x81818181, 0x7f818181, 0x817f7f81, 0x817f7f7f, 0x7f81817f, 0x7f7f8181, 0x7f7f8181, 0x81817f7f,
+0x7f817f81, 0x817f817f, 0x7f817f7f, 0x81818181, 0x7f817f7f, 0x81817f7f, 0x7f817f81, 0x81817f81,
+0x7f7f7f81, 0x81818181, 0x81817f81, 0x817f7f81, 0x7f7f7f7f, 0x817f7f81, 0x7f818181, 0x7f7f8181,
+0x7f7f7f81, 0x7f817f7f, 0x7f818181, 0x7f7f817f, 0x817f7f7f, 0x817f8181, 0x817f8181, 0x817f7f81,
+0x7f7f8181, 0x7f817f7f, 0x817f8181, 0x81817f81, 0x817f8181, 0x7f81817f, 0x7f7f817f, 0x81817f7f,
+0x81817f7f, 0x7f817f7f, 0x81817f7f, 0x81817f7f, 0x7f817f81, 0x7f7f8181, 0x7f7f817f, 0x7f7f7f7f,
+0x81818181, 0x7f7f817f, 0x7f7f7f81, 0x7f817f81, 0x81818181, 0x81817f81, 0x817f7f7f, 0x7f7f817f,
+0x817f7f7f, 0x7f7f7f81, 0x81817f81, 0x817f8181, 0x7f7f817f, 0x7f7f817f, 0x7f7f8181, 0x817f7f81,
+0x8181817f, 0x8181817f, 0x7f7f7f81, 0x7f7f817f, 0x81817f81, 0x7f7f7f7f, 0x817f8181, 0x817f817f,
+0x7f7f7f81, 0x7f817f7f, 0x7f81817f, 0x7f7f817f, 0x7f81817f, 0x817f7f81, 0x7f7f7f7f, 0x7f7f7f81,
+0x81817f7f, 0x8181817f, 0x7f81817f, 0x7f7f7f81, 0x8181817f, 0x81817f7f, 0x7f818181, 0x7f817f81,
+0x8181817f, 0x7f81817f, 0x817f7f7f, 0x817f7f7f, 0x8181817f, 0x817f817f, 0x81817f81, 0x7f7f8181,
+0x7f7f7f7f, 0x7f81817f, 0x817f817f, 0x81817f81, 0x81817f81, 0x81817f7f, 0x81817f81, 0x81817f81,
+0x7f7f817f, 0x7f7f7f7f, 0x817f7f7f, 0x7f818181, 0x7f817f7f, 0x8181817f, 0x7f7f8181, 0x817f7f7f,
+0x7f7f7f81, 0x7f817f81, 0x7f7f7f7f, 0x7f817f81, 0x7f81817f, 0x7f817f7f, 0x81817f7f, 0x7f817f7f,
+0x81817f81, 0x7f7f7f81, 0x7f81817f, 0x81817f81, 0x7f817f81, 0x817f8181, 0x7f817f81, 0x7f817f7f,
+0x81818181, 0x817f817f, 0x81817f81, 0x7f7f817f, 0x7f7f8181, 0x81818181, 0x8181817f, 0x7f817f81,
+0x81817f7f, 0x7f7f7f7f, 0x7f7f817f, 0x7f81817f, 0x81818181, 0x7f81817f, 0x817f7f7f, 0x7f817f81,
+0x817f817f, 0x817f7f81, 0x81818181, 0x81817f7f, 0x817f7f81, 0x817f8181, 0x81817f7f, 0x81817f7f,
+0x7f7f817f, 0x817f817f, 0x7f817f81, 0x7f817f81, 0x81818181, 0x817f817f, 0x7f7f7f81, 0x81817f7f,
+0x817f817f, 0x7f7f7f7f, 0x7f7f8181, 0x817f7f7f, 0x817f7f81, 0x817f7f81, 0x817f8181, 0x8181817f,
+0x81818181, 0x81817f7f, 0x81817f7f, 0x817f8181, 0x817f8181, 0x817f817f, 0x7f7f7f7f, 0x7f817f81,
+0x8181817f, 0x7f818181, 0x7f818181, 0x8181817f, 0x7f7f8181, 0x817f8181, 0x7f817f81, 0x81817f7f,
+0x7f7f7f81, 0x81817f81, 0x7f818181, 0x81817f7f, 0x7f7f817f, 0x7f818181, 0x81818181, 0x7f818181,
+0x7f7f7f81, 0x81817f7f, 0x7f81817f, 0x7f7f8181, 0x7f81817f, 0x7f817f7f, 0x7f817f7f, 0x7f817f7f,
+0x7f7f817f, 0x7f817f81, 0x7f81817f, 0x7f7f7f81, 0x81818181, 0x7f7f8181, 0x817f8181, 0x7f817f81,
+0x7f817f81, 0x81817f81, 0x7f817f81, 0x817f7f81, 0x7f7f7f81, 0x817f7f7f, 0x7f81817f, 0x7f817f7f,
+0x7f7f7f81, 0x817f8181, 0x7f81817f, 0x817f817f, 0x81817f81, 0x7f7f817f, 0x7f817f7f, 0x817f817f,
+0x7f7f7f7f, 0x817f7f81, 0x817f8181, 0x7f7f7f7f, 0x7f817f81, 0x7f7f7f7f, 0x7f7f817f, 0x8181817f,
+0x817f7f81, 0x7f818181, 0x7f817f7f, 0x8181817f, 0x7f7f817f, 0x7f817f7f, 0x817f817f, 0x817f7f7f,
+0x817f817f, 0x81817f7f, 0x81818181, 0x7f7f7f81, 0x81817f7f, 0x817f7f81, 0x817f817f, 0x81817f81,
+0x7f817f7f, 0x817f7f81, 0x7f7f7f81, 0x8181817f, 0x7f7f817f, 0x817f7f81, 0x817f7f81, 0x7f818181,
+0x817f7f7f, 0x8181817f, 0x817f8181, 0x7f7f817f, 0x7f818181, 0x817f8181, 0x7f7f7f81, 0x817f8181,
+0x8181817f, 0x7f817f81, 0x81817f7f, 0x817f8181, 0x817f817f, 0x817f7f81, 0x81818181, 0x81818181,
+0x8181817f, 0x817f8181, 0x7f7f7f81, 0x7f7f8181, 0x817f817f, 0x7f818181, 0x817f8181, 0x7f7f817f,
+0x7f7f7f81, 0x7f818181, 0x7f818181, 0x7f81817f, 0x81817f81, 0x7f818181, 0x7f7f8181, 0x7f817f7f,
+0x8181817f, 0x7f817f7f, 0x817f7f81, 0x7f817f81, 0x8181817f, 0x81818181, 0x817f7f7f, 0x817f817f,
+0x7f7f7f7f, 0x817f8181, 0x81818181, 0x817f7f7f, 0x817f7f81, 0x7f817f7f, 0x817f7f81, 0x81817f81,
+0x7f818181, 0x7f817f81, 0x7f818181, 0x7f7f7f81, 0x81817f81, 0x7f817f81, 0x7f817f7f, 0x7f81817f,
+0x81817f81, 0x817f7f7f, 0x817f817f, 0x7f7f817f, 0x7f7f8181, 0x817f7f7f, 0x7f7f817f, 0x7f817f7f,
+0x7f81817f, 0x7f81817f, 0x817f7f7f, 0x7f817f7f, 0x817f7f81, 0x8181817f, 0x817f7f81, 0x7f818181,
+0x7f818181, 0x817f7f81, 0x7f817f81, 0x7f7f7f7f, 0x81817f81, 0x81818181, 0x7f818181, 0x7f81817f,
+0x81817f81, 0x817f7f7f, 0x7f7f817f, 0x7f7f817f, 0x81817f81, 0x7f817f81, 0x7f7f8181, 0x81817f7f,
+0x817f817f, 0x81817f7f, 0x7f7f7f81, 0x7f817f7f, 0x7f7f7f7f, 0x817f7f81, 0x7f817f81, 0x817f7f7f,
+0x7f7f8181, 0x7f7f817f, 0x8181817f, 0x7f818181, 0x7f817f81, 0x81818181, 0x817f817f, 0x7f7f7f7f,
+0x81818181, 0x7f7f8181, 0x7f7f8181, 0x7f81817f, 0x8181817f, 0x8181817f, 0x81817f7f, 0x817f817f,
+0x817f7f7f, 0x817f7f7f, 0x817f7f7f, 0x817f7f81, 0x817f8181, 0x81818181, 0x7f7f7f7f, 0x7f7f817f,
+0x817f7f7f, 0x7f7f817f, 0x817f8181, 0x7f817f81, 0x7f818181, 0x7f81817f, 0x7f81817f, 0x81818181,
+0x7f81817f, 0x817f7f7f, 0x7f7f8181, 0x81818181, 0x7f817f81, 0x81818181, 0x7f817f81, 0x81818181,
+0x817f8181, 0x7f7f7f81, 0x7f818181, 0x7f7f817f, 0x817f7f7f, 0x7f7f7f7f, 0x817f7f81, 0x817f7f81,
+0x7f81817f, 0x817f7f7f, 0x81817f81, 0x817f7f81, 0x81818181, 0x7f7f7f7f, 0x81817f7f, 0x81817f81,
+0x81817f81, 0x81817f81, 0x7f817f81, 0x817f817f, 0x817f817f, 0x817f817f, 0x7f7f817f, 0x81817f81,
+0x7f7f817f, 0x8181817f, 0x817f7f81, 0x81818181, 0x817f7f7f, 0x817f8181, 0x7f7f817f, 0x817f7f7f,
+0x8181817f, 0x81817f7f, 0x7f817f7f, 0x817f7f81, 0x81817f81, 0x817f7f7f, 0x81818181, 0x817f7f7f,
+0x81817f81, 0x7f81817f, 0x7f81817f, 0x7f818181, 0x817f7f81, 0x817f817f, 0x7f81817f, 0x81818181,
+0x81817f81, 0x81818181, 0x817f7f81, 0x81817f7f, 0x7f81817f, 0x8181817f, 0x8181817f, 0x81818181,
+0x81818181, 0x81818181, 0x7f7f8181, 0x817f7f7f, 0x7f7f7f7f, 0x81817f81, 0x817f7f81, 0x7f818181,
+0x817f7f7f, 0x7f817f81, 0x7f7f7f7f, 0x7f7f8181, 0x7f81817f, 0x7f817f81, 0x817f7f7f, 0x81817f81,
+0x7f7f7f7f, 0x817f7f81, 0x817f7f7f, 0x7f817f81, 0x81817f7f, 0x81817f81, 0x817f7f81, 0x81817f81,
+0x817f817f, 0x7f817f81, 0x81817f7f, 0x7f7f7f81, 0x7f7f8181, 0x7f7f817f, 0x8181817f, 0x7f81817f,
+0x817f8181, 0x7f7f7f81, 0x817f817f, 0x7f7f817f, 0x7f7f817f, 0x7f817f7f, 0x7f818181, 0x81817f7f,
+0x81817f7f, 0x8181817f, 0x817f817f, 0x7f7f817f, 0x7f817f81, 0x7f817f7f, 0x7f818181, 0x7f81817f,
+0x817f7f7f, 0x7f817f7f, 0x81817f81, 0x8181817f, 0x8181817f, 0x7f817f81, 0x8181817f, 0x8181817f,
+0x81817f7f, 0x817f7f7f, 0x7f7f7f7f, 0x7f817f7f, 0x81817f81, 0x7f7f7f81, 0x817f7f7f, 0x7f817f81,
+0x7f818181, 0x7f817f81, 0x81818181, 0x817f817f, 0x817f817f, 0x7f818181, 0x817f8181, 0x7f7f817f,
+0x7f7f7f81, 0x817f7f7f, 0x7f81817f, 0x7f81817f, 0x7f81817f, 0x81817f81, 0x817f817f, 0x7f7f817f,
+0x7f817f81, 0x817f817f, 0x7f817f7f, 0x7f81817f, 0x8181817f, 0x817f7f7f, 0x8181817f, 0x7f7f8181,
+0x7f818181, 0x7f817f81, 0x7f7f817f, 0x817f8181, 0x817f817f, 0x817f7f81, 0x7f7f7f81, 0x81817f81,
+0x817f8181, 0x81818181, 0x81818181, 0x7f7f817f, 0x7f7f7f81, 0x8181817f, 0x7f7f7f81, 0x7f7f7f81,
+0x7f818181, 0x817f7f81, 0x7f817f7f, 0x81818181, 0x7f817f7f, 0x7f7f817f, 0x7f7f8181, 0x8181817f,
+0x7f817f7f, 0x817f7f81, 0x7f7f7f81, 0x7f81817f, 0x81817f81, 0x7f817f81, 0x817f8181, 0x817f817f,
+0x817f7f7f, 0x81817f7f, 0x7f818181, 0x81818181, 0x817f7f81, 0x81817f7f, 0x817f8181, 0x817f8181,
+0x81817f7f, 0x8181817f, 0x7f7f817f, 0x7f7f817f, 0x7f7f817f, 0x7f817f81, 0x7f7f7f7f, 0x817f8181,
+0x81817f7f, 0x7f818181, 0x7f7f7f81, 0x817f8181, 0x7f817f7f, 0x7f817f7f, 0x7f817f81, 0x817f8181,
+0x817f817f, 0x7f7f7f7f, 0x81818181, 0x81818181, 0x81818181, 0x7f817f7f, 0x81818181, 0x7f81817f,
+0x7f817f81, 0x8181817f, 0x817f7f7f, 0x817f817f, 0x81817f81, 0x7f817f81, 0x817f7f81, 0x81817f81,
+0x7f7f8181, 0x7f817f7f, 0x817f7f7f, 0x7f81817f, 0x81818181, 0x7f7f817f, 0x7f7f7f81, 0x817f7f81,
+0x817f7f7f, 0x7f817f81, 0x7f817f7f, 0x817f817f, 0x8181817f, 0x7f7f8181, 0x7f818181, 0x8181817f,
+0x7f817f7f, 0x8181817f, 0x7f817f81, 0x7f81817f, 0x7f7f7f81, 0x7f7f7f81, 0x817f817f, 0x81818181,
+0x7f817f81, 0x7f81817f, 0x7f7f8181, 0x7f7f7f81, 0x7f7f7f81, 0x7f7f7f81, 0x7f818181, 0x7f7f7f7f,
+0x7f7f8181, 0x817f8181, 0x7f7f7f7f, 0x817f7f7f, 0x7f7f7f7f, 0x8181817f, 0x7f7f7f7f, 0x7f7f8181,
+0x817f7f7f, 0x81817f81, 0x7f818181, 0x81817f7f, 0x7f81817f, 0x7f817f81, 0x7f817f81, 0x7f817f81,
+0x7f7f817f, 0x7f7f7f7f, 0x817f7f81, 0x7f7f8181, 0x8181817f, 0x817f7f7f, 0x7f817f7f, 0x817f8181,
+0x7f817f7f, 0x817f8181, 0x7f818181, 0x81817f7f, 0x7f817f7f, 0x8181817f, 0x7f81817f, 0x7f7f7f7f,
+0x7f81817f, 0x7f817f81, 0x817f817f, 0x817f7f7f, 0x7f7f7f7f, 0x7f818181, 0x817f7f7f, 0x7f81817f,
+0x81817f81, 0x7f7f7f81, 0x7f818181, 0x7f817f81, 0x81817f81, 0x7f7f7f7f, 0x817f8181, 0x817f8181,
+0x7f817f7f, 0x7f817f7f, 0x817f817f, 0x817f7f81, 0x7f818181, 0x817f8181, 0x8181817f, 0x81817f81,
+0x817f8181, 0x817f8181, 0x7f7f8181, 0x7f7f8181, 0x8181817f, 0x7f817f7f, 0x8181817f, 0x7f81817f,
+0x7f7f7f81, 0x817f817f, 0x81817f7f, 0x817f7f81, 0x81817f7f, 0x817f7f81, 0x81817f81, 0x7f817f81,
+0x817f8181, 0x7f818181, 0x7f817f81, 0x81817f81, 0x81817f81, 0x817f8181, 0x7f818181, 0x81818181,
+0x817f7f81, 0x7f817f7f, 0x817f7f81, 0x817f817f, 0x8181817f, 0x81818181, 0x817f7f81, 0x7f818181,
+0x81817f81, 0x7f817f7f, 0x817f817f, 0x817f7f81, 0x81817f81, 0x7f817f81, 0x7f7f817f, 0x8181817f,
+0x817f7f7f, 0x7f7f817f, 0x7f817f81, 0x817f7f7f, 0x7f7f817f, 0x81818181, 0x817f7f81, 0x7f7f8181,
+0x7f7f8181, 0x8181817f, 0x7f7f8181, 0x817f8181, 0x817f7f7f, 0x817f7f7f, 0x7f7f7f7f, 0x81817f81,
+0x817f7f81, 0x7f7f8181, 0x7f817f81, 0x817f7f81, 0x7f7f817f, 0x817f8181, 0x7f7f7f81, 0x81817f7f,
+0x817f817f, 0x7f7f7f7f, 0x817f7f7f, 0x7f81817f, 0x817f817f, 0x817f7f7f, 0x7f7f7f7f, 0x8181817f,
+0x7f7f8181, 0x817f817f, 0x7f7f7f81, 0x7f7f817f, 0x817f8181, 0x7f81817f, 0x7f81817f, 0x817f7f7f,
+0x7f817f7f, 0x817f817f, 0x817f7f81, 0x817f7f81, 0x81817f81, 0x7f817f81, 0x817f817f, 0x7f81817f,
+0x7f7f8181, 0x7f818181, 0x7f818181, 0x817f817f, 0x7f81817f, 0x817f8181, 0x8181817f, 0x7f817f7f,
+0x817f8181, 0x817f7f81, 0x81817f81, 0x7f7f7f81, 0x817f7f81, 0x7f7f7f7f, 0x81818181, 0x7f7f8181,
+0x7f817f7f, 0x7f7f8181, 0x81817f7f, 0x817f817f, 0x81818181, 0x817f7f7f, 0x8181817f, 0x81817f81,
+0x817f817f, 0x817f817f, 0x7f7f817f, 0x7f7f7f81, 0x7f818181, 0x7f817f7f, 0x7f7f7f81, 0x817f817f,
+0x7f818181, 0x7f7f8181, 0x7f817f7f, 0x81817f81, 0x7f7f8181, 0x817f7f81, 0x817f7f7f, 0x817f8181,
+0x7f7f8181, 0x7f817f7f, 0x817f7f81, 0x817f817f, 0x817f7f81, 0x81817f81, 0x817f8181, 0x817f7f7f,
+0x7f7f7f81, 0x817f8181, 0x7f817f81, 0x7f817f81, 0x7f817f7f, 0x7f81817f, 0x7f7f7f7f, 0x81817f7f,
+0x7f7f7f7f, 0x817f7f81, 0x7f7f8181, 0x7f7f7f81, 0x817f7f7f, 0x7f817f7f, 0x7f7f817f, 0x81817f7f,
+0x8181817f, 0x817f7f7f, 0x817f7f7f, 0x817f7f81, 0x817f8181, 0x7f7f7f81, 0x7f817f81, 0x7f817f7f,
+0x7f818181, 0x817f7f7f, 0x81817f81, 0x817f8181, 0x7f818181, 0x81817f7f, 0x817f8181, 0x7f7f8181,
+0x81817f7f, 0x7f7f7f7f, 0x81818181, 0x7f818181, 0x817f817f, 0x7f7f7f81, 0x817f7f81, 0x817f8181,
+0x7f81817f, 0x81817f7f, 0x817f8181, 0x817f817f, 0x7f818181, 0x7f7f7f7f, 0x7f818181, 0x7f7f817f,
+0x7f817f81, 0x817f8181, 0x7f7f7f7f, 0x7f818181, 0x7f7f7f81, 0x7f7f817f, 0x7f817f81, 0x817f8181,
+0x81818181, 0x7f818181, 0x7f7f7f7f, 0x7f818181, 0x7f81817f, 0x7f7f817f, 0x81817f81, 0x7f7f8181,
+0x81818181, 0x817f7f81, 0x7f817f81, 0x7f7f8181, 0x817f7f81, 0x81817f81, 0x7f817f7f, 0x817f817f,
+0x7f81817f, 0x7f818181, 0x817f8181, 0x81817f7f, 0x817f8181, 0x7f7f7f81, 0x7f818181, 0x7f7f817f,
+0x817f8181, 0x817f8181, 0x7f817f81, 0x7f81817f, 0x8181817f, 0x817f7f81, 0x817f817f, 0x81818181,
+0x7f817f7f, 0x817f817f, 0x817f817f, 0x7f817f7f, 0x7f817f7f, 0x817f817f, 0x7f81817f, 0x81818181,
+0x7f7f7f7f, 0x7f7f7f7f, 0x817f7f81, 0x7f81817f, 0x7f7f7f81, 0x817f7f81, 0x817f8181, 0x7f818181,
+0x7f7f7f7f, 0x7f7f817f, 0x7f7f7f81, 0x7f818181, 0x817f7f81, 0x81817f7f, 0x81817f7f, 0x81817f81,
+0x7f7f7f81, 0x8181817f, 0x7f7f8181, 0x7f81817f, 0x7f7f7f81, 0x81817f7f, 0x7f7f7f7f, 0x7f7f817f,
+0x7f817f7f, 0x81818181, 0x7f7f7f81, 0x7f7f7f81, 0x7f7f7f7f, 0x817f817f, 0x81818181, 0x81817f81,
+0x7f81817f, 0x7f7f8181, 0x7f81817f, 0x81818181, 0x81818181, 0x7f7f7f7f, 0x817f7f81, 0x7f81817f,
+0x7f81817f, 0x7f7f8181, 0x7f818181, 0x7f818181, 0x7f817f7f, 0x8181817f, 0x81817f81, 0x817f7f81,
+0x7f7f7f81, 0x7f81817f, 0x817f7f81, 0x817f8181, 0x7f81817f, 0x817f8181, 0x81817f7f, 0x7f817f81,
+0x81818181, 0x7f817f81, 0x7f818181, 0x7f7f7f81, 0x7f7f8181, 0x8181817f, 0x81818181, 0x81818181,
+0x81818181, 0x817f8181, 0x81817f81, 0x817f7f7f, 0x81817f81, 0x817f7f7f, 0x7f7f8181, 0x7f81817f,
+0x7f7f7f81, 0x7f7f7f7f, 0x7f817f81, 0x81817f81, 0x817f817f, 0x7f7f7f81, 0x817f7f81, 0x817f7f7f,
+0x7f817f7f, 0x81818181, 0x81818181, 0x7f7f817f, 0x7f817f81, 0x81817f81, 0x817f817f, 0x817f7f81,
+0x81818181, 0x7f817f7f, 0x81817f7f, 0x81817f81, 0x817f817f, 0x817f7f7f, 0x7f7f817f, 0x7f7f817f,
+0x7f7f8181, 0x817f7f81, 0x7f81817f, 0x7f817f7f, 0x817f7f7f, 0x817f7f7f, 0x817f7f7f, 0x7f7f7f7f,
+0x7f7f7f7f, 0x7f7f7f81, 0x7f7f8181, 0x817f8181, 0x817f817f, 0x7f7f7f81, 0x81818181, 0x81817f81,
+0x7f7f7f7f, 0x817f817f, 0x81818181, 0x7f7f817f, 0x7f818181, 0x7f7f8181, 0x817f8181, 0x817f7f7f,
+0x7f7f8181, 0x7f817f7f, 0x817f8181, 0x817f8181, 0x81817f81, 0x7f817f81, 0x817f7f81, 0x7f7f7f81,
+0x7f818181, 0x7f817f7f, 0x81817f81, 0x7f817f7f, 0x817f7f7f, 0x817f7f7f, 0x817f817f, 0x7f7f7f7f,
+0x817f8181, 0x7f7f7f7f, 0x7f81817f, 0x7f817f81, 0x81818181, 0x817f817f, 0x817f7f7f, 0x81817f7f,
+0x7f81817f, 0x817f817f, 0x7f818181, 0x8181817f, 0x817f817f, 0x81818181, 0x817f7f7f, 0x817f7f81,
+0x7f7f8181, 0x817f817f, 0x817f7f81, 0x7f81817f, 0x7f818181, 0x7f7f817f, 0x817f7f7f, 0x7f7f7f7f,
+0x7f7f7f7f, 0x81817f81, 0x7f81817f, 0x7f7f7f7f, 0x7f7f7f81, 0x8181817f, 0x81818181, 0x81817f7f,
+0x7f81817f, 0x7f7f8181, 0x817f7f7f, 0x7f7f7f7f, 0x817f7f7f, 0x7f81817f, 0x817f817f, 0x81817f81,
+0x7f7f7f81, 0x817f7f81, 0x817f7f81, 0x81818181, 0x7f7f8181, 0x81817f81, 0x7f817f7f, 0x7f818181,
+0x7f818181, 0x81818181, 0x7f7f817f, 0x7f7f7f81, 0x81817f81, 0x817f7f7f, 0x817f8181, 0x7f7f817f,
+0x81818181, 0x81817f81, 0x7f7f8181, 0x7f7f7f7f, 0x7f818181, 0x7f7f817f, 0x817f7f81, 0x817f7f7f,
+0x81817f7f, 0x7f81817f, 0x7f817f7f, 0x7f81817f, 0x7f7f817f, 0x7f7f8181, 0x8181817f, 0x817f7f81,
+0x7f7f7f81, 0x7f817f81, 0x8181817f, 0x7f7f7f7f, 0x7f817f81, 0x7f7f7f81, 0x817f7f7f, 0x81817f81,
+0x7f817f7f, 0x817f7f81, 0x817f817f, 0x81817f7f, 0x7f818181, 0x7f81817f, 0x7f817f81, 0x7f817f81,
+0x7f81817f, 0x7f7f7f7f, 0x7f817f81, 0x7f818181, 0x7f7f7f7f, 0x7f7f7f7f, 0x7f7f7f7f, 0x7f7f817f,
+0x7f7f7f81, 0x7f818181, 0x7f818181, 0x7f818181, 0x7f7f8181, 0x817f7f81, 0x7f817f7f, 0x81818181,
+0x7f81817f, 0x817f817f, 0x7f7f7f7f, 0x817f7f81, 0x7f7f817f, 0x7f7f817f, 0x7f7f8181, 0x7f7f7f81,
+0x81817f81, 0x7f81817f, 0x7f7f7f81, 0x81817f81, 0x7f818181, 0x81817f81, 0x7f7f7f7f, 0x7f81817f,
+0x81817f81, 0x7f817f7f, 0x7f81817f, 0x81817f81, 0x81818181, 0x7f81817f, 0x7f7f817f, 0x81817f7f,
+0x7f7f817f, 0x8181817f, 0x81817f7f, 0x7f81817f, 0x81817f81, 0x8181817f, 0x7f817f81, 0x81817f7f,
+0x817f7f7f, 0x7f7f8181, 0x817f8181, 0x7f81817f, 0x7f7f817f, 0x817f817f, 0x817f7f81, 0x7f7f817f,
+0x7f7f8181, 0x7f818181, 0x7f7f8181, 0x81817f7f, 0x8181817f, 0x817f7f7f, 0x7f7f8181, 0x7f817f81,
+0x817f817f, 0x7f817f7f, 0x81817f81, 0x7f7f817f, 0x81817f81, 0x7f7f817f, 0x81818181, 0x81817f81,
+0x81817f7f, 0x7f7f7f7f, 0x7f7f7f7f, 0x817f817f, 0x7f7f8181, 0x7f7f7f7f, 0x7f817f7f, 0x7f7f817f,
+0x7f81817f, 0x817f7f81, 0x817f7f81, 0x7f7f7f7f, 0x7f7f7f81, 0x81817f7f, 0x817f7f81, 0x7f7f817f,
+0x7f817f7f, 0x81818181, 0x7f81817f, 0x7f817f7f, 0x81818181, 0x8181817f, 0x7f7f7f81, 0x7f818181,
+0x8181817f, 0x7f7f7f7f, 0x817f817f, 0x7f818181, 0x81817f81, 0x7f818181, 0x7f81817f, 0x817f7f81,
+0x81818181, 0x7f7f7f81, 0x81817f81, 0x7f7f8181, 0x7f81817f, 0x81817f7f, 0x8181817f, 0x7f817f7f,
+0x7f7f8181, 0x7f7f817f, 0x7f817f7f, 0x817f817f, 0x7f818181, 0x7f7f7f7f, 0x7f7f7f7f, 0x7f818181,
+0x81817f81, 0x7f818181, 0x81817f81, 0x7f818181, 0x7f7f7f81, 0x817f817f, 0x81817f7f, 0x7f7f7f81,
+0x817f817f, 0x7f817f81, 0x7f817f81, 0x7f7f8181, 0x7f7f7f7f, 0x7f817f81, 0x8181817f, 0x817f8181,
+0x7f7f7f7f, 0x8181817f, 0x817f8181, 0x81818181, 0x7f818181, 0x81818181, 0x7f7f7f81, 0x817f817f,
+0x81817f81, 0x8181817f, 0x8181817f, 0x817f7f81, 0x7f818181, 0x817f8181, 0x8181817f, 0x817f7f7f,
+0x7f817f7f, 0x7f7f8181, 0x7f7f7f81, 0x7f817f81, 0x81817f81, 0x81817f81, 0x81817f7f, 0x8181817f,
+0x817f817f, 0x7f817f7f, 0x817f7f7f, 0x7f7f7f81, 0x817f8181, 0x7f7f7f81, 0x7f817f81, 0x81817f7f,
+0x817f817f, 0x817f8181, 0x7f7f7f81, 0x7f7f7f81, 0x81817f7f, 0x7f818181, 0x7f7f8181, 0x817f817f,
+0x81818181, 0x7f818181, 0x817f7f81, 0x817f8181, 0x817f817f, 0x7f817f7f, 0x7f7f7f7f, 0x8181817f,
+0x7f7f7f7f, 0x7f817f7f, 0x817f817f, 0x817f817f, 0x7f817f81, 0x81818181, 0x7f817f7f, 0x7f7f8181,
+0x7f7f8181, 0x81817f7f, 0x81817f7f, 0x7f7f7f81, 0x817f7f7f, 0x7f7f817f, 0x81817f7f, 0x7f7f817f,
+0x817f7f81, 0x8181817f, 0x81817f81, 0x7f7f8181, 0x7f7f8181, 0x7f7f7f81, 0x81817f7f, 0x7f7f817f,
+0x81817f81, 0x7f817f81, 0x81817f7f, 0x7f7f7f7f, 0x7f81817f, 0x7f7f8181, 0x7f817f7f, 0x7f7f8181,
+0x817f817f, 0x817f7f7f, 0x7f817f7f, 0x817f8181, 0x817f7f7f, 0x7f81817f, 0x7f7f817f, 0x817f817f,
+0x7f7f8181, 0x7f7f7f7f, 0x817f7f81, 0x7f7f8181, 0x7f7f817f, 0x81817f81, 0x7f817f81, 0x7f817f7f,
+0x817f7f81, 0x7f7f817f, 0x8181817f, 0x817f7f7f, 0x81817f81, 0x7f817f7f, 0x817f7f7f, 0x7f7f7f7f,
+0x7f817f81, 0x7f7f7f7f, 0x81817f7f, 0x7f7f7f7f, 0x7f818181, 0x817f7f81, 0x817f817f, 0x8181817f,
+0x817f7f7f, 0x817f8181, 0x8181817f, 0x7f817f7f, 0x7f817f7f, 0x817f7f81, 0x81817f7f, 0x7f7f8181,
+0x81818181, 0x81818181, 0x7f81817f, 0x7f817f81, 0x7f817f81, 0x817f7f81, 0x8181817f, 0x7f81817f,
+0x7f7f817f, 0x7f818181, 0x81817f7f, 0x7f817f81, 0x817f8181, 0x7f7f7f81, 0x7f7f8181, 0x817f7f7f,
+0x7f818181, 0x7f7f8181, 0x817f8181, 0x7f817f81, 0x7f818181, 0x81817f81, 0x817f7f7f, 0x7f818181,
+0x7f817f81, 0x817f7f81, 0x817f817f, 0x7f7f7f7f, 0x817f817f, 0x81818181, 0x7f817f7f, 0x7f817f81,
+0x817f7f81, 0x7f7f817f, 0x81817f81, 0x7f81817f, 0x7f7f8181, 0x817f7f81, 0x817f817f, 0x81817f81,
+0x817f8181, 0x7f7f7f7f, 0x817f7f7f, 0x7f81817f, 0x7f818181, 0x7f818181, 0x7f7f7f7f, 0x817f7f81,
+0x817f7f81, 0x7f7f7f81, 0x8181817f, 0x7f7f7f7f, 0x817f817f, 0x7f817f7f, 0x817f817f, 0x7f7f7f7f,
+0x8181817f, 0x7f7f7f7f, 0x7f7f8181, 0x7f817f7f, 0x7f817f7f, 0x7f817f7f, 0x817f8181, 0x7f81817f,
+0x7f817f7f, 0x81817f81, 0x8181817f, 0x7f7f7f7f, 0x7f7f8181, 0x817f7f81, 0x7f817f7f, 0x817f7f7f,
+0x81817f81, 0x817f7f7f, 0x81817f81, 0x7f81817f, 0x7f818181, 0x7f818181, 0x7f818181, 0x7f81817f,
+0x7f7f8181, 0x817f7f81, 0x817f8181, 0x7f817f81, 0x7f817f7f, 0x81818181, 0x7f817f81, 0x81818181,
+0x81817f7f, 0x81818181, 0x817f7f81, 0x81817f81, 0x81817f81, 0x7f7f7f7f, 0x81817f7f, 0x7f81817f,
+0x7f7f8181, 0x81818181, 0x7f7f7f7f, 0x7f7f8181, 0x81817f7f, 0x81817f81, 0x7f7f7f81, 0x8181817f,
+0x8181817f, 0x7f7f817f, 0x81817f81, 0x817f817f, 0x817f7f7f, 0x817f817f, 0x817f817f, 0x7f81817f,
+0x8181817f, 0x817f7f7f, 0x7f818181, 0x817f7f7f, 0x817f8181, 0x7f7f8181, 0x817f8181, 0x817f817f,
+0x817f7f81, 0x7f7f7f7f, 0x7f7f7f81, 0x8181817f, 0x7f818181, 0x7f7f8181, 0x7f81817f, 0x817f8181,
+0x7f81817f, 0x7f7f8181, 0x8181817f, 0x817f7f7f, 0x817f817f, 0x8181817f, 0x8181817f, 0x81817f81,
+0x7f7f817f, 0x7f817f7f, 0x817f817f, 0x7f81817f, 0x7f817f7f, 0x81817f7f, 0x7f7f8181, 0x817f7f7f,
+0x7f7f7f81, 0x817f8181, 0x7f817f81, 0x817f7f81, 0x817f7f81, 0x81818181, 0x81818181, 0x81818181,
+0x7f7f8181, 0x7f81817f, 0x7f817f7f, 0x7f817f7f, 0x817f7f7f, 0x817f7f7f, 0x817f7f81, 0x7f817f81,
+0x7f817f81, 0x817f8181, 0x7f81817f, 0x81817f81, 0x7f7f7f81, 0x817f7f81, 0x817f7f7f, 0x817f8181,
+0x7f7f8181, 0x7f817f7f, 0x7f818181, 0x7f7f817f, 0x7f81817f, 0x8181817f, 0x8181817f, 0x7f81817f,
+0x7f817f81, 0x7f7f817f, 0x817f817f, 0x7f7f7f81, 0x817f8181, 0x7f81817f, 0x817f7f81, 0x817f817f,
+0x817f817f, 0x7f817f81, 0x7f817f7f, 0x7f81817f, 0x817f817f, 0x7f7f8181, 0x7f81817f, 0x817f817f,
+0x8181817f, 0x81818181, 0x81817f81, 0x817f8181, 0x81818181, 0x81817f7f, 0x817f8181, 0x7f7f8181,
+0x7f7f8181, 0x7f7f817f, 0x817f7f81, 0x7f818181, 0x817f8181, 0x81817f7f, 0x7f7f7f7f, 0x817f817f,
+0x817f7f7f, 0x7f7f817f, 0x7f817f81, 0x7f7f817f, 0x7f818181, 0x8181817f, 0x7f7f8181, 0x7f817f7f,
+0x7f81817f, 0x7f7f8181, 0x7f817f81, 0x817f7f7f, 0x7f7f817f, 0x7f818181, 0x7f7f817f, 0x81818181,
+0x7f81817f, 0x817f8181, 0x81818181, 0x81817f81, 0x817f817f, 0x81817f7f, 0x7f7f8181, 0x7f7f7f81,
+0x81817f7f, 0x7f817f81, 0x7f817f7f, 0x7f7f7f7f, 0x7f7f8181, 0x817f7f7f, 0x7f81817f, 0x7f818181,
+0x7f818181, 0x817f7f7f, 0x817f7f81, 0x7f818181, 0x817f8181, 0x817f7f81, 0x7f7f7f81, 0x817f7f81,
+0x7f817f7f, 0x7f7f7f7f, 0x7f818181, 0x7f817f81, 0x8181817f, 0x817f7f7f, 0x7f817f81, 0x81818181,
+0x7f7f817f, 0x81817f81, 0x8181817f, 0x7f7f7f81, 0x81817f7f, 0x7f817f81, 0x81818181, 0x817f817f,
+0x7f7f7f81, 0x7f81817f, 0x7f7f817f, 0x817f7f81, 0x7f7f7f7f, 0x817f8181, 0x81817f81, 0x8181817f,
+0x7f7f7f7f, 0x81817f81, 0x7f7f7f7f, 0x7f7f7f7f, 0x81817f7f, 0x7f817f81, 0x7f81817f, 0x81817f81,
+0x817f817f, 0x81817f81, 0x81817f7f, 0x817f7f7f, 0x7f7f7f7f, 0x7f7f817f, 0x7f818181, 0x817f817f,
+0x7f7f7f7f, 0x7f817f7f, 0x8181817f, 0x817f7f7f, 0x7f7f817f, 0x7f81817f, 0x7f7f7f81, 0x817f7f7f,
+0x7f817f81, 0x7f7f8181, 0x8181817f, 0x7f818181, 0x7f817f7f, 0x817f817f, 0x7f7f7f81, 0x817f817f,
+0x7f7f817f, 0x7f7f8181, 0x7f7f7f7f, 0x7f7f7f7f, 0x817f7f7f, 0x817f7f81, 0x7f817f7f, 0x7f81817f,
+0x7f7f817f, 0x7f817f7f, 0x7f818181, 0x7f7f817f, 0x817f7f81, 0x7f818181, 0x817f8181, 0x7f817f81,
+0x7f817f7f, 0x817f817f, 0x7f7f7f7f, 0x81817f81, 0x7f817f81, 0x7f817f7f, 0x81818181, 0x817f7f7f,
+0x817f7f81, 0x817f7f7f, 0x817f7f7f, 0x8181817f, 0x7f7f7f81, 0x7f7f8181, 0x817f7f81, 0x817f7f81,
+0x7f817f7f, 0x817f7f7f, 0x817f817f, 0x8181817f, 0x7f818181, 0x7f7f817f, 0x7f817f81, 0x7f7f817f,
+0x7f817f7f, 0x7f817f81, 0x8181817f, 0x81818181, 0x7f7f7f7f, 0x7f81817f, 0x81817f7f, 0x7f817f7f,
+0x817f8181, 0x7f818181, 0x7f7f7f7f, 0x817f7f81, 0x7f7f8181, 0x7f818181, 0x81818181, 0x7f7f7f7f,
+0x8181817f, 0x81817f81, 0x817f7f81, 0x81818181, 0x81817f7f, 0x8181817f, 0x7f817f7f, 0x7f7f7f7f,
+0x817f7f81, 0x817f7f81, 0x817f7f7f, 0x7f7f7f81, 0x7f7f817f, 0x81817f7f, 0x7f7f8181, 0x7f7f817f,
+0x81818181, 0x7f7f7f81, 0x7f7f817f, 0x7f7f8181, 0x8181817f, 0x7f818181, 0x817f817f, 0x7f7f7f81,
+0x817f7f7f, 0x7f817f7f, 0x817f7f81, 0x8181817f, 0x7f81817f, 0x817f817f, 0x8181817f, 0x7f7f7f7f,
+0x817f7f7f, 0x7f818181, 0x817f7f81, 0x7f7f8181, 0x817f7f7f, 0x8181817f, 0x817f8181, 0x8181817f,
+0x81817f81, 0x817f8181, 0x817f7f81, 0x7f7f8181, 0x817f8181, 0x7f817f81, 0x7f7f7f81, 0x7f818181,
+0x7f817f7f, 0x7f7f8181, 0x7f7f817f, 0x81817f81, 0x81817f7f, 0x81817f7f, 0x81817f7f, 0x817f817f,
+0x7f81817f, 0x7f7f7f7f, 0x817f8181, 0x8181817f, 0x7f817f81, 0x7f817f7f, 0x817f7f7f, 0x7f7f8181,
+0x7f7f8181, 0x7f7f7f81, 0x7f818181, 0x81817f7f, 0x8181817f, 0x817f7f81, 0x7f7f7f7f, 0x7f81817f,
+0x817f8181, 0x7f81817f, 0x8181817f, 0x81818181, 0x7f817f81, 0x81817f81, 0x7f7f7f81, 0x817f7f7f,
+0x81818181, 0x7f7f7f7f, 0x81818181, 0x81818181, 0x7f7f8181, 0x7f817f81, 0x81818181, 0x817f8181,
+0x81817f81, 0x7f81817f, 0x8181817f, 0x7f7f7f81, 0x8181817f, 0x81818181, 0x81817f81, 0x81817f81,
+0x7f7f8181, 0x7f7f7f81, 0x7f7f7f7f, 0x8181817f, 0x7f7f8181, 0x7f818181, 0x81818181, 0x7f7f7f7f,
+0x81817f7f, 0x817f7f81, 0x7f7f817f, 0x817f8181, 0x817f8181, 0x7f7f8181, 0x817f7f7f, 0x7f7f7f7f,
+0x7f7f7f81, 0x817f7f81, 0x7f81817f, 0x817f7f81, 0x817f817f, 0x7f7f7f7f, 0x81817f7f, 0x81817f81,
+0x81818181, 0x7f817f7f, 0x81817f81, 0x7f7f7f81, 0x817f7f7f, 0x81818181, 0x7f7f817f, 0x7f818181,
+0x7f7f7f7f, 0x81818181, 0x7f7f7f81, 0x81818181, 0x8181817f, 0x7f817f81, 0x7f7f7f7f, 0x7f817f81,
+0x7f7f7f7f, 0x7f7f7f81, 0x81817f7f, 0x8181817f, 0x7f818181, 0x7f817f7f, 0x7f7f8181, 0x7f7f817f,
+0x7f7f7f81, 0x8181817f, 0x81817f7f, 0x7f81817f, 0x7f817f81, 0x817f7f81, 0x7f7f817f, 0x81817f81,
+0x817f7f81, 0x7f7f8181, 0x7f7f7f7f, 0x7f817f7f, 0x7f7f817f, 0x817f7f81, 0x817f8181, 0x7f7f7f7f,
+0x7f818181, 0x81817f7f, 0x7f817f7f, 0x817f817f, 0x7f7f8181, 0x7f7f817f, 0x817f7f81, 0x7f7f8181,
+0x817f7f81, 0x81817f81, 0x817f8181, 0x817f817f, 0x81818181, 0x7f817f81, 0x81817f81, 0x7f7f8181,
+0x7f7f7f81, 0x817f7f81, 0x7f7f7f81, 0x7f7f7f7f, 0x81818181, 0x7f7f7f7f, 0x7f817f7f, 0x7f7f7f7f,
+0x81818181, 0x8181817f, 0x7f7f7f7f, 0x7f7f817f, 0x817f8181, 0x817f817f, 0x817f7f7f, 0x817f8181,
+0x7f7f8181, 0x7f7f8181, 0x817f817f, 0x7f817f81, 0x817f817f, 0x7f7f7f81, 0x817f7f7f, 0x7f7f817f,
+0x7f7f7f7f, 0x817f8181, 0x817f8181, 0x7f7f817f, 0x81817f81, 0x7f7f8181, 0x7f81817f, 0x81817f7f,
+0x817f7f7f, 0x817f817f, 0x7f7f8181, 0x817f7f7f, 0x817f7f7f, 0x817f7f81, 0x7f817f81, 0x7f81817f,
+0x81817f7f, 0x817f7f7f, 0x7f817f81, 0x81818181, 0x7f7f817f, 0x817f7f81, 0x7f7f817f, 0x7f817f81,
+0x81817f81, 0x81818181, 0x7f7f8181, 0x817f7f7f, 0x7f7f7f81, 0x81817f7f, 0x81818181, 0x817f8181,
+0x7f7f817f, 0x7f817f7f, 0x7f817f81, 0x817f7f81, 0x7f7f817f, 0x7f818181, 0x7f817f81, 0x7f817f81,
+0x7f818181, 0x81817f7f, 0x817f7f81, 0x8181817f, 0x7f7f7f81, 0x81817f7f, 0x7f817f81, 0x8181817f,
+0x7f7f817f, 0x817f817f, 0x81817f81, 0x81817f81, 0x81817f7f, 0x7f818181, 0x817f7f81, 0x817f7f81,
+0x7f7f7f7f, 0x7f81817f, 0x7f817f81, 0x7f7f817f, 0x7f818181, 0x8181817f, 0x81817f81, 0x7f817f81,
+0x7f81817f, 0x817f7f81, 0x7f818181, 0x817f817f, 0x817f7f7f, 0x81817f81, 0x7f817f81, 0x7f817f7f,
+0x81817f7f, 0x7f7f8181, 0x81817f81, 0x81817f7f, 0x8181817f, 0x7f7f817f, 0x8181817f, 0x7f818181,
+0x7f817f7f, 0x817f7f7f, 0x81817f81, 0x7f81817f, 0x81818181, 0x7f7f7f81, 0x7f7f817f, 0x7f7f7f81,
+0x817f7f81, 0x817f7f7f, 0x7f817f7f, 0x7f7f8181, 0x7f817f81, 0x7f817f81, 0x7f81817f, 0x81818181,
+0x7f7f7f81, 0x7f7f7f81, 0x81818181, 0x817f8181, 0x7f7f8181, 0x817f8181, 0x817f7f81, 0x8181817f,
+0x81818181, 0x8181817f, 0x8181817f, 0x817f7f81, 0x7f7f8181, 0x817f7f81, 0x7f817f7f, 0x817f7f7f,
+0x81818181, 0x81818181, 0x81817f7f, 0x7f81817f, 0x7f817f81, 0x81817f81, 0x7f7f7f7f, 0x817f817f,
+0x7f7f7f7f, 0x7f817f7f, 0x817f8181, 0x7f7f7f81, 0x817f7f7f, 0x7f817f81, 0x7f7f817f, 0x8181817f,
+0x817f7f81, 0x7f81817f, 0x817f817f, 0x7f817f7f, 0x81817f81, 0x7f7f817f, 0x817f8181, 0x817f7f7f,
+0x81818181, 0x817f7f81, 0x7f81817f, 0x817f817f, 0x817f817f, 0x817f7f7f, 0x7f7f817f, 0x8181817f,
+0x7f7f7f7f, 0x81817f81, 0x8181817f, 0x7f81817f, 0x817f7f81, 0x7f7f7f7f, 0x817f7f7f, 0x817f817f,
+0x81818181, 0x8181817f, 0x81817f81, 0x81817f7f, 0x7f7f817f, 0x81817f81, 0x7f7f817f, 0x8181817f,
+0x7f818181, 0x7f7f817f, 0x8181817f, 0x817f7f7f, 0x81817f7f, 0x7f818181, 0x81818181, 0x8181817f,
+0x817f817f, 0x7f7f7f7f, 0x7f7f817f, 0x7f7f8181, 0x7f7f7f81, 0x7f7f817f, 0x7f818181, 0x81818181,
+0x81818181, 0x7f817f81, 0x7f7f817f, 0x7f817f7f, 0x81817f7f, 0x7f7f817f, 0x8181817f, 0x7f7f7f7f,
+0x7f7f8181, 0x7f7f817f, 0x7f7f7f7f, 0x817f817f, 0x7f7f7f7f, 0x817f7f81, 0x817f8181, 0x81818181,
+0x7f818181, 0x7f818181, 0x8181817f, 0x7f7f7f7f, 0x8181817f, 0x7f817f7f, 0x7f7f817f, 0x81818181,
+0x7f817f7f, 0x817f8181, 0x817f7f81, 0x7f817f81, 0x817f7f81, 0x7f7f7f7f, 0x817f8181, 0x7f7f8181,
+0x81817f81, 0x81818181, 0x7f7f817f, 0x817f7f81, 0x7f81817f, 0x8181817f, 0x81818181, 0x81817f7f,
+0x7f81817f, 0x81818181, 0x7f7f8181, 0x7f817f81, 0x7f817f81, 0x7f817f7f, 0x817f817f, 0x7f818181,
+0x7f817f7f, 0x7f7f7f7f, 0x817f817f, 0x817f7f7f, 0x7f81817f, 0x817f7f81, 0x81818181, 0x7f7f817f,
+0x817f817f, 0x81817f81, 0x817f7f81, 0x81817f7f, 0x7f81817f, 0x7f81817f, 0x7f817f81, 0x81817f81,
+0x7f7f817f, 0x8181817f, 0x7f818181, 0x7f7f7f7f, 0x81818181, 0x8181817f, 0x7f817f81, 0x8181817f,
+0x7f81817f, 0x7f7f8181, 0x817f817f, 0x817f7f81, 0x7f817f81, 0x81817f7f, 0x7f818181, 0x81818181,
+0x81817f81, 0x817f7f81, 0x7f81817f, 0x817f817f, 0x81817f81, 0x7f7f7f81, 0x7f818181, 0x81817f81,
+0x817f7f81, 0x7f7f817f, 0x817f8181, 0x7f817f7f, 0x817f817f, 0x7f7f7f81, 0x7f7f7f81, 0x7f7f817f,
+0x817f817f, 0x817f817f, 0x817f8181, 0x7f7f7f81, 0x817f7f81, 0x817f8181, 0x7f7f7f81, 0x8181817f,
+0x81817f7f, 0x7f7f7f81, 0x81817f7f, 0x817f7f81, 0x817f817f, 0x81817f7f, 0x7f7f7f7f, 0x7f81817f,
+0x7f817f7f, 0x81818181, 0x81818181, 0x7f7f7f81, 0x81817f7f, 0x8181817f, 0x7f818181, 0x7f817f7f,
+0x81817f81, 0x817f7f7f, 0x7f7f8181, 0x7f817f7f, 0x81817f7f, 0x8181817f, 0x817f8181, 0x817f7f81,
+0x7f7f7f7f, 0x81817f7f, 0x81817f81, 0x81818181, 0x81817f7f, 0x817f817f, 0x817f817f, 0x7f7f817f,
+0x7f81817f, 0x81818181, 0x7f817f81, 0x7f7f8181, 0x7f7f817f, 0x7f7f7f81, 0x81817f7f, 0x817f8181,
+0x7f817f7f, 0x8181817f, 0x817f8181, 0x817f7f7f, 0x7f7f7f81, 0x8181817f, 0x817f7f81, 0x7f817f81,
+0x7f7f8181, 0x7f81817f, 0x7f7f7f7f, 0x7f7f8181, 0x7f817f7f, 0x7f7f7f81, 0x7f817f7f, 0x8181817f,
+0x7f81817f, 0x817f817f, 0x7f817f81, 0x8181817f, 0x7f818181, 0x81817f81, 0x7f818181, 0x81818181,
+0x7f7f7f81, 0x817f7f7f, 0x817f8181, 0x7f817f7f, 0x7f817f81, 0x817f7f81, 0x81818181, 0x7f7f7f81,
+0x7f7f7f81, 0x7f7f7f81, 0x7f81817f, 0x817f817f, 0x7f7f8181, 0x7f817f7f, 0x7f817f81, 0x7f818181,
+0x7f7f8181, 0x817f8181, 0x7f817f7f, 0x7f7f8181, 0x7f7f7f81, 0x817f8181, 0x7f817f7f, 0x7f817f7f,
+0x7f7f817f, 0x7f7f7f81, 0x817f7f7f, 0x7f817f7f, 0x817f817f, 0x7f817f81, 0x7f7f8181, 0x81817f81,
+0x7f7f8181, 0x7f818181, 0x817f7f81, 0x7f818181, 0x81817f7f, 0x817f7f7f, 0x7f7f8181, 0x81817f7f,
+0x7f817f7f, 0x7f818181, 0x7f81817f, 0x81818181, 0x7f7f817f, 0x7f818181, 0x7f817f7f, 0x81817f81,
+0x7f7f7f7f, 0x7f817f7f, 0x7f7f817f, 0x7f7f7f81, 0x7f7f7f7f, 0x8181817f, 0x7f817f81, 0x7f81817f,
+0x7f7f7f81, 0x7f7f7f81, 0x817f817f, 0x7f7f7f81, 0x81818181, 0x7f7f7f81, 0x8181817f, 0x817f7f81,
+0x7f7f817f, 0x817f817f, 0x817f8181, 0x7f7f8181, 0x81817f7f, 0x7f817f81, 0x8181817f, 0x7f81817f,
+0x7f818181, 0x7f818181, 0x7f817f81, 0x7f7f7f7f, 0x7f81817f, 0x817f7f81, 0x7f7f7f81, 0x81818181,
+0x7f7f7f81, 0x817f8181, 0x7f81817f, 0x8181817f, 0x7f7f7f81, 0x8181817f, 0x7f7f7f81, 0x7f81817f,
+0x81817f81, 0x7f817f81, 0x81817f7f, 0x81818181, 0x817f817f, 0x817f7f7f, 0x817f8181, 0x81818181,
+0x7f81817f, 0x81818181, 0x81818181, 0x7f818181, 0x7f7f7f7f, 0x81817f81, 0x8181817f, 0x7f7f817f,
+0x817f7f81, 0x817f7f81, 0x817f8181, 0x7f7f8181, 0x817f8181, 0x7f7f7f81, 0x817f7f81, 0x81818181,
+0x8181817f, 0x81817f81, 0x7f7f8181, 0x7f7f8181, 0x7f7f8181, 0x817f817f, 0x7f817f7f, 0x7f81817f,
+0x81817f7f, 0x81818181, 0x7f81817f, 0x7f817f7f, 0x7f7f7f81, 0x817f7f81, 0x81818181, 0x7f7f7f81,
+0x7f7f8181, 0x7f81817f, 0x7f7f7f7f, 0x7f7f8181, 0x81817f81, 0x7f81817f, 0x81817f81, 0x7f7f8181,
+0x817f817f, 0x7f817f81, 0x7f7f8181, 0x817f817f, 0x7f817f7f, 0x817f7f81, 0x7f7f7f81, 0x7f7f817f,
+0x817f8181, 0x7f7f817f, 0x8181817f, 0x81818181, 0x81817f7f, 0x7f817f7f, 0x7f7f817f, 0x81817f7f,
+0x7f7f817f, 0x7f81817f, 0x81818181, 0x81817f81, 0x8181817f, 0x7f817f7f, 0x81818181, 0x7f7f7f81,
+0x7f7f7f7f, 0x81817f7f, 0x81817f81, 0x7f7f817f, 0x7f7f8181, 0x8181817f, 0x81818181, 0x7f7f7f81,
+0x7f817f7f, 0x7f817f7f, 0x817f7f81, 0x7f7f817f, 0x8181817f, 0x817f7f7f, 0x7f817f81, 0x817f8181,
+0x7f817f7f, 0x7f817f7f, 0x7f7f817f, 0x7f7f817f, 0x7f817f7f, 0x7f817f7f, 0x7f818181, 0x817f7f81,
+0x7f81817f, 0x7f817f81, 0x7f817f81, 0x817f7f81, 0x7f7f7f7f, 0x81817f7f, 0x7f81817f, 0x81818181,
+0x7f7f8181, 0x7f7f7f81, 0x7f817f81, 0x81817f81, 0x81817f81, 0x8181817f, 0x7f818181, 0x81817f81,
+0x817f7f81, 0x817f7f7f, 0x7f7f7f81, 0x7f7f7f7f, 0x7f7f8181, 0x7f81817f, 0x7f7f817f, 0x7f7f817f,
+0x817f7f81, 0x7f7f7f7f, 0x81817f81, 0x817f817f, 0x817f817f, 0x817f817f, 0x7f81817f, 0x7f7f8181,
+0x7f818181, 0x817f8181, 0x7f7f8181, 0x7f817f81, 0x81818181, 0x7f817f81, 0x817f7f7f, 0x7f817f7f,
+0x7f7f8181, 0x817f8181, 0x7f818181, 0x81817f81, 0x7f818181, 0x8181817f, 0x8181817f, 0x7f818181,
+0x8181817f, 0x7f7f7f7f, 0x7f7f817f, 0x7f818181, 0x7f7f7f81, 0x7f7f817f, 0x81818181, 0x817f7f7f,
+0x8181817f, 0x817f817f, 0x7f7f8181, 0x7f7f7f81, 0x81818181, 0x8181817f, 0x817f817f, 0x817f817f,
+0x7f818181, 0x7f7f8181, 0x8181817f, 0x817f817f, 0x81817f7f, 0x81818181, 0x7f81817f, 0x817f817f,
+0x7f7f7f7f, 0x7f817f81, 0x7f818181, 0x817f7f7f, 0x817f7f81, 0x7f817f81, 0x7f7f817f, 0x7f7f7f7f,
+0x81817f81, 0x7f7f7f7f, 0x817f8181, 0x7f7f817f, 0x8181817f, 0x7f81817f, 0x7f818181, 0x7f7f7f7f,
+0x7f7f7f7f, 0x7f7f7f81, 0x7f818181, 0x7f818181, 0x8181817f, 0x7f7f8181, 0x817f7f81, 0x7f817f7f,
+0x817f7f7f, 0x7f7f7f81, 0x7f7f8181, 0x7f817f81, 0x817f7f81, 0x7f7f7f81, 0x7f817f7f, 0x7f7f7f81,
+0x817f817f, 0x817f7f7f, 0x81818181, 0x7f818181, 0x81818181, 0x81818181, 0x7f7f7f81, 0x8181817f,
+0x81818181, 0x7f817f7f, 0x817f7f81, 0x7f7f8181, 0x7f818181, 0x8181817f, 0x8181817f, 0x817f7f81,
+0x7f817f7f, 0x81817f7f, 0x817f8181, 0x7f817f7f, 0x7f81817f, 0x81817f7f, 0x7f817f7f, 0x817f7f7f,
+0x817f7f7f, 0x7f817f81, 0x8181817f, 0x817f7f7f, 0x7f817f81, 0x81817f81, 0x817f817f, 0x7f7f7f81,
+0x7f817f81, 0x7f817f7f, 0x817f817f, 0x817f7f81, 0x7f7f7f7f, 0x81817f81, 0x7f818181, 0x81817f81,
+0x817f8181, 0x7f817f7f, 0x81817f81, 0x817f7f81, 0x7f7f7f7f, 0x81817f81, 0x81817f81, 0x81817f81,
+0x81817f7f, 0x7f81817f, 0x81818181, 0x7f7f8181, 0x817f817f, 0x817f8181, 0x817f7f7f, 0x8181817f,
+0x81817f7f, 0x8181817f, 0x7f817f81, 0x81817f7f, 0x81818181, 0x817f7f7f, 0x7f81817f, 0x817f817f,
+0x81818181, 0x817f7f81, 0x817f817f, 0x817f7f7f, 0x81817f7f, 0x7f7f8181, 0x817f7f81, 0x8181817f,
+0x7f818181, 0x7f817f81, 0x8181817f, 0x7f7f7f81, 0x8181817f, 0x81818181, 0x7f7f8181, 0x7f7f7f7f,
+0x7f81817f, 0x817f8181, 0x817f817f, 0x7f81817f, 0x81818181, 0x7f817f7f, 0x7f7f7f7f, 0x7f7f7f7f,
+0x7f7f8181, 0x817f8181, 0x817f817f, 0x7f7f7f81, 0x817f7f7f, 0x7f7f817f, 0x7f817f7f, 0x817f8181,
+0x81817f81, 0x817f8181, 0x7f81817f, 0x817f8181, 0x817f8181, 0x817f7f81, 0x7f7f817f, 0x7f818181,
+0x7f7f817f, 0x7f7f7f7f, 0x817f8181, 0x7f7f7f7f, 0x8181817f, 0x817f8181, 0x81818181, 0x817f7f7f,
+0x7f7f817f, 0x817f7f7f, 0x817f817f, 0x7f818181, 0x8181817f, 0x817f817f, 0x7f7f7f7f, 0x7f81817f,
+0x7f817f81, 0x81818181, 0x7f817f7f, 0x817f817f, 0x7f7f7f7f, 0x817f7f81, 0x7f7f8181, 0x81817f81,
+0x81818181, 0x81817f81, 0x7f7f817f, 0x81818181, 0x817f8181, 0x7f81817f, 0x81817f7f, 0x7f81817f,
+0x817f8181, 0x81818181, 0x7f7f7f81, 0x81817f81, 0x817f7f7f, 0x817f8181, 0x7f7f817f, 0x7f7f8181,
+0x7f81817f, 0x7f818181, 0x7f81817f, 0x7f7f817f, 0x7f81817f, 0x7f7f7f81, 0x7f81817f, 0x817f8181,
+0x81817f81, 0x81818181, 0x817f8181, 0x81818181, 0x7f81817f, 0x7f7f8181, 0x7f81817f, 0x81817f81,
+0x7f818181, 0x81818181, 0x817f7f7f, 0x7f7f7f7f, 0x8181817f, 0x81817f7f, 0x7f81817f, 0x81818181,
+0x81817f81, 0x81817f7f, 0x7f7f817f, 0x817f7f7f, 0x8181817f, 0x81817f81, 0x81817f81, 0x8181817f,
+0x817f817f, 0x81817f7f, 0x7f817f7f, 0x817f817f, 0x817f7f7f, 0x8181817f, 0x7f7f7f7f, 0x817f817f,
+0x817f8181, 0x7f817f7f, 0x7f817f7f, 0x7f81817f, 0x7f7f817f, 0x7f817f7f, 0x7f7f8181, 0x7f7f7f7f,
+0x7f81817f, 0x817f817f, 0x7f7f817f, 0x7f7f8181, 0x7f7f7f7f, 0x817f7f7f, 0x7f81817f, 0x81818181,
+0x7f7f817f, 0x7f81817f, 0x7f7f7f7f, 0x7f7f8181, 0x7f7f8181, 0x81818181, 0x817f7f7f, 0x81818181,
+0x81817f81, 0x817f817f, 0x7f817f81, 0x7f7f8181, 0x7f7f7f81, 0x81817f81, 0x7f7f7f81, 0x817f7f7f,
+0x817f817f, 0x817f8181, 0x7f817f81, 0x817f7f7f, 0x7f817f7f, 0x7f7f7f81, 0x81817f7f, 0x7f7f7f81,
+0x7f817f7f, 0x7f81817f, 0x817f817f, 0x7f7f8181, 0x7f81817f, 0x8181817f, 0x7f7f7f7f, 0x7f7f817f,
+0x7f7f7f7f, 0x7f817f7f, 0x7f7f817f, 0x7f817f81, 0x817f817f, 0x81817f7f, 0x7f81817f, 0x8181817f,
+0x817f7f81, 0x7f7f7f81, 0x81818181, 0x7f817f81, 0x81818181, 0x7f818181, 0x817f7f7f, 0x81818181,
+0x81818181, 0x7f7f7f7f, 0x8181817f, 0x7f7f7f81, 0x81818181, 0x7f7f817f, 0x817f7f81, 0x7f81817f,
+0x817f817f, 0x7f7f7f81, 0x7f81817f, 0x7f81817f, 0x7f818181, 0x817f817f, 0x81817f7f, 0x7f7f817f,
+0x7f818181, 0x7f817f7f, 0x7f7f8181, 0x817f817f, 0x81817f7f, 0x7f7f7f81, 0x817f817f, 0x7f7f817f,
+0x81817f7f, 0x7f7f7f7f, 0x7f81817f, 0x817f7f7f, 0x7f7f8181, 0x7f7f8181, 0x7f7f817f, 0x7f81817f,
+0x81817f81, 0x817f7f81, 0x7f81817f, 0x81817f7f, 0x817f8181, 0x817f8181, 0x817f7f7f, 0x7f7f7f7f,
+0x7f7f7f7f, 0x81817f81, 0x817f817f, 0x81817f81, 0x7f7f7f7f, 0x817f817f, 0x817f7f81, 0x81817f81,
+0x817f7f81, 0x817f7f7f, 0x81817f81, 0x817f7f81, 0x7f81817f, 0x81817f7f, 0x7f818181, 0x8181817f,
+0x7f7f7f81, 0x81817f81, 0x7f817f81, 0x81818181, 0x817f8181, 0x7f7f8181, 0x81818181, 0x817f7f81,
+0x817f8181, 0x81817f7f, 0x8181817f, 0x817f817f, 0x8181817f, 0x7f818181, 0x81817f81, 0x81818181,
+0x817f817f, 0x817f7f7f, 0x7f7f7f7f, 0x7f7f7f81, 0x7f817f81, 0x81817f81, 0x7f7f8181, 0x8181817f,
+0x817f7f81, 0x7f818181, 0x7f7f817f, 0x7f81817f, 0x81818181, 0x81817f7f, 0x7f817f7f, 0x817f8181,
+0x7f7f8181, 0x81817f81, 0x7f7f8181, 0x817f7f7f, 0x817f7f7f, 0x817f7f81, 0x7f817f7f, 0x81817f81,
+0x7f7f817f, 0x817f817f, 0x817f8181, 0x7f817f7f, 0x7f817f7f, 0x8181817f, 0x817f8181, 0x817f7f7f,
+0x817f7f81, 0x817f8181, 0x8181817f, 0x7f818181, 0x7f818181, 0x7f7f7f81, 0x817f7f81, 0x7f817f81,
+0x81817f81, 0x817f8181, 0x817f7f7f, 0x817f7f7f, 0x81818181, 0x7f7f7f81, 0x817f817f, 0x817f7f81,
+0x81817f7f, 0x7f818181, 0x7f7f817f, 0x7f818181, 0x7f7f8181, 0x7f817f7f, 0x817f8181, 0x81817f81,
+0x81818181, 0x7f817f7f, 0x81817f81, 0x7f817f81, 0x817f7f81, 0x7f7f7f81, 0x81817f7f, 0x7f817f7f,
+0x7f7f8181, 0x817f8181, 0x7f818181, 0x8181817f, 0x81817f81, 0x817f7f7f, 0x7f817f81, 0x81818181,
+0x817f817f, 0x81818181, 0x817f7f81, 0x817f7f7f, 0x817f817f, 0x7f817f81, 0x7f817f7f, 0x817f7f81,
+0x7f818181, 0x817f7f7f, 0x7f81817f, 0x81817f7f, 0x817f8181, 0x817f8181, 0x81818181, 0x817f7f81,
+0x7f7f817f, 0x81817f7f, 0x8181817f, 0x7f7f8181, 0x7f81817f, 0x8181817f, 0x817f7f81, 0x7f81817f,
+0x817f817f, 0x7f7f817f, 0x817f7f7f, 0x8181817f, 0x7f7f817f, 0x7f81817f, 0x8181817f, 0x7f81817f,
+0x81818181, 0x81818181, 0x7f81817f, 0x817f7f7f, 0x817f7f7f, 0x817f7f81, 0x7f818181, 0x817f7f7f,
+0x817f7f7f, 0x81817f81, 0x7f817f81, 0x7f817f7f, 0x817f8181, 0x7f81817f, 0x7f7f817f, 0x81817f7f,
+0x7f7f7f7f, 0x817f7f81, 0x81817f81, 0x817f817f, 0x7f7f8181, 0x817f7f81, 0x7f7f8181, 0x81818181,
+0x7f7f7f81, 0x81817f7f, 0x817f7f81, 0x8181817f, 0x7f7f7f81, 0x817f7f7f, 0x81818181, 0x81817f7f,
+0x7f817f7f, 0x817f7f7f, 0x81817f7f, 0x81817f7f, 0x817f7f7f, 0x81817f7f, 0x817f8181, 0x7f81817f,
+0x7f7f7f7f, 0x817f817f, 0x817f7f81, 0x8181817f, 0x817f7f7f, 0x7f817f7f, 0x8181817f, 0x81817f81,
+0x817f7f81, 0x7f7f7f81, 0x7f7f7f81, 0x7f818181, 0x7f817f81, 0x81818181, 0x817f8181, 0x8181817f,
+0x7f817f7f, 0x817f8181, 0x7f818181, 0x817f7f81, 0x7f817f7f, 0x7f7f8181, 0x817f817f, 0x817f8181,
+0x7f81817f, 0x7f7f817f, 0x7f7f8181, 0x7f7f817f, 0x8181817f, 0x81817f81, 0x817f8181, 0x7f7f7f81,
+0x8181817f, 0x8181817f, 0x8181817f, 0x7f7f7f81, 0x8181817f, 0x7f818181, 0x81818181, 0x7f7f7f81,
+0x7f817f7f, 0x81818181, 0x817f8181, 0x817f8181, 0x7f7f7f7f, 0x817f7f81, 0x817f817f, 0x817f7f81,
+0x81818181, 0x817f8181, 0x7f7f8181, 0x7f7f8181, 0x817f817f, 0x81817f7f, 0x7f7f8181, 0x817f8181,
+0x7f7f817f, 0x7f7f817f, 0x7f817f81, 0x7f817f7f, 0x7f818181, 0x7f81817f, 0x81817f7f, 0x817f8181,
+0x817f8181, 0x7f818181, 0x8181817f, 0x7f817f7f, 0x81817f81, 0x7f7f8181, 0x817f7f81, 0x817f8181,
+0x7f7f7f7f, 0x817f7f7f, 0x7f817f81, 0x7f7f7f81, 0x7f7f7f81, 0x7f7f7f81, 0x81818181, 0x81817f81,
+0x7f817f7f, 0x7f818181, 0x817f7f81, 0x8181817f, 0x81817f7f, 0x8181817f, 0x7f81817f, 0x7f817f81,
+0x817f8181, 0x817f7f7f, 0x7f7f7f7f, 0x8181817f, 0x7f818181, 0x7f81817f, 0x7f7f8181, 0x7f7f7f81,
+0x817f817f, 0x81817f7f, 0x7f81817f, 0x81817f7f, 0x7f818181, 0x817f8181, 0x81818181, 0x8181817f,
+0x81817f7f, 0x7f817f7f, 0x817f8181, 0x81817f7f, 0x7f7f7f7f, 0x7f7f7f7f, 0x81817f81, 0x817f817f,
+0x817f8181, 0x81817f81, 0x81817f81, 0x7f817f7f, 0x7f7f817f, 0x7f7f7f81, 0x7f7f7f7f, 0x8181817f,
+0x81817f81, 0x7f817f7f, 0x81817f81, 0x81817f81, 0x7f817f7f, 0x7f7f817f, 0x81817f81, 0x817f8181,
+0x81817f81, 0x8181817f, 0x7f7f7f81, 0x817f8181, 0x81817f7f, 0x81817f81, 0x817f8181, 0x817f8181,
+0x817f817f, 0x817f7f7f, 0x81817f7f, 0x7f817f81, 0x7f7f8181, 0x7f7f7f7f, 0x7f818181, 0x81817f81,
+0x817f8181, 0x817f7f7f, 0x817f817f, 0x8181817f, 0x81818181, 0x7f817f81, 0x81817f7f, 0x81818181,
+0x7f818181, 0x817f817f, 0x7f7f7f81, 0x817f817f, 0x7f7f817f, 0x817f817f, 0x7f7f7f7f, 0x817f7f7f,
+0x817f7f7f, 0x7f817f81, 0x7f7f817f, 0x81817f7f, 0x7f817f7f, 0x817f7f81, 0x817f817f, 0x817f817f,
+0x817f817f, 0x7f817f81, 0x7f818181, 0x7f7f7f81, 0x7f817f81, 0x81817f81, 0x81818181, 0x7f817f7f,
+0x7f7f7f81, 0x817f817f, 0x7f817f7f, 0x817f7f81, 0x7f7f7f7f, 0x817f8181, 0x7f7f7f7f, 0x817f817f,
+0x81818181, 0x81818181, 0x8181817f, 0x81817f81, 0x81818181, 0x817f8181, 0x7f817f7f, 0x7f817f81,
+0x817f8181, 0x7f818181, 0x817f7f81, 0x817f7f7f, 0x7f7f817f, 0x8181817f, 0x817f7f7f, 0x7f817f7f,
+0x7f7f7f7f, 0x7f81817f, 0x7f7f817f, 0x7f81817f, 0x81817f81, 0x817f8181, 0x7f817f81, 0x817f8181,
+0x81818181, 0x817f817f, 0x81817f81, 0x817f817f, 0x817f8181, 0x817f7f7f, 0x7f7f7f7f, 0x7f7f7f7f,
+0x81817f81, 0x7f81817f, 0x817f7f81, 0x7f818181, 0x81817f7f, 0x7f7f8181, 0x7f7f8181, 0x7f817f7f,
+0x8181817f, 0x7f81817f, 0x8181817f, 0x81818181, 0x81817f7f, 0x7f7f817f, 0x81817f81, 0x8181817f,
+0x7f81817f, 0x7f817f81, 0x7f7f817f, 0x7f817f7f, 0x7f817f7f, 0x817f8181, 0x81817f81, 0x7f7f7f7f,
+0x7f817f7f, 0x81817f7f, 0x7f7f7f7f, 0x817f817f, 0x7f7f7f81, 0x817f7f81, 0x7f818181, 0x7f7f8181,
+0x7f817f81, 0x7f817f7f, 0x8181817f, 0x7f7f7f81, 0x7f7f8181, 0x81818181, 0x7f7f8181, 0x7f817f7f,
+0x7f7f8181, 0x7f81817f, 0x7f7f8181, 0x81818181, 0x7f817f7f, 0x7f7f8181, 0x7f817f7f, 0x8181817f,
+0x7f817f7f, 0x817f7f7f, 0x81817f81, 0x7f817f81, 0x817f817f, 0x7f817f81, 0x7f817f7f, 0x81818181,
+0x7f817f81, 0x7f7f8181, 0x7f81817f, 0x81818181, 0x7f7f7f81, 0x7f817f7f, 0x7f7f7f7f, 0x7f817f81,
+0x7f81817f, 0x817f7f7f, 0x817f8181, 0x7f817f7f, 0x817f7f81, 0x7f7f7f7f, 0x7f817f7f, 0x7f817f81,
+0x817f7f7f, 0x817f8181, 0x7f7f7f7f, 0x817f7f81, 0x81817f7f, 0x81818181, 0x817f817f, 0x81818181,
+0x7f7f7f81, 0x7f7f7f81, 0x7f7f7f7f, 0x81817f81, 0x7f81817f, 0x7f7f7f81, 0x7f7f7f81, 0x81817f7f,
+0x817f7f81, 0x817f7f81, 0x7f817f7f, 0x7f7f7f7f, 0x8181817f, 0x81817f7f, 0x7f7f7f7f, 0x7f818181,
+0x7f818181, 0x81818181, 0x817f8181, 0x81817f7f, 0x7f7f8181, 0x817f817f, 0x7f818181, 0x7f7f8181,
+0x7f7f817f, 0x7f7f8181, 0x7f7f7f7f, 0x8181817f, 0x81818181, 0x817f8181, 0x7f7f7f7f, 0x7f81817f,
+0x81817f7f, 0x7f7f8181, 0x81817f81, 0x817f7f7f, 0x817f7f7f, 0x7f817f81, 0x817f7f7f, 0x81817f7f,
+0x817f817f, 0x7f7f7f81, 0x817f7f7f, 0x817f817f, 0x817f7f7f, 0x817f8181, 0x81818181, 0x7f81817f,
+0x7f7f8181, 0x7f81817f, 0x81817f7f, 0x7f818181, 0x81817f81, 0x817f7f81, 0x7f7f8181, 0x7f817f81,
+0x7f7f7f81, 0x7f7f7f81, 0x7f7f7f7f, 0x817f8181, 0x8181817f, 0x817f7f81, 0x817f7f81, 0x7f817f81,
+0x7f7f817f, 0x7f817f81, 0x7f817f7f, 0x7f817f81, 0x81818181, 0x81818181, 0x7f7f7f7f, 0x81818181,
+0x7f817f7f, 0x81818181, 0x7f81817f, 0x7f817f81, 0x81817f7f, 0x817f7f81, 0x7f7f817f, 0x7f817f7f,
+0x7f818181, 0x7f7f817f, 0x7f817f7f, 0x7f7f7f7f, 0x817f8181, 0x81817f81, 0x817f7f81, 0x7f7f7f81,
+0x81818181, 0x7f817f7f, 0x81818181, 0x7f818181, 0x817f7f81, 0x7f817f7f, 0x81818181, 0x81818181,
+0x7f817f81, 0x7f7f7f7f, 0x81817f7f, 0x7f818181, 0x81817f7f, 0x81817f81, 0x8181817f, 0x817f817f,
+0x817f817f, 0x817f7f81, 0x7f7f8181, 0x817f7f7f, 0x817f8181, 0x7f7f7f7f, 0x7f7f7f7f, 0x817f7f81,
+0x817f7f7f, 0x7f7f8181, 0x7f817f81, 0x7f81817f, 0x817f7f7f, 0x7f7f7f7f, 0x7f7f8181, 0x7f7f817f,
+0x817f7f7f, 0x81818181, 0x8181817f, 0x7f817f7f, 0x7f7f8181, 0x81817f81, 0x7f81817f, 0x7f7f8181,
+0x817f7f7f, 0x817f7f81, 0x7f81817f, 0x7f7f7f81, 0x7f817f81, 0x8181817f, 0x817f7f81, 0x7f817f81,
+0x81817f81, 0x81817f81, 0x81817f7f, 0x7f7f817f, 0x817f7f81, 0x7f81817f, 0x817f817f, 0x7f817f81,
+0x817f7f81, 0x7f7f817f, 0x7f7f817f, 0x7f7f7f7f, 0x7f81817f, 0x7f7f817f, 0x8181817f, 0x817f7f7f,
+0x7f817f81, 0x7f817f7f, 0x7f81817f, 0x81817f81, 0x7f817f7f, 0x7f81817f, 0x81817f7f, 0x7f7f7f7f,
+0x817f817f, 0x7f7f7f7f, 0x7f81817f, 0x817f8181, 0x81818181, 0x7f81817f, 0x7f817f7f, 0x8181817f,
+0x817f817f, 0x81818181, 0x81817f81, 0x81817f81, 0x7f7f8181, 0x7f7f7f81, 0x7f7f7f7f, 0x8181817f,
+0x7f817f81, 0x817f7f81, 0x81818181, 0x7f7f8181, 0x81817f7f, 0x81818181, 0x7f81817f, 0x7f7f7f7f,
+0x81818181, 0x7f81817f, 0x7f7f7f81, 0x8181817f, 0x7f7f7f81, 0x7f7f7f81, 0x7f7f8181, 0x81818181,
+0x81818181, 0x7f7f8181, 0x7f817f81, 0x81817f7f, 0x7f7f817f, 0x817f7f81, 0x7f7f817f, 0x817f817f,
+0x81817f7f, 0x7f7f817f, 0x7f7f7f7f, 0x81817f81, 0x817f7f7f, 0x7f7f7f7f, 0x8181817f, 0x7f7f8181,
+0x7f817f7f, 0x7f817f81, 0x817f8181, 0x817f7f7f, 0x7f818181, 0x7f81817f, 0x817f817f, 0x7f7f8181,
+0x81817f7f, 0x7f7f7f7f, 0x817f7f81, 0x8181817f, 0x81818181, 0x7f817f81, 0x7f817f81, 0x7f81817f,
+0x7f81817f, 0x7f7f817f, 0x817f7f7f, 0x7f817f7f, 0x817f7f81, 0x7f7f817f, 0x817f8181, 0x7f7f7f7f,
+0x7f81817f, 0x7f7f817f, 0x817f817f, 0x817f817f, 0x7f817f7f, 0x7f7f7f7f, 0x7f81817f, 0x7f7f8181,
+0x817f7f81, 0x7f7f7f81, 0x7f818181, 0x817f817f, 0x7f7f817f, 0x7f817f81, 0x817f7f81, 0x81818181,
+0x81817f81, 0x7f7f7f81, 0x7f817f7f, 0x7f818181, 0x817f817f, 0x7f7f8181, 0x7f81817f, 0x7f81817f,
+0x817f7f81, 0x81818181, 0x7f817f81, 0x7f7f7f81, 0x7f81817f, 0x7f818181, 0x7f817f7f, 0x81817f81,
+0x81818181, 0x7f817f7f, 0x81817f81, 0x81817f81, 0x7f7f817f, 0x817f8181, 0x81818181, 0x7f81817f,
+0x81817f81, 0x7f7f817f, 0x7f7f817f, 0x7f817f81, 0x817f7f7f, 0x8181817f, 0x81817f81, 0x81818181,
+0x7f817f81, 0x7f7f7f7f, 0x81818181, 0x7f7f8181, 0x81817f81, 0x81817f7f, 0x7f7f817f, 0x7f7f7f7f,
+0x7f7f7f81, 0x7f7f8181, 0x7f7f7f7f, 0x7f7f7f81, 0x81817f81, 0x817f8181, 0x7f7f817f, 0x7f7f7f7f,
+0x817f817f, 0x8181817f, 0x817f8181, 0x7f7f7f7f, 0x7f7f7f81, 0x81817f7f, 0x7f7f7f7f, 0x7f7f817f,
+0x7f81817f, 0x7f7f7f81, 0x817f8181, 0x81817f81, 0x817f7f81, 0x7f7f817f, 0x7f81817f, 0x7f7f7f7f,
+0x81818181, 0x81817f81, 0x7f818181, 0x7f817f7f, 0x7f7f8181, 0x81817f81, 0x8181817f, 0x7f81817f,
+0x81818181, 0x7f818181, 0x817f7f81, 0x81817f7f, 0x81818181, 0x817f7f7f, 0x7f7f7f81, 0x817f7f7f,
+0x817f817f, 0x817f7f81, 0x81818181, 0x81817f81, 0x7f818181, 0x81817f7f, 0x817f817f, 0x7f81817f,
+0x817f7f81, 0x7f81817f, 0x8181817f, 0x7f7f7f7f, 0x8181817f, 0x7f7f817f, 0x7f817f7f, 0x817f7f7f,
+0x7f818181, 0x817f8181, 0x7f7f817f, 0x817f7f81, 0x7f817f81, 0x81817f81, 0x7f7f8181, 0x7f81817f,
+0x7f7f817f, 0x7f817f7f, 0x7f817f7f, 0x817f7f81, 0x817f817f, 0x817f7f81, 0x81818181, 0x7f7f817f,
+0x817f8181, 0x7f81817f, 0x7f817f7f, 0x81817f81, 0x7f7f817f, 0x81817f81, 0x7f7f817f, 0x81818181,
+0x81817f7f, 0x7f817f7f, 0x817f8181, 0x7f7f8181, 0x817f7f81, 0x81818181, 0x7f7f8181, 0x7f817f7f,
+0x7f817f7f, 0x817f817f, 0x817f7f81, 0x81817f81, 0x7f7f8181, 0x817f7f7f, 0x7f7f8181, 0x81817f81,
+0x7f817f7f, 0x817f8181, 0x817f817f, 0x81817f81, 0x81817f81, 0x7f7f817f, 0x7f7f8181, 0x7f7f7f81,
+0x81817f81, 0x7f81817f, 0x7f7f8181, 0x81818181, 0x817f7f7f, 0x7f81817f, 0x7f7f817f, 0x7f817f7f,
+0x7f818181, 0x7f81817f, 0x817f8181, 0x7f7f7f7f, 0x7f81817f, 0x7f818181, 0x817f817f, 0x81818181,
+0x7f818181, 0x7f817f81, 0x7f81817f, 0x7f7f8181, 0x817f7f81, 0x7f7f8181, 0x7f81817f, 0x7f7f7f81,
+0x7f818181, 0x7f817f7f, 0x7f7f8181, 0x7f7f8181, 0x7f818181, 0x81818181, 0x817f7f81, 0x817f8181,
+0x7f7f7f7f, 0x7f818181, 0x7f7f7f7f, 0x7f7f7f81, 0x817f8181, 0x7f7f7f7f, 0x817f7f7f, 0x7f818181,
+0x81818181, 0x7f7f817f, 0x81818181, 0x7f818181, 0x7f817f7f, 0x7f817f81, 0x7f7f8181, 0x81818181,
+0x7f7f7f81, 0x817f8181, 0x7f7f7f7f, 0x81818181, 0x81817f7f, 0x7f817f7f, 0x7f817f7f, 0x817f817f,
+0x7f817f81, 0x817f8181, 0x817f817f, 0x817f817f, 0x7f7f8181, 0x817f7f81, 0x7f7f8181, 0x7f7f7f81,
+0x7f7f7f7f, 0x7f7f7f7f, 0x8181817f
+
+e =
+34560
+
+k =
+6144
+
+rv_index =
+0
+
+iter_max =
+8
+
+iter_min =
+4
+
+expected_iter_count =
+8
+
+ext_scale =
+15
+
+num_maps =
+0
+
+code_block_mode =
+1
+
+op_flags =
+RTE_BBDEV_TURBO_SOFT_OUTPUT, RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE, RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN,
+RTE_BBDEV_TURBO_NEG_LLR_1_BIT_SOFT_OUT
+
+expected_status =
+OK
diff --git a/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e34560_sbd_posllr.data b/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e34560_sbd_posllr.data
new file mode 100644
index 000000000..13ad0908c
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_dec_c1_k6144_r0_e34560_sbd_posllr.data
@@ -0,0 +1,1225 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2017 Intel Corporation
+
+op_type =
+RTE_BBDEV_OP_TURBO_DEC
+
+input0 =
+0xf6bb1100, 0x4e433af1, 0x38f02efa, 0x0ee43d00, 0x5037c35f, 0x5620e729, 0xdd46c4d7, 0x5ae3e2f7,
+0xe0d7fa2f, 0x2e4ae20d, 0xa7190ebf, 0xd2382614, 0x98ffabe0, 0xf7ee0c5d, 0xffd8ddd7, 0x5f03ecc7,
+0xf9ffdde5, 0xf12446f6, 0x42693a3d, 0xfcc81aae, 0x2b0abc2c, 0x43f2a1b5, 0x044a302c, 0xf8db4fa6,
+0xcad2d138, 0x452b5526, 0xf3083fd3, 0x30ea4b22, 0xe2bd66f4, 0xbc37bebe, 0x001e183b, 0xfac72ebf,
+0x11965cf5, 0x70226311, 0xbd2016ec, 0xcf23f931, 0x4629f6fb, 0x3104de76, 0x00d7c529, 0xa0c8f8f4,
+0x2615c2e0, 0x23daf4b4, 0x56bf05c4, 0x9212102c, 0xa5fe400d, 0xec2a5497, 0x021032bc, 0x3b55340e,
+0xd6f1003c, 0x2a3625d0, 0xc81eee31, 0xa26644d7, 0x0ffb041c, 0x22cc20dc, 0x472cdd9b, 0xd8e24ed2,
+0x4ee740ab, 0x9bfc50e2, 0xbaaafe55, 0xeecd5c19, 0x57150c31, 0x9d3f13c1, 0x251749e1, 0x076ca964,
+0xde0da74b, 0xcafac963, 0x52d006e2, 0xe392d7f4, 0x3a20bcf6, 0xd1ee6fce, 0xe5cf850a, 0x31253fe7,
+0xcefed8a9, 0x520f9824, 0x5fdbe3c9, 0x9b123cc5, 0x6ad019f2, 0x171f0368, 0xc2fe2855, 0x0db851c2,
+0x095010d9, 0xd110df25, 0x1452a52c, 0xe5d1c2cc, 0x45dbef40, 0x2aef2353, 0x07af2e2a, 0x4f23ff6f,
+0x3ddb31cb, 0xa8430c49, 0xcaf7b329, 0xf933c5bc, 0xfe3c52b3, 0x7fd60a27, 0xce0ac9cf, 0xcff0cdd7,
+0x5400cd01, 0x7f81a8c1, 0x3c7f8178, 0x737f87f6, 0x5a5e7f81, 0x817f6ff6, 0x813b1381, 0x41d18173,
+0x810fb9f9, 0xb734c526, 0x50b3a6d3, 0x282d6e50, 0x81972d1f, 0x7d52bd53, 0x6749268b, 0xc681812d,
+0x2c93912e, 0xb1813bdc, 0xed817fd1, 0xa8813376, 0x7f3c7f41, 0x64569f7c, 0xf53d5c67, 0x1e70e6dd,
+0x024b6591, 0x817f7f8f, 0x0a722d63, 0x7fed578b, 0x7f239a7f, 0x81029081, 0xa8ca8b81, 0xb8577fde,
+0x818ec07f, 0x7fa87cb9, 0xa7084967, 0x81934650, 0x7f8171f7, 0xed3d144a, 0x8107739c, 0x3c6fe27f,
+0xcd6ed165, 0xfb3718a4, 0x5f708f4d, 0x14e45eb2, 0xfe5c7f7f, 0x7fc57f6a, 0x813683af, 0x817f7fb3,
+0x007fa7ef, 0xdcd681a1, 0xd72a1268, 0x769f7881, 0xb27fa281, 0x89c27fe3, 0x729b2f59, 0x73afb8a0,
+0xd07f4eb8, 0x81dd6d55, 0x7fa3d2cf, 0x7f81b51e, 0x7f7f7be7, 0x60819981, 0xf31158ad, 0xde7fe4b4,
+0x427f2dd3, 0xd3812481, 0x280de7a4, 0x0a653fc6, 0x8181261f, 0xd6aa8f81, 0x2c7fe484, 0x42df747f,
+0x7f5baa2d, 0xc1bd583c, 0x966b5031, 0xbe818725, 0x6b6444a4, 0x610023e7, 0x5f183b2c, 0xa77fb769,
+0xb2cb1581, 0x0881cc75, 0x8a8c6fdc, 0x558181e4, 0x107f947f, 0x749e4ca3, 0x8cb23db1, 0xce668132,
+0x70b848eb, 0x008a2430, 0x7fd3d77f, 0x682b35eb, 0x2e6aae34, 0xd42fa2cd, 0x3eab816f, 0xfdaf8196,
+0x04e43fcc, 0xf1819600, 0x7f6d64f2, 0x81ba8957, 0x81a781a2, 0xb169d67a, 0x7f4e557f, 0xe0818197,
+0x7b474ecc, 0x3f7b8154, 0x135684f8, 0x81b0fb81, 0x81e33e93, 0x815c817f, 0x810b818a, 0x4d445b34,
+0x95cf2bb0, 0x32c69b7d, 0x2640e181, 0x7fe8b8c8, 0x9bdd64f7, 0x22bfa50b, 0x8181c87f, 0xf7812486,
+0x7f977fa0, 0x5826a925, 0xce7fadf6, 0x9e73fb81, 0x538d7f0e, 0xe85dab87, 0xc3706181, 0x4181817f,
+0x7f7f15ca, 0x952ca87f, 0xa9748be0, 0xbf812477, 0xd081a553, 0x9a817f7f, 0x1f4cb192, 0x7f8181d5,
+0x2ba44ad2, 0x76605566, 0x7f1cd2b9, 0x446eae90, 0x8956b670, 0xaadc8b7f, 0x710b0a90, 0x83816439,
+0xc6ffc6d2, 0xf07f00fb, 0x7fa25582, 0x7fd11f3a, 0x7f104c81, 0x81d574fd, 0x81814081, 0x82b78e7f,
+0x2f29f42b, 0x277f4bff, 0xf49d4b81, 0x28581681, 0x22523281, 0x607ff910, 0x61ac1ad2, 0x58313ccf,
+0x8168a21f, 0x7fe61879, 0x817f21b3, 0x407f2f45, 0x7f5fa666, 0x81bc41fb, 0xfd81fb81, 0x0ed48163,
+0x81818181, 0x7f7b92fd, 0x44507d7f, 0xba45c9d3, 0x81852b64, 0x7fa918eb, 0x5f6ff5c6, 0xa4ad8181,
+0xc27f8f81, 0xb8af5481, 0x7fc5817d, 0x7a814ea2, 0xf77fcf36, 0x50913981, 0x81a01781, 0x5ea1a4ba,
+0x18d252b8, 0xc0416881, 0x7f817f1e, 0x0b4e38cf, 0x7ffb6922, 0xfca481b5, 0x7f1dc1ca, 0x7f560da2,
+0x7f7f813a, 0x1900a881, 0x6d4d8116, 0x617f0469, 0xb3118e81, 0x95408119, 0x817ff08a, 0x7fdc7f8b,
+0xf682a40a, 0x3381817f, 0x81b70d82, 0x7f7f6f81, 0x8190217f, 0x2f817f4b, 0xe195b209, 0x5ee39575,
+0x8150bae6, 0xa4fe8b7f, 0x7f7f654c, 0x7f921971, 0x53817f85, 0x1c7f5ff6, 0x5f35737f, 0xce7fc2c6,
+0x6c81817f, 0x7f7c410d, 0x5794308e, 0x15f4a87f, 0x7fb64d7b, 0x1d0a8181, 0xa8b67f37, 0x253b397f,
+0x887f92b7, 0x7f81767f, 0x81c18101, 0xaa2861c0, 0xbd691cd9, 0x81d74ef3, 0x81a78153, 0xcb7f819b,
+0xf681c5e7, 0x9f37817f, 0x3a7f869b, 0x56a41581, 0x04be8111, 0x4898b48b, 0xbc81465d, 0xb3815281,
+0x7f6a1d45, 0x1fa87fce, 0x810e81cc, 0x7f8d410c, 0x8190a193, 0x81817f81, 0x5dadcbb4, 0x81a83699,
+0x86a68164, 0xe27f1281, 0x682a7f27, 0x62a03cbd, 0x8181c75d, 0x39653881, 0xc6187e83, 0x617fd27f,
+0x81917f90, 0x57796c81, 0xdc7f567f, 0xad712381, 0xdd81ecbe, 0xec17667c, 0x929e5098, 0x857ffbbf,
+0x8d5b8153, 0x9769887f, 0x65173381, 0x66b8ad84, 0x043481b9, 0x81c05ca9, 0x449d4c48, 0x8c45bc82,
+0xca7f81ee, 0x2d8f33e1, 0x81e22f81, 0xca9eb542, 0x8e947fe5, 0xb642a4a8, 0x7f22c73f, 0x85a6176a,
+0x567f7ffb, 0x587f4243, 0xa2819225, 0x58307f9b, 0x2c6b0f81, 0x8130a068, 0x814fa904, 0x400a9f2d,
+0x30617fd6, 0x81720981, 0x97b98100, 0x0ca17c7f, 0xf1816081, 0x690f8181, 0x94165481, 0x81817f9d,
+0x81444268, 0x97759781, 0x8740267f, 0x757f1a7f, 0x7f7f81ca, 0x957fb87f, 0x816f723a, 0x4a8613f2,
+0x3bfef57b, 0x7f1274e8, 0x810ab05b, 0x7fb19ecd, 0xb07fc75f, 0x7fb2965f, 0x60abb881, 0xc229a8e9,
+0xb1817f26, 0xe324067f, 0x8181e344, 0x7ea59cac, 0xd21a7f65, 0x8d15989f, 0x09026bea, 0x1d7f933b,
+0xae81c181, 0xabf37147, 0x0d08da7f, 0xa7ac4b9e, 0x8281e044, 0x7f8195b1, 0x7ff844de, 0xe9057fed,
+0x85fcf1cd, 0xa89e7e2b, 0xf974a481, 0x1f813c6d, 0x237fcbbb, 0x655f8192, 0x8134062b, 0x6f91815d,
+0xdf3281e1, 0xe6fd817f, 0x72b3007f, 0x86caf9cf, 0xea812981, 0x6a8ad67c, 0x36aaa01d, 0xbb102886,
+0x812faf52, 0x6281de5a, 0x817f8174, 0xebff4735, 0x7894bf7c, 0x169e8194, 0x3bc281f8, 0xe69d2a15,
+0xb8e5b68d, 0x367f9b8b, 0xea818181, 0xeb7fbbb7, 0x9368a27f, 0x5af5e19e, 0x5f7f7f7f, 0xcd518181,
+0x7f948109, 0x817f4a81, 0xf8a0de7f, 0x667f7fa5, 0x1a8881c1, 0x8646b17f, 0xb0eb7f81, 0xe3fe2ba2,
+0x460d18da, 0x3db45835, 0xb0c2847e, 0x9c8681a0, 0x817ff88d, 0x7fec639d, 0x817f7f7f, 0x81810d2f,
+0xef28241e, 0x811d9db4, 0x4ac4ada5, 0x7ff29f7f, 0x7fd981ac, 0x7f815e23, 0xcc3dbc8a, 0x7c769b08,
+0x6a07ef50, 0x66599c9c, 0x7e007f92, 0x9381aa5a, 0x33471b81, 0x79b27d96, 0x6d5d9d5a, 0xbf40687d,
+0x7fbc408e, 0xae598111, 0x18222b1e, 0x0a7b817f, 0x7f4961b4, 0x81818f5e, 0xd5a8ae44, 0xe185bd50,
+0xb4a65d81, 0xab81c3d6, 0x5f814b7f, 0x8db72efc, 0xc0be14d5, 0x77336a45, 0x2dca7e7f, 0x81857f7f,
+0xf1d80b33, 0x1856b3dd, 0x789e75cd, 0x7f7f7f81, 0x8b7f6951, 0xc94cc5b6, 0x407f3f5b, 0x72c4b87f,
+0x8135f77d, 0xab02ec1c, 0x8db481e0, 0x77da84df, 0x897f5c49, 0x8181b24d, 0x7f54715e, 0x233ef77f,
+0x8165daa7, 0xd3813aa2, 0x7f7f7f18, 0x96e99677, 0x56814a72, 0xa4acba2e, 0x2683347f, 0x3d5b20ac,
+0x887fb981, 0x90a9ec91, 0x008ab581, 0x81588181, 0x5c017f7f, 0x10818181, 0x5d86a42d, 0xd8587f4f,
+0xed2035b1, 0x718168fc, 0xc3cccf7f, 0xaa812676, 0xa8d83930, 0xbdb119f6, 0x812b0288, 0xe17f7f7f,
+0x989ffd31, 0x9e564b12, 0xabfa3578, 0xacd85381, 0xaf7074e6, 0x93a34c11, 0xc1819896, 0x5a5fa673,
+0x6f8181ad, 0x4981167a, 0x817f965e, 0x961b7f29, 0xac539db6, 0x2b645dd8, 0x937fa506, 0xa1b900ba,
+0xdd7f7f78, 0x7f866ce7, 0x81a9247f, 0x50d67f53, 0x177a8b82, 0x277ffa7f, 0x7f0942da, 0x444b3181,
+0x9d8995aa, 0xbda844b9, 0xae765c85, 0x62818f7f, 0x307f7f00, 0xf37fe681, 0x817f7fab, 0x42e0813d,
+0x49f3c7c4, 0x7fd543b8, 0x818183f2, 0x7f4b5500, 0xe2357a7f, 0xdc3a8133, 0xd13913ff, 0xabfd587f,
+0x81c3814c, 0x667fab62, 0x9bf82b0c, 0xf84b9583, 0x6a28b2f0, 0x8154623f, 0x7f845e7f, 0x2750f07f,
+0x517f2d59, 0x7ffe4db5, 0x60077f7f, 0x81816e62, 0xc40a30dd, 0x67f22b7f, 0xec817f81, 0x7fb8c67f,
+0x98c9afd0, 0xb881ecaf, 0x6069c37f, 0x792c2c09, 0x709dc2de, 0x4481bb20, 0xd4b25981, 0xf8ef7792,
+0x7381ae17, 0x7fe05250, 0xc3eb637f, 0x6d350069, 0x327f457f, 0x8ce7b8ab, 0xb281c1da, 0x7f817f61,
+0xbbcf7fb1, 0xaf818145, 0xb77f5881, 0xb47ff1b2, 0xcec74a81, 0x5f81e7b4, 0x7f1b727f, 0x81b8701b,
+0x508106c4, 0x6d815f7f, 0xbc815bea, 0x464b00f2, 0x78818181, 0x7f7f4f81, 0x817e2c53, 0x817e7fa7,
+0x7f4da4a9, 0xdd444f23, 0x7f6cba39, 0x8141625a, 0x7f81813f, 0xcd7f817f, 0xa402814a, 0x817f049f,
+0x6fb981b4, 0x7867bd7f, 0x9b45bc81, 0xe7739f52, 0x7f816181, 0xab844448, 0x7f06497f, 0xe555c183,
+0x817fde68, 0x81bc0624, 0xe33f3a9b, 0x8122c673, 0x6c3d81d5, 0x392815dd, 0x26527f7f, 0xee649844,
+0x817f6fef, 0x81ce32d4, 0x102f81fe, 0x81967f81, 0xa42b9c20, 0x81813c81, 0x2a67a463, 0x90592c8a,
+0xc5810e67, 0x81d1dd81, 0xbd7f54e1, 0xf52a814e, 0x7f46a7b3, 0x5a89812b, 0x78e43eac, 0x7f776981,
+0x817fc5c2, 0x3f818181, 0xc556c337, 0x7f0081a9, 0x817ffe6b, 0x7f095f3d, 0x819b2281, 0xb45881ad,
+0xc0817f47, 0x81bd915a, 0xc7616b7f, 0x81e9817a, 0x44977f6c, 0xbc81307f, 0x7f9ac3c9, 0xff061265,
+0x3c7b0181, 0x13910e7f, 0xb499ed3c, 0xd850b881, 0x81781837, 0x7f97ff93, 0x81818f23, 0xb9b50d81,
+0x49aa4fbd, 0x6b361230, 0x148179d3, 0xbd81dd1f, 0x4cd5d0d0, 0x9ad1738a, 0x2c7f718f, 0x7f9f03b0,
+0x789d9ac2, 0x88db95fa, 0x9ae5ac64, 0x727f814c, 0xfa477dac, 0xa670a23f, 0x146afe7f, 0xd4d0451d,
+0x6d81819d, 0x9622acc1, 0x818161a2, 0x68263dca, 0x7fce818d, 0x998193ba, 0x9d81a486, 0x7eb97f7f,
+0x134470ec, 0x6681bde5, 0x4e2ea77f, 0x81777f7f, 0x7f7fa64f, 0xd3815a7d, 0x81fd4e50, 0x774481e8,
+0x7f6c8148, 0xe76b7f81, 0x881bb4e9, 0x7f944f3d, 0xe6da7f20, 0x54c68176, 0x210ebb45, 0xbed6267f,
+0xe22f2081, 0x8191ae8a, 0x7c7f257f, 0x667f811c, 0xe2edd355, 0xa4812181, 0x837f5481, 0x6d818120,
+0xb7aa7f8f, 0xc17f7081, 0x7fba986a, 0x819a81d5, 0xa9816681, 0x8129c4f5, 0x37ba21a7, 0x29d18a86,
+0x4be3ce96, 0x3981b184, 0x447fb50b, 0x261c8155, 0xc05ab18d, 0x777f7816, 0xe48be469, 0x81722d81,
+0x7f47a8a1, 0x924a8b72, 0xa2ef4ecd, 0x105c817f, 0x7f90709b, 0xbc81443a, 0xa82f7f65, 0x615d928c,
+0x7f81570d, 0x61b0919a, 0x7f33fc81, 0xe8817fca, 0x637ffb00, 0x9c337250, 0x817f8181, 0x08b01e0a,
+0x7f4ae897, 0xa0969a3c, 0x7f9d7fe8, 0xe024598e, 0x9e794d7f, 0x72fb988c, 0xf8936747, 0xacbd7f8e,
+0x4e7f9781, 0xa4b9f4ea, 0x50ccfbdd, 0x817f4795, 0xbcaf485f, 0x81811a25, 0xa97881c6, 0xecbd7fd7,
+0x6e89a832, 0x1e815f96, 0x74d0437f, 0x858101b9, 0xbf1b7f8b, 0xcb7fdc9e, 0x1901bda8, 0x4c40c087,
+0x5884f075, 0x7f561faf, 0xc3878172, 0xcd0081c4, 0xd93e8fa6, 0xe8748146, 0x4c7f207f, 0x20da2792,
+0xc0d37f7b, 0x909a0133, 0x3b6fb281, 0x69819ba1, 0x81984b27, 0x362ddda3, 0x3981727f, 0xe44c7f81,
+0x81b9d0bc, 0xebea7fa7, 0x81a47f2e, 0x81674391, 0x495500fa, 0x0eb881bf, 0x2e22f17e, 0x967f9e81,
+0xd2727906, 0xdbe8814d, 0x93cf4d6d, 0x23c3b57f, 0x57be5fe3, 0x2eee7f30, 0x1a501f81, 0x76aaba53,
+0x70817fdc, 0x817f2e1e, 0x28381f81, 0x1575817f, 0xc62845e6, 0x8181417f, 0x35d0230c, 0x606fcc28,
+0x7f792e44, 0xb7b7ea76, 0xad677f7f, 0x2b1eecee, 0x7f7fe450, 0xefcc6668, 0x264e511c, 0x27818181,
+0x81817f7f, 0xce82812c, 0x697f7fec, 0x7e859be9, 0xa1f65543, 0x8170a57f, 0x51231d81, 0x33c03182,
+0x81aa7f81, 0x6b7ff34e, 0x51812fcf, 0x7f7f7fe6, 0x6281718d, 0x1eb02c7f, 0x81d64570, 0xa18368e1,
+0x4ddb816f, 0x149b81d1, 0x067fa2c6, 0x92decc7f, 0x94001658, 0x814f6d6c, 0x79673f7f, 0x7ff28122,
+0x83b97f7f, 0x81248a43, 0xfda17ffe, 0x9e81bc81, 0x81090181, 0x7fdaa350, 0x927f54d4, 0x78fe2e89,
+0x7f3d097f, 0x147f2ea7, 0x7f85837f, 0x86a58181, 0xb7ad559c, 0x7796ae60, 0x4e7fef08, 0x2ea371f2,
+0x817f7f8c, 0x7fc181c5, 0x8101818e, 0xf1588178, 0x44062eb8, 0xb0832da0, 0x81527f81, 0x7f0e817f,
+0x8e06b3e5, 0xa6df2e5f, 0x9d7f7f81, 0xa14ba64d, 0x723d7f91, 0xdb81b64b, 0xb48c117f, 0xe75d0e81,
+0x8bd9ba3a, 0x1f817f7f, 0x81847f67, 0x25677f5f, 0x3568b529, 0x7fa2587f, 0x24b02027, 0x47ca91dc,
+0x81bba314, 0x7f844f7f, 0xbeb8aa0d, 0x9955fe5b, 0x007f9b81, 0xf0a27f6f, 0x1648e959, 0xc68193a6,
+0xbea6ebfd, 0x1654cf81, 0x8142d430, 0x2e7f6693, 0xcc788195, 0x11817f81, 0x3da98171, 0x4fdc5a9c,
+0x677fea81, 0x4c6ca0cf, 0x487f8181, 0x7f3b9013, 0x37387f7f, 0xc6b4217f, 0x27afb97f, 0x77b84002,
+0xd3a67fef, 0x987f8181, 0x9518817f, 0x5ad4fd7f, 0x7b818146, 0x583c5581, 0xd9643b81, 0x687f92f5,
+0x7f8109f2, 0xdfad937f, 0x79a45f7f, 0x007f9c0e, 0x6a6ba6ad, 0xa95bc7e9, 0x9be90653, 0x223381b7,
+0x7f7f64ce, 0x81813ea3, 0x037f4f7f, 0x617f7f9a, 0x6481f081, 0x81eb4a81, 0x7f9d9a6e, 0xe80e8a4b,
+0x4563f81e, 0x94db8781, 0xbf81bd04, 0x305d8236, 0x2c90d571, 0xa48e4600, 0x81633342, 0x2c537fde,
+0xc70f5d7f, 0x65bf6f7f, 0x547f9632, 0x05847f1a, 0x23818147, 0xd6d9459f, 0xc97fb761, 0x8196816d,
+0xb5417f5b, 0xb6f91bd9, 0x55b17fbd, 0x3e90c27f, 0x4f7fc37f, 0x7f8c855d, 0xef35817f, 0x295d7b03,
+0x3730377f, 0x9c811bac, 0x7fe3ca7f, 0xe87f8124, 0x7f7fe511, 0x2d7f7ca2, 0xba9bc726, 0xf07f9f81,
+0x4b476e9f, 0xaa338173, 0x5659708a, 0x817fb67f, 0x81811ded, 0x81817f90, 0xa3077f81, 0xf0d119d6,
+0xf4818752, 0xbd98271f, 0x95f610ed, 0x3fc227e0, 0x68139681, 0x3c6c2d81, 0x7f7f96cb, 0x3e8181b1,
+0xbbe681c6, 0xb47fd2eb, 0xfdd1b74f, 0x4381fe5f, 0xb081f399, 0x64a10081, 0x79ee3ee5, 0x9559c8a6,
+0x814ad4a8, 0x817f7531, 0x81813b81, 0xbfbf9773, 0xe27f81a4, 0x7fc14269, 0x917f8158, 0xaf9d89a7,
+0x81b22f81, 0x7f54d4d8, 0x0f39a503, 0xec9d3ea0, 0x35818131, 0x8c7d99a6, 0xc0158181, 0x53817f5e,
+0x817f81b0, 0x9a7f9a7d, 0xc081747f, 0x517f704d, 0x7f2db90e, 0xa6dfa67f, 0x36817fce, 0x30ae720e,
+0x7fd73d60, 0x5c593bd5, 0xf57f9d7d, 0x448151a3, 0xc82db29a, 0x019b5a75, 0x7f876729, 0xa69efc9d,
+0x78a67f81, 0x536c817f, 0x81e470d4, 0x56f270fd, 0x2934478f, 0x9c5a7f68, 0x4ecd81ef, 0x7f5c2b23,
+0x7f817f03, 0x827fb17f, 0x7f81c35e, 0x7d7f03f8, 0x7f5da67f, 0x8100671d, 0x06e1a8b0, 0x998d112a,
+0x9282ae98, 0xed72813b, 0x7fbc6bda, 0x7fa97f3e, 0x36d1510c, 0x0d81819c, 0x56f8fd97, 0x815081a4,
+0x7fc78133, 0x69d34542, 0x7fc1727f, 0x7fd22a97, 0x418a1df0, 0xf519077f, 0x7f6e697f, 0xa9817abc,
+0xf43917b5, 0x82e3d76b, 0x86327fe7, 0x7f7fb899, 0x9f81b0a4, 0x475381c2, 0xc62b92e8, 0x7f1b49a3,
+0x3679b9d7, 0x817f5364, 0xa87f7fc2, 0x45dcf6ba, 0x3470789d, 0x913e7fa5, 0x06b53681, 0x717f8de7,
+0x027f6352, 0x7f7fbe7f, 0x7a81df17, 0x0356fb00, 0x307462bf, 0x6716c56c, 0x8157c7b4, 0x7fcd8181,
+0x4b81dd07, 0x3b667f7f, 0x7fa6815c, 0xea37397f, 0x61e94781, 0x4e7f8177, 0x81436b5b, 0x4e818172,
+0x5b204b37, 0x115501b4, 0x81491681, 0x661468bf, 0x501f88b5, 0x7f4e63e3, 0x8146e97f, 0x7f09f895,
+0x7fd70e81, 0x7f7f7f16, 0x3f327fed, 0x05055631, 0x63b4ec13, 0xc03f16da, 0xa0af33c1, 0x942a7f42,
+0xb4ba6515, 0xe99d81de, 0x7f78d8b0, 0x446f2c42, 0x92cf7fde, 0x6b9e7f7f, 0x948181cd, 0x94b9ad81,
+0x582e8181, 0xc31748a9, 0x39c6d47f, 0xb2817fff, 0xc5817f81, 0xc6887fa4, 0xe69989e4, 0xa67e7a5c,
+0x09477f9a, 0x2d4d817f, 0xb24f81d1, 0x3ff77f7f, 0x6a66813b, 0xf5050547, 0xcf917f6c, 0x81917f7c,
+0xb8b23b81, 0xcab60081, 0xe17f7f81, 0x3b47547f, 0x457f4781, 0xe17e9c85, 0xd4b5ba00, 0x777fc3f4,
+0x8b013d8c, 0x5381a2dd, 0xf60c7f5b, 0xc3f2c212, 0x5c6c7f35, 0xc77fae7c, 0x7f790cc8, 0xe6848181,
+0x7f81584b, 0x813688e2, 0x4cff2987, 0xbeb48126, 0xc4be67bc, 0xb8738181, 0x886a9c7f, 0x519881a3,
+0x77fbd5c9, 0x4181c081, 0x20813287, 0x6121bb2d, 0x7f7f227d, 0x1a8181a6, 0x811a5d06, 0xc890a57f,
+0x7faf7ece, 0x83a36788, 0xd9fd8e37, 0x7f7b985e, 0x36819a38, 0xbd6096c4, 0x7de5be7f, 0x7bc68150,
+0x7f8831bb, 0x81818144, 0x434a63e0, 0xaea4ad6e, 0x407f2785, 0xe8df81ea, 0x4a148aa7, 0xf89f7f65,
+0x3c757f62, 0x7f81c80e, 0x81818881, 0x81caa47f, 0x9c570881, 0x1c1a8354, 0x2fa8008d, 0x7f7f81ac,
+0xa781d413, 0xa9a45530, 0x327f297f, 0x7f647f5c, 0x81a6324e, 0x81a954cd, 0x7f1c2881, 0xe30b2eb3,
+0x81b18181, 0x81157f18, 0x967f7f96, 0x819a7fbc, 0xcccf4fc2, 0xc43a48d5, 0x7fa33d74, 0x3aa97f50,
+0x5277817f, 0x69afad86, 0x7f81f278, 0x4fa29716, 0x91818170, 0xdc1a7f5c, 0x278159b1, 0xe87f069f,
+0xd28cc56b, 0x157f8181, 0x81339981, 0xcf818114, 0x6eba0b8d, 0xd281527f, 0x8249d583, 0xb37fbc43,
+0xc181357f, 0x819f6163, 0xaf194881, 0x7f9872a4, 0xf3c3ab2c, 0x47507f81, 0x523f812e, 0xff81d105,
+0x5851cbb0, 0x7fe881c3, 0x60cdbe81, 0xc838ccbe, 0x81817f7f, 0x1d76cb34, 0xe100407f, 0x81d78181,
+0x2f81817f, 0x927f3ac9, 0x3cc887bb, 0xda7d6d7f, 0x2c7f1e7f, 0xf58e41ee, 0xfb816281, 0xa211d47f,
+0x6eea4bf9, 0x297097b8, 0x9d819e81, 0xf6ef4156, 0x2afb4362, 0x7f16647f, 0x8e10c4c3, 0xb17f6181,
+0x3b9d2949, 0x53a6c867, 0x810faffb, 0x8197d27f, 0x41873a37, 0xc48d7f7f, 0x81b6fb69, 0x144b2b78,
+0x8181d5c4, 0x787fbc24, 0x4381929f, 0x95927f1b, 0xa3a5e451, 0xb48cc58d, 0x818e81d1, 0x9a81cbaf,
+0x713ac87f, 0x7faaa694, 0x9f7f81c3, 0xf65b307d, 0x7fdfa25e, 0xa0bae1fe, 0xf3813f12, 0x19817fc5,
+0xc0278a81, 0xe47f8158, 0x817fa281, 0x5bbc8181, 0xd63caaf9, 0x7fbf8181, 0x0054157f, 0x7f7f311c,
+0x7f817f56, 0x56c22692, 0x8143b624, 0x0845a315, 0x107a8119, 0xc1cd5c7f, 0x7f62e549, 0x7fbb757f,
+0x6b8dec74, 0x6893e220, 0xbb224ba9, 0x31819871, 0xdd2b4f57, 0x3d030250, 0xc1539dc4, 0x1c42df45,
+0x7f7f6631, 0xaa81eb8f, 0xa6d4edf5, 0x81ec1981, 0xc92d77f8, 0x1ba35b2c, 0x0e1fa0cd, 0xdd257f7f,
+0x817fa041, 0xe9815f81, 0x60f1b338, 0xb97f7fad, 0x097f857f, 0xae6a7f60, 0x145dbced, 0x81b7607f,
+0xd4647f3d, 0x7f7f52ec, 0x7fdbbea1, 0xc74feec6, 0x1c197f48, 0xb17d1d61, 0x2e68b081, 0xb717d181,
+0xda46377f, 0x105e81b7, 0x7f2e7f58, 0x67c33a7f, 0xb83f666b, 0x68518691, 0xc556f081, 0x7763c400,
+0x817fbc99, 0x3a18df21, 0xfbde9374, 0x667fc646, 0x737f7fe9, 0x7f987fbe, 0x27dcb107, 0x25f35d30,
+0x420adcd0, 0xab7a7f7f, 0x7f8a28c1, 0xcd7fc20e, 0x6ce69bcc, 0x7f308ce5, 0xb2c96e81, 0x95dbeb1e,
+0x7f7f567f, 0x6b7fa0a5, 0x997fed60, 0x9281da7f, 0x3f7f617f, 0x7fc4608e, 0x817f4781, 0xc36b7f81,
+0x7fddc17f, 0x6fe27020, 0x8a5a2b27, 0x3a4bfb81, 0xae9e4a81, 0x7f7fda7f, 0x5a7ff006, 0x39b6a0b7,
+0xb9721181, 0x725edb2f, 0x8903cf08, 0x81aa7cde, 0x7fe0817f, 0x6c9e7fe8, 0x7f5c8140, 0x819d8181,
+0x58777451, 0x7fdb4784, 0xc3186166, 0x817f458f, 0xdce8cdc9, 0x7840bd81, 0x1781954b, 0x60240082,
+0xca242d7f, 0x788428b6, 0xf67f8d7f, 0x657f7f8a, 0xbace8106, 0xb8816e93, 0xf9b07ff9, 0x818102fa,
+0x32028181, 0xfe7f8e27, 0x818d7f26, 0x7f0781a8, 0x7f7f73f3, 0xfaa78135, 0x7f81810b, 0x72676281,
+0x812ed271, 0x7f8a961b, 0x7f81817a, 0x367f4181, 0x03ecb2f0, 0x6c810a7f, 0x577f81b1, 0x81e889b8,
+0x7f7f707f, 0x7f90368c, 0x86a36487, 0x42b8c17f, 0x91816160, 0x8150b0a5, 0x81390fa1, 0x7f87d07f,
+0x448548d0, 0x32810b93, 0x7f20da7f, 0x5b6a7fed, 0x5c812d7f, 0x7f5a7f69, 0x0c36d681, 0x2ee0544a,
+0x817d861a, 0xa47fdaf7, 0x7c8127b1, 0x96216604, 0x4f8138de, 0x03e57e14, 0x73050f7f, 0x42007eeb,
+0xe303f07f, 0x2f8a7438, 0x8a7f7fbc, 0x866f8165, 0xf496535f, 0xea2d9bb2, 0x16e67386, 0x6bf837ab,
+0x411874b4, 0xa7c15c2a, 0x74bb7f72, 0x8181ab81, 0x81e33481, 0x68b47f7f, 0x957f8181, 0x947fcf27,
+0xb47f7b20, 0x997ca926, 0x5a457f0f, 0x87403699, 0x811e3ccd, 0xdb857d7f, 0xc9cec481, 0x2998d8c3,
+0x231fa37f, 0x876a2942, 0x812d7ff0, 0x7f90959a, 0x811598a2, 0x7f814697, 0x7f7e1467, 0xad3a8154,
+0x81813f26, 0x0851321a, 0xf77f9f7f, 0x76b16294, 0xa56c3e3a, 0x7fd5c569, 0x30dd8185, 0x7f7f819c,
+0x7f8a7f7f, 0x81dc4da7, 0xe1ce9eb9, 0x8181a2c8, 0x7fda81be, 0x01797f42, 0x7b7f89a8, 0x81e9de7f,
+0x7fa76fc9, 0xdebec9a0, 0x7f381e89, 0x81ba0d7f, 0x459a7f7c, 0x81ac8181, 0xb65e8279, 0xdf8174cb,
+0x6ea24abd, 0xb8486638, 0x81637f7f, 0x011d5c81, 0xc27ff63d, 0x81d48160, 0x7c81ba7f, 0x7ffa7f73,
+0x7f8881f0, 0xc2d6a15b, 0x7f5d7f7f, 0x06818fd5, 0x8c23ea91, 0xf3d8e75c, 0xab81be93, 0x817f7fa8,
+0xe57f816d, 0x6e81f27f, 0x81e566aa, 0x88397868, 0x45f9b7c1, 0x2c4d81e5, 0x52765111, 0x813e3d60,
+0x4f45c3e7, 0xef777f91, 0x3e7fc481, 0x3e810d42, 0x81c53f7d, 0x2f7f8481, 0x3a7f8157, 0xf1662881,
+0x81f03791, 0xaf818136, 0x476b7f7f, 0x6890cfa6, 0xe4f7e9ae, 0x81f6b9ba, 0xb0623aac, 0xea7f7031,
+0x72c30000, 0x407f8197, 0x8176917b, 0x81184acc, 0xdacf7fa6, 0x996cd37b, 0xa68175c8, 0x5e6082e3,
+0x067f927f, 0xc47f4481, 0x7fc58113, 0x7f561aff, 0x817f46b2, 0x7f7f8159, 0xcebbc57f, 0x72765b87,
+0x817f2f1e, 0x885c7c81, 0x7f7f65a9, 0xeded8987, 0x7f3bab81, 0x812f7f6b, 0xfc67d85a, 0x13297781,
+0x607f9621, 0x507fa647, 0x4e39ce7f, 0x81ff5c4b, 0xa246316c, 0x81457f7f, 0x5781812f, 0x1463aa9f,
+0xc35d7f14, 0xbcbb5771, 0xd7e45781, 0x636c7365, 0x07102b6e, 0x75e1337f, 0x7f2bb116, 0x257fa0f2,
+0x97597f40, 0x7f818810, 0x7f7f7f5c, 0xca7ff660, 0x9c916181, 0x903ea1cc, 0x6c8f7f81, 0xc2b07f25,
+0xa43d818c, 0x81f67fb3, 0x67f56081, 0x1ba55531, 0xa77fc6a5, 0xda479281, 0xe7647fdb, 0x7fd2f34d,
+0x1b7f4c68, 0x7f8c5781, 0xbcf18110, 0x7fd3b883, 0xde81687f, 0x81358948, 0xeb813d17, 0x25040181,
+0x7ff8a39c, 0xbc574351, 0xbe677c7f, 0x487b5068, 0x6c7f816c, 0x7f2dca81, 0xb8c7b17f, 0x7f869781,
+0x9c99f0ae, 0x437febc4, 0x289d81fe, 0xab74307f, 0x7c7b299a, 0x62593f52, 0x7f4e513a, 0x7f9b81c0,
+0x9e2c0de5, 0x43818175, 0x857064a0, 0xd17f8db2, 0xb0a055de, 0xf04ade7f, 0xe37d7fd6, 0x3956789a,
+0xcfbcb53a, 0x7fa39e7f, 0x7ed171a8, 0x49a65c89, 0x3ee166d9, 0x2daca6ca, 0x53d051e7, 0x957fc181,
+0x0000e873, 0x815fbf9b, 0xe986ac61, 0x7162fd81, 0xe428090f, 0xe2814730, 0xab8d9d3d, 0x8164e6da,
+0x8a6126e4, 0x81817f6e, 0xeb818281, 0x359f7f81, 0xb663c39c, 0x7fb856a8, 0x9d812e30, 0xd07c7f2e,
+0x6b58ceb5, 0x8181ca7f, 0x42c081b5, 0xd58a6fd8, 0x7faa9b85, 0x81818181, 0xbb3781f4, 0x7fa98173,
+0x17f17f7f, 0x7f819862, 0xd97f0781, 0x812f579a, 0x608196ec, 0x23458155, 0x5bc1a902, 0xaa39817f,
+0xcb207d81, 0x227f7f9c, 0x81a54ad1, 0x81027fb4, 0xb6711835, 0x8181a57f, 0x7fed8141, 0x7fa95ec0,
+0x7ffc7f8f, 0x572f81e8, 0x7ca87f81, 0x7fbeb67f, 0x637f814e, 0xcf11af7f, 0x307fb081, 0xaa85927f,
+0x6f5dd995, 0x81db817f, 0x68275869, 0x724dff18, 0x8176ef58, 0x54814c7e, 0xece02300, 0x5ad71a56,
+0x689e7fa7, 0xb67fa77f, 0x107f1359, 0x51a63bc0, 0x22c887ca, 0x0a0e34b7, 0x81587fae, 0xbb79604a,
+0xfbb7077f, 0x81967f81, 0x81227187, 0x8129817f, 0x43a84e8a, 0xb981a34b, 0x5d307f81, 0x4d7fe9bd,
+0xc973a181, 0x78647f8b, 0x00274105, 0x5d7a09e5, 0x6565a681, 0xfbd0ea6f, 0xf986037f, 0x377fc3e0,
+0x9ba57fe8, 0x4f7ff13c, 0xd61f7fa0, 0x817f7fbf, 0x7f3e25c7, 0x81c42fdc, 0xae398181, 0x3125afbf,
+0x7fed479c, 0xf4f52ff4, 0x7fc99d81, 0xaa417fb7, 0xa1324f81, 0xff7b817f, 0x167f6f86, 0x2a86c481,
+0xa127c15c, 0x6d8e0000, 0xcf207f6d, 0x6b815681, 0xd01f50e7, 0xab81e704, 0xce81a4e4, 0x7f177f7f,
+0xaa819181, 0x7f81a044, 0x1c0c7f5e, 0x4f0e56cf, 0x46a581ca, 0xb3d52970, 0x6fb3b2c8, 0x7f8189de,
+0xf0058133, 0xd181d0da, 0x7481c46e, 0x427fc7d5, 0xe4528188, 0x4a359b7f, 0xd1ae25bd, 0xb735818f,
+0x811a2117, 0xddd2829a, 0xec696aa1, 0x99cf945e, 0x518f3d7c, 0x8e814381, 0xa2819647, 0x85af7f43,
+0xc81d7f90, 0xb8361781, 0xb67f9a64, 0xc3d38181, 0x97b07dae, 0x54687f7f, 0x206d5b79, 0x437089ad,
+0x7f814881, 0x77b63840, 0x61816434, 0x9dca5e22, 0x818129bf, 0x8b49dd3b, 0xc792813a, 0x3b407f63,
+0x7fc48f8e, 0x7f96815a, 0x6b430c8b, 0x974ee1a1, 0x7f8181fa, 0xb47098a2, 0x81168181, 0x816b71f5,
+0x0a596d81, 0xa5945681, 0xa14181d0, 0xb4944bfa, 0x81f7816b, 0x7f7f287f, 0x7f81cc48, 0x6d819077,
+0x7dff7f58, 0x5a4e7f81, 0xb7ee6df2, 0x81712a85, 0x0a652e7f, 0x86a1277f, 0x3c568181, 0x7f817f65,
+0x64fb3e0b, 0x71a9687f, 0xa65c7f72, 0x3fb34043, 0x8132f77f, 0xec8133bf, 0x7f8119a5, 0x081f5bb1,
+0x7f81777f, 0xedcca8a1, 0x7ffe7f25, 0xec934f43, 0xdbcc8181, 0x64416881, 0x4a8d93f4, 0x7fb64c7f,
+0xf12f9bc2, 0x812a8f90, 0x1b9c32de, 0x30a30d81, 0xf079e16a, 0x633720c2, 0xad44fd53, 0x3c812f3b,
+0x56b32873, 0x0000b62f, 0x76cb58a6, 0x31086ead, 0x9c307f65, 0xec664f81, 0x7f6186cd, 0xb7047f39,
+0xe87f2ccd, 0xe79f8f3c, 0x88b34352, 0x7f6dec72, 0x8b4aca8c, 0x217f1c55, 0x53d76693, 0x7f984d2d,
+0x125abe92, 0x7f37677f, 0x4f819c81, 0x7fb23b2e, 0xd2c5ea58, 0x7fa7817f, 0x57817f7f, 0xd45239ec,
+0xc887fa03, 0x7f7f7f42, 0x8181444d, 0x2ba67f1a, 0x7fcc527f, 0x813d7f81, 0x68ad12aa, 0xa87f6763,
+0x62577f7c, 0x067f7f5a, 0x3201a788, 0x9872b0a1, 0x814548d0, 0x3a883096, 0xc4701d52, 0xb59381dd,
+0xdc3381a8, 0x816e3f7f, 0x4f57813e, 0x4679d77f, 0x9a14b75d, 0x8181da4b, 0x817f9d48, 0x52818181,
+0x2281c97f, 0xbfb92d7f, 0x1f6f357f, 0x2ca57f3d, 0xb9b4626f, 0xab4bba25, 0xf27f4b5a, 0x4b478a56,
+0x818181c3, 0x6a767f29, 0x81e16dcd, 0x4d818181, 0xd1819ce8, 0xdbce6082, 0x757f41bc, 0x777f7fbc,
+0x5fa9d103, 0x0241e8d6, 0x1bb381a1, 0xf08177b7, 0x00df007f, 0x3bcdbb5f, 0x5e7f710a, 0x7f3f7f1e,
+0x657f0f2b, 0x2ffae79b, 0x495c8110, 0x7f7f8150, 0xe8449f7f, 0x8434a77f, 0x42d56352, 0xfd717f8d,
+0x81c514b3, 0x7f147f50, 0x7f856696, 0x7f844c81, 0x8157714b, 0x50cba2ca, 0x73539ff7, 0xb5ed7fea,
+0x5d1f637f, 0xbc66496d, 0x68b633df, 0xea76156c, 0x7b4654a3, 0x81547f8d, 0x7f537f27, 0x5db64581,
+0x7f367f81, 0x7f81a08c, 0x81440000, 0x3965f076, 0x40977036, 0xcf81ee31, 0x6e7f19bd, 0x703a7f03,
+0xe94b81c6, 0x4330aa7f, 0x060411c3, 0x91f6f37f, 0xbdc9e781, 0x81b87f51, 0x4b6e228f, 0xbc3eb87f,
+0xad916bce, 0xdfb0976a, 0x98b86387, 0xb651bdee, 0x8cf46cb9, 0x9b819a8d, 0x9d8181f1, 0x7fe0ab97,
+0x714d0264, 0xb87f67a4, 0x7f9d3150, 0xe95c7f81, 0x81a7537c, 0x93f4d02e, 0x433a477f, 0xe5067fab,
+0x81de5836, 0x64667f81, 0xc5255988, 0x0a7f824f, 0xf97b7fbf, 0x40c97f82, 0xc1d47a74, 0x7f7f3081,
+0xfe49fc23, 0xba819538, 0xb87f5581, 0x5ea47fb2, 0x35b37292, 0xb9848178, 0x276f5235, 0x647f4ebd,
+0xee2a491a, 0xfd29bb60, 0x21f53728, 0xae9d817b, 0x2ba97f81, 0x6accd440, 0x7fbec77f, 0x909b817f,
+0x227f7f35, 0x767f22d5, 0x0ba3c2d1, 0xd38f817f, 0x467fd862, 0x673e8181, 0x7f3b7f81, 0x70427f81,
+0x6f725d24, 0x731d64de, 0x32a9816d, 0xc1817f7a, 0x627f8181, 0x7f947615, 0xc37f72d2, 0x7f7f4261,
+0xf147be64, 0xc481afab, 0x7fd9a5dc, 0x5c812690, 0x7c34783b, 0x9087817f, 0x7fd25245, 0xea5fcfb1,
+0x81817f81, 0xc84ae6b4, 0x8149c875, 0x814a1a7f, 0xab7f6881, 0x6e7f3d81, 0x3ca58181, 0x75cb4781,
+0x8181817f, 0x5ec4f2c5, 0x8165e07d, 0x643d6e7d, 0x78bd9764, 0x40817f24, 0x5f077581, 0x7f2ebb4b,
+0x7f7fa781, 0xe657ca7f, 0x0000ff21, 0x7fa9bf6a, 0x81c1c30f, 0x9138393c, 0xa2b38174, 0x7f4c24bc,
+0x2b918175, 0x7fea5d7f, 0x50c1a17f, 0x0bfefac7, 0x81fe4ea4, 0xab7f7fbd, 0x559b7fb9, 0xcb81e356,
+0xd7963f72, 0x7f7a1b81, 0x8c9cd9d3, 0xbf889d1f, 0x161a88cf, 0xe6a0abb9, 0xbb014f2b, 0x81fa947f,
+0x7f41509e, 0xb4480d7f, 0x7f7f8181, 0xeca6b540, 0xd27fc381, 0x3aaeb38f, 0x7f7f7f7f, 0x372a7f05,
+0xd6a34b81, 0xee378159, 0xcf8181b8, 0x07487fcf, 0xcbb4ed77, 0x29817fab, 0x7fe5b342, 0x63c3bb81,
+0x0724d1d8, 0x50e47f7f, 0xa67f8f93, 0x8181c37f, 0x28817a81, 0x7f81fb7f, 0xaab17f7f, 0x81997f7f,
+0xa423816f, 0xf953c16a, 0x4c2362cc, 0x81812bf3, 0x5a817f4a, 0xffcbcce0, 0x9c7f8776, 0x5b5a7f7f,
+0x64817f92, 0x5139c47c, 0xbe8573ce, 0xe5457f81, 0x2ca4815b, 0x503e14b8, 0x4ca75681, 0x907f7f7f,
+0xa2377d19, 0x7fd7c09a, 0x7fbc8191, 0x657f61a2, 0x814f5c81, 0x7f48607f, 0xa16f3ad5, 0x819d227f,
+0x247fc10e, 0x7f817f32, 0xc39981f5, 0xb357261b, 0x347f7027, 0xe3814506, 0xa1032e49, 0x979eb571,
+0xb06ac281, 0x81815e7f, 0x34b57fb7, 0x7ffe2681, 0xc181630b, 0xbda9ce3b, 0x81f9287f, 0x4ef12081,
+0xb86a54ba, 0xbc4d13c7, 0x81817fd9, 0x62817f1c, 0x7f7f4fa1, 0x847f7fce, 0x81bf68f5, 0xd7625f73,
+0x81e79d7f, 0x8137a1ca, 0x423581cb, 0x26580000, 0xd7d6811e, 0xce6e6c81, 0x8168173b, 0x498468b2,
+0x8c7c817f, 0x6f81b881, 0xad899a25, 0xd049e481, 0x7fdd817f, 0x63816bbe, 0x048b8d81, 0x8eb764c6,
+0x987b9ea5, 0x81fae493, 0x7f72817f, 0xa57fbd7f, 0x7f0f81b3, 0xb37f4a33, 0x2e092988, 0x1b172b25,
+0x09107f3e, 0x48f5fc7f, 0x69aaa80e, 0x184fe781, 0x7f9db5e6, 0x8195276c, 0x252a8181, 0x8b81ccfa,
+0x3c308181, 0x9d19b086, 0xf0d589f7, 0x207408ca, 0xe34e9ed0, 0xe67fbbf0, 0xc0996525, 0x0dca5881,
+0x813d4181, 0x7f729738, 0x0a865e5d, 0x8bbea581, 0x5c4aac3f, 0x8181a63f, 0xa1f0b873, 0xa92481d0,
+0x837f817f, 0x047fdd84, 0xc8767f2a, 0x441a81be, 0x818681aa, 0x05490179, 0xba81ba7f, 0xde246581,
+0x466d70d7, 0xb6bc3f5b, 0x5c428f2d, 0x8105cb77, 0x0206175a, 0x5f6ac2b1, 0x9a4d2a4d, 0x7fb0917d,
+0x1281ce12, 0x81028181, 0x41b0a4ad, 0x29973681, 0x973e992e, 0x81617dba, 0xc1818181, 0xb87fc1af,
+0x81137feb, 0x627f5210, 0x8181de1d, 0x7f615f70, 0xabbb817f, 0x817fc57f, 0xdbe5b6f3, 0x9c8a7f72,
+0x3c2826df, 0xae03d3b5, 0x7f6cc481, 0xd9c41c7f, 0x83ad7f81, 0x336370a8, 0x8bbfaf2e, 0x3561caa5,
+0x548d142c, 0x810366b5, 0xa981d36e, 0xbf3afc7f, 0x7fd78157, 0x61817bf1, 0x74afcdd7, 0x18ac3d61,
+0xcc45b6e0, 0x3d81af88, 0xf97934de, 0x947a8f81, 0x8b7fa6b8, 0xe0dd8981, 0x2d812381, 0x967f6409,
+0x24bc0b1d, 0xdb7fa943, 0x18197fc3, 0x47ef7f6b, 0x66a6bb7f, 0xd374af81, 0xf48e7f9f, 0x52399754,
+0xe1abbf6f, 0x04751d7f, 0x3690c581, 0x557fc3a6, 0xc1815413, 0x9086df7f, 0x81e57481, 0x81538167,
+0x4df9c981, 0x9463a57f, 0x81c5063a, 0x7f7eaa81, 0xa6dc9423, 0xabc07ffb, 0xd981817c, 0x816064ae,
+0x7f815dab, 0xc0b12da0, 0x1444be7f, 0x3a7781e0, 0x887f527f, 0xc0817f1f, 0x05cba881, 0x6599057f,
+0x817ffd53, 0xca907fab, 0x557f0d7f, 0x5d029ce9, 0x57818168, 0xc4093382, 0x52e5b33a, 0x763e09b7,
+0x814da277, 0xf9208cc5, 0x817f7fcb, 0x7f5fac7f, 0x6d7f6544, 0x7f0a7fec, 0xe7b4337f, 0x7fae8181,
+0xa8c5608c, 0x6f9bb388, 0xb27fc773, 0xf4acaa81, 0x1cad30ac, 0x2d817f8b, 0x2b817f16, 0xcca2a581,
+0xcb77dad4, 0x58487a22, 0x7fe57f69, 0x45387012, 0x73504724, 0x61357f81, 0xc77f8181, 0xabc7e11b,
+0x8181c16e, 0xa681ab27, 0x8c81c48f, 0xbd1de360, 0x9924337f, 0x7f230156, 0x3dd6a87f, 0x477f9381,
+0xbeb38181, 0x47815ccb, 0x8125817f, 0xb8057f7e, 0x7f7fc081, 0x46815873, 0x5f93ba81, 0x7f35767f,
+0x7f7f5a94, 0x748c84e5, 0x4c7ffc90, 0x7fcd247e, 0x44898e81, 0x1268ecc9, 0x81d2777f, 0xda42e7c7,
+0xee267f81, 0x7f5f269f, 0xe3d60c91, 0x81c97f0b, 0xd7b00000, 0x9b813a83, 0x7f7f8181, 0xb71cfa35,
+0xf5888156, 0x853e9cc5, 0x1c1c1014, 0x2e7f8b1b, 0x81bea644, 0x70f4e8d8, 0x8158a181, 0x18caad9f,
+0x3b28815e, 0x7f460155, 0x7f7f7aee, 0x444b51e5, 0x8682a381, 0x7f508181, 0x5e86466d, 0x7f81287f,
+0x7f7c7f50, 0x8173e4de, 0x4c747a65, 0x69816cd7, 0x6674813b, 0x48274e90, 0x92ccf278, 0x99f181c7,
+0x81b20243, 0xbf4b4b81, 0x81d981f4, 0xa1e981dd, 0x6c7f7b6e, 0x98cad579, 0x9a7f1685, 0x81e8812e,
+0x5d7fcf52, 0x37819772, 0xdb437fab, 0x1d83782a, 0xd3ff71b3, 0xc7e28181, 0x81817ca6, 0x1808127f,
+0xb515639d, 0x812c8108, 0xa2a97f14, 0xdd8102c6, 0x727f7f98, 0x5f197f19, 0x7b22817f, 0x46562e7f,
+0x59b89c7f, 0xaba28d81, 0x5e4e7181, 0x909da6b9, 0x817d8128, 0x9c167abf, 0x3ef4817f, 0xf5628d72,
+0x97727fbb, 0x88c6a600, 0x81c9927f, 0x817443e0, 0x81ac7f7f, 0x7fec67cc, 0xc353bb96, 0x4caae113,
+0x7fa37fd9, 0x525c45dc, 0xdf798ba6, 0x7c811049, 0x812570c7, 0x7f788a6b, 0x797f1fef, 0x2022fd81,
+0x38870936, 0x813f7d7f, 0x81810941, 0x6b75817f, 0x5aa11953, 0xcc7f7f81, 0x61778581, 0x5e458181,
+0xcfff7f90, 0x9020747f, 0xb4e35ad5, 0xea0e8109, 0x21f97f13, 0x41c07f40, 0xc6ddc4ad, 0x085227c8,
+0x11dc9f85, 0x7fda7f55, 0x5a92b34c, 0x11659b4d, 0x000081bc, 0x81816781, 0x81cce139, 0xf165d51c,
+0x810a817f, 0x7f7f82d6, 0xb5b3817f, 0x40909bfb, 0x7f04a01f, 0xd0288164, 0x810164f3, 0x59778b81,
+0xc87f2997, 0x9d99417f, 0x65528173, 0x727f454a, 0x9f187fd9, 0x37948141, 0x217fcf7f, 0x81818319,
+0xc27f817f, 0x47817f81, 0x756e817f, 0xa28c8cd3, 0x84b77f81, 0x44ef8e4f, 0x7f7f7f7f, 0x932e2c45,
+0x680d20a8, 0x817f1122, 0x52128a21, 0x2b8136ff, 0x0b7f817f, 0xda8c817f, 0x24c17f7f, 0x3dcb39b7,
+0x81d18181, 0x81fe1a81, 0x0590978b, 0x71b20319, 0x7f65bfb4, 0x4fb42290, 0xde1a7fd2, 0xc8bd77d3,
+0x917f32a0, 0xb03fd9db, 0x4c1e872b, 0x814f5481, 0x44817f7d, 0x398a887f, 0x4a19e8ac, 0x4d818189,
+0xc3818181, 0x7f8198dc, 0xb77f527f, 0x817fe681, 0xa83d818c, 0x420b5e81, 0x6e5adbbf, 0x7abd56c4,
+0x717d7f7f, 0xc7811c0c, 0x767fba89, 0x6d1d5106, 0x5a06df17, 0x86c28181, 0xcdd6888e, 0x0e747f8a,
+0xde81a9c3, 0x45459db8, 0x81114e22, 0xbd7f8197, 0x3c3d85cf, 0x8c815fe8, 0x544d7f64, 0x81986177,
+0x8c20a0b5, 0x7f4b8178, 0x17db6031, 0x7f42df7f, 0xee93cc0f, 0x8ab829b2, 0x29a04e65, 0xfc30035f,
+0xc57b7f7f, 0xe51ef77f, 0x7fd95481, 0x76957f7f, 0x819f945e, 0xc91a187f, 0x81657e40, 0x8192816d,
+0x7339dce0, 0x8bd1c3c7, 0xa2812e1b, 0x81db3d8e, 0x1781da89, 0xd0810000, 0x7fc8c57a, 0x8fc32003,
+0x1c847f81, 0x10dfb271, 0x7ff8cc62, 0x2037d87f, 0x8151501e, 0x17c74c74, 0xb8ab2852, 0x4b7f1c97,
+0x6a811596, 0x46acc3e0, 0x3c81f49e, 0xd6d81a4e, 0x2e815066, 0x46218186, 0x41682bb4, 0xa1ac315d,
+0xb87fdc73, 0x378181ad, 0xe97f979a, 0xccb07981, 0xb10a7f38, 0x03488893, 0xfef78df3, 0x8145467c,
+0x3b67b401, 0xb3cf34bc, 0x81476c00, 0xdd638b81, 0x5e43af81, 0x2bab7f6c, 0x6d7f7f6f, 0x7f657f70,
+0xbc816e77, 0x8981c27f, 0x3e40b685, 0xd93d7256, 0xbd86c8c3, 0x817fdcce, 0x43899081, 0x817f1693,
+0xc0db9a68, 0x7f57a5a8, 0xd14c817f, 0x8c4ab37a, 0x901081dd, 0x292a452b, 0x7f81e85a, 0x189ece81,
+0xc10b9401, 0x81817f69, 0x358b3d7f, 0xa86bb1a9, 0xbd7f7f8a, 0x57fd7fe3, 0x81964506, 0x74295986,
+0xab7fbc8d, 0x817f62e6, 0xab816277, 0x5737ab20, 0x9c7f6f50, 0x7f5781af, 0xe344ef7f, 0x98a695ca,
+0x81d2a20e, 0xa77f6605, 0xc1d00398, 0x177a90d5, 0x7ff6db7f, 0x0221897f, 0x6c8105c6, 0x578981d7,
+0x64ac81c3, 0x1d9381f9, 0x7f706e7f, 0xd5797f81, 0xf9567f81, 0x27ed81d0, 0x496f2d01, 0x48b8973b,
+0xb34c1f32, 0x7f42139a, 0xeac95332, 0xf05f7783, 0x037f8145, 0xa98f3dbd, 0xc5ea24a8, 0x81417fc1,
+0x81655e97, 0xcbc682df, 0xec10815a, 0x817f7fa5, 0xb8b54dff, 0x00003e84, 0xa7ece56d, 0x819d81c2,
+0xd0ee6d81, 0x0e5e4db0, 0xe3818181, 0x7f4a2c13, 0xb13d46ac, 0xc181f081, 0xfe51c8ab, 0xa7747fb6,
+0xc2506129, 0x9d98ce4a, 0x81627f81, 0x816d6481, 0x81576b7f, 0x817f814f, 0xc881cc8b, 0x686d098f,
+0xae7fcb7f, 0x3b39a87f, 0x81888879, 0x47877f30, 0xd9bd9e9e, 0x061a0ee3, 0x7f3631a3, 0xbf5b227f,
+0x7f7f837f, 0xc5d18162, 0xa3405318, 0xc3f27fac, 0x7f43c6f6, 0x927f7fad, 0x817f7fdd, 0x7f813b8b,
+0x7fe59a65, 0x81fd87d7, 0xda54547f, 0x814d114a, 0x7e7f813d, 0xf47f077f, 0xa0869981, 0x38db7fea,
+0xf61986b0, 0x7f9146cb, 0x81db9bb7, 0xfc3b8177, 0xbd7ff9a1, 0x7f33c5aa, 0x74335381, 0x815ca42b,
+0x7f814a81, 0x49977342, 0xab9ed775, 0x9874db81, 0x6381227f, 0x1b81b27f, 0x817f3716, 0xd8e6bf07,
+0x81030494, 0x56cedf81, 0x7f607f9a, 0x7f7f4f52, 0x3cb978f2, 0xd57fca81, 0xd7bc5c81, 0x3a2265b7,
+0x7f7f98bf, 0xac068158, 0xa8851581, 0x1db9a67f, 0x7f24d44f, 0x57a34093, 0x7529b981, 0x50a3817f,
+0x4c3f6381, 0xbd7f81ad, 0x2281a481, 0x1d2e7f81, 0x77b85621, 0x3f818105, 0x307f783f, 0x7f7fe0b2,
+0x4d4a297f, 0x8d7f4d7f, 0x88818a7f, 0x129cf8b7, 0x9b817f7f, 0x7fe5ce65, 0xa48e7213, 0xf481a737,
+0xb43d4fd4, 0x7fb182c3, 0xa18181ba, 0x077f8127, 0x4f4b468a, 0xe1bea062, 0xc34d0000, 0xc0f381ba,
+0x8181817f, 0xbb2d9e7f, 0x7f216b7f, 0x868181ad, 0x7f7fcdf6, 0x810b3d55, 0x627f4c43, 0x81903e81,
+0x54ea9a4d, 0x3181ae1e, 0x7f8116d0, 0x74b5c181, 0x607b431b, 0x5552d081, 0x7f818122, 0xe9449f4c,
+0x6fb434b5, 0x1f1b9552, 0x54d7b178, 0x8b1b9e33, 0x4143cb33, 0x13b0817f, 0x7f51317f, 0x81247f65,
+0xa6fd7b18, 0xb1d6550e, 0xaa6481c1, 0x81421f41, 0x50c0813c, 0x95ac7eec, 0x442a7981, 0xc39289ea,
+0x667fcc5d, 0xf681817f, 0xd729c236, 0x5342819b, 0x813f457f, 0x819d2481, 0x817facd0, 0x7ff2dd9a,
+0x81cafb81, 0x26c72930, 0x177ba325, 0x81015e07, 0xc5667f7f, 0x81fa497f, 0x7cb3505e, 0x85e3815d,
+0x67596b53, 0x857f6696, 0xc97f7f66, 0x7a813978, 0x5f7f7f81, 0x043d9d81, 0x8c81a6a6, 0x0e8197f1,
+0xd17664d1, 0x9f81814d, 0x7f4c4f3e, 0x5e7f756a, 0x8181815a, 0xe090817f, 0x81377f81, 0xaba9813d,
+0x8985c047, 0x2106c97f, 0xc846f2b2, 0xb19a83ce, 0x64107f16, 0x7f792fde, 0x87516244, 0x9c81673e,
+0x2f5c8187, 0x555a8181, 0x95d9f26a, 0x70408e9b, 0x7f81b57f, 0x8f0de19b, 0xd37f7a6e, 0x9ba9fa7f,
+0x7f0b6568, 0x1a4f7f14, 0x3b4f5b71, 0x814e377f, 0x8125a7ec, 0x1d817f43, 0x811128dd, 0x66816435,
+0x9de99e3e, 0x81b27f48, 0x7fc3783f, 0x69983781, 0x457a817f, 0xd4296caa, 0x0000b659, 0x723a92a9,
+0x81860888, 0x8c81c44c, 0x7489b15c, 0x817310ed, 0x74a48e9c, 0xc6531a73, 0x7f7f64d0, 0x502d7fb9,
+0x437f9f7f, 0xb1bfa444, 0x81df09f0, 0x0946ab9b, 0x7f21ca81, 0x9d818166, 0x81e8d281, 0x917f6791,
+0x36ac811b, 0x9d817347, 0x344c02a7, 0xab36817f, 0x81818152, 0x32013a89, 0xd7ab3008, 0x6f608181,
+0x817f7f7f, 0x153e0881, 0x81dfcaba, 0x6c5e577f, 0x2f7f6524, 0x817aa07c, 0xdd7f0175, 0x8b4b7fec,
+0xbc81ead5, 0xae8b205d, 0xc9a9743e, 0xf33f14cf, 0x49ca7f58, 0x507f6976, 0x8cbe66d4, 0x9778a724,
+0x6d8147e3, 0x81334092, 0x7f4c0101, 0x82d5ea73, 0xb59c6657, 0x1ab842f8, 0xbc1d8581, 0x4004d917,
+0xe5eaaee2, 0x7fa9813b, 0x817fae58, 0xd77f1281, 0x10732f61, 0x836d137f, 0x7fbccb3b, 0x1a3a81d7,
+0x81047fef, 0x790aa87f, 0xc19eaac6, 0x60667f07, 0xb7f1a97f, 0x39f39e7c, 0x057f7f7f, 0xaa7f81c8,
+0x79bef7a0, 0xf3d3134d, 0x720f7fbd, 0xb4a5b69e, 0x716c817f, 0x9a817fdf, 0x347f817f, 0x4b995cb4,
+0x876a4f7e, 0x8d92687f, 0x7f9e8181, 0x8172817f, 0x8ea21cc3, 0x61bd96b0, 0x81fba378, 0x6db77f7f,
+0xdf307181, 0xda0f81c4, 0xa8e36d65, 0x70a7a559, 0x0be0f27f, 0xb56f4971, 0x35813a6d, 0x188130b5,
+0x517ff881, 0xec54b6ff, 0x8183817f, 0x20ec2381, 0x3e7f9613, 0x878af66d, 0x81657f81, 0x7fb80000,
+0x7cb38d5b, 0x817f7f45, 0x7f6352c1, 0x3881727e, 0x637f5ec2, 0x81437fc6, 0x7f7f90d2, 0xb1558699,
+0x2b81904a, 0x7f84ad54, 0xedab2281, 0xbe9cbd81, 0x7f5001d1, 0xea2a206c, 0x813cf1ab, 0x81658221,
+0x81a6817f, 0x8167929a, 0x726dd87f, 0x817f817f, 0x93b45a87, 0x7fa179e2, 0x7f4c7f81, 0x8157817f,
+0xa2fd7e81, 0x44284a58, 0x3b98c224, 0x45008124, 0x16da978d, 0xb772ba81, 0x7a4f3481, 0xe97fb9c8,
+0x7f49529e, 0xaa02580d, 0xa254adb3, 0xac0a817f, 0xdc532c32, 0x7fe6887f, 0x7f313d7d, 0x61d17f11,
+0x81e1bf02, 0x7f62c97f, 0x348d5d50, 0x12ec7f7f, 0x8f7f2884, 0x7f3f371e, 0x021c8e81, 0x65a07fc7,
+0x5e14b632, 0x817ff481, 0x6681de78, 0xba4f971c, 0x65c07f81, 0xac81d181, 0x7f11b17f, 0xdcc1011d,
+0x7f7f23c1, 0xcc819b6a, 0x81a73d06, 0x5e943954, 0x09c8b87f, 0x43405fe8, 0x817f8d58, 0x550f4d1d,
+0x82c27254, 0xd0408532, 0x4460477f, 0x8b7f9cec, 0x7fc9817f, 0x8181165f, 0x28d8817a, 0x0527752f,
+0x8168813f, 0x7f48cc81, 0x7481c91e, 0x6881c481, 0x4b0a7f55, 0xcc81e624, 0xe57fac7f, 0x6f0f81a0,
+0x417b5a81, 0x9381dd8c, 0xa881c4e5, 0x8c505264, 0x695ab14c, 0xecc99781, 0x3981c57f, 0x0c204553,
+0x4a77d59c, 0xa2301c81, 0x5ba47f00, 0x451eb2f0, 0xb0459baf, 0x934bcc63, 0x5652c0a1, 0xb381b193,
+0x68626b5b, 0x361741d5, 0x7fe281b3, 0x70ad7f7f, 0x8161f792, 0xbfda5b21, 0xed97ad84, 0x7f59cb7f,
+0x8ed1ecf7, 0x75d784ac, 0x0f81b07f, 0x3ed5bb6b, 0x819122a9, 0x2257a06b, 0x81687fb1, 0xc008057f,
+0x97812981, 0xcb2081cd, 0xd9bb6681, 0x407f7f7f, 0xc27f814e, 0x23a2527f, 0x767203ad, 0xed17ee7f,
+0xd4b89558, 0x8195bc81, 0x817f7fe0, 0xe4b7997f, 0x081ca76d, 0xb87f817f, 0x006350bb, 0x812739de,
+0x557f811e, 0x8d4387af, 0x98815781, 0x81818148, 0xb1bc8105, 0x04cf273e, 0x3f2b289b, 0xae96437e,
+0x819281b9, 0x95cf7f82, 0x7bf77f81, 0xab7f0441, 0x81652854, 0x34de0d81, 0xac816081, 0x43b12e45,
+0x91b75bdd, 0x7da27794, 0x9bbb727f, 0x301d812e, 0x7fa88120, 0x27a15075, 0x27c82cc1, 0xef1a813a,
+0x8114c4d2, 0x817b7f2b, 0xff877f47, 0x7fd47fcd, 0xd08ceb35, 0xe07f4386, 0x67b3a47d, 0xad7fd64d,
+0x817f7044, 0x537feabb, 0x8d3f36ec, 0x6c3883ce, 0x43b6909d, 0x81bcd181, 0xfa7fdae9, 0x3c7f5440,
+0x3946347f, 0x7f22ac7f, 0x815dea81, 0xb6c6c8a1, 0xd57f81c9, 0x526fd581, 0xce3c3115, 0x3d41c54f,
+0x5c5ac2b0, 0x7c948586, 0xa47f7f96, 0x8b7fc351, 0x309aadf9, 0xa0cfef81, 0xb081acd7, 0xd7413cb2,
+0x7f4a6cc9, 0x5c3bb39f, 0x7fc7e581, 0x68cc8114, 0x0926a5fa, 0x82c37581, 0x8181e642, 0x57ab2ec6,
+0x497f0000, 0x5fa07f9c, 0xa17fc405, 0xeaa0de7f, 0xa14a7fb3, 0xc4c12a81, 0xa3527d15, 0xa854d4d4,
+0xf781a3db, 0xa07f26ae, 0x812c7f74, 0x1f7f2fc4, 0x3a9381d4, 0x17b6005d, 0xd414ee60, 0x18b49d68,
+0x9cc77f9e, 0x30aa7f91, 0x7fb9207f, 0x64158b40, 0x81423c7f, 0xea2fa9cc, 0x7fa83381, 0xca647f8e,
+0xd6b9657f, 0x81b26a7a, 0x4fb7b2f1, 0x1b7f9eda, 0xfb8181ab, 0x7f2557d7, 0x71e8701c, 0xa2817f81,
+0x81817f9e, 0x04139d39, 0xc9f6533f, 0xa1f74db1, 0x814042db, 0xca6e8114, 0x7fb3f64a, 0x03f981a0,
+0x7f9e0755, 0x7f7ba781, 0xd554d19a, 0xd81a5661, 0x7fb33f3a, 0x8f81c8bf, 0x012ff975, 0xb1a576ee,
+0x81be6681, 0x818db381, 0xbd7f8151, 0x81b281ae, 0xddd2fbdc, 0x81bfa81c, 0xce818181, 0x774c9c28,
+0x7fd05d59, 0x811a54ce, 0x2f7f727f, 0xbe816b81, 0x7fb03af2, 0xc44bfc7f, 0xcf6ba181, 0x14be8161,
+0x6715a197, 0x76386d26, 0x07835f81, 0x817c818d, 0x81693281, 0x818118fa, 0x777c9e62, 0xccad6446,
+0x769c5b8b, 0xdbd781b7, 0xe4b063f9, 0x2b568182, 0x8c7f8187, 0x7f7f677f, 0x6b7fa675, 0x6be85f61,
+0xc36f7d32, 0x7f81005f, 0xd0d0997f, 0x3a818181, 0x7fa7b6b7, 0xc39ef17f, 0xcc7f437f, 0x3d51729d,
+0x3eb72475, 0x1b069d81, 0x7fe8abee, 0x604c7df9, 0x7fb47f81, 0x3a263b75, 0x75a488e6, 0x7f68d47f,
+0x00004e97, 0x7ffb0973, 0x7f53a009, 0x7f014834, 0x6f81022c, 0xf0b1405f, 0x06c84ca5, 0x4bcf7fc9,
+0x4388ec9a, 0xf528fa74, 0x8e3b816f, 0x7f7f4c72, 0x817f5224, 0xbd998181, 0x81b181c6, 0xbd817f88,
+0x1763f57f, 0x7a796e44, 0xe98e81a9, 0x5360a2fa, 0x97b39081, 0x707f1b65, 0x81c67f7f, 0x4e461c7f,
+0x817f231b, 0xc2d08181, 0x366081c6, 0xd2e67f90, 0x13f1b87f, 0xd781819f, 0x7f347fa2, 0xb1147fc5,
+0xe6b1fe4e, 0x3a1a96b2, 0x177f8191, 0x3e3d96fe, 0xd0d261a0, 0xb25e7fc9, 0x472b81ce, 0xbad6817f,
+0x707b45ca, 0x81817f81, 0xc48fb7f8, 0x90373f82, 0xa681e0b5, 0x71419190, 0x6978f77f, 0xf4463125,
+0x48f1937f, 0x4a45c611, 0x7f97e348, 0xf07f1e21, 0x81fbfc60, 0x8783a281, 0x00931cdd, 0x81e70f91,
+0xe24e7f7f, 0x7f61817f, 0x81967c47, 0x6d9bc90e, 0xec58817f, 0x8157357f, 0x7f7fc674, 0x7f7e3c81,
+0xaa8b7fbc, 0x7f3ba469, 0x7a22f57f, 0x7f7f7f27, 0x81c89e7f, 0x8145d9c8, 0x012f737f, 0xe91f15cc,
+0x9b9cb749, 0x818142cd, 0x290a7f4a, 0x89cfc4b1, 0x8337ebe2, 0xd8224205, 0x8181a49e, 0x58b04ea1,
+0x7fea95a7, 0x861681fb, 0xcea37f5f, 0x81309c8f, 0x6ded8145, 0xbd5be86e, 0xc2ce9402, 0x557f57be,
+0x4ef830e9, 0x7f81f97f, 0xf804367a, 0x5de6817f, 0x156de096, 0x2c06df0c, 0x98b170d7, 0x817f81a9,
+0x24597fd4, 0x81810000, 0x0e24a66a, 0x819e5681, 0x6f73e481, 0x054b532a, 0xc0814026, 0xb3a36181,
+0x6da37f9a, 0x7f83574f, 0xe0a381c6, 0x2075bf7f, 0x28438181, 0xb1cd7f74, 0x7ffb497f, 0xd17f337f,
+0x46085c73, 0xd57f5681, 0x704b7ff3, 0x449e3f7f, 0xeb6e09d6, 0xb37f4b02, 0x817f1cb9, 0x672edf7f,
+0xd0c2c25b, 0x5ed0885b, 0x4676876b, 0x2bd8d970, 0x9a7fbbc6, 0x81095581, 0x81b27f6b, 0x753c7f7f,
+0x7f812c7f, 0x7f477fbe, 0xdaa67f7e, 0x7f099859, 0x7b0fea70, 0x816b8186, 0xf0677f5c, 0x16455d9b,
+0xa98170a9, 0xa181529b, 0x7f817f67, 0x8f72c351, 0x2a7f7f7f, 0x2f5f347f, 0x695c7f79, 0x282fbbe0,
+0xb78581f0, 0x817f297f, 0x49818c81, 0x817fc78c, 0x3bd68181, 0x86d7deda, 0x7fa0d208, 0x1c7f3481,
+0xf5be9a57, 0xb9ded881, 0x8ab88c81, 0x647ae23a, 0xb5571142, 0xe09d7fc1, 0xa5d9817f, 0xaca07f7f,
+0x7f4d5286, 0xa57fde7f, 0x94d0917f, 0xb160442b, 0xacf47b2b, 0xd17f7f81, 0x2e37f976, 0xbe7f5d66,
+0xc2815f28, 0x5c81487f, 0xc2026481, 0x81a194dd, 0xba7f2c91, 0xb7357f37, 0x81b25698, 0xd2818154,
+0x45b78130, 0xc6bead58, 0x6f5a5656, 0xb181a6ae, 0x07c9a153, 0x75d681d3, 0x8c92817f, 0x81503520,
+0xa66f812f, 0xa59b7a81, 0x17a09164, 0x17087fb2, 0xd0bb319b, 0x6d8153ae, 0x8af1a67f, 0x651c46b0,
+0x4b637f1b, 0x00002981, 0x2c7f437f, 0xd9deb6ab, 0x9fba847f, 0x6f289b21, 0x015f811c, 0x8176f498,
+0xeac003ae, 0x68818192, 0xb37fa6a6, 0xd07f4aa5, 0x83819472, 0xa5da41a0, 0xbc7fbe7f, 0xa67fccd9,
+0x7f0c86c5, 0x116e7f15, 0x7f67b45a, 0x907fcf81, 0x81812c66, 0x05747283, 0xac962b7f, 0x2a7f81ea,
+0x81c2b57f, 0xb1b4b868, 0x7f811ed1, 0x7f66c937, 0xc881e6ab, 0x740323fd, 0xcf765745, 0x3592d370,
+0x5c81f3e5, 0x527f3efc, 0x818781d9, 0xf6819b53, 0x1c547f51, 0x4e29b37f, 0x36f1537f, 0xcb819758,
+0x538f5b7f, 0xa5172c22, 0x52427f7f, 0x6b7f8128, 0x7186134a, 0xf67f1b62, 0x6081e015, 0x829abe81,
+0xaa8a65fc, 0xd27fb70f, 0x7f0a0881, 0x3d7fc998, 0x443e78b0, 0x9443c354, 0x81266724, 0x9b81812b,
+0x813181a0, 0x7fddca68, 0x7f260f81, 0x7a818181, 0x812681ca, 0xf48152e0, 0x817f8388, 0x81306c7f,
+0x7f71d020, 0x81bd8481, 0x5234d5c2, 0x31be8136, 0x3403d432, 0x11286844, 0x81a57f1e, 0xe3b57fd4,
+0x7aa88f52, 0xabc64c52, 0x977f8181, 0x7fe68ca6, 0x5dd6eac3, 0xd26a81a9, 0x017f8183, 0x902cc266,
+0x7fba7f52, 0x617f81cf, 0x7f657ff0, 0x045d7f63, 0x3c04bb4e, 0xaa4e7f81, 0x847fe385, 0x67817f7f,
+0x42f33d28, 0x61a5aa5a, 0x817f7f1e, 0xa3a715d7, 0x5da91c3a, 0x7f9f7f81, 0xc48281ce, 0x813081fa,
+0x7f817e53, 0x6d227dbf, 0x6e7b0000, 0xf49b4091, 0xf6b3d8e9, 0x89fb29ae, 0x44289881, 0x3cc78181,
+0xe58103b9, 0x535bffd3, 0x817fa81b, 0x469f82f0, 0x57837fe1, 0xe14af07f, 0x54bf19b2, 0x7482595d,
+0x6781bbd2, 0x4b7b7fb7, 0xa4c45060, 0x380155c8, 0xb72aa381, 0x4530847f, 0xcb509581, 0x34818181,
+0xb03cd87f, 0x90818122, 0x812a8181, 0x817f677f, 0x2c2a597f, 0x35f0c581, 0x81b11261, 0x4d678120,
+0x816d7f5b, 0x448166d8, 0x0c567f61, 0x81189e21, 0xcf932f08, 0x4c5a917f, 0x687f9b7f, 0x257f81d2,
+0xcc7f6220, 0x8c947f81, 0x24642d1f, 0x728155d3, 0x14ca75d2, 0x817d7f38, 0x7f818181, 0x7fb31f87,
+0x13a581b3, 0xd9b5215f, 0xa8afdbf5, 0x147fe67f, 0x81caab97, 0xa96daa7f, 0xf88b897f, 0xe7937fc2,
+0x5a8b7f4b, 0x7d59277f, 0x8d687f9d, 0x7f924b81, 0xd41c82c0, 0xa5119c7f, 0x4fcfeba1, 0x3e077f81,
+0xaf65994c, 0x83d481a7, 0x81257fb0, 0xa481387f, 0x36d8a463, 0x8181811a, 0xc75643a7, 0x474c6c1a,
+0x7fc0e8cf, 0x8cdc896e, 0x55830655, 0x7f81337f, 0x7f65db1d, 0xa881cd81, 0x7f812ec8, 0x7f76cdd4,
+0x634a443d, 0xea7f3ed9, 0x90a8d093, 0xb05e819c, 0x7f7f5c4e, 0x811e5b81, 0x73a1b989, 0x8181717f,
+0x927d7f09, 0xdeaf7fca, 0x528e302a, 0x81654681, 0x7fe92e81, 0x87d58110, 0x1ca86e20, 0x7291a4cc,
+0xc76c7f81, 0x577f5136, 0x00005b6e, 0x817fe37f, 0xf7ac7f7f, 0xf258ee81, 0x81814c63, 0x2a97f57f,
+0x5f7ca0a7, 0x7f2fa37f, 0x94360c7f, 0x7f23117d, 0x81343a7f, 0x55b0d9de, 0xbae0189e, 0xc77f228a,
+0x817f7861, 0xa57f7fac, 0x878ede24, 0xb57fad5a, 0x5c907f93, 0x814e9b81, 0x7febf59c, 0x7724e1a9,
+0x569d9281, 0x1b644699, 0x4d4e26bf, 0x397f7f6e, 0x8ac93027, 0xe6885974, 0x51a2c1a4, 0x7f7f5b7f,
+0xaad8ac97, 0x122c8186, 0x97810a5b, 0x818581e2, 0xc77f7f35, 0x67611c60, 0x3f8178ea, 0xa47fa65e,
+0x888f8132, 0x81817cd4, 0x1081b4bd, 0x817f7fb8, 0x449a3fcc, 0x7f9832de, 0x51e96f58, 0xcbde52c0,
+0x6b515783, 0xbda3b297, 0xd64b6381, 0x7f693c81, 0x6d311abb, 0x73468e81, 0xde81817f, 0x4f811581,
+0x90d6817f, 0x152c9d49, 0xad7f17d7, 0x7f834681, 0xa47fe6dc, 0x06817fb3, 0x7f817f69, 0xd18190b1,
+0xca7f8183, 0x1881f381, 0xac50814a, 0x7f8dca7a, 0x71358131, 0x28783add, 0xd31b153b, 0x71919b97,
+0x81877f07, 0x707fca4f, 0x57c6814b, 0xc0a17fbf, 0xff5bb344, 0x4a7fa99d, 0x7434c104, 0xaa7ff0a5,
+0xb6ec6841, 0xb4917e1b, 0x5a81ab94, 0x81a3aab1, 0x257fce30, 0xe26b7fc7, 0x1d7a7fe5, 0xfc7ca6c0,
+0x81437ff7, 0x7dc59e14, 0x7f0cf9e9, 0x90e37f7f, 0x7f6f12bc, 0x52d36381, 0xc15f88ac, 0x3536277f,
+0x8d3e2a7f, 0xa18d7a7f, 0x48907f23, 0x7f810000, 0xfd813357, 0x6ed4520b, 0x843907e2, 0x66814378,
+0x7f7f6bd8, 0x0e3381ad, 0x03847f90, 0x05814769, 0x8181c181, 0x1c7f7fac, 0xe83cbfb5, 0xb15c735c,
+0x7f8f7f7f, 0x7f846b81, 0x81d2eb7e, 0xf7447f41, 0xa2b57f81, 0x2ba7f381, 0x817f75bc, 0x78553181,
+0xc7b07f7f, 0x7f557a41, 0x46a83ddb, 0x9b447d13, 0xccfe7b81, 0x7f3ae281, 0x75464bfb, 0x7f4e5560,
+0x7fad14ce, 0x98fd2a7f, 0x7f637f81, 0x4a22cf5c, 0xca81813e, 0x4ffc7347, 0x9d777fa5, 0x810585ff,
+0x71e57f81, 0x3f7f8181, 0xfce8819c, 0xbb315486, 0xf1e5a974, 0xf1e061dc, 0xcd7f8181, 0x8181817f,
+0x547fb97f, 0xa663c341, 0x9e5aab7f, 0x35768dad, 0x817f3b48, 0x46bc815f, 0x707f89b3, 0x860713c8,
+0x4a7c6532, 0x541084e8, 0x5f77bb7f, 0x299dbebe, 0xd3f27f8c, 0x25096727, 0x81194cba, 0x7ceff409,
+0x9c8c267f, 0x7f7b1fe0, 0x635c0fdd, 0x308132ac, 0x57330951, 0x7c257f81, 0x6266dd49, 0x7f89b481,
+0x817f7fae, 0x7f81aebd, 0xc7fb7f7f, 0x4537e27f, 0x1d288b7f, 0x7f4a9b7f, 0x8150969f, 0xf533f121,
+0x7f782217, 0xe428816e, 0x10ca6981, 0x6981b39f, 0xe35fdb7f, 0xc6814220, 0x79ba8158, 0x811e815d,
+0x772d8184, 0xc784810c, 0xa91abf8f, 0x3c7f6f7f, 0x6d9981bf, 0x9b42dbe9, 0x42948181, 0x5681817f,
+0xdba39bf2, 0xf77f7f37, 0x18eebbdb, 0x39c6b7b7, 0xdc2fb5b9, 0x99d00a7f, 0x02dbe492, 0x4481606e,
+0x7f6f81a1, 0x7f2f557f, 0x2aee7f6d, 0xed2ad2ae, 0x6ce4ec0c, 0xdb4cae3a, 0x81646c83, 0x7fa3c1be,
+0x7f383730, 0x81aeba9d, 0xc0528bdc, 0xd17f3982, 0x7fa47c7d, 0x81814e81, 0x813d81bc, 0x20816349,
+0x857fdfe9, 0xe46aa581, 0xe8de53b5, 0x34471a81, 0x3b4f7feb, 0x8174c981, 0x2fc7c735, 0xc818ec81,
+0xb28ed3df, 0x627f1100, 0x7f40067f, 0x7fd37fa8, 0x637c5b81, 0x113dd969, 0x81376881, 0x5d817f67,
+0x7f7fda7f, 0x7f7f7f70, 0x77577fb4, 0x87bb3d7f, 0x5b817f93, 0x839b517f, 0x7f45818e, 0xe47f3381,
+0x93c2b281, 0x944207f3, 0x36dc77b3, 0x50b86e4a, 0x8181e27f, 0x0b81a79b, 0xf9975950, 0x977b9e47,
+0xea7f8181, 0x5547b549, 0x3da47f0d, 0x474b8e72, 0x7f7f9ce1, 0x7f2e2e42, 0x6f7f45c9, 0x08d56ede,
+0x8524810b, 0x657fd15f, 0x7f8d0c14, 0x6c7fff7b, 0xd530f39d, 0x7fb4b023, 0x651d8a1b, 0x13817024,
+0x7f850774, 0x1f219db3, 0xd8817f52, 0xd95c0feb, 0x9ef0e67f, 0xd9dd4c7f, 0x64b0819a, 0xbc60e997,
+0x412fd0db, 0x817fa57f, 0xa3a47f81, 0x4d81815b, 0x81874e3a, 0x5f1e7c81, 0x7fc63b81, 0xbf817581,
+0xb5b0a5ab, 0xde2c8145, 0x81789629, 0x097481b8, 0xad5bdca3, 0x212d81e5, 0x4d817f3c, 0x70813761,
+0x5d6d0f40, 0x81a190eb, 0xc942c14d, 0x81b462d8, 0x81890000, 0x6586fbcf, 0x81cb3322, 0xa5c0b931,
+0x7f78e98d, 0x2492625b, 0xaf81b981, 0x4e59817f, 0x677fb9d3, 0x2c3b817f, 0x920e5981, 0x7f2c7f5d,
+0xc379d081, 0xdfbddf43, 0x85818172, 0x6781e442, 0xda9a7f14, 0xcac70881, 0x98818113, 0x0f817f6f,
+0xeba852c8, 0x7fa6407a, 0x7fdc8188, 0x819fd349, 0xee738137, 0xe881417f, 0xb6777fea, 0xc6947f73,
+0x8181240f, 0xa035c264, 0x7f419e81, 0x193f815f, 0xaedc812e, 0x7fb97f24, 0x924a81e6, 0x63f58183,
+0x3e4ec808, 0x7f4fbe86, 0x5faba653, 0xf0c4f4d7, 0x69cf647f, 0xfb55c681, 0x7fe1e381, 0x7f817f6b,
+0xc0410481, 0xc65d71b6, 0xba1f8135, 0x997f04cf, 0x49db5b1c, 0xbe817443, 0x817b812c, 0x36e18163,
+0xd1893a47, 0x231df6f2, 0x816d045e, 0x3a568139, 0x81628181, 0x6588ffd2, 0x23603081, 0xf5b4817d,
+0x8112b5bc, 0x7f9cfbae, 0xc02b8d40, 0xc7f20532, 0xce81487f, 0x0b1a6614, 0x7f17392f, 0x7f8f818c,
+0x7f7f8388, 0x5492467a, 0xbf5e3081, 0x777f26bb, 0xae9c4a7f, 0xae81ba0e, 0x6c6281ae, 0x81238143,
+0x7f997ffe, 0x798b949c, 0xc3d67f36, 0x38817ff9, 0x2f814ab6, 0x594bad4b, 0x7f6f7fd6, 0xab234181,
+0xaf818581, 0x77865381, 0x9d7f8173, 0x27ac8181, 0xbdbd8daf, 0x7c7f7f7f, 0xc6817fd9, 0x34412181,
+0x1fe7eb78, 0x7f38f49b, 0x81040b8f, 0x34ec8581, 0x0000907f, 0xd5818181, 0x7865c6d5, 0xada81975,
+0x0447e955, 0x7f3d09b3, 0x2b8156e8, 0x976d81dd, 0x29cee57f, 0xa34f537f, 0xe9a981f6, 0x0c7fe841,
+0x7f7eda7f, 0xd77f1881, 0x3f929481, 0x77e3c852, 0x0d817fc1, 0x7f4795ab, 0xd1337f4f, 0xdd4b077f,
+0x97a4b3d8, 0x607ff155, 0x942b16c3, 0x113a723c, 0x52ce7882, 0x5e81f5e9, 0x81755669, 0x7fea4d5f,
+0x5d6d7f81, 0x7f90e710, 0xe3817f6d, 0xe810299c, 0x4e814937, 0x3c269d81, 0x33a891aa, 0x81dd7ff3,
+0xa9d1db0d, 0xfb2181eb, 0x7f817fa4, 0x75ec817c, 0xf17f8195, 0x81e18181, 0x44321c58, 0x35a62913,
+0xcd5b0875, 0x397f8233, 0x797f7f81, 0x7f829cbc, 0x9a697f81, 0x07b7fea9, 0x7d2b0b7f, 0x8f984dce,
+0x0c13b97f, 0xe9203f3c, 0xea473769, 0x7b7fdc81, 0x7f7885c1, 0xde7f5b39, 0x32bd81f1, 0x67b4917f,
+0x443069cb, 0x6e972b83, 0xbc66829f, 0x7492817f, 0x7f4d7481, 0x7f25896f, 0x9ea0da7f, 0xceba7f81,
+0x7f45d87f, 0x93dbf04c, 0x50814197, 0xb7167f81, 0x6d7fad19, 0x0f81bea5, 0xc57f8177, 0xca4c7f7f,
+0x7d84e3f6, 0x7bc443d4, 0xd7b0ae81, 0xc8731f44, 0x06e481ac, 0x85b08181, 0x53cfe4be, 0x73761a3d,
+0x707f9981, 0xa87ff27f, 0x68b5b87f, 0xb561c081, 0x7f660001, 0x7b81521e, 0x6093614b, 0xbc778748,
+0x64400f81, 0x81d13281, 0x60475381, 0xbe768181, 0x21aad606, 0x81910000, 0x20b6a511, 0x5953d899,
+0xdd7f7fba, 0x8181fabe, 0x81b8e77f, 0x817ff17f, 0x6757257f, 0x9c2cc933, 0x51813593, 0x7f7fadef,
+0x8ec47f43, 0x348139d7, 0x7f5c82b7, 0x664419bc, 0x8d7b15a5, 0x8181a581, 0xd54d7f63, 0x7f0381b7,
+0x81a17f68, 0x814a5e0d, 0x17813dc4, 0xbd94872d, 0xa25a8101, 0xa6810e54, 0xd8568fc4, 0x7f7f3a7f,
+0x818478ba, 0x517f81c7, 0x70443b81, 0x7ce481b6, 0x7f817f7f, 0x81b27fe5, 0x4bc67f32, 0x81bbe681,
+0xa1c8fe81, 0x857f1c0d, 0x7f81793a, 0x7fbfcf74, 0xadd47f5c, 0x7f8138b4, 0x6f63cd25, 0xd70e497f,
+0x81aa7fc7, 0xbaa84f5a, 0x8197ccd3, 0x7f556b7e, 0xca815dff, 0xb9ba7f7f, 0x81747f7f, 0x7fdf967f,
+0x65a98181, 0x81bc8181, 0x8e11bab7, 0xbbbf7ffd, 0x12b8457f, 0x59fe8481, 0xf25cdd81, 0x958f840c,
+0x5e6a5f81, 0xe9008181, 0x7a68cb38, 0x76818914, 0xa3857fc7, 0xce98717f, 0x8126504d, 0x7fa48183,
+0xfa60e14a, 0x7fb77f22, 0x5f3a7f28, 0x24910bde, 0x2fd07f4f, 0x64a6810b, 0x818181a4, 0x7a065fb8,
+0x7fe69795, 0x45815e3b, 0x7fa98741, 0x52c581b8, 0x74bb2a22, 0x817a8166, 0xc2cb6581, 0x493c7f7f,
+0x883e816b, 0x3c7f7f7f, 0x7f3381c1, 0xab767f6d, 0x81b4588c, 0xb2e24cb9, 0xd9bccba1, 0x70e0162c,
+0xea1c810a, 0x907fdd49, 0x424aece8, 0xd90423b0, 0x22df1b28, 0x6b005d25, 0x113e61b3, 0xa2103bbe,
+0x20d6c538, 0x17e6c841, 0xdc08e2c4, 0x2002b1ef, 0xc51a77e3, 0x8111f752, 0xea698110, 0x1849b6e8,
+0xe6b006d2, 0xdc40b507, 0xc738b9ec, 0x42290a3f, 0x522355bc, 0x590736d3, 0xd9a340e5, 0xe30a19b5,
+0x3de9eff9, 0x4437cc7f, 0xecfd0a7b, 0x34e4fcc7, 0x4afe1556, 0x1ecb301f, 0x0f511d1d, 0xf8ec40db,
+0x4c07caf9, 0x59f73ebd, 0x45064328, 0x03c27f19, 0xd1661dcb, 0xe4e3ae17, 0x000fcd5b, 0xdd121ec8,
+0x3adb1413, 0x112b9888, 0x1d3624fd, 0xa8a347f6, 0xfeb632d5, 0x1d28fc11, 0x21ac2b5f, 0x371fe9f7,
+0x3d5ef435, 0xe84000a1, 0xaebebcc9, 0x34555ff0, 0x39a9ca2a, 0x580fc0e6, 0xcf7a5699, 0xf5e65242,
+0x07ae3170, 0x06b223ea, 0x638e421b, 0xd8dc0cab, 0x66c44fb0, 0x954117d7, 0x9691a163, 0x415bc8a1,
+0x0868d844, 0x9593f551, 0x364bec3b, 0x57460bfb, 0xdc310e3e, 0xe4dbef28, 0xc6443317, 0x81a02211,
+0x450c2323, 0xefca9dcf, 0xfebf3fbf, 0xafef377c, 0x3f81ac26, 0x13b4e548, 0xf60a05a9, 0x03d4d840,
+0x1970ecd3, 0x95019cfd, 0x8128341d, 0xc4d8d440, 0x16b80a75, 0xc2332b1d, 0x47e90e1b, 0x2e4eadcc,
+0x0aa5f04b, 0x03302c42, 0x1a1ed437, 0x3b623efa, 0xc1cec834, 0x4442d130, 0xdce837f0, 0xc3f90934,
+0x5ea50731, 0x257f1504, 0x2da5defd, 0x22d3dd34, 0xc429fa2b, 0xf2cc0a0b, 0x3e2e0000, 0x020f1c20,
+0x2e962a1f, 0x06edf5f3, 0xceb5dfe4, 0x3b213d57, 0x08c24237, 0xf32ad940, 0x321768b0, 0xb133ebcd,
+0xfca78110, 0xc03001db, 0xfca42f7f, 0x7071645f, 0x30bf8185, 0xd1f6d479, 0x02076839, 0x34cd900d,
+0x500cda81, 0xe542b08e, 0x282afac6, 0x30a835ce, 0xbc710153, 0x574b009c, 0xe8b24309, 0x02d2cbc8,
+0xaae1ea5a, 0x190eff7f, 0xbc656b07, 0xfdc8094e, 0xc0ee4452, 0x2a819969, 0xb79a0a0e, 0xe334a040,
+0x12323acf, 0xd9617f3c, 0x3709af42, 0x8b67b338, 0xff00e313, 0x5046e8de, 0x45ec1107, 0x4e2618c9,
+0xb40a62dd, 0x0da39629, 0x0a62a937, 0xc9d92e1d, 0xcf4daf81, 0x3f26a9a3, 0xd01e3f2b, 0xac294211,
+0xd7c221e7, 0x15c928f2, 0xd79412cb, 0x110fb1fc, 0xddd3fa22, 0x4e7fa8ad, 0xd4a0ebf8, 0x5b144a01,
+0x4cf90bdc, 0xb43366e7, 0x1cb8503e, 0xff152c3a, 0xae04fd5f, 0xd896041e, 0x1c2ca245, 0xd7adf0e3,
+0x36ee2de1, 0xf0350023, 0x2e529db9, 0xba18d1bc, 0xbb2aba00, 0x52c7c4fb, 0x09df6147, 0x1102f72e,
+0x13054b2f, 0xf9f9fced, 0x292a14c9, 0x60095adf, 0x8b43fec1, 0x3ca5a3c9, 0xe73665c7, 0x2f12b049,
+0xb0fadecf, 0xd0e46081, 0x42532cf0, 0xe420e3fe, 0xaf5b0501, 0x27f0b481, 0x871c0ec6, 0xcd1c8cb7,
+0xe4135816, 0x0a2aab7f, 0xbf732d1d, 0x613f1aee, 0xac09b927, 0x7d663532, 0x0000dee4, 0xfdeccc4a,
+0x34b86af1, 0xf0bb16dd, 0x5829085f, 0x51ffdcc2, 0xd50c9f39, 0x64dfc723, 0x2cd52b2b, 0x083e0b2b,
+0x224ae1b5, 0x0fd63733, 0xf081cef7, 0x7f73e3c4, 0x36cca9d4, 0xcc2600ae, 0x0757af1e, 0x21cc2ef7,
+0xf175c93f, 0x59221d2d, 0xe6c7f468, 0xe3ea1fcb, 0xcd3d539a, 0x271e345c, 0x3555341c, 0xd2532b7f,
+0x7fc8c57f, 0x4025dbe5, 0xf6926f3d, 0x264d39db, 0x2ed7c504, 0xde2a554b, 0x25aeb624, 0xd031a1dc,
+0x47dbd918, 0xa0004941, 0x0202e11c, 0xd407fda2, 0xd9bd0fdb, 0x30f94d53, 0xd32b1cc6, 0xa6cb1947,
+0x16fa1b49, 0xc70d1f56, 0xa7daec0d, 0x813d4649, 0x0f520200, 0x0d174704, 0x337f521a, 0x52c2cf34,
+0x6b280539, 0x81da4508, 0x0ef2a91d, 0x07121df9, 0x031e410e, 0xf0180925, 0x055022b0, 0x2156f018,
+0xa2e812c6, 0xfbe05cbb, 0x232e4462, 0xed378bca, 0xcd31afa7, 0x063a2e09, 0xe836ff1b, 0xefdeaf26,
+0xfeef274a, 0xc9a1159d, 0x66db4731, 0x05a50ace, 0x1b4c58fd, 0x6b0ba273, 0x251319b8, 0xc7523041,
+0xa20364b7, 0x34812fc4, 0x055f5d29, 0x5858fefa, 0xf809192d, 0x2f063981, 0xce056e8e, 0x1f7e68cc,
+0xbbc07f8b, 0xcc1c1240, 0xf45c1452, 0xeb1deac8, 0xe3f9d3fe, 0x12bc2a12, 0x515bd8d4, 0xb3b361d6,
+0x3304f1dc, 0x63060dbb, 0x41c8c73d, 0xce985d1d, 0xd2b2544b, 0x6d241fd4, 0xb6b8b1c5, 0x21830000,
+0x15efc4c3, 0x2c430fc1, 0x14400bef, 0x2c33083e, 0xbe04fb07, 0xad42d311, 0x4ed2b731, 0x1627d2d2,
+0x07aa0f34, 0xfe38df20, 0xe35bcd1b, 0xe13bfbcf, 0xcc3df1c9, 0x84355a1c, 0x55e602d2, 0x47c52a81,
+0x16d85858, 0x0d11d8d2, 0x54f4b081, 0x303523ad, 0x2dbc16e3, 0xb9d6f0d7, 0x13f76190, 0xeec0133a,
+0x81eccebc, 0x46202d2b, 0x86b52303, 0xa1f928ba, 0xe421b651, 0xb13cf63f, 0x3136c8e6, 0x4a8128b9,
+0x2d7f231a, 0x262cf3e3, 0x9c35d3f9, 0xe9e6753a, 0xefeff441, 0xd4bcd301, 0x42700bd5, 0x29ab001b,
+0x28bb6207, 0x01f537d1, 0xbc57fd38, 0x4999290e, 0x3e7f04fe, 0x36adb7fa, 0xdb0314ce, 0xa1d6524e,
+0xeee5c994, 0x1d1ce32e, 0xee142708, 0x3bf9e663, 0x06521283, 0xe8c6e6a9, 0x53356ee3, 0xe2cd5d4e,
+0x8e1bdacc, 0x382c18e2, 0xc5e2fe00, 0xcee2eaf8, 0xb7532ece, 0xfbea01bf, 0x3ecf7f2d, 0x06b2ffaf,
+0x5acbfe35, 0x26c8eefc, 0x8e27d35b, 0x84291501, 0x32f82ffa, 0x9f3a10cc, 0xabcff198, 0x139a3da9,
+0x3bd92af7, 0x264febe8, 0xbf48f81b, 0xa1df1aa2, 0x2c0a10ca, 0x04c00073, 0x5681e760, 0x411054e5,
+0x88d8c5a0, 0xe3f6b6fd, 0x2a3030ea, 0x0f0ec8b9, 0xa827cbe8, 0x2a2c7f49, 0x51ef20d2, 0xa48c4a81,
+0x2b8db1d9, 0xd150813e, 0xd7aab201, 0x36061afd, 0xeed80a8d, 0xcd9932d0, 0xedd3edbe, 0x38f4f017,
+0x9853f907, 0xc964f464, 0xc68d40f0, 0x3f5bcc44, 0x975004ec, 0x102d467f, 0xf3f9451d, 0xcde706bb,
+0xc87fa602, 0x3f5a88b0, 0x8119c002, 0x3cc14ac8, 0x607abeb7, 0xf95924cd, 0xfb1afa2c, 0xc4967f36,
+0xf425dacb, 0xa32d09aa, 0x35106590, 0xad4e5b4d, 0xa1fda650, 0x0326e143, 0xfbf054e0, 0x589fe1bc,
+0xc83249b4, 0xb0b81e1b, 0x7081fec8, 0x27530027, 0x84dc89ca, 0x76551d3a, 0x0bbcc3d9, 0x8108bade,
+0xb534f6cc, 0x87833920, 0x07ec1b0e, 0x5fd30b29, 0xf124dd07, 0xc981b03d, 0x71b9417e, 0x476c76b6,
+0x7fcb3662, 0xaec632e9, 0x2e6705dd, 0xaec5acf9, 0xc84cd6de, 0x5312d428, 0x12fc4738, 0xd31d5b1e,
+0x61edd156, 0x60fdfddb, 0xff676a0c, 0x2a3baad6, 0x0d1f6eab, 0x0001dcce, 0x180a31ca, 0x1ba681ec,
+0x90871091, 0xe2ef01f5, 0x35186658, 0x95cac76a, 0x1ae32a09, 0xebedc8df, 0x0da7c007, 0x274fc73f,
+0xd62a1ff5, 0xd6d7403a, 0xc4921d32, 0xb5f6cadc, 0xdd34f021, 0xe9334bfe, 0x5c9256c1, 0xbecbfd00,
+0x139acdb2, 0xe3913eab, 0xceed1c3b, 0xdd2c5aa6, 0xfb475d17, 0x4633f4e7, 0x373b4b4f, 0x72ee99f3,
+0xb65542d3, 0x48eb1d39, 0xa6d32fae, 0xc20aabe4, 0x105f4c0d, 0x4848bb65, 0x3bd329d2, 0x470c4709,
+0x43fb2438, 0x0620c0d7, 0x4f962821, 0xfd2f992c, 0x51f8aea5, 0x2521cfe9, 0xbf6e2f9d, 0x005e3653
+
+hard_output0 =
+0xb5bc6ac8, 0xf5373664, 0x1310345c, 0xd5bae4e7, 0x1fc9e83e, 0xebfdfded, 0x84bd86ab, 0xb7aabe00,
+0x60b44fea, 0xb9067464, 0x30325378, 0xa9195955, 0xf70c6e5c, 0x90922632, 0xc90b1cdb, 0xf2f5fb69,
+0x73056b63, 0x1a33bf3f, 0x17755b5c, 0xc58bff6d, 0x2f4390b2, 0x2869d508, 0xe7c7dfe8, 0x38552963,
+0x21da5367, 0x07282b9b, 0xa4767105, 0x1e294251, 0xe350a940, 0xb8a6aa27, 0xed12d778, 0xf10d9ece,
+0xab93527f, 0xcf2da7e7, 0x68f6d0b1, 0x811f4bca, 0x577b06b2, 0x3234f13e, 0x30bab7df, 0x8dc47655,
+0xbb843bed, 0x86da3aba, 0x30950c97, 0xdd096d7a, 0xa871fd6c, 0x8bee4e6b, 0x8fea30d0, 0x6c05b4d2,
+0xf3e144d3, 0xd24ebb1f, 0x065635e5, 0x8d3f2cf9, 0x536c6c6a, 0xfbb0a5d0, 0x3d707b42, 0xc44d5982,
+0xa5f4ad8f, 0xf32c0970, 0x1bccf1a6, 0x05916020, 0xa64fb176, 0x5ede6a35, 0xaf4966da, 0x9df5e0e7,
+0x75042abc, 0x9ef10481, 0x11ddcbc8, 0xa0f5518c, 0xd5c23418, 0x2393d558, 0xfbe7dfeb, 0xed1c64c2,
+0x86a36508, 0xde2dfb1e, 0xb8d0fef9, 0x24505232, 0xc894e71c, 0xbcc752a0, 0x40b74e83, 0x90d23c8c,
+0x728e4a61, 0x108f0b08, 0x66f522ee, 0xc258d851, 0x35a31c44, 0x11311b5b, 0xfd3d5be9, 0x5ae448ff,
+0x4f64994b, 0x5b8247a9, 0x4021114d, 0x2f0b6e82, 0x5eaa9828, 0x50ac71c0, 0xfb86ee52, 0x0dc1ac9b,
+0xbbd47645, 0x8f357115, 0x978ceea0, 0xd557db99, 0x99b30388, 0xfc9a8a1c, 0x0f75be1a, 0x50143e22,
+0x8840989b, 0x738ec50e, 0xe6b2783d, 0xf67899c8, 0x27ebed69, 0x6c415a16, 0x3a6cc2dc, 0xcd4e4e5d,
+0x6cb12b2e, 0xdb88d7c0, 0x79cd1582, 0xbc422413, 0xe72ad2f4, 0x8eaac30f, 0x0bd86747, 0x6d87f69d,
+0x15d62038, 0x4b375630, 0x0d51b859, 0x16db2cb2, 0xf210603a, 0x0abeb833, 0x55c694d0, 0xe57ca43b,
+0x0ba94428, 0x1398a406, 0xe47d3889, 0x5a20203d, 0x250d7a1a, 0xd930ffec, 0x03992e79, 0xf2759376,
+0x024ec121, 0x91fc3a2c, 0xb7e11cc5, 0x4ff7d459, 0xb8700134, 0xd6e61758, 0x4eba0a32, 0xb747e3ec,
+0x7073fad7, 0xded80f99, 0x331e2f1b, 0xfa1f1bed, 0x056424a2, 0x1d1d95e0, 0x550b9ec8, 0x51ee2a38,
+0x19525153, 0xd70c4cd5, 0x0d6cd7ad, 0xe44d1cf2, 0x30dfecda, 0xdacd7fe8, 0x7321d795, 0xddf48ef4,
+0xe271e6a4, 0x9c1feecb, 0x951fcd7b, 0x8acc5a03, 0x3fb83527, 0xe306de74, 0x7b9cd6ee, 0x8e140885,
+0xd4c91e8d, 0xe8c39733, 0x0f02f87f, 0xfb06b1b9, 0x0dc9349c, 0xf76bae8e, 0x4f642a07, 0x3d48a9aa,
+0xe3ea323a, 0xa1cd5c8a, 0x40aa0e70, 0x132042d3, 0xa9732f6c, 0xd15a00c4, 0x43d3b046, 0x9a51ebd4,
+0xc46ee0ed, 0xe2a2148b, 0xf5c478f0, 0x1fb01cf3, 0xf4f321ec, 0xd973811f, 0x11ad11b9, 0x5c67adda
+
+soft_output0 =
+0x81818181, 0x7f7f7f7f, 0x7f7f7f81, 0x7f817f81, 0x7f7f8181, 0x7f7f7f7f, 0x817f817f, 0x81817f81,
+0x7f817f81, 0x7f817f81, 0x7f81817f, 0x7f7f7f7f, 0x7f7f8181, 0x7f81817f, 0x817f8181, 0x81817f81,
+0x7f7f7f81, 0x817f7f81, 0x7f7f8181, 0x7f817f81, 0x7f81817f, 0x817f7f7f, 0x817f8181, 0x7f7f8181,
+0x81817f7f, 0x81817f7f, 0x81817f7f, 0x817f7f7f, 0x7f7f7f7f, 0x817f7f81, 0x7f7f817f, 0x7f817f7f,
+0x7f818181, 0x8181817f, 0x81818181, 0x7f817f7f, 0x7f7f817f, 0x81817f81, 0x7f7f8181, 0x817f817f,
+0x7f817f81, 0x7f7f8181, 0x817f7f81, 0x81818181, 0x817f817f, 0x81817f7f, 0x7f7f8181, 0x7f7f8181,
+0x8181817f, 0x817f7f81, 0x81818181, 0x817f8181, 0x7f7f817f, 0x7f7f7f81, 0x7f81817f, 0x7f81817f,
+0x7f81817f, 0x8181817f, 0x7f7f7f81, 0x817f7f81, 0x7f817f7f, 0x7f7f7f7f, 0x8181817f, 0x7f81817f,
+0x817f7f81, 0x7f7f7f7f, 0x7f7f7f7f, 0x7f7f8181, 0x7f7f8181, 0x7f817f7f, 0x7f81817f, 0x7f7f817f,
+0x81817f81, 0x81817f81, 0x81817f81, 0x817f817f, 0x7f817f7f, 0x7f81817f, 0x81818181, 0x8181817f,
+0x7f817f7f, 0x817f7f7f, 0x7f7f817f, 0x817f7f81, 0x7f7f7f81, 0x81818181, 0x817f8181, 0x7f7f7f81,
+0x7f817f81, 0x7f817f81, 0x81817f81, 0x7f7f7f7f, 0x7f7f8181, 0x81817f7f, 0x7f7f8181, 0x7f7f817f,
+0x7f7f817f, 0x81817f7f, 0x8181817f, 0x817f8181, 0x81817f81, 0x817f7f7f, 0x817f7f81, 0x7f81817f,
+0x7f7f7f7f, 0x7f817f81, 0x7f7f817f, 0x7f817f7f, 0x81818181, 0x817f7f81, 0x7f817f81, 0x7f817f81,
+0x817f7f81, 0x7f818181, 0x7f81817f, 0x817f817f, 0x7f7f817f, 0x81818181, 0x7f818181, 0x8181817f,
+0x817f7f81, 0x7f81817f, 0x7f7f7f7f, 0x81817f81, 0x817f8181, 0x7f818181, 0x817f8181, 0x81817f7f,
+0x7f7f8181, 0x81817f81, 0x7f7f817f, 0x817f817f, 0x81818181, 0x7f81817f, 0x817f817f, 0x81818181,
+0x817f8181, 0x817f8181, 0x817f8181, 0x7f817f81, 0x7f7f7f81, 0x7f7f8181, 0x7f817f7f, 0x7f7f817f,
+0x7f817f81, 0x7f81817f, 0x817f7f7f, 0x7f7f8181, 0x7f817f7f, 0x7f7f8181, 0x7f7f7f81, 0x817f7f7f,
+0x7f817f7f, 0x817f817f, 0x7f817f81, 0x7f817f81, 0x7f7f8181, 0x81817f81, 0x8181817f, 0x81817f81,
+0x817f7f81, 0x7f818181, 0x7f7f8181, 0x817f7f81, 0x7f817f81, 0x817f7f7f, 0x7f7f8181, 0x81817f7f,
+0x7f7f7f7f, 0x817f8181, 0x81817f81, 0x7f7f7f7f, 0x817f817f, 0x7f7f7f81, 0x7f7f7f81, 0x81817f7f,
+0x8181817f, 0x817f8181, 0x81817f81, 0x7f7f7f81, 0x7f7f7f81, 0x81818181, 0x81817f81, 0x7f7f8181,
+0x8181817f, 0x7f817f81, 0x7f817f81, 0x7f817f7f, 0x8181817f, 0x8181817f, 0x81817f81, 0x817f8181,
+0x81818181, 0x7f817f7f, 0x81817f81, 0x7f817f81, 0x7f817f81, 0x7f817f7f, 0x8181817f, 0x817f8181,
+0x817f7f81, 0x817f7f81, 0x7f817f81, 0x817f8181, 0x7f7f7f81, 0x7f81817f, 0x81818181, 0x8181817f,
+0x7f7f8181, 0x7f7f7f81, 0x81817f7f, 0x7f818181, 0x817f7f7f, 0x7f817f7f, 0x7f7f7f81, 0x7f817f7f,
+0x8181817f, 0x7f81817f, 0x817f7f7f, 0x817f817f, 0x7f7f7f7f, 0x7f817f81, 0x8181817f, 0x7f81817f,
+0x7f81817f, 0x81817f7f, 0x817f7f81, 0x7f817f81, 0x7f81817f, 0x7f7f7f7f, 0x81817f81, 0x81817f7f,
+0x81817f7f, 0x81817f7f, 0x7f818181, 0x8181817f, 0x7f7f8181, 0x7f818181, 0x7f7f8181, 0x7f7f8181,
+0x817f7f7f, 0x81818181, 0x7f818181, 0x7f7f8181, 0x817f7f7f, 0x7f7f7f7f, 0x8181817f, 0x7f7f817f,
+0x7f7f8181, 0x7f817f7f, 0x7f817f7f, 0x817f8181, 0x7f7f817f, 0x81817f81, 0x817f8181, 0x7f7f817f,
+0x81817f7f, 0x7f7f7f81, 0x7f81817f, 0x7f817f7f, 0x7f81817f, 0x7f7f817f, 0x817f817f, 0x81817f7f,
+0x817f817f, 0x817f7f81, 0x81818181, 0x81817f7f, 0x817f8181, 0x817f8181, 0x817f7f7f, 0x7f7f7f7f,
+0x7f81817f, 0x7f818181, 0x817f817f, 0x7f818181, 0x7f7f7f7f, 0x7f7f7f7f, 0x8181817f, 0x7f7f7f81,
+0x7f7f7f7f, 0x7f7f8181, 0x7f817f81, 0x7f818181, 0x81817f81, 0x7f7f7f81, 0x817f7f81, 0x8181817f,
+0x817f817f, 0x7f7f7f81, 0x7f818181, 0x81817f81, 0x817f7f81, 0x7f7f7f7f, 0x817f817f, 0x81817f7f,
+0x817f7f7f, 0x81818181, 0x8181817f, 0x81817f7f, 0x7f7f7f7f, 0x817f8181, 0x7f817f81, 0x817f8181,
+0x817f7f7f, 0x7f7f7f81, 0x817f8181, 0x81818181, 0x7f81817f, 0x817f7f7f, 0x7f81817f, 0x817f817f,
+0x7f817f7f, 0x7f818181, 0x7f818181, 0x7f817f7f, 0x81817f7f, 0x7f817f7f, 0x7f7f817f, 0x81817f81,
+0x81817f81, 0x817f7f7f, 0x81817f7f, 0x81817f81, 0x7f818181, 0x7f7f7f7f, 0x7f818181, 0x7f7f817f,
+0x7f817f81, 0x81817f81, 0x7f7f7f81, 0x817f8181, 0x81818181, 0x7f81817f, 0x817f7f7f, 0x7f817f7f,
+0x817f7f81, 0x7f7f817f, 0x7f7f8181, 0x7f7f8181, 0x81818181, 0x7f81817f, 0x7f81817f, 0x817f8181,
+0x7f818181, 0x817f7f81, 0x817f7f7f, 0x7f817f81, 0x7f817f7f, 0x817f7f7f, 0x817f7f81, 0x7f817f81,
+0x8181817f, 0x7f81817f, 0x81818181, 0x7f7f7f81, 0x81817f81, 0x7f818181, 0x7f7f7f7f, 0x7f81817f,
+0x8181817f, 0x8181817f, 0x7f7f7f7f, 0x7f818181, 0x817f7f81, 0x7f7f817f, 0x817f7f81, 0x81818181,
+0x817f817f, 0x7f818181, 0x81817f81, 0x81818181, 0x817f7f81, 0x7f817f81, 0x7f7f8181, 0x817f817f,
+0x817f7f7f, 0x817f8181, 0x81817f81, 0x81818181, 0x817f817f, 0x7f817f7f, 0x7f817f7f, 0x7f817f81,
+0x817f7f7f, 0x81817f81, 0x817f7f81, 0x7f7f817f, 0x7f817f7f, 0x7f81817f, 0x8181817f, 0x81817f81,
+0x81817f7f, 0x7f817f81, 0x7f81817f, 0x81818181, 0x7f7f817f, 0x817f7f7f, 0x7f817f81, 0x8181817f,
+0x817f8181, 0x7f81817f, 0x81817f7f, 0x7f817f81, 0x81818181, 0x7f81817f, 0x7f81817f, 0x7f81817f,
+0x7f7f817f, 0x7f817f7f, 0x7f81817f, 0x817f7f81, 0x7f81817f, 0x81818181, 0x7f7f8181, 0x7f818181,
+0x8181817f, 0x81818181, 0x8181817f, 0x817f817f, 0x7f81817f, 0x81817f7f, 0x7f81817f, 0x7f817f7f,
+0x81817f81, 0x7f81817f, 0x7f7f817f, 0x817f8181, 0x81818181, 0x7f817f81, 0x81817f81, 0x7f817f7f,
+0x817f7f7f, 0x7f7f817f, 0x7f818181, 0x817f8181, 0x7f7f7f81, 0x81817f7f, 0x81817f7f, 0x7f7f7f7f,
+0x7f818181, 0x7f7f8181, 0x7f81817f, 0x7f7f817f, 0x8181817f, 0x7f81817f, 0x8181817f, 0x81817f7f,
+0x817f7f81, 0x817f817f, 0x7f7f7f7f, 0x817f8181, 0x7f7f8181, 0x817f817f, 0x7f817f7f, 0x81818181,
+0x817f7f7f, 0x7f817f81, 0x7f7f7f7f, 0x817f8181, 0x7f7f7f81, 0x7f7f8181, 0x81817f81, 0x81817f7f,
+0x7f818181, 0x817f7f81, 0x7f818181, 0x817f817f, 0x7f7f7f81, 0x817f817f, 0x7f817f81, 0x7f7f7f81,
+0x7f818181, 0x7f7f817f, 0x81818181, 0x817f7f81, 0x81817f7f, 0x8181817f, 0x817f8181, 0x8181817f,
+0x7f818181, 0x7f817f81, 0x8181817f, 0x7f817f7f, 0x8181817f, 0x7f817f7f, 0x7f7f7f81, 0x817f7f7f,
+0x817f8181, 0x7f7f7f7f, 0x817f8181, 0x81817f81, 0x81817f7f, 0x7f7f8181, 0x81817f81, 0x7f7f7f7f,
+0x7f818181, 0x7f818181, 0x7f7f7f7f, 0x8181817f, 0x7f817f7f, 0x81817f81, 0x81817f81, 0x7f7f817f,
+0x7f7f7f7f, 0x817f817f, 0x7f7f7f81, 0x7f7f7f81, 0x7f7f817f, 0x7f817f81, 0x81818181, 0x817f8181,
+0x7f7f817f, 0x81817f7f, 0x7f7f7f7f, 0x7f81817f, 0x81817f7f, 0x7f817f7f, 0x81817f81, 0x7f7f7f81,
+0x817f8181, 0x81818181, 0x7f81817f, 0x7f817f7f, 0x7f7f7f81, 0x7f818181, 0x817f7f7f, 0x7f7f7f7f,
+0x817f7f81, 0x7f818181, 0x7f817f7f, 0x7f7f8181, 0x7f7f8181, 0x81817f81, 0x81817f81, 0x7f7f7f81,
+0x8181817f, 0x817f7f81, 0x7f818181, 0x817f8181, 0x817f7f81, 0x7f7f8181, 0x7f7f7f81, 0x817f7f7f,
+0x7f817f81, 0x81818181, 0x81817f81, 0x7f81817f, 0x7f7f7f81, 0x817f817f, 0x8181817f, 0x7f818181,
+0x817f817f, 0x81817f7f, 0x7f7f7f7f, 0x7f817f7f, 0x8181817f, 0x7f7f817f, 0x7f7f7f7f, 0x7f81817f,
+0x7f817f7f, 0x7f7f8181, 0x7f7f8181, 0x7f7f8181, 0x81817f7f, 0x7f7f8181, 0x7f7f8181, 0x8181817f,
+0x817f7f81, 0x7f81817f, 0x7f817f7f, 0x8181817f, 0x7f7f817f, 0x7f7f8181, 0x7f7f8181, 0x7f817f7f,
+0x817f817f, 0x7f81817f, 0x817f7f81, 0x8181817f, 0x81817f7f, 0x81818181, 0x817f817f, 0x7f7f817f,
+0x817f8181, 0x7f817f7f, 0x7f817f7f, 0x817f817f, 0x81817f81, 0x7f7f7f81, 0x7f81817f, 0x7f7f7f81,
+0x8181817f, 0x817f7f7f, 0x7f7f817f, 0x7f817f7f, 0x7f7f7f81, 0x7f817f7f, 0x7f7f8181, 0x817f817f,
+0x7f7f8181, 0x7f7f7f81, 0x817f8181, 0x7f7f8181, 0x81817f81, 0x8181817f, 0x7f7f817f, 0x7f817f81,
+0x7f817f81, 0x7f817f81, 0x7f817f81, 0x817f8181, 0x7f7f7f7f, 0x7f817f81, 0x817f7f81, 0x7f7f7f81,
+0x7f7f817f, 0x7f817f7f, 0x7f7f7f7f, 0x817f7f81, 0x81817f7f, 0x81817f7f, 0x81818181, 0x7f81817f,
+0x7f7f7f7f, 0x7f7f7f81, 0x7f817f81, 0x8181817f, 0x817f817f, 0x817f817f, 0x817f817f, 0x7f817f7f,
+0x81818181, 0x7f817f7f, 0x7f7f817f, 0x81818181, 0x8181817f, 0x81817f7f, 0x81818181, 0x817f817f,
+0x8181817f, 0x7f7f7f7f, 0x7f7f8181, 0x7f818181, 0x7f7f7f81, 0x817f817f, 0x7f7f817f, 0x81817f7f,
+0x8181817f, 0x817f817f, 0x7f7f817f, 0x7f81817f, 0x7f7f7f81, 0x8181817f, 0x817f7f7f, 0x817f817f,
+0x817f7f7f, 0x7f7f7f7f, 0x81817f81, 0x817f7f81, 0x7f817f7f, 0x81817f7f, 0x81817f81, 0x7f817f81,
+0x817f7f7f, 0x817f817f, 0x7f817f7f, 0x817f7f81, 0x817f817f, 0x81817f81, 0x81818181, 0x7f817f7f,
+0x8181817f, 0x817f7f7f, 0x81817f7f, 0x7f817f7f, 0x817f7f7f, 0x817f7f81, 0x7f7f7f81, 0x81817f7f,
+0x817f7f81, 0x7f817f81, 0x7f7f8181, 0x7f81817f, 0x81817f7f, 0x817f7f7f, 0x81818181, 0x7f7f817f,
+0x817f817f, 0x81817f81, 0x817f7f81, 0x81817f7f, 0x7f7f7f81, 0x7f817f7f, 0x81817f7f, 0x817f817f,
+0x7f817f7f, 0x7f817f7f, 0x81817f7f, 0x817f7f7f, 0x81818181, 0x8181817f, 0x7f7f8181, 0x7f817f7f,
+0x7f817f81, 0x7f7f8181, 0x81817f81, 0x817f7f81, 0x7f818181, 0x7f817f81, 0x7f7f7f81, 0x8181817f,
+0x81817f7f, 0x817f7f7f, 0x7f818181, 0x7f818181, 0x7f81817f, 0x7f7f8181, 0x817f7f81, 0x7f817f81,
+0x81817f7f, 0x81818181, 0x7f81817f, 0x7f7f8181, 0x817f817f, 0x817f7f81, 0x81817f81, 0x817f7f81,
+0x81818181, 0x817f7f7f, 0x7f818181, 0x81818181, 0x7f7f817f, 0x817f817f, 0x7f7f817f, 0x7f817f7f,
+0x7f817f81, 0x817f7f7f, 0x81817f81, 0x7f817f81, 0x7f817f7f, 0x817f8181, 0x817f817f, 0x7f818181,
+0x817f7f81, 0x817f7f7f, 0x81817f81, 0x81818181, 0x7f81817f, 0x7f817f81, 0x7f817f81, 0x817f8181,
+0x7f818181, 0x81817f81, 0x7f817f7f, 0x7f7f7f81, 0x7f7f817f, 0x817f7f81, 0x7f7f7f81, 0x81818181,
+0x7f7f8181, 0x7f7f817f, 0x817f7f81, 0x81817f7f, 0x7f81817f, 0x7f81817f, 0x817f8181, 0x7f81817f,
+0x8181817f, 0x81818181, 0x7f7f817f, 0x817f8181, 0x7f817f7f, 0x7f7f817f, 0x817f7f7f, 0x7f7f7f7f,
+0x8181817f, 0x7f7f7f7f, 0x81817f81, 0x817f7f7f, 0x7f7f8181, 0x817f7f81, 0x7f7f817f, 0x7f81817f,
+0x81817f81, 0x7f7f8181, 0x7f7f7f81, 0x7f817f81, 0x81817f7f, 0x7f817f81, 0x7f817f81, 0x7f7f817f,
+0x81818181, 0x7f818181, 0x817f7f81, 0x817f7f7f, 0x7f81817f, 0x7f7f8181, 0x7f7f8181, 0x81817f7f,
+0x7f817f81, 0x817f817f, 0x7f817f7f, 0x81818181, 0x7f817f7f, 0x81817f7f, 0x7f817f81, 0x81817f81,
+0x7f7f7f81, 0x81818181, 0x81817f81, 0x817f7f81, 0x7f7f7f7f, 0x817f7f81, 0x7f818181, 0x7f7f8181,
+0x7f7f7f81, 0x7f817f7f, 0x7f818181, 0x7f7f817f, 0x817f7f7f, 0x817f8181, 0x817f8181, 0x817f7f81,
+0x7f7f8181, 0x7f817f7f, 0x817f8181, 0x81817f81, 0x817f8181, 0x7f81817f, 0x7f7f817f, 0x81817f7f,
+0x81817f7f, 0x7f817f7f, 0x81817f7f, 0x81817f7f, 0x7f817f81, 0x7f7f8181, 0x7f7f817f, 0x7f7f7f7f,
+0x81818181, 0x7f7f817f, 0x7f7f7f81, 0x7f817f81, 0x81818181, 0x81817f81, 0x817f7f7f, 0x7f7f817f,
+0x817f7f7f, 0x7f7f7f81, 0x81817f81, 0x817f8181, 0x7f7f817f, 0x7f7f817f, 0x7f7f8181, 0x817f7f81,
+0x8181817f, 0x8181817f, 0x7f7f7f81, 0x7f7f817f, 0x81817f81, 0x7f7f7f7f, 0x817f8181, 0x817f817f,
+0x7f7f7f81, 0x7f817f7f, 0x7f81817f, 0x7f7f817f, 0x7f81817f, 0x817f7f81, 0x7f7f7f7f, 0x7f7f7f81,
+0x81817f7f, 0x8181817f, 0x7f81817f, 0x7f7f7f81, 0x8181817f, 0x81817f7f, 0x7f818181, 0x7f817f81,
+0x8181817f, 0x7f81817f, 0x817f7f7f, 0x817f7f7f, 0x8181817f, 0x817f817f, 0x81817f81, 0x7f7f8181,
+0x7f7f7f7f, 0x7f81817f, 0x817f817f, 0x81817f81, 0x81817f81, 0x81817f7f, 0x81817f81, 0x81817f81,
+0x7f7f817f, 0x7f7f7f7f, 0x817f7f7f, 0x7f818181, 0x7f817f7f, 0x8181817f, 0x7f7f8181, 0x817f7f7f,
+0x7f7f7f81, 0x7f817f81, 0x7f7f7f7f, 0x7f817f81, 0x7f81817f, 0x7f817f7f, 0x81817f7f, 0x7f817f7f,
+0x81817f81, 0x7f7f7f81, 0x7f81817f, 0x81817f81, 0x7f817f81, 0x817f8181, 0x7f817f81, 0x7f817f7f,
+0x81818181, 0x817f817f, 0x81817f81, 0x7f7f817f, 0x7f7f8181, 0x81818181, 0x8181817f, 0x7f817f81,
+0x81817f7f, 0x7f7f7f7f, 0x7f7f817f, 0x7f81817f, 0x81818181, 0x7f81817f, 0x817f7f7f, 0x7f817f81,
+0x817f817f, 0x817f7f81, 0x81818181, 0x81817f7f, 0x817f7f81, 0x817f8181, 0x81817f7f, 0x81817f7f,
+0x7f7f817f, 0x817f817f, 0x7f817f81, 0x7f817f81, 0x81818181, 0x817f817f, 0x7f7f7f81, 0x81817f7f,
+0x817f817f, 0x7f7f7f7f, 0x7f7f8181, 0x817f7f7f, 0x817f7f81, 0x817f7f81, 0x817f8181, 0x8181817f,
+0x81818181, 0x81817f7f, 0x81817f7f, 0x817f8181, 0x817f8181, 0x817f817f, 0x7f7f7f7f, 0x7f817f81,
+0x8181817f, 0x7f818181, 0x7f818181, 0x8181817f, 0x7f7f8181, 0x817f8181, 0x7f817f81, 0x81817f7f,
+0x7f7f7f81, 0x81817f81, 0x7f818181, 0x81817f7f, 0x7f7f817f, 0x7f818181, 0x81818181, 0x7f818181,
+0x7f7f7f81, 0x81817f7f, 0x7f81817f, 0x7f7f8181, 0x7f81817f, 0x7f817f7f, 0x7f817f7f, 0x7f817f7f,
+0x7f7f817f, 0x7f817f81, 0x7f81817f, 0x7f7f7f81, 0x81818181, 0x7f7f8181, 0x817f8181, 0x7f817f81,
+0x7f817f81, 0x81817f81, 0x7f817f81, 0x817f7f81, 0x7f7f7f81, 0x817f7f7f, 0x7f81817f, 0x7f817f7f,
+0x7f7f7f81, 0x817f8181, 0x7f81817f, 0x817f817f, 0x81817f81, 0x7f7f817f, 0x7f817f7f, 0x817f817f,
+0x7f7f7f7f, 0x817f7f81, 0x817f8181, 0x7f7f7f7f, 0x7f817f81, 0x7f7f7f7f, 0x7f7f817f, 0x8181817f,
+0x817f7f81, 0x7f818181, 0x7f817f7f, 0x8181817f, 0x7f7f817f, 0x7f817f7f, 0x817f817f, 0x817f7f7f,
+0x817f817f, 0x81817f7f, 0x81818181, 0x7f7f7f81, 0x81817f7f, 0x817f7f81, 0x817f817f, 0x81817f81,
+0x7f817f7f, 0x817f7f81, 0x7f7f7f81, 0x8181817f, 0x7f7f817f, 0x817f7f81, 0x817f7f81, 0x7f818181,
+0x817f7f7f, 0x8181817f, 0x817f8181, 0x7f7f817f, 0x7f818181, 0x817f8181, 0x7f7f7f81, 0x817f8181,
+0x8181817f, 0x7f817f81, 0x81817f7f, 0x817f8181, 0x817f817f, 0x817f7f81, 0x81818181, 0x81818181,
+0x8181817f, 0x817f8181, 0x7f7f7f81, 0x7f7f8181, 0x817f817f, 0x7f818181, 0x817f8181, 0x7f7f817f,
+0x7f7f7f81, 0x7f818181, 0x7f818181, 0x7f81817f, 0x81817f81, 0x7f818181, 0x7f7f8181, 0x7f817f7f,
+0x8181817f, 0x7f817f7f, 0x817f7f81, 0x7f817f81, 0x8181817f, 0x81818181, 0x817f7f7f, 0x817f817f,
+0x7f7f7f7f, 0x817f8181, 0x81818181, 0x817f7f7f, 0x817f7f81, 0x7f817f7f, 0x817f7f81, 0x81817f81,
+0x7f818181, 0x7f817f81, 0x7f818181, 0x7f7f7f81, 0x81817f81, 0x7f817f81, 0x7f817f7f, 0x7f81817f,
+0x81817f81, 0x817f7f7f, 0x817f817f, 0x7f7f817f, 0x7f7f8181, 0x817f7f7f, 0x7f7f817f, 0x7f817f7f,
+0x7f81817f, 0x7f81817f, 0x817f7f7f, 0x7f817f7f, 0x817f7f81, 0x8181817f, 0x817f7f81, 0x7f818181,
+0x7f818181, 0x817f7f81, 0x7f817f81, 0x7f7f7f7f, 0x81817f81, 0x81818181, 0x7f818181, 0x7f81817f,
+0x81817f81, 0x817f7f7f, 0x7f7f817f, 0x7f7f817f, 0x81817f81, 0x7f817f81, 0x7f7f8181, 0x81817f7f,
+0x817f817f, 0x81817f7f, 0x7f7f7f81, 0x7f817f7f, 0x7f7f7f7f, 0x817f7f81, 0x7f817f81, 0x817f7f7f,
+0x7f7f8181, 0x7f7f817f, 0x8181817f, 0x7f818181, 0x7f817f81, 0x81818181, 0x817f817f, 0x7f7f7f7f,
+0x81818181, 0x7f7f8181, 0x7f7f8181, 0x7f81817f, 0x8181817f, 0x8181817f, 0x81817f7f, 0x817f817f,
+0x817f7f7f, 0x817f7f7f, 0x817f7f7f, 0x817f7f81, 0x817f8181, 0x81818181, 0x7f7f7f7f, 0x7f7f817f,
+0x817f7f7f, 0x7f7f817f, 0x817f8181, 0x7f817f81, 0x7f818181, 0x7f81817f, 0x7f81817f, 0x81818181,
+0x7f81817f, 0x817f7f7f, 0x7f7f8181, 0x81818181, 0x7f817f81, 0x81818181, 0x7f817f81, 0x81818181,
+0x817f8181, 0x7f7f7f81, 0x7f818181, 0x7f7f817f, 0x817f7f7f, 0x7f7f7f7f, 0x817f7f81, 0x817f7f81,
+0x7f81817f, 0x817f7f7f, 0x81817f81, 0x817f7f81, 0x81818181, 0x7f7f7f7f, 0x81817f7f, 0x81817f81,
+0x81817f81, 0x81817f81, 0x7f817f81, 0x817f817f, 0x817f817f, 0x817f817f, 0x7f7f817f, 0x81817f81,
+0x7f7f817f, 0x8181817f, 0x817f7f81, 0x81818181, 0x817f7f7f, 0x817f8181, 0x7f7f817f, 0x817f7f7f,
+0x8181817f, 0x81817f7f, 0x7f817f7f, 0x817f7f81, 0x81817f81, 0x817f7f7f, 0x81818181, 0x817f7f7f,
+0x81817f81, 0x7f81817f, 0x7f81817f, 0x7f818181, 0x817f7f81, 0x817f817f, 0x7f81817f, 0x81818181,
+0x81817f81, 0x81818181, 0x817f7f81, 0x81817f7f, 0x7f81817f, 0x8181817f, 0x8181817f, 0x81818181,
+0x81818181, 0x81818181, 0x7f7f8181, 0x817f7f7f, 0x7f7f7f7f, 0x81817f81, 0x817f7f81, 0x7f818181,
+0x817f7f7f, 0x7f817f81, 0x7f7f7f7f, 0x7f7f8181, 0x7f81817f, 0x7f817f81, 0x817f7f7f, 0x81817f81,
+0x7f7f7f7f, 0x817f7f81, 0x817f7f7f, 0x7f817f81, 0x81817f7f, 0x81817f81, 0x817f7f81, 0x81817f81,
+0x817f817f, 0x7f817f81, 0x81817f7f, 0x7f7f7f81, 0x7f7f8181, 0x7f7f817f, 0x8181817f, 0x7f81817f,
+0x817f8181, 0x7f7f7f81, 0x817f817f, 0x7f7f817f, 0x7f7f817f, 0x7f817f7f, 0x7f818181, 0x81817f7f,
+0x81817f7f, 0x8181817f, 0x817f817f, 0x7f7f817f, 0x7f817f81, 0x7f817f7f, 0x7f818181, 0x7f81817f,
+0x817f7f7f, 0x7f817f7f, 0x81817f81, 0x8181817f, 0x8181817f, 0x7f817f81, 0x8181817f, 0x8181817f,
+0x81817f7f, 0x817f7f7f, 0x7f7f7f7f, 0x7f817f7f, 0x81817f81, 0x7f7f7f81, 0x817f7f7f, 0x7f817f81,
+0x7f818181, 0x7f817f81, 0x81818181, 0x817f817f, 0x817f817f, 0x7f818181, 0x817f8181, 0x7f7f817f,
+0x7f7f7f81, 0x817f7f7f, 0x7f81817f, 0x7f81817f, 0x7f81817f, 0x81817f81, 0x817f817f, 0x7f7f817f,
+0x7f817f81, 0x817f817f, 0x7f817f7f, 0x7f81817f, 0x8181817f, 0x817f7f7f, 0x8181817f, 0x7f7f8181,
+0x7f818181, 0x7f817f81, 0x7f7f817f, 0x817f8181, 0x817f817f, 0x817f7f81, 0x7f7f7f81, 0x81817f81,
+0x817f8181, 0x81818181, 0x81818181, 0x7f7f817f, 0x7f7f7f81, 0x8181817f, 0x7f7f7f81, 0x7f7f7f81,
+0x7f818181, 0x817f7f81, 0x7f817f7f, 0x81818181, 0x7f817f7f, 0x7f7f817f, 0x7f7f8181, 0x8181817f,
+0x7f817f7f, 0x817f7f81, 0x7f7f7f81, 0x7f81817f, 0x81817f81, 0x7f817f81, 0x817f8181, 0x817f817f,
+0x817f7f7f, 0x81817f7f, 0x7f818181, 0x81818181, 0x817f7f81, 0x81817f7f, 0x817f8181, 0x817f8181,
+0x81817f7f, 0x8181817f, 0x7f7f817f, 0x7f7f817f, 0x7f7f817f, 0x7f817f81, 0x7f7f7f7f, 0x817f8181,
+0x81817f7f, 0x7f818181, 0x7f7f7f81, 0x817f8181, 0x7f817f7f, 0x7f817f7f, 0x7f817f81, 0x817f8181,
+0x817f817f, 0x7f7f7f7f, 0x81818181, 0x81818181, 0x81818181, 0x7f817f7f, 0x81818181, 0x7f81817f,
+0x7f817f81, 0x8181817f, 0x817f7f7f, 0x817f817f, 0x81817f81, 0x7f817f81, 0x817f7f81, 0x81817f81,
+0x7f7f8181, 0x7f817f7f, 0x817f7f7f, 0x7f81817f, 0x81818181, 0x7f7f817f, 0x7f7f7f81, 0x817f7f81,
+0x817f7f7f, 0x7f817f81, 0x7f817f7f, 0x817f817f, 0x8181817f, 0x7f7f8181, 0x7f818181, 0x8181817f,
+0x7f817f7f, 0x8181817f, 0x7f817f81, 0x7f81817f, 0x7f7f7f81, 0x7f7f7f81, 0x817f817f, 0x81818181,
+0x7f817f81, 0x7f81817f, 0x7f7f8181, 0x7f7f7f81, 0x7f7f7f81, 0x7f7f7f81, 0x7f818181, 0x7f7f7f7f,
+0x7f7f8181, 0x817f8181, 0x7f7f7f7f, 0x817f7f7f, 0x7f7f7f7f, 0x8181817f, 0x7f7f7f7f, 0x7f7f8181,
+0x817f7f7f, 0x81817f81, 0x7f818181, 0x81817f7f, 0x7f81817f, 0x7f817f81, 0x7f817f81, 0x7f817f81,
+0x7f7f817f, 0x7f7f7f7f, 0x817f7f81, 0x7f7f8181, 0x8181817f, 0x817f7f7f, 0x7f817f7f, 0x817f8181,
+0x7f817f7f, 0x817f8181, 0x7f818181, 0x81817f7f, 0x7f817f7f, 0x8181817f, 0x7f81817f, 0x7f7f7f7f,
+0x7f81817f, 0x7f817f81, 0x817f817f, 0x817f7f7f, 0x7f7f7f7f, 0x7f818181, 0x817f7f7f, 0x7f81817f,
+0x81817f81, 0x7f7f7f81, 0x7f818181, 0x7f817f81, 0x81817f81, 0x7f7f7f7f, 0x817f8181, 0x817f8181,
+0x7f817f7f, 0x7f817f7f, 0x817f817f, 0x817f7f81, 0x7f818181, 0x817f8181, 0x8181817f, 0x81817f81,
+0x817f8181, 0x817f8181, 0x7f7f8181, 0x7f7f8181, 0x8181817f, 0x7f817f7f, 0x8181817f, 0x7f81817f,
+0x7f7f7f81, 0x817f817f, 0x81817f7f, 0x817f7f81, 0x81817f7f, 0x817f7f81, 0x81817f81, 0x7f817f81,
+0x817f8181, 0x7f818181, 0x7f817f81, 0x81817f81, 0x81817f81, 0x817f8181, 0x7f818181, 0x81818181,
+0x817f7f81, 0x7f817f7f, 0x817f7f81, 0x817f817f, 0x8181817f, 0x81818181, 0x817f7f81, 0x7f818181,
+0x81817f81, 0x7f817f7f, 0x817f817f, 0x817f7f81, 0x81817f81, 0x7f817f81, 0x7f7f817f, 0x8181817f,
+0x817f7f7f, 0x7f7f817f, 0x7f817f81, 0x817f7f7f, 0x7f7f817f, 0x81818181, 0x817f7f81, 0x7f7f8181,
+0x7f7f8181, 0x8181817f, 0x7f7f8181, 0x817f8181, 0x817f7f7f, 0x817f7f7f, 0x7f7f7f7f, 0x81817f81,
+0x817f7f81, 0x7f7f8181, 0x7f817f81, 0x817f7f81, 0x7f7f817f, 0x817f8181, 0x7f7f7f81, 0x81817f7f,
+0x817f817f, 0x7f7f7f7f, 0x817f7f7f, 0x7f81817f, 0x817f817f, 0x817f7f7f, 0x7f7f7f7f, 0x8181817f,
+0x7f7f8181, 0x817f817f, 0x7f7f7f81, 0x7f7f817f, 0x817f8181, 0x7f81817f, 0x7f81817f, 0x817f7f7f,
+0x7f817f7f, 0x817f817f, 0x817f7f81, 0x817f7f81, 0x81817f81, 0x7f817f81, 0x817f817f, 0x7f81817f,
+0x7f7f8181, 0x7f818181, 0x7f818181, 0x817f817f, 0x7f81817f, 0x817f8181, 0x8181817f, 0x7f817f7f,
+0x817f8181, 0x817f7f81, 0x81817f81, 0x7f7f7f81, 0x817f7f81, 0x7f7f7f7f, 0x81818181, 0x7f7f8181,
+0x7f817f7f, 0x7f7f8181, 0x81817f7f, 0x817f817f, 0x81818181, 0x817f7f7f, 0x8181817f, 0x81817f81,
+0x817f817f, 0x817f817f, 0x7f7f817f, 0x7f7f7f81, 0x7f818181, 0x7f817f7f, 0x7f7f7f81, 0x817f817f,
+0x7f818181, 0x7f7f8181, 0x7f817f7f, 0x81817f81, 0x7f7f8181, 0x817f7f81, 0x817f7f7f, 0x817f8181,
+0x7f7f8181, 0x7f817f7f, 0x817f7f81, 0x817f817f, 0x817f7f81, 0x81817f81, 0x817f8181, 0x817f7f7f,
+0x7f7f7f81, 0x817f8181, 0x7f817f81, 0x7f817f81, 0x7f817f7f, 0x7f81817f, 0x7f7f7f7f, 0x81817f7f,
+0x7f7f7f7f, 0x817f7f81, 0x7f7f8181, 0x7f7f7f81, 0x817f7f7f, 0x7f817f7f, 0x7f7f817f, 0x81817f7f,
+0x8181817f, 0x817f7f7f, 0x817f7f7f, 0x817f7f81, 0x817f8181, 0x7f7f7f81, 0x7f817f81, 0x7f817f7f,
+0x7f818181, 0x817f7f7f, 0x81817f81, 0x817f8181, 0x7f818181, 0x81817f7f, 0x817f8181, 0x7f7f8181,
+0x81817f7f, 0x7f7f7f7f, 0x81818181, 0x7f818181, 0x817f817f, 0x7f7f7f81, 0x817f7f81, 0x817f8181,
+0x7f81817f, 0x81817f7f, 0x817f8181, 0x817f817f, 0x7f818181, 0x7f7f7f7f, 0x7f818181, 0x7f7f817f,
+0x7f817f81, 0x817f8181, 0x7f7f7f7f, 0x7f818181, 0x7f7f7f81, 0x7f7f817f, 0x7f817f81, 0x817f8181,
+0x81818181, 0x7f818181, 0x7f7f7f7f, 0x7f818181, 0x7f81817f, 0x7f7f817f, 0x81817f81, 0x7f7f8181,
+0x81818181, 0x817f7f81, 0x7f817f81, 0x7f7f8181, 0x817f7f81, 0x81817f81, 0x7f817f7f, 0x817f817f,
+0x7f81817f, 0x7f818181, 0x817f8181, 0x81817f7f, 0x817f8181, 0x7f7f7f81, 0x7f818181, 0x7f7f817f,
+0x817f8181, 0x817f8181, 0x7f817f81, 0x7f81817f, 0x8181817f, 0x817f7f81, 0x817f817f, 0x81818181,
+0x7f817f7f, 0x817f817f, 0x817f817f, 0x7f817f7f, 0x7f817f7f, 0x817f817f, 0x7f81817f, 0x81818181,
+0x7f7f7f7f, 0x7f7f7f7f, 0x817f7f81, 0x7f81817f, 0x7f7f7f81, 0x817f7f81, 0x817f8181, 0x7f818181,
+0x7f7f7f7f, 0x7f7f817f, 0x7f7f7f81, 0x7f818181, 0x817f7f81, 0x81817f7f, 0x81817f7f, 0x81817f81,
+0x7f7f7f81, 0x8181817f, 0x7f7f8181, 0x7f81817f, 0x7f7f7f81, 0x81817f7f, 0x7f7f7f7f, 0x7f7f817f,
+0x7f817f7f, 0x81818181, 0x7f7f7f81, 0x7f7f7f81, 0x7f7f7f7f, 0x817f817f, 0x81818181, 0x81817f81,
+0x7f81817f, 0x7f7f8181, 0x7f81817f, 0x81818181, 0x81818181, 0x7f7f7f7f, 0x817f7f81, 0x7f81817f,
+0x7f81817f, 0x7f7f8181, 0x7f818181, 0x7f818181, 0x7f817f7f, 0x8181817f, 0x81817f81, 0x817f7f81,
+0x7f7f7f81, 0x7f81817f, 0x817f7f81, 0x817f8181, 0x7f81817f, 0x817f8181, 0x81817f7f, 0x7f817f81,
+0x81818181, 0x7f817f81, 0x7f818181, 0x7f7f7f81, 0x7f7f8181, 0x8181817f, 0x81818181, 0x81818181,
+0x81818181, 0x817f8181, 0x81817f81, 0x817f7f7f, 0x81817f81, 0x817f7f7f, 0x7f7f8181, 0x7f81817f,
+0x7f7f7f81, 0x7f7f7f7f, 0x7f817f81, 0x81817f81, 0x817f817f, 0x7f7f7f81, 0x817f7f81, 0x817f7f7f,
+0x7f817f7f, 0x81818181, 0x81818181, 0x7f7f817f, 0x7f817f81, 0x81817f81, 0x817f817f, 0x817f7f81,
+0x81818181, 0x7f817f7f, 0x81817f7f, 0x81817f81, 0x817f817f, 0x817f7f7f, 0x7f7f817f, 0x7f7f817f,
+0x7f7f8181, 0x817f7f81, 0x7f81817f, 0x7f817f7f, 0x817f7f7f, 0x817f7f7f, 0x817f7f7f, 0x7f7f7f7f,
+0x7f7f7f7f, 0x7f7f7f81, 0x7f7f8181, 0x817f8181, 0x817f817f, 0x7f7f7f81, 0x81818181, 0x81817f81,
+0x7f7f7f7f, 0x817f817f, 0x81818181, 0x7f7f817f, 0x7f818181, 0x7f7f8181, 0x817f8181, 0x817f7f7f,
+0x7f7f8181, 0x7f817f7f, 0x817f8181, 0x817f8181, 0x81817f81, 0x7f817f81, 0x817f7f81, 0x7f7f7f81,
+0x7f818181, 0x7f817f7f, 0x81817f81, 0x7f817f7f, 0x817f7f7f, 0x817f7f7f, 0x817f817f, 0x7f7f7f7f,
+0x817f8181, 0x7f7f7f7f, 0x7f81817f, 0x7f817f81, 0x81818181, 0x817f817f, 0x817f7f7f, 0x81817f7f,
+0x7f81817f, 0x817f817f, 0x7f818181, 0x8181817f, 0x817f817f, 0x81818181, 0x817f7f7f, 0x817f7f81,
+0x7f7f8181, 0x817f817f, 0x817f7f81, 0x7f81817f, 0x7f818181, 0x7f7f817f, 0x817f7f7f, 0x7f7f7f7f,
+0x7f7f7f7f, 0x81817f81, 0x7f81817f, 0x7f7f7f7f, 0x7f7f7f81, 0x8181817f, 0x81818181, 0x81817f7f,
+0x7f81817f, 0x7f7f8181, 0x817f7f7f, 0x7f7f7f7f, 0x817f7f7f, 0x7f81817f, 0x817f817f, 0x81817f81,
+0x7f7f7f81, 0x817f7f81, 0x817f7f81, 0x81818181, 0x7f7f8181, 0x81817f81, 0x7f817f7f, 0x7f818181,
+0x7f818181, 0x81818181, 0x7f7f817f, 0x7f7f7f81, 0x81817f81, 0x817f7f7f, 0x817f8181, 0x7f7f817f,
+0x81818181, 0x81817f81, 0x7f7f8181, 0x7f7f7f7f, 0x7f818181, 0x7f7f817f, 0x817f7f81, 0x817f7f7f,
+0x81817f7f, 0x7f81817f, 0x7f817f7f, 0x7f81817f, 0x7f7f817f, 0x7f7f8181, 0x8181817f, 0x817f7f81,
+0x7f7f7f81, 0x7f817f81, 0x8181817f, 0x7f7f7f7f, 0x7f817f81, 0x7f7f7f81, 0x817f7f7f, 0x81817f81,
+0x7f817f7f, 0x817f7f81, 0x817f817f, 0x81817f7f, 0x7f818181, 0x7f81817f, 0x7f817f81, 0x7f817f81,
+0x7f81817f, 0x7f7f7f7f, 0x7f817f81, 0x7f818181, 0x7f7f7f7f, 0x7f7f7f7f, 0x7f7f7f7f, 0x7f7f817f,
+0x7f7f7f81, 0x7f818181, 0x7f818181, 0x7f818181, 0x7f7f8181, 0x817f7f81, 0x7f817f7f, 0x81818181,
+0x7f81817f, 0x817f817f, 0x7f7f7f7f, 0x817f7f81, 0x7f7f817f, 0x7f7f817f, 0x7f7f8181, 0x7f7f7f81,
+0x81817f81, 0x7f81817f, 0x7f7f7f81, 0x81817f81, 0x7f818181, 0x81817f81, 0x7f7f7f7f, 0x7f81817f,
+0x81817f81, 0x7f817f7f, 0x7f81817f, 0x81817f81, 0x81818181, 0x7f81817f, 0x7f7f817f, 0x81817f7f,
+0x7f7f817f, 0x8181817f, 0x81817f7f, 0x7f81817f, 0x81817f81, 0x8181817f, 0x7f817f81, 0x81817f7f,
+0x817f7f7f, 0x7f7f8181, 0x817f8181, 0x7f81817f, 0x7f7f817f, 0x817f817f, 0x817f7f81, 0x7f7f817f,
+0x7f7f8181, 0x7f818181, 0x7f7f8181, 0x81817f7f, 0x8181817f, 0x817f7f7f, 0x7f7f8181, 0x7f817f81,
+0x817f817f, 0x7f817f7f, 0x81817f81, 0x7f7f817f, 0x81817f81, 0x7f7f817f, 0x81818181, 0x81817f81,
+0x81817f7f, 0x7f7f7f7f, 0x7f7f7f7f, 0x817f817f, 0x7f7f8181, 0x7f7f7f7f, 0x7f817f7f, 0x7f7f817f,
+0x7f81817f, 0x817f7f81, 0x817f7f81, 0x7f7f7f7f, 0x7f7f7f81, 0x81817f7f, 0x817f7f81, 0x7f7f817f,
+0x7f817f7f, 0x81818181, 0x7f81817f, 0x7f817f7f, 0x81818181, 0x8181817f, 0x7f7f7f81, 0x7f818181,
+0x8181817f, 0x7f7f7f7f, 0x817f817f, 0x7f818181, 0x81817f81, 0x7f818181, 0x7f81817f, 0x817f7f81,
+0x81818181, 0x7f7f7f81, 0x81817f81, 0x7f7f8181, 0x7f81817f, 0x81817f7f, 0x8181817f, 0x7f817f7f,
+0x7f7f8181, 0x7f7f817f, 0x7f817f7f, 0x817f817f, 0x7f818181, 0x7f7f7f7f, 0x7f7f7f7f, 0x7f818181,
+0x81817f81, 0x7f818181, 0x81817f81, 0x7f818181, 0x7f7f7f81, 0x817f817f, 0x81817f7f, 0x7f7f7f81,
+0x817f817f, 0x7f817f81, 0x7f817f81, 0x7f7f8181, 0x7f7f7f7f, 0x7f817f81, 0x8181817f, 0x817f8181,
+0x7f7f7f7f, 0x8181817f, 0x817f8181, 0x81818181, 0x7f818181, 0x81818181, 0x7f7f7f81, 0x817f817f,
+0x81817f81, 0x8181817f, 0x8181817f, 0x817f7f81, 0x7f818181, 0x817f8181, 0x8181817f, 0x817f7f7f,
+0x7f817f7f, 0x7f7f8181, 0x7f7f7f81, 0x7f817f81, 0x81817f81, 0x81817f81, 0x81817f7f, 0x8181817f,
+0x817f817f, 0x7f817f7f, 0x817f7f7f, 0x7f7f7f81, 0x817f8181, 0x7f7f7f81, 0x7f817f81, 0x81817f7f,
+0x817f817f, 0x817f8181, 0x7f7f7f81, 0x7f7f7f81, 0x81817f7f, 0x7f818181, 0x7f7f8181, 0x817f817f,
+0x81818181, 0x7f818181, 0x817f7f81, 0x817f8181, 0x817f817f, 0x7f817f7f, 0x7f7f7f7f, 0x8181817f,
+0x7f7f7f7f, 0x7f817f7f, 0x817f817f, 0x817f817f, 0x7f817f81, 0x81818181, 0x7f817f7f, 0x7f7f8181,
+0x7f7f8181, 0x81817f7f, 0x81817f7f, 0x7f7f7f81, 0x817f7f7f, 0x7f7f817f, 0x81817f7f, 0x7f7f817f,
+0x817f7f81, 0x8181817f, 0x81817f81, 0x7f7f8181, 0x7f7f8181, 0x7f7f7f81, 0x81817f7f, 0x7f7f817f,
+0x81817f81, 0x7f817f81, 0x81817f7f, 0x7f7f7f7f, 0x7f81817f, 0x7f7f8181, 0x7f817f7f, 0x7f7f8181,
+0x817f817f, 0x817f7f7f, 0x7f817f7f, 0x817f8181, 0x817f7f7f, 0x7f81817f, 0x7f7f817f, 0x817f817f,
+0x7f7f8181, 0x7f7f7f7f, 0x817f7f81, 0x7f7f8181, 0x7f7f817f, 0x81817f81, 0x7f817f81, 0x7f817f7f,
+0x817f7f81, 0x7f7f817f, 0x8181817f, 0x817f7f7f, 0x81817f81, 0x7f817f7f, 0x817f7f7f, 0x7f7f7f7f,
+0x7f817f81, 0x7f7f7f7f, 0x81817f7f, 0x7f7f7f7f, 0x7f818181, 0x817f7f81, 0x817f817f, 0x8181817f,
+0x817f7f7f, 0x817f8181, 0x8181817f, 0x7f817f7f, 0x7f817f7f, 0x817f7f81, 0x81817f7f, 0x7f7f8181,
+0x81818181, 0x81818181, 0x7f81817f, 0x7f817f81, 0x7f817f81, 0x817f7f81, 0x8181817f, 0x7f81817f,
+0x7f7f817f, 0x7f818181, 0x81817f7f, 0x7f817f81, 0x817f8181, 0x7f7f7f81, 0x7f7f8181, 0x817f7f7f,
+0x7f818181, 0x7f7f8181, 0x817f8181, 0x7f817f81, 0x7f818181, 0x81817f81, 0x817f7f7f, 0x7f818181,
+0x7f817f81, 0x817f7f81, 0x817f817f, 0x7f7f7f7f, 0x817f817f, 0x81818181, 0x7f817f7f, 0x7f817f81,
+0x817f7f81, 0x7f7f817f, 0x81817f81, 0x7f81817f, 0x7f7f8181, 0x817f7f81, 0x817f817f, 0x81817f81,
+0x817f8181, 0x7f7f7f7f, 0x817f7f7f, 0x7f81817f, 0x7f818181, 0x7f818181, 0x7f7f7f7f, 0x817f7f81,
+0x817f7f81, 0x7f7f7f81, 0x8181817f, 0x7f7f7f7f, 0x817f817f, 0x7f817f7f, 0x817f817f, 0x7f7f7f7f,
+0x8181817f, 0x7f7f7f7f, 0x7f7f8181, 0x7f817f7f, 0x7f817f7f, 0x7f817f7f, 0x817f8181, 0x7f81817f,
+0x7f817f7f, 0x81817f81, 0x8181817f, 0x7f7f7f7f, 0x7f7f8181, 0x817f7f81, 0x7f817f7f, 0x817f7f7f,
+0x81817f81, 0x817f7f7f, 0x81817f81, 0x7f81817f, 0x7f818181, 0x7f818181, 0x7f818181, 0x7f81817f,
+0x7f7f8181, 0x817f7f81, 0x817f8181, 0x7f817f81, 0x7f817f7f, 0x81818181, 0x7f817f81, 0x81818181,
+0x81817f7f, 0x81818181, 0x817f7f81, 0x81817f81, 0x81817f81, 0x7f7f7f7f, 0x81817f7f, 0x7f81817f,
+0x7f7f8181, 0x81818181, 0x7f7f7f7f, 0x7f7f8181, 0x81817f7f, 0x81817f81, 0x7f7f7f81, 0x8181817f,
+0x8181817f, 0x7f7f817f, 0x81817f81, 0x817f817f, 0x817f7f7f, 0x817f817f, 0x817f817f, 0x7f81817f,
+0x8181817f, 0x817f7f7f, 0x7f818181, 0x817f7f7f, 0x817f8181, 0x7f7f8181, 0x817f8181, 0x817f817f,
+0x817f7f81, 0x7f7f7f7f, 0x7f7f7f81, 0x8181817f, 0x7f818181, 0x7f7f8181, 0x7f81817f, 0x817f8181,
+0x7f81817f, 0x7f7f8181, 0x8181817f, 0x817f7f7f, 0x817f817f, 0x8181817f, 0x8181817f, 0x81817f81,
+0x7f7f817f, 0x7f817f7f, 0x817f817f, 0x7f81817f, 0x7f817f7f, 0x81817f7f, 0x7f7f8181, 0x817f7f7f,
+0x7f7f7f81, 0x817f8181, 0x7f817f81, 0x817f7f81, 0x817f7f81, 0x81818181, 0x81818181, 0x81818181,
+0x7f7f8181, 0x7f81817f, 0x7f817f7f, 0x7f817f7f, 0x817f7f7f, 0x817f7f7f, 0x817f7f81, 0x7f817f81,
+0x7f817f81, 0x817f8181, 0x7f81817f, 0x81817f81, 0x7f7f7f81, 0x817f7f81, 0x817f7f7f, 0x817f8181,
+0x7f7f8181, 0x7f817f7f, 0x7f818181, 0x7f7f817f, 0x7f81817f, 0x8181817f, 0x8181817f, 0x7f81817f,
+0x7f817f81, 0x7f7f817f, 0x817f817f, 0x7f7f7f81, 0x817f8181, 0x7f81817f, 0x817f7f81, 0x817f817f,
+0x817f817f, 0x7f817f81, 0x7f817f7f, 0x7f81817f, 0x817f817f, 0x7f7f8181, 0x7f81817f, 0x817f817f,
+0x8181817f, 0x81818181, 0x81817f81, 0x817f8181, 0x81818181, 0x81817f7f, 0x817f8181, 0x7f7f8181,
+0x7f7f8181, 0x7f7f817f, 0x817f7f81, 0x7f818181, 0x817f8181, 0x81817f7f, 0x7f7f7f7f, 0x817f817f,
+0x817f7f7f, 0x7f7f817f, 0x7f817f81, 0x7f7f817f, 0x7f818181, 0x8181817f, 0x7f7f8181, 0x7f817f7f,
+0x7f81817f, 0x7f7f8181, 0x7f817f81, 0x817f7f7f, 0x7f7f817f, 0x7f818181, 0x7f7f817f, 0x81818181,
+0x7f81817f, 0x817f8181, 0x81818181, 0x81817f81, 0x817f817f, 0x81817f7f, 0x7f7f8181, 0x7f7f7f81,
+0x81817f7f, 0x7f817f81, 0x7f817f7f, 0x7f7f7f7f, 0x7f7f8181, 0x817f7f7f, 0x7f81817f, 0x7f818181,
+0x7f818181, 0x817f7f7f, 0x817f7f81, 0x7f818181, 0x817f8181, 0x817f7f81, 0x7f7f7f81, 0x817f7f81,
+0x7f817f7f, 0x7f7f7f7f, 0x7f818181, 0x7f817f81, 0x8181817f, 0x817f7f7f, 0x7f817f81, 0x81818181,
+0x7f7f817f, 0x81817f81, 0x8181817f, 0x7f7f7f81, 0x81817f7f, 0x7f817f81, 0x81818181, 0x817f817f,
+0x7f7f7f81, 0x7f81817f, 0x7f7f817f, 0x817f7f81, 0x7f7f7f7f, 0x817f8181, 0x81817f81, 0x8181817f,
+0x7f7f7f7f, 0x81817f81, 0x7f7f7f7f, 0x7f7f7f7f, 0x81817f7f, 0x7f817f81, 0x7f81817f, 0x81817f81,
+0x817f817f, 0x81817f81, 0x81817f7f, 0x817f7f7f, 0x7f7f7f7f, 0x7f7f817f, 0x7f818181, 0x817f817f,
+0x7f7f7f7f, 0x7f817f7f, 0x8181817f, 0x817f7f7f, 0x7f7f817f, 0x7f81817f, 0x7f7f7f81, 0x817f7f7f,
+0x7f817f81, 0x7f7f8181, 0x8181817f, 0x7f818181, 0x7f817f7f, 0x817f817f, 0x7f7f7f81, 0x817f817f,
+0x7f7f817f, 0x7f7f8181, 0x7f7f7f7f, 0x7f7f7f7f, 0x817f7f7f, 0x817f7f81, 0x7f817f7f, 0x7f81817f,
+0x7f7f817f, 0x7f817f7f, 0x7f818181, 0x7f7f817f, 0x817f7f81, 0x7f818181, 0x817f8181, 0x7f817f81,
+0x7f817f7f, 0x817f817f, 0x7f7f7f7f, 0x81817f81, 0x7f817f81, 0x7f817f7f, 0x81818181, 0x817f7f7f,
+0x817f7f81, 0x817f7f7f, 0x817f7f7f, 0x8181817f, 0x7f7f7f81, 0x7f7f8181, 0x817f7f81, 0x817f7f81,
+0x7f817f7f, 0x817f7f7f, 0x817f817f, 0x8181817f, 0x7f818181, 0x7f7f817f, 0x7f817f81, 0x7f7f817f,
+0x7f817f7f, 0x7f817f81, 0x8181817f, 0x81818181, 0x7f7f7f7f, 0x7f81817f, 0x81817f7f, 0x7f817f7f,
+0x817f8181, 0x7f818181, 0x7f7f7f7f, 0x817f7f81, 0x7f7f8181, 0x7f818181, 0x81818181, 0x7f7f7f7f,
+0x8181817f, 0x81817f81, 0x817f7f81, 0x81818181, 0x81817f7f, 0x8181817f, 0x7f817f7f, 0x7f7f7f7f,
+0x817f7f81, 0x817f7f81, 0x817f7f7f, 0x7f7f7f81, 0x7f7f817f, 0x81817f7f, 0x7f7f8181, 0x7f7f817f,
+0x81818181, 0x7f7f7f81, 0x7f7f817f, 0x7f7f8181, 0x8181817f, 0x7f818181, 0x817f817f, 0x7f7f7f81,
+0x817f7f7f, 0x7f817f7f, 0x817f7f81, 0x8181817f, 0x7f81817f, 0x817f817f, 0x8181817f, 0x7f7f7f7f,
+0x817f7f7f, 0x7f818181, 0x817f7f81, 0x7f7f8181, 0x817f7f7f, 0x8181817f, 0x817f8181, 0x8181817f,
+0x81817f81, 0x817f8181, 0x817f7f81, 0x7f7f8181, 0x817f8181, 0x7f817f81, 0x7f7f7f81, 0x7f818181,
+0x7f817f7f, 0x7f7f8181, 0x7f7f817f, 0x81817f81, 0x81817f7f, 0x81817f7f, 0x81817f7f, 0x817f817f,
+0x7f81817f, 0x7f7f7f7f, 0x817f8181, 0x8181817f, 0x7f817f81, 0x7f817f7f, 0x817f7f7f, 0x7f7f8181,
+0x7f7f8181, 0x7f7f7f81, 0x7f818181, 0x81817f7f, 0x8181817f, 0x817f7f81, 0x7f7f7f7f, 0x7f81817f,
+0x817f8181, 0x7f81817f, 0x8181817f, 0x81818181, 0x7f817f81, 0x81817f81, 0x7f7f7f81, 0x817f7f7f,
+0x81818181, 0x7f7f7f7f, 0x81818181, 0x81818181, 0x7f7f8181, 0x7f817f81, 0x81818181, 0x817f8181,
+0x81817f81, 0x7f81817f, 0x8181817f, 0x7f7f7f81, 0x8181817f, 0x81818181, 0x81817f81, 0x81817f81,
+0x7f7f8181, 0x7f7f7f81, 0x7f7f7f7f, 0x8181817f, 0x7f7f8181, 0x7f818181, 0x81818181, 0x7f7f7f7f,
+0x81817f7f, 0x817f7f81, 0x7f7f817f, 0x817f8181, 0x817f8181, 0x7f7f8181, 0x817f7f7f, 0x7f7f7f7f,
+0x7f7f7f81, 0x817f7f81, 0x7f81817f, 0x817f7f81, 0x817f817f, 0x7f7f7f7f, 0x81817f7f, 0x81817f81,
+0x81818181, 0x7f817f7f, 0x81817f81, 0x7f7f7f81, 0x817f7f7f, 0x81818181, 0x7f7f817f, 0x7f818181,
+0x7f7f7f7f, 0x81818181, 0x7f7f7f81, 0x81818181, 0x8181817f, 0x7f817f81, 0x7f7f7f7f, 0x7f817f81,
+0x7f7f7f7f, 0x7f7f7f81, 0x81817f7f, 0x8181817f, 0x7f818181, 0x7f817f7f, 0x7f7f8181, 0x7f7f817f,
+0x7f7f7f81, 0x8181817f, 0x81817f7f, 0x7f81817f, 0x7f817f81, 0x817f7f81, 0x7f7f817f, 0x81817f81,
+0x817f7f81, 0x7f7f8181, 0x7f7f7f7f, 0x7f817f7f, 0x7f7f817f, 0x817f7f81, 0x817f8181, 0x7f7f7f7f,
+0x7f818181, 0x81817f7f, 0x7f817f7f, 0x817f817f, 0x7f7f8181, 0x7f7f817f, 0x817f7f81, 0x7f7f8181,
+0x817f7f81, 0x81817f81, 0x817f8181, 0x817f817f, 0x81818181, 0x7f817f81, 0x81817f81, 0x7f7f8181,
+0x7f7f7f81, 0x817f7f81, 0x7f7f7f81, 0x7f7f7f7f, 0x81818181, 0x7f7f7f7f, 0x7f817f7f, 0x7f7f7f7f,
+0x81818181, 0x8181817f, 0x7f7f7f7f, 0x7f7f817f, 0x817f8181, 0x817f817f, 0x817f7f7f, 0x817f8181,
+0x7f7f8181, 0x7f7f8181, 0x817f817f, 0x7f817f81, 0x817f817f, 0x7f7f7f81, 0x817f7f7f, 0x7f7f817f,
+0x7f7f7f7f, 0x817f8181, 0x817f8181, 0x7f7f817f, 0x81817f81, 0x7f7f8181, 0x7f81817f, 0x81817f7f,
+0x817f7f7f, 0x817f817f, 0x7f7f8181, 0x817f7f7f, 0x817f7f7f, 0x817f7f81, 0x7f817f81, 0x7f81817f,
+0x81817f7f, 0x817f7f7f, 0x7f817f81, 0x81818181, 0x7f7f817f, 0x817f7f81, 0x7f7f817f, 0x7f817f81,
+0x81817f81, 0x81818181, 0x7f7f8181, 0x817f7f7f, 0x7f7f7f81, 0x81817f7f, 0x81818181, 0x817f8181,
+0x7f7f817f, 0x7f817f7f, 0x7f817f81, 0x817f7f81, 0x7f7f817f, 0x7f818181, 0x7f817f81, 0x7f817f81,
+0x7f818181, 0x81817f7f, 0x817f7f81, 0x8181817f, 0x7f7f7f81, 0x81817f7f, 0x7f817f81, 0x8181817f,
+0x7f7f817f, 0x817f817f, 0x81817f81, 0x81817f81, 0x81817f7f, 0x7f818181, 0x817f7f81, 0x817f7f81,
+0x7f7f7f7f, 0x7f81817f, 0x7f817f81, 0x7f7f817f, 0x7f818181, 0x8181817f, 0x81817f81, 0x7f817f81,
+0x7f81817f, 0x817f7f81, 0x7f818181, 0x817f817f, 0x817f7f7f, 0x81817f81, 0x7f817f81, 0x7f817f7f,
+0x81817f7f, 0x7f7f8181, 0x81817f81, 0x81817f7f, 0x8181817f, 0x7f7f817f, 0x8181817f, 0x7f818181,
+0x7f817f7f, 0x817f7f7f, 0x81817f81, 0x7f81817f, 0x81818181, 0x7f7f7f81, 0x7f7f817f, 0x7f7f7f81,
+0x817f7f81, 0x817f7f7f, 0x7f817f7f, 0x7f7f8181, 0x7f817f81, 0x7f817f81, 0x7f81817f, 0x81818181,
+0x7f7f7f81, 0x7f7f7f81, 0x81818181, 0x817f8181, 0x7f7f8181, 0x817f8181, 0x817f7f81, 0x8181817f,
+0x81818181, 0x8181817f, 0x8181817f, 0x817f7f81, 0x7f7f8181, 0x817f7f81, 0x7f817f7f, 0x817f7f7f,
+0x81818181, 0x81818181, 0x81817f7f, 0x7f81817f, 0x7f817f81, 0x81817f81, 0x7f7f7f7f, 0x817f817f,
+0x7f7f7f7f, 0x7f817f7f, 0x817f8181, 0x7f7f7f81, 0x817f7f7f, 0x7f817f81, 0x7f7f817f, 0x8181817f,
+0x817f7f81, 0x7f81817f, 0x817f817f, 0x7f817f7f, 0x81817f81, 0x7f7f817f, 0x817f8181, 0x817f7f7f,
+0x81818181, 0x817f7f81, 0x7f81817f, 0x817f817f, 0x817f817f, 0x817f7f7f, 0x7f7f817f, 0x8181817f,
+0x7f7f7f7f, 0x81817f81, 0x8181817f, 0x7f81817f, 0x817f7f81, 0x7f7f7f7f, 0x817f7f7f, 0x817f817f,
+0x81818181, 0x8181817f, 0x81817f81, 0x81817f7f, 0x7f7f817f, 0x81817f81, 0x7f7f817f, 0x8181817f,
+0x7f818181, 0x7f7f817f, 0x8181817f, 0x817f7f7f, 0x81817f7f, 0x7f818181, 0x81818181, 0x8181817f,
+0x817f817f, 0x7f7f7f7f, 0x7f7f817f, 0x7f7f8181, 0x7f7f7f81, 0x7f7f817f, 0x7f818181, 0x81818181,
+0x81818181, 0x7f817f81, 0x7f7f817f, 0x7f817f7f, 0x81817f7f, 0x7f7f817f, 0x8181817f, 0x7f7f7f7f,
+0x7f7f8181, 0x7f7f817f, 0x7f7f7f7f, 0x817f817f, 0x7f7f7f7f, 0x817f7f81, 0x817f8181, 0x81818181,
+0x7f818181, 0x7f818181, 0x8181817f, 0x7f7f7f7f, 0x8181817f, 0x7f817f7f, 0x7f7f817f, 0x81818181,
+0x7f817f7f, 0x817f8181, 0x817f7f81, 0x7f817f81, 0x817f7f81, 0x7f7f7f7f, 0x817f8181, 0x7f7f8181,
+0x81817f81, 0x81818181, 0x7f7f817f, 0x817f7f81, 0x7f81817f, 0x8181817f, 0x81818181, 0x81817f7f,
+0x7f81817f, 0x81818181, 0x7f7f8181, 0x7f817f81, 0x7f817f81, 0x7f817f7f, 0x817f817f, 0x7f818181,
+0x7f817f7f, 0x7f7f7f7f, 0x817f817f, 0x817f7f7f, 0x7f81817f, 0x817f7f81, 0x81818181, 0x7f7f817f,
+0x817f817f, 0x81817f81, 0x817f7f81, 0x81817f7f, 0x7f81817f, 0x7f81817f, 0x7f817f81, 0x81817f81,
+0x7f7f817f, 0x8181817f, 0x7f818181, 0x7f7f7f7f, 0x81818181, 0x8181817f, 0x7f817f81, 0x8181817f,
+0x7f81817f, 0x7f7f8181, 0x817f817f, 0x817f7f81, 0x7f817f81, 0x81817f7f, 0x7f818181, 0x81818181,
+0x81817f81, 0x817f7f81, 0x7f81817f, 0x817f817f, 0x81817f81, 0x7f7f7f81, 0x7f818181, 0x81817f81,
+0x817f7f81, 0x7f7f817f, 0x817f8181, 0x7f817f7f, 0x817f817f, 0x7f7f7f81, 0x7f7f7f81, 0x7f7f817f,
+0x817f817f, 0x817f817f, 0x817f8181, 0x7f7f7f81, 0x817f7f81, 0x817f8181, 0x7f7f7f81, 0x8181817f,
+0x81817f7f, 0x7f7f7f81, 0x81817f7f, 0x817f7f81, 0x817f817f, 0x81817f7f, 0x7f7f7f7f, 0x7f81817f,
+0x7f817f7f, 0x81818181, 0x81818181, 0x7f7f7f81, 0x81817f7f, 0x8181817f, 0x7f818181, 0x7f817f7f,
+0x81817f81, 0x817f7f7f, 0x7f7f8181, 0x7f817f7f, 0x81817f7f, 0x8181817f, 0x817f8181, 0x817f7f81,
+0x7f7f7f7f, 0x81817f7f, 0x81817f81, 0x81818181, 0x81817f7f, 0x817f817f, 0x817f817f, 0x7f7f817f,
+0x7f81817f, 0x81818181, 0x7f817f81, 0x7f7f8181, 0x7f7f817f, 0x7f7f7f81, 0x81817f7f, 0x817f8181,
+0x7f817f7f, 0x8181817f, 0x817f8181, 0x817f7f7f, 0x7f7f7f81, 0x8181817f, 0x817f7f81, 0x7f817f81,
+0x7f7f8181, 0x7f81817f, 0x7f7f7f7f, 0x7f7f8181, 0x7f817f7f, 0x7f7f7f81, 0x7f817f7f, 0x8181817f,
+0x7f81817f, 0x817f817f, 0x7f817f81, 0x8181817f, 0x7f818181, 0x81817f81, 0x7f818181, 0x81818181,
+0x7f7f7f81, 0x817f7f7f, 0x817f8181, 0x7f817f7f, 0x7f817f81, 0x817f7f81, 0x81818181, 0x7f7f7f81,
+0x7f7f7f81, 0x7f7f7f81, 0x7f81817f, 0x817f817f, 0x7f7f8181, 0x7f817f7f, 0x7f817f81, 0x7f818181,
+0x7f7f8181, 0x817f8181, 0x7f817f7f, 0x7f7f8181, 0x7f7f7f81, 0x817f8181, 0x7f817f7f, 0x7f817f7f,
+0x7f7f817f, 0x7f7f7f81, 0x817f7f7f, 0x7f817f7f, 0x817f817f, 0x7f817f81, 0x7f7f8181, 0x81817f81,
+0x7f7f8181, 0x7f818181, 0x817f7f81, 0x7f818181, 0x81817f7f, 0x817f7f7f, 0x7f7f8181, 0x81817f7f,
+0x7f817f7f, 0x7f818181, 0x7f81817f, 0x81818181, 0x7f7f817f, 0x7f818181, 0x7f817f7f, 0x81817f81,
+0x7f7f7f7f, 0x7f817f7f, 0x7f7f817f, 0x7f7f7f81, 0x7f7f7f7f, 0x8181817f, 0x7f817f81, 0x7f81817f,
+0x7f7f7f81, 0x7f7f7f81, 0x817f817f, 0x7f7f7f81, 0x81818181, 0x7f7f7f81, 0x8181817f, 0x817f7f81,
+0x7f7f817f, 0x817f817f, 0x817f8181, 0x7f7f8181, 0x81817f7f, 0x7f817f81, 0x8181817f, 0x7f81817f,
+0x7f818181, 0x7f818181, 0x7f817f81, 0x7f7f7f7f, 0x7f81817f, 0x817f7f81, 0x7f7f7f81, 0x81818181,
+0x7f7f7f81, 0x817f8181, 0x7f81817f, 0x8181817f, 0x7f7f7f81, 0x8181817f, 0x7f7f7f81, 0x7f81817f,
+0x81817f81, 0x7f817f81, 0x81817f7f, 0x81818181, 0x817f817f, 0x817f7f7f, 0x817f8181, 0x81818181,
+0x7f81817f, 0x81818181, 0x81818181, 0x7f818181, 0x7f7f7f7f, 0x81817f81, 0x8181817f, 0x7f7f817f,
+0x817f7f81, 0x817f7f81, 0x817f8181, 0x7f7f8181, 0x817f8181, 0x7f7f7f81, 0x817f7f81, 0x81818181,
+0x8181817f, 0x81817f81, 0x7f7f8181, 0x7f7f8181, 0x7f7f8181, 0x817f817f, 0x7f817f7f, 0x7f81817f,
+0x81817f7f, 0x81818181, 0x7f81817f, 0x7f817f7f, 0x7f7f7f81, 0x817f7f81, 0x81818181, 0x7f7f7f81,
+0x7f7f8181, 0x7f81817f, 0x7f7f7f7f, 0x7f7f8181, 0x81817f81, 0x7f81817f, 0x81817f81, 0x7f7f8181,
+0x817f817f, 0x7f817f81, 0x7f7f8181, 0x817f817f, 0x7f817f7f, 0x817f7f81, 0x7f7f7f81, 0x7f7f817f,
+0x817f8181, 0x7f7f817f, 0x8181817f, 0x81818181, 0x81817f7f, 0x7f817f7f, 0x7f7f817f, 0x81817f7f,
+0x7f7f817f, 0x7f81817f, 0x81818181, 0x81817f81, 0x8181817f, 0x7f817f7f, 0x81818181, 0x7f7f7f81,
+0x7f7f7f7f, 0x81817f7f, 0x81817f81, 0x7f7f817f, 0x7f7f8181, 0x8181817f, 0x81818181, 0x7f7f7f81,
+0x7f817f7f, 0x7f817f7f, 0x817f7f81, 0x7f7f817f, 0x8181817f, 0x817f7f7f, 0x7f817f81, 0x817f8181,
+0x7f817f7f, 0x7f817f7f, 0x7f7f817f, 0x7f7f817f, 0x7f817f7f, 0x7f817f7f, 0x7f818181, 0x817f7f81,
+0x7f81817f, 0x7f817f81, 0x7f817f81, 0x817f7f81, 0x7f7f7f7f, 0x81817f7f, 0x7f81817f, 0x81818181,
+0x7f7f8181, 0x7f7f7f81, 0x7f817f81, 0x81817f81, 0x81817f81, 0x8181817f, 0x7f818181, 0x81817f81,
+0x817f7f81, 0x817f7f7f, 0x7f7f7f81, 0x7f7f7f7f, 0x7f7f8181, 0x7f81817f, 0x7f7f817f, 0x7f7f817f,
+0x817f7f81, 0x7f7f7f7f, 0x81817f81, 0x817f817f, 0x817f817f, 0x817f817f, 0x7f81817f, 0x7f7f8181,
+0x7f818181, 0x817f8181, 0x7f7f8181, 0x7f817f81, 0x81818181, 0x7f817f81, 0x817f7f7f, 0x7f817f7f,
+0x7f7f8181, 0x817f8181, 0x7f818181, 0x81817f81, 0x7f818181, 0x8181817f, 0x8181817f, 0x7f818181,
+0x8181817f, 0x7f7f7f7f, 0x7f7f817f, 0x7f818181, 0x7f7f7f81, 0x7f7f817f, 0x81818181, 0x817f7f7f,
+0x8181817f, 0x817f817f, 0x7f7f8181, 0x7f7f7f81, 0x81818181, 0x8181817f, 0x817f817f, 0x817f817f,
+0x7f818181, 0x7f7f8181, 0x8181817f, 0x817f817f, 0x81817f7f, 0x81818181, 0x7f81817f, 0x817f817f,
+0x7f7f7f7f, 0x7f817f81, 0x7f818181, 0x817f7f7f, 0x817f7f81, 0x7f817f81, 0x7f7f817f, 0x7f7f7f7f,
+0x81817f81, 0x7f7f7f7f, 0x817f8181, 0x7f7f817f, 0x8181817f, 0x7f81817f, 0x7f818181, 0x7f7f7f7f,
+0x7f7f7f7f, 0x7f7f7f81, 0x7f818181, 0x7f818181, 0x8181817f, 0x7f7f8181, 0x817f7f81, 0x7f817f7f,
+0x817f7f7f, 0x7f7f7f81, 0x7f7f8181, 0x7f817f81, 0x817f7f81, 0x7f7f7f81, 0x7f817f7f, 0x7f7f7f81,
+0x817f817f, 0x817f7f7f, 0x81818181, 0x7f818181, 0x81818181, 0x81818181, 0x7f7f7f81, 0x8181817f,
+0x81818181, 0x7f817f7f, 0x817f7f81, 0x7f7f8181, 0x7f818181, 0x8181817f, 0x8181817f, 0x817f7f81,
+0x7f817f7f, 0x81817f7f, 0x817f8181, 0x7f817f7f, 0x7f81817f, 0x81817f7f, 0x7f817f7f, 0x817f7f7f,
+0x817f7f7f, 0x7f817f81, 0x8181817f, 0x817f7f7f, 0x7f817f81, 0x81817f81, 0x817f817f, 0x7f7f7f81,
+0x7f817f81, 0x7f817f7f, 0x817f817f, 0x817f7f81, 0x7f7f7f7f, 0x81817f81, 0x7f818181, 0x81817f81,
+0x817f8181, 0x7f817f7f, 0x81817f81, 0x817f7f81, 0x7f7f7f7f, 0x81817f81, 0x81817f81, 0x81817f81,
+0x81817f7f, 0x7f81817f, 0x81818181, 0x7f7f8181, 0x817f817f, 0x817f8181, 0x817f7f7f, 0x8181817f,
+0x81817f7f, 0x8181817f, 0x7f817f81, 0x81817f7f, 0x81818181, 0x817f7f7f, 0x7f81817f, 0x817f817f,
+0x81818181, 0x817f7f81, 0x817f817f, 0x817f7f7f, 0x81817f7f, 0x7f7f8181, 0x817f7f81, 0x8181817f,
+0x7f818181, 0x7f817f81, 0x8181817f, 0x7f7f7f81, 0x8181817f, 0x81818181, 0x7f7f8181, 0x7f7f7f7f,
+0x7f81817f, 0x817f8181, 0x817f817f, 0x7f81817f, 0x81818181, 0x7f817f7f, 0x7f7f7f7f, 0x7f7f7f7f,
+0x7f7f8181, 0x817f8181, 0x817f817f, 0x7f7f7f81, 0x817f7f7f, 0x7f7f817f, 0x7f817f7f, 0x817f8181,
+0x81817f81, 0x817f8181, 0x7f81817f, 0x817f8181, 0x817f8181, 0x817f7f81, 0x7f7f817f, 0x7f818181,
+0x7f7f817f, 0x7f7f7f7f, 0x817f8181, 0x7f7f7f7f, 0x8181817f, 0x817f8181, 0x81818181, 0x817f7f7f,
+0x7f7f817f, 0x817f7f7f, 0x817f817f, 0x7f818181, 0x8181817f, 0x817f817f, 0x7f7f7f7f, 0x7f81817f,
+0x7f817f81, 0x81818181, 0x7f817f7f, 0x817f817f, 0x7f7f7f7f, 0x817f7f81, 0x7f7f8181, 0x81817f81,
+0x81818181, 0x81817f81, 0x7f7f817f, 0x81818181, 0x817f8181, 0x7f81817f, 0x81817f7f, 0x7f81817f,
+0x817f8181, 0x81818181, 0x7f7f7f81, 0x81817f81, 0x817f7f7f, 0x817f8181, 0x7f7f817f, 0x7f7f8181,
+0x7f81817f, 0x7f818181, 0x7f81817f, 0x7f7f817f, 0x7f81817f, 0x7f7f7f81, 0x7f81817f, 0x817f8181,
+0x81817f81, 0x81818181, 0x817f8181, 0x81818181, 0x7f81817f, 0x7f7f8181, 0x7f81817f, 0x81817f81,
+0x7f818181, 0x81818181, 0x817f7f7f, 0x7f7f7f7f, 0x8181817f, 0x81817f7f, 0x7f81817f, 0x81818181,
+0x81817f81, 0x81817f7f, 0x7f7f817f, 0x817f7f7f, 0x8181817f, 0x81817f81, 0x81817f81, 0x8181817f,
+0x817f817f, 0x81817f7f, 0x7f817f7f, 0x817f817f, 0x817f7f7f, 0x8181817f, 0x7f7f7f7f, 0x817f817f,
+0x817f8181, 0x7f817f7f, 0x7f817f7f, 0x7f81817f, 0x7f7f817f, 0x7f817f7f, 0x7f7f8181, 0x7f7f7f7f,
+0x7f81817f, 0x817f817f, 0x7f7f817f, 0x7f7f8181, 0x7f7f7f7f, 0x817f7f7f, 0x7f81817f, 0x81818181,
+0x7f7f817f, 0x7f81817f, 0x7f7f7f7f, 0x7f7f8181, 0x7f7f8181, 0x81818181, 0x817f7f7f, 0x81818181,
+0x81817f81, 0x817f817f, 0x7f817f81, 0x7f7f8181, 0x7f7f7f81, 0x81817f81, 0x7f7f7f81, 0x817f7f7f,
+0x817f817f, 0x817f8181, 0x7f817f81, 0x817f7f7f, 0x7f817f7f, 0x7f7f7f81, 0x81817f7f, 0x7f7f7f81,
+0x7f817f7f, 0x7f81817f, 0x817f817f, 0x7f7f8181, 0x7f81817f, 0x8181817f, 0x7f7f7f7f, 0x7f7f817f,
+0x7f7f7f7f, 0x7f817f7f, 0x7f7f817f, 0x7f817f81, 0x817f817f, 0x81817f7f, 0x7f81817f, 0x8181817f,
+0x817f7f81, 0x7f7f7f81, 0x81818181, 0x7f817f81, 0x81818181, 0x7f818181, 0x817f7f7f, 0x81818181,
+0x81818181, 0x7f7f7f7f, 0x8181817f, 0x7f7f7f81, 0x81818181, 0x7f7f817f, 0x817f7f81, 0x7f81817f,
+0x817f817f, 0x7f7f7f81, 0x7f81817f, 0x7f81817f, 0x7f818181, 0x817f817f, 0x81817f7f, 0x7f7f817f,
+0x7f818181, 0x7f817f7f, 0x7f7f8181, 0x817f817f, 0x81817f7f, 0x7f7f7f81, 0x817f817f, 0x7f7f817f,
+0x81817f7f, 0x7f7f7f7f, 0x7f81817f, 0x817f7f7f, 0x7f7f8181, 0x7f7f8181, 0x7f7f817f, 0x7f81817f,
+0x81817f81, 0x817f7f81, 0x7f81817f, 0x81817f7f, 0x817f8181, 0x817f8181, 0x817f7f7f, 0x7f7f7f7f,
+0x7f7f7f7f, 0x81817f81, 0x817f817f, 0x81817f81, 0x7f7f7f7f, 0x817f817f, 0x817f7f81, 0x81817f81,
+0x817f7f81, 0x817f7f7f, 0x81817f81, 0x817f7f81, 0x7f81817f, 0x81817f7f, 0x7f818181, 0x8181817f,
+0x7f7f7f81, 0x81817f81, 0x7f817f81, 0x81818181, 0x817f8181, 0x7f7f8181, 0x81818181, 0x817f7f81,
+0x817f8181, 0x81817f7f, 0x8181817f, 0x817f817f, 0x8181817f, 0x7f818181, 0x81817f81, 0x81818181,
+0x817f817f, 0x817f7f7f, 0x7f7f7f7f, 0x7f7f7f81, 0x7f817f81, 0x81817f81, 0x7f7f8181, 0x8181817f,
+0x817f7f81, 0x7f818181, 0x7f7f817f, 0x7f81817f, 0x81818181, 0x81817f7f, 0x7f817f7f, 0x817f8181,
+0x7f7f8181, 0x81817f81, 0x7f7f8181, 0x817f7f7f, 0x817f7f7f, 0x817f7f81, 0x7f817f7f, 0x81817f81,
+0x7f7f817f, 0x817f817f, 0x817f8181, 0x7f817f7f, 0x7f817f7f, 0x8181817f, 0x817f8181, 0x817f7f7f,
+0x817f7f81, 0x817f8181, 0x8181817f, 0x7f818181, 0x7f818181, 0x7f7f7f81, 0x817f7f81, 0x7f817f81,
+0x81817f81, 0x817f8181, 0x817f7f7f, 0x817f7f7f, 0x81818181, 0x7f7f7f81, 0x817f817f, 0x817f7f81,
+0x81817f7f, 0x7f818181, 0x7f7f817f, 0x7f818181, 0x7f7f8181, 0x7f817f7f, 0x817f8181, 0x81817f81,
+0x81818181, 0x7f817f7f, 0x81817f81, 0x7f817f81, 0x817f7f81, 0x7f7f7f81, 0x81817f7f, 0x7f817f7f,
+0x7f7f8181, 0x817f8181, 0x7f818181, 0x8181817f, 0x81817f81, 0x817f7f7f, 0x7f817f81, 0x81818181,
+0x817f817f, 0x81818181, 0x817f7f81, 0x817f7f7f, 0x817f817f, 0x7f817f81, 0x7f817f7f, 0x817f7f81,
+0x7f818181, 0x817f7f7f, 0x7f81817f, 0x81817f7f, 0x817f8181, 0x817f8181, 0x81818181, 0x817f7f81,
+0x7f7f817f, 0x81817f7f, 0x8181817f, 0x7f7f8181, 0x7f81817f, 0x8181817f, 0x817f7f81, 0x7f81817f,
+0x817f817f, 0x7f7f817f, 0x817f7f7f, 0x8181817f, 0x7f7f817f, 0x7f81817f, 0x8181817f, 0x7f81817f,
+0x81818181, 0x81818181, 0x7f81817f, 0x817f7f7f, 0x817f7f7f, 0x817f7f81, 0x7f818181, 0x817f7f7f,
+0x817f7f7f, 0x81817f81, 0x7f817f81, 0x7f817f7f, 0x817f8181, 0x7f81817f, 0x7f7f817f, 0x81817f7f,
+0x7f7f7f7f, 0x817f7f81, 0x81817f81, 0x817f817f, 0x7f7f8181, 0x817f7f81, 0x7f7f8181, 0x81818181,
+0x7f7f7f81, 0x81817f7f, 0x817f7f81, 0x8181817f, 0x7f7f7f81, 0x817f7f7f, 0x81818181, 0x81817f7f,
+0x7f817f7f, 0x817f7f7f, 0x81817f7f, 0x81817f7f, 0x817f7f7f, 0x81817f7f, 0x817f8181, 0x7f81817f,
+0x7f7f7f7f, 0x817f817f, 0x817f7f81, 0x8181817f, 0x817f7f7f, 0x7f817f7f, 0x8181817f, 0x81817f81,
+0x817f7f81, 0x7f7f7f81, 0x7f7f7f81, 0x7f818181, 0x7f817f81, 0x81818181, 0x817f8181, 0x8181817f,
+0x7f817f7f, 0x817f8181, 0x7f818181, 0x817f7f81, 0x7f817f7f, 0x7f7f8181, 0x817f817f, 0x817f8181,
+0x7f81817f, 0x7f7f817f, 0x7f7f8181, 0x7f7f817f, 0x8181817f, 0x81817f81, 0x817f8181, 0x7f7f7f81,
+0x8181817f, 0x8181817f, 0x8181817f, 0x7f7f7f81, 0x8181817f, 0x7f818181, 0x81818181, 0x7f7f7f81,
+0x7f817f7f, 0x81818181, 0x817f8181, 0x817f8181, 0x7f7f7f7f, 0x817f7f81, 0x817f817f, 0x817f7f81,
+0x81818181, 0x817f8181, 0x7f7f8181, 0x7f7f8181, 0x817f817f, 0x81817f7f, 0x7f7f8181, 0x817f8181,
+0x7f7f817f, 0x7f7f817f, 0x7f817f81, 0x7f817f7f, 0x7f818181, 0x7f81817f, 0x81817f7f, 0x817f8181,
+0x817f8181, 0x7f818181, 0x8181817f, 0x7f817f7f, 0x81817f81, 0x7f7f8181, 0x817f7f81, 0x817f8181,
+0x7f7f7f7f, 0x817f7f7f, 0x7f817f81, 0x7f7f7f81, 0x7f7f7f81, 0x7f7f7f81, 0x81818181, 0x81817f81,
+0x7f817f7f, 0x7f818181, 0x817f7f81, 0x8181817f, 0x81817f7f, 0x8181817f, 0x7f81817f, 0x7f817f81,
+0x817f8181, 0x817f7f7f, 0x7f7f7f7f, 0x8181817f, 0x7f818181, 0x7f81817f, 0x7f7f8181, 0x7f7f7f81,
+0x817f817f, 0x81817f7f, 0x7f81817f, 0x81817f7f, 0x7f818181, 0x817f8181, 0x81818181, 0x8181817f,
+0x81817f7f, 0x7f817f7f, 0x817f8181, 0x81817f7f, 0x7f7f7f7f, 0x7f7f7f7f, 0x81817f81, 0x817f817f,
+0x817f8181, 0x81817f81, 0x81817f81, 0x7f817f7f, 0x7f7f817f, 0x7f7f7f81, 0x7f7f7f7f, 0x8181817f,
+0x81817f81, 0x7f817f7f, 0x81817f81, 0x81817f81, 0x7f817f7f, 0x7f7f817f, 0x81817f81, 0x817f8181,
+0x81817f81, 0x8181817f, 0x7f7f7f81, 0x817f8181, 0x81817f7f, 0x81817f81, 0x817f8181, 0x817f8181,
+0x817f817f, 0x817f7f7f, 0x81817f7f, 0x7f817f81, 0x7f7f8181, 0x7f7f7f7f, 0x7f818181, 0x81817f81,
+0x817f8181, 0x817f7f7f, 0x817f817f, 0x8181817f, 0x81818181, 0x7f817f81, 0x81817f7f, 0x81818181,
+0x7f818181, 0x817f817f, 0x7f7f7f81, 0x817f817f, 0x7f7f817f, 0x817f817f, 0x7f7f7f7f, 0x817f7f7f,
+0x817f7f7f, 0x7f817f81, 0x7f7f817f, 0x81817f7f, 0x7f817f7f, 0x817f7f81, 0x817f817f, 0x817f817f,
+0x817f817f, 0x7f817f81, 0x7f818181, 0x7f7f7f81, 0x7f817f81, 0x81817f81, 0x81818181, 0x7f817f7f,
+0x7f7f7f81, 0x817f817f, 0x7f817f7f, 0x817f7f81, 0x7f7f7f7f, 0x817f8181, 0x7f7f7f7f, 0x817f817f,
+0x81818181, 0x81818181, 0x8181817f, 0x81817f81, 0x81818181, 0x817f8181, 0x7f817f7f, 0x7f817f81,
+0x817f8181, 0x7f818181, 0x817f7f81, 0x817f7f7f, 0x7f7f817f, 0x8181817f, 0x817f7f7f, 0x7f817f7f,
+0x7f7f7f7f, 0x7f81817f, 0x7f7f817f, 0x7f81817f, 0x81817f81, 0x817f8181, 0x7f817f81, 0x817f8181,
+0x81818181, 0x817f817f, 0x81817f81, 0x817f817f, 0x817f8181, 0x817f7f7f, 0x7f7f7f7f, 0x7f7f7f7f,
+0x81817f81, 0x7f81817f, 0x817f7f81, 0x7f818181, 0x81817f7f, 0x7f7f8181, 0x7f7f8181, 0x7f817f7f,
+0x8181817f, 0x7f81817f, 0x8181817f, 0x81818181, 0x81817f7f, 0x7f7f817f, 0x81817f81, 0x8181817f,
+0x7f81817f, 0x7f817f81, 0x7f7f817f, 0x7f817f7f, 0x7f817f7f, 0x817f8181, 0x81817f81, 0x7f7f7f7f,
+0x7f817f7f, 0x81817f7f, 0x7f7f7f7f, 0x817f817f, 0x7f7f7f81, 0x817f7f81, 0x7f818181, 0x7f7f8181,
+0x7f817f81, 0x7f817f7f, 0x8181817f, 0x7f7f7f81, 0x7f7f8181, 0x81818181, 0x7f7f8181, 0x7f817f7f,
+0x7f7f8181, 0x7f81817f, 0x7f7f8181, 0x81818181, 0x7f817f7f, 0x7f7f8181, 0x7f817f7f, 0x8181817f,
+0x7f817f7f, 0x817f7f7f, 0x81817f81, 0x7f817f81, 0x817f817f, 0x7f817f81, 0x7f817f7f, 0x81818181,
+0x7f817f81, 0x7f7f8181, 0x7f81817f, 0x81818181, 0x7f7f7f81, 0x7f817f7f, 0x7f7f7f7f, 0x7f817f81,
+0x7f81817f, 0x817f7f7f, 0x817f8181, 0x7f817f7f, 0x817f7f81, 0x7f7f7f7f, 0x7f817f7f, 0x7f817f81,
+0x817f7f7f, 0x817f8181, 0x7f7f7f7f, 0x817f7f81, 0x81817f7f, 0x81818181, 0x817f817f, 0x81818181,
+0x7f7f7f81, 0x7f7f7f81, 0x7f7f7f7f, 0x81817f81, 0x7f81817f, 0x7f7f7f81, 0x7f7f7f81, 0x81817f7f,
+0x817f7f81, 0x817f7f81, 0x7f817f7f, 0x7f7f7f7f, 0x8181817f, 0x81817f7f, 0x7f7f7f7f, 0x7f818181,
+0x7f818181, 0x81818181, 0x817f8181, 0x81817f7f, 0x7f7f8181, 0x817f817f, 0x7f818181, 0x7f7f8181,
+0x7f7f817f, 0x7f7f8181, 0x7f7f7f7f, 0x8181817f, 0x81818181, 0x817f8181, 0x7f7f7f7f, 0x7f81817f,
+0x81817f7f, 0x7f7f8181, 0x81817f81, 0x817f7f7f, 0x817f7f7f, 0x7f817f81, 0x817f7f7f, 0x81817f7f,
+0x817f817f, 0x7f7f7f81, 0x817f7f7f, 0x817f817f, 0x817f7f7f, 0x817f8181, 0x81818181, 0x7f81817f,
+0x7f7f8181, 0x7f81817f, 0x81817f7f, 0x7f818181, 0x81817f81, 0x817f7f81, 0x7f7f8181, 0x7f817f81,
+0x7f7f7f81, 0x7f7f7f81, 0x7f7f7f7f, 0x817f8181, 0x8181817f, 0x817f7f81, 0x817f7f81, 0x7f817f81,
+0x7f7f817f, 0x7f817f81, 0x7f817f7f, 0x7f817f81, 0x81818181, 0x81818181, 0x7f7f7f7f, 0x81818181,
+0x7f817f7f, 0x81818181, 0x7f81817f, 0x7f817f81, 0x81817f7f, 0x817f7f81, 0x7f7f817f, 0x7f817f7f,
+0x7f818181, 0x7f7f817f, 0x7f817f7f, 0x7f7f7f7f, 0x817f8181, 0x81817f81, 0x817f7f81, 0x7f7f7f81,
+0x81818181, 0x7f817f7f, 0x81818181, 0x7f818181, 0x817f7f81, 0x7f817f7f, 0x81818181, 0x81818181,
+0x7f817f81, 0x7f7f7f7f, 0x81817f7f, 0x7f818181, 0x81817f7f, 0x81817f81, 0x8181817f, 0x817f817f,
+0x817f817f, 0x817f7f81, 0x7f7f8181, 0x817f7f7f, 0x817f8181, 0x7f7f7f7f, 0x7f7f7f7f, 0x817f7f81,
+0x817f7f7f, 0x7f7f8181, 0x7f817f81, 0x7f81817f, 0x817f7f7f, 0x7f7f7f7f, 0x7f7f8181, 0x7f7f817f,
+0x817f7f7f, 0x81818181, 0x8181817f, 0x7f817f7f, 0x7f7f8181, 0x81817f81, 0x7f81817f, 0x7f7f8181,
+0x817f7f7f, 0x817f7f81, 0x7f81817f, 0x7f7f7f81, 0x7f817f81, 0x8181817f, 0x817f7f81, 0x7f817f81,
+0x81817f81, 0x81817f81, 0x81817f7f, 0x7f7f817f, 0x817f7f81, 0x7f81817f, 0x817f817f, 0x7f817f81,
+0x817f7f81, 0x7f7f817f, 0x7f7f817f, 0x7f7f7f7f, 0x7f81817f, 0x7f7f817f, 0x8181817f, 0x817f7f7f,
+0x7f817f81, 0x7f817f7f, 0x7f81817f, 0x81817f81, 0x7f817f7f, 0x7f81817f, 0x81817f7f, 0x7f7f7f7f,
+0x817f817f, 0x7f7f7f7f, 0x7f81817f, 0x817f8181, 0x81818181, 0x7f81817f, 0x7f817f7f, 0x8181817f,
+0x817f817f, 0x81818181, 0x81817f81, 0x81817f81, 0x7f7f8181, 0x7f7f7f81, 0x7f7f7f7f, 0x8181817f,
+0x7f817f81, 0x817f7f81, 0x81818181, 0x7f7f8181, 0x81817f7f, 0x81818181, 0x7f81817f, 0x7f7f7f7f,
+0x81818181, 0x7f81817f, 0x7f7f7f81, 0x8181817f, 0x7f7f7f81, 0x7f7f7f81, 0x7f7f8181, 0x81818181,
+0x81818181, 0x7f7f8181, 0x7f817f81, 0x81817f7f, 0x7f7f817f, 0x817f7f81, 0x7f7f817f, 0x817f817f,
+0x81817f7f, 0x7f7f817f, 0x7f7f7f7f, 0x81817f81, 0x817f7f7f, 0x7f7f7f7f, 0x8181817f, 0x7f7f8181,
+0x7f817f7f, 0x7f817f81, 0x817f8181, 0x817f7f7f, 0x7f818181, 0x7f81817f, 0x817f817f, 0x7f7f8181,
+0x81817f7f, 0x7f7f7f7f, 0x817f7f81, 0x8181817f, 0x81818181, 0x7f817f81, 0x7f817f81, 0x7f81817f,
+0x7f81817f, 0x7f7f817f, 0x817f7f7f, 0x7f817f7f, 0x817f7f81, 0x7f7f817f, 0x817f8181, 0x7f7f7f7f,
+0x7f81817f, 0x7f7f817f, 0x817f817f, 0x817f817f, 0x7f817f7f, 0x7f7f7f7f, 0x7f81817f, 0x7f7f8181,
+0x817f7f81, 0x7f7f7f81, 0x7f818181, 0x817f817f, 0x7f7f817f, 0x7f817f81, 0x817f7f81, 0x81818181,
+0x81817f81, 0x7f7f7f81, 0x7f817f7f, 0x7f818181, 0x817f817f, 0x7f7f8181, 0x7f81817f, 0x7f81817f,
+0x817f7f81, 0x81818181, 0x7f817f81, 0x7f7f7f81, 0x7f81817f, 0x7f818181, 0x7f817f7f, 0x81817f81,
+0x81818181, 0x7f817f7f, 0x81817f81, 0x81817f81, 0x7f7f817f, 0x817f8181, 0x81818181, 0x7f81817f,
+0x81817f81, 0x7f7f817f, 0x7f7f817f, 0x7f817f81, 0x817f7f7f, 0x8181817f, 0x81817f81, 0x81818181,
+0x7f817f81, 0x7f7f7f7f, 0x81818181, 0x7f7f8181, 0x81817f81, 0x81817f7f, 0x7f7f817f, 0x7f7f7f7f,
+0x7f7f7f81, 0x7f7f8181, 0x7f7f7f7f, 0x7f7f7f81, 0x81817f81, 0x817f8181, 0x7f7f817f, 0x7f7f7f7f,
+0x817f817f, 0x8181817f, 0x817f8181, 0x7f7f7f7f, 0x7f7f7f81, 0x81817f7f, 0x7f7f7f7f, 0x7f7f817f,
+0x7f81817f, 0x7f7f7f81, 0x817f8181, 0x81817f81, 0x817f7f81, 0x7f7f817f, 0x7f81817f, 0x7f7f7f7f,
+0x81818181, 0x81817f81, 0x7f818181, 0x7f817f7f, 0x7f7f8181, 0x81817f81, 0x8181817f, 0x7f81817f,
+0x81818181, 0x7f818181, 0x817f7f81, 0x81817f7f, 0x81818181, 0x817f7f7f, 0x7f7f7f81, 0x817f7f7f,
+0x817f817f, 0x817f7f81, 0x81818181, 0x81817f81, 0x7f818181, 0x81817f7f, 0x817f817f, 0x7f81817f,
+0x817f7f81, 0x7f81817f, 0x8181817f, 0x7f7f7f7f, 0x8181817f, 0x7f7f817f, 0x7f817f7f, 0x817f7f7f,
+0x7f818181, 0x817f8181, 0x7f7f817f, 0x817f7f81, 0x7f817f81, 0x81817f81, 0x7f7f8181, 0x7f81817f,
+0x7f7f817f, 0x7f817f7f, 0x7f817f7f, 0x817f7f81, 0x817f817f, 0x817f7f81, 0x81818181, 0x7f7f817f,
+0x817f8181, 0x7f81817f, 0x7f817f7f, 0x81817f81, 0x7f7f817f, 0x81817f81, 0x7f7f817f, 0x81818181,
+0x81817f7f, 0x7f817f7f, 0x817f8181, 0x7f7f8181, 0x817f7f81, 0x81818181, 0x7f7f8181, 0x7f817f7f,
+0x7f817f7f, 0x817f817f, 0x817f7f81, 0x81817f81, 0x7f7f8181, 0x817f7f7f, 0x7f7f8181, 0x81817f81,
+0x7f817f7f, 0x817f8181, 0x817f817f, 0x81817f81, 0x81817f81, 0x7f7f817f, 0x7f7f8181, 0x7f7f7f81,
+0x81817f81, 0x7f81817f, 0x7f7f8181, 0x81818181, 0x817f7f7f, 0x7f81817f, 0x7f7f817f, 0x7f817f7f,
+0x7f818181, 0x7f81817f, 0x817f8181, 0x7f7f7f7f, 0x7f81817f, 0x7f818181, 0x817f817f, 0x81818181,
+0x7f818181, 0x7f817f81, 0x7f81817f, 0x7f7f8181, 0x817f7f81, 0x7f7f8181, 0x7f81817f, 0x7f7f7f81,
+0x7f818181, 0x7f817f7f, 0x7f7f8181, 0x7f7f8181, 0x7f818181, 0x81818181, 0x817f7f81, 0x817f8181,
+0x7f7f7f7f, 0x7f818181, 0x7f7f7f7f, 0x7f7f7f81, 0x817f8181, 0x7f7f7f7f, 0x817f7f7f, 0x7f818181,
+0x81818181, 0x7f7f817f, 0x81818181, 0x7f818181, 0x7f817f7f, 0x7f817f81, 0x7f7f8181, 0x81818181,
+0x7f7f7f81, 0x817f8181, 0x7f7f7f7f, 0x81818181, 0x81817f7f, 0x7f817f7f, 0x7f817f7f, 0x817f817f,
+0x7f817f81, 0x817f8181, 0x817f817f, 0x817f817f, 0x7f7f8181, 0x817f7f81, 0x7f7f8181, 0x7f7f7f81,
+0x7f7f7f7f, 0x7f7f7f7f, 0x8181817f
+
+e =
+34560
+
+k =
+6144
+
+rv_index =
+0
+
+iter_max =
+8
+
+iter_min =
+4
+
+expected_iter_count =
+8
+
+ext_scale =
+15
+
+num_maps =
+0
+
+code_block_mode =
+1
+
+op_flags =
+RTE_BBDEV_TURBO_SOFT_OUTPUT, RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE, RTE_BBDEV_TURBO_POS_LLR_1_BIT_IN,
+RTE_BBDEV_TURBO_NEG_LLR_1_BIT_SOFT_OUT
+
+expected_status =
+OK \ No newline at end of file
diff --git a/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_dec_c2_k3136_r0_e4920_sbd_negllr_crc24b.data b/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_dec_c2_k3136_r0_e4920_sbd_negllr_crc24b.data
new file mode 100644
index 000000000..cfff56ad9
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_dec_c2_k3136_r0_e4920_sbd_negllr_crc24b.data
@@ -0,0 +1,680 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2017 Intel Corporation
+
+op_type =
+RTE_BBDEV_OP_TURBO_DEC
+
+input0 =
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0xD0000000, 0x33CDC8CE, 0x4FAEE4CC, 0xC7DC23C3, 0xC306D6CA, 0x2B360A24, 0xE91C423D,
+0x1F323427, 0x4B1C33B6, 0x3EC9D0E7, 0x39204DD1, 0xCCD73C37, 0xC6F6D8E1, 0x1DF828F3, 0xDEE34025,
+0xC41EC235, 0xD035E1D8, 0x3CC32843, 0x29B60C3C, 0xE92E122E, 0x454BD4C8, 0x35D02543, 0x33E4D0AC,
+0x07AF2228, 0x38C62DD1, 0x233800C5, 0x3CC02DD1, 0x35E73B19, 0xDEBED026, 0x33C5EDD9, 0x33E51527,
+0x1F21EA18, 0xCC3E3BD2, 0x013CC14C, 0x3724D23B, 0x23CDED2D, 0x21424630, 0xC5B0E64D, 0xCFC03BEF,
+0x24294241, 0x46C526BC, 0xD82F334C, 0x1E283DCB, 0x3F3F33C7, 0x4A14D2A1, 0xD92F2AF3, 0xCFA820CC,
+0xDD30C6CB, 0x2B3ACAB7, 0x4AFE29CD, 0x25BD3200, 0x2D293323, 0xD32A3B29, 0x29E64D0C, 0xBE4BFB3C,
+0xB1DD242D, 0x0427F11D, 0x3046CFDA, 0xD633C0D5, 0xC0DDBE01, 0xDA3DD9B4, 0x3BCE3638, 0x23262CC6,
+0x432BD2AE, 0x23A9E1C7, 0x1BE45609, 0x22CD35AA, 0x32D6371F, 0xCE27352A, 0xE2B73F40, 0xC2D0CE2C,
+0xE72E3A3E, 0x2FF52147, 0xEFCF2E33, 0x003103CA, 0xC6C14A33, 0x45CAC0CF, 0x011E1FD3, 0x23D3C72B,
+0x2EB644C4, 0x484BD930, 0x3AC22E1A, 0x1AB6DD42, 0xCEDDE232, 0x3ACCCC31, 0xB830CA2D, 0xC930D2D7,
+0xD0E049BB, 0xE6243524, 0x3EF53914, 0xCB083BE3, 0x411EDBE9, 0x30C3C3E8, 0x3721F5E7, 0xBBDF3FD9,
+0x2AD21F33, 0xEE402858, 0xD3AFD237, 0x3D39401D, 0x30003623, 0x4734DC46, 0x192ACD32, 0x3324CAC2,
+0xD714D4B5, 0xDC2E21D0, 0x2327CDBA, 0x15B739C3, 0x31C9EEB8, 0xFAB5372E, 0xC239B5DA, 0xE628440F,
+0x34D425C6, 0x293BE6FD, 0xBDC04BBC, 0xE0DDB7CF, 0xD627BC34, 0xA5422FCB, 0x13211ABC, 0x1708E51C,
+0xCE33DAD1, 0x51AEC731, 0x2E383824, 0xC722D0D3, 0xCB32292B, 0xCECC402B, 0x1B312EF0, 0x34CF46CA,
+0xE3BD252C, 0x0C21EC36, 0x4ADFECBE, 0xC4D2E62C, 0xADE5BAD3, 0xDDCC1D18, 0x521AC135, 0x3F302D37,
+0x22CE2DCC, 0x262A1BCF, 0x4EE7D7CA, 0xD43D3526, 0x1840E020, 0xC3201F2F, 0x3ACB453E, 0x41EAD5B6,
+0xB6C4CF17, 0x243A55D4, 0xC7501E28, 0x351DCD1C, 0xE3A8D502, 0x3235271C, 0xAC342F00, 0x34B4E3D8,
+0x36473AE4, 0xAE403CEB, 0xBC3FDA3F, 0x552CDBEC, 0xE7C42B5C, 0xE743E13D, 0x18D44650, 0xBA2EDF31,
+0xB5C3EC42, 0x432EBE2E, 0xADDE4F2A, 0x401BCAD6, 0x03D6EAEB, 0xD0DEB133, 0x153FC4D4, 0x30DA2FD3,
+0xEE282FD9, 0x242ADC39, 0xD72B42D9, 0x44C7E0D5, 0xC72CB3C7, 0x27C9472B, 0x0036DFB6, 0xD9C53112,
+0xC0360E0E, 0x4EEA0E27, 0xEDCF27C1, 0x1739D5DC, 0x22DE2CE1, 0xDCCAF633, 0x31D02417, 0xD7DCD0DA,
+0xDE1DE0DC, 0xD827DD22, 0x1CDBD7EC, 0xCE171BCB, 0xEE2347CF, 0xC22C312D, 0xDBCC2A38, 0xBE0ADED4,
+0xDC20CC2D, 0xD5380DB2, 0x2A32C701, 0x3EC7D41E, 0xCDD7D74C, 0xE83E2A44, 0xC12B26E6, 0xE70046D7,
+0xD626D1EC, 0x35DDE41D, 0x303F27BD, 0xC94D4517, 0x31D1E229, 0xAD3529BF, 0x3AC5D21C, 0xCF1DB731,
+0x2738DBEB, 0x1F382B33, 0x1ED52213, 0xFCE22CD2, 0x1330331E, 0x4A30BA0F, 0x1F38B42A, 0x2E34CB1F,
+0xE3E125D5, 0x3AC72D17, 0xBD3C342C, 0x37272810, 0x1D34E4C7, 0xE5CC2EF8, 0x1E2FF1DF, 0xB9294236,
+0x26F10017, 0xBDE3FBD1, 0xB7DB52D0, 0x2E3CB8E9, 0xB3343D3C, 0x3E3BDFDD, 0x1F46393A, 0x25FA20C1,
+0x2D194CD1, 0xE9471D26, 0x34C3242E, 0xAE012034, 0xC8F3FED7, 0xB825362B, 0x322DC136, 0x42F41511,
+0x181855C2, 0x4937D5EB, 0xE13CDC23, 0x08242A28, 0x2DCCDFC0, 0x13CEC64F, 0xB3E6F7ED, 0xD93401EE,
+0x3D02DEE0, 0xCFC52300, 0xD2F1BE38, 0x2D092924, 0x253E2AF0, 0x37DACAD0, 0xDB1ECFE7, 0x40CED84D,
+0x3706C42A, 0x4231D91A, 0xDD30471D, 0xBD272DC8, 0xCB1941D9, 0xC22FC7C5, 0x333F3C0C, 0x3F3D2518,
+0xDDCCD143, 0xB3D834D5, 0xD231BEE4, 0x2BDB3B3D, 0x2F2754E7, 0xEAF3CE64, 0x3632E4C0, 0xD83324C2,
+0x11A4D5CC, 0x00D627D3, 0xD51F2731, 0x17C92BE2, 0x1AD62E1E, 0x16DB2418, 0x16B83823, 0x2711D54B,
+0xDFB02BDF, 0x28CDA600, 0x2AE9ED3E, 0xD314CD20, 0xD04F272D, 0xD0F9CD37, 0xCC1735E5, 0xD328EC37,
+0xA7D31A26, 0x214BD9A5, 0xCFCB4226, 0x233C4AD5, 0x26EF37D8, 0xD83E3230, 0x3EC8C93C, 0x07B9282B,
+0xD1E6DAF2, 0x31C52EDD, 0x3A0038A5, 0x56C1E0DF, 0x22E437C0, 0xDBC8143B, 0xCF1DB03F, 0x1D4BE636,
+0xB8D3C23A, 0xBCC3372E, 0xAF284228, 0xDCE02F1E, 0xB9D4E3D4, 0x56D3D0D8, 0x494816C1, 0xFB1240C3,
+0x23B1BDD2, 0x1236322E, 0xC2CBCB47, 0x102FE7C8, 0xBB0AE1D9, 0x3831BC29, 0x39AECBD9, 0xC7CF1ED2,
+0x0AE43913, 0xDDD62F2C, 0x4FD522E6, 0x3CB90A55, 0x2101C8EC, 0x432604BD, 0x29E3E31E, 0xC25B3C29,
+0x20E927D4, 0xD4300C41, 0xD9AECBD5, 0x48D8E143, 0x2CEE272F, 0xD2C11FBA, 0x2F2DB8D7, 0x1CF4DFE6,
+0xCCDCCEBF, 0xE052D0EA, 0xDADDEB1E, 0xC72ACB3A, 0x332E2B1B, 0x2D26E827, 0x2A29E6A6, 0xE614D6D5,
+0x221D1CC5, 0x51102031, 0x1735C248, 0x31D4DCD5, 0x3C20DC00, 0x2D231732, 0xE54AD9CD, 0x1D24D826,
+0xE936373A, 0x20C0D3C9, 0x2B231520, 0xD6CED133, 0xDFC8C7B5, 0xDC2FE8B8, 0x3332249B, 0xC6E6E11F,
+0xB7DA17AF, 0x1FD91321, 0xEE29CD41, 0xE1262FEF, 0xB6181DC6, 0x24F618C6, 0x3BE5DA2D, 0xFC2C35C8,
+0x51C232CC, 0x36183EDF, 0x2B2CD6EF, 0x2F2DBDB9, 0x00D03413, 0xCDC9CBC4, 0xDB3309CC, 0x264EB22C,
+0xCED1EAC9, 0x38D53F27, 0x2EE7D6F3, 0xC7232C23, 0xCCD42515, 0xC9C8C8E3, 0x231E3930, 0x5BBEDFCA,
+0x34D7E5D7, 0x25CCE9A7, 0xCD4BF1E8, 0x5E2542E6, 0x38DCE43E, 0xDA34F0CA, 0x2EBFF841, 0xDA422D3E,
+0x13CA2231, 0xD5C6DA27, 0xBAC0C6B6, 0xC82C49FF, 0x31312123, 0xBF00DFBF, 0xE8F23819, 0x2C34E81E,
+0xDC4C2B0C, 0x3A5650F2, 0x2CCB0FD0, 0xC42D4C28, 0x4F19DA4B, 0xF63DE630, 0x29F51C1F, 0xD6BE14C4,
+0xD2DDCDD6, 0xE0D02825, 0x2FE0E3D1, 0x41342FE8, 0x25D547ED, 0xC5A732B5, 0x19BD503F, 0x4CD9DA3D,
+0x24D013BF, 0x4FE93FCA, 0x12DBE8B9, 0x33DF151F, 0x1E24AECD, 0x2E2E3656, 0x133500AD, 0x3641403C,
+0xBDDF2BD4, 0xE33130E0, 0x3DC02726, 0x18390C3C, 0x26C04DC9, 0xDBF22D35, 0xC3E1EC45, 0xCED12623,
+0x1CE92E39, 0xCF2FD222, 0xD8DE31E6, 0x1EE916D1, 0x35DCB621, 0x19C2EB54, 0x41B34ED4, 0xD9373BDF,
+0x203ED6D8, 0x2CD4A8C8, 0x14E0C6C6, 0xDF242131, 0xCDD921CF, 0x33AACBCC, 0x2AD1A5C6, 0x3ED42B00,
+0xBF181FD0, 0xC0CC2329, 0x1BD1EDC9, 0x3A2D47CB, 0xDD27D8CB, 0xD8E8BAE6, 0xD5DE3FF5, 0x2C30D641,
+0xDCDCDF26, 0xC2C34433, 0x2837F53D, 0x29D8E12D, 0xBF3FEBD0, 0x34CACC45, 0x30E1DA21, 0x39DDDCB3,
+0x30193518, 0xC0132E19, 0x313D3736, 0xB2D4FF34, 0xF4D92945, 0xC70D3AEA, 0x3E3034F0, 0x00DA2F07,
+0x1DD415EB, 0xCC1AC4B2, 0x232EB21C, 0xD7431E16, 0x2FCE0835, 0xCF39242C, 0x1BCA2CD4, 0xD8B6D0FA,
+0x18C3262F, 0x2CE3BDCB, 0xD839DC38, 0x26161D24, 0x1223B3DC, 0xD6D63515, 0xCFBABFC6, 0xC1BF18C7,
+0x2637C715, 0x264020EA, 0xD024D3C4, 0x4126A11D, 0x2E34442D, 0x32BB1CC9, 0x36E7DD40, 0x3113C3C5,
+0xD100C8CE, 0xD21651E8, 0xC3CFCDD9, 0x403139F1, 0xD3D02119, 0x32171AC8, 0xD2F9B62E, 0xB5B335D4,
+0xC1462835, 0x1F1C2C35, 0xD8DDBF35, 0x422D2DDA, 0x38ED19D7, 0x3326BD2F, 0x4534DFCE, 0x46403132,
+0x19CDD51E, 0xCBC3CBC0, 0xE3CF2139, 0xC646ECD8, 0x29E7C7DD, 0xE94CCAF8, 0xB8C6EA37, 0xEC2B09DA,
+0xC8C82738, 0xC6CCDDFB, 0x3FCA3B4D, 0xC6482BD1, 0x2DE1D333, 0x3530BB3A, 0xBF4838EA, 0xE4411ACB,
+0x3514D939, 0xCD372B27, 0x4BEC1C39, 0xAB21C221, 0xD8D83F37, 0xCCE0512D, 0xDA4640C2, 0x36AE1CD6,
+0xBC2F303B, 0x20C3B8CD, 0xBFE6D4E0, 0xBECCC4EB, 0xC7CC1E4E, 0xCC2BD03C, 0x3738C518, 0x23B824CC,
+0x2BECD0BC, 0x2107B945, 0x2AC21B00, 0xBE49F2EB, 0x31D2E3DC, 0xDAD23F11, 0xCDED3137, 0x3ABADA3A,
+0xD9C0C12C, 0x36CEE8CF, 0xD0D5BDD3, 0x2AC9CFCC, 0xE61FD747, 0xC7B7B12A, 0x2BD520DF, 0xD5BC1D31,
+0xE6D8423B, 0xCC21EB43, 0x1F46292D, 0x171EE038, 0xDFA5E244, 0x1BD5C4AD, 0xC622C2B5, 0x4E33CFD3,
+0x3F263F30, 0x34E4CF15, 0x0041CC36, 0x4021DB29, 0xD62E2231, 0x2C22AE21, 0x1A201F44, 0xC6D7C100,
+0x3A335125, 0x42473A2A, 0xDF32DA1F, 0xE5D8B51F, 0x3049E832, 0xE6DED531, 0x315DD01E, 0xDDD92034,
+0x2EBF0AEB, 0x4B4639DD, 0xBED6C8DA, 0xDABA3714, 0xDD133BD7, 0xC934EACF, 0x0D35C3E2, 0xB4CCC213,
+0x37EE202B, 0x0AD21AD9, 0x28D2C9CD, 0xD800DB2D, 0xD34B274A, 0xBDD33644, 0x38EFF1CC, 0xBDABD734,
+0xB11E3E32, 0x2F1C23DC, 0xE80BD7DE, 0xDBE7D6F7, 0x240248BF, 0x23CEF1F6, 0x1F56E634, 0x33CD2230,
+0xB4DB182F, 0xD338BA36, 0x33392B24, 0xBB3B3649, 0x282F30E7, 0x45CC35B1, 0x46261B30, 0x1FD9A722,
+0x3BE3E1C3, 0x25334FF0, 0xB8BB28C0, 0xD751E2CC, 0x403600E1, 0x461FC3ED, 0xCB30C202, 0xD8D2B92A,
+0x2923D71B, 0xB9DDE6CC, 0xB935CB0A, 0xEF37D723, 0xD1DA06CD, 0x303CE928, 0xF8B9BA27, 0x37370A1F,
+0xD6C1DDD9, 0x18B6463F, 0x28C71FC3, 0x38D8B53A, 0xD22DE9A1, 0x18DDB236, 0x0A28D515, 0x363B263D,
+0x1F3A122D, 0x202AE323, 0xC72337E8, 0x32ED08CC, 0x2658C347, 0xC6F4E200, 0x45D1C2C3, 0xF92D343A,
+0x3EBE1E65, 0x10EB2FD3, 0xC64FD5E5, 0xC5D3F521, 0xE9CA1A37, 0xD736CDD6, 0xDCC7C233, 0xC9C8E2D4,
+0x2B99D60A, 0x1EE3DA0D, 0x30BDD8E1, 0x16D3BE1F, 0x1C4524D4, 0xC8D5D432, 0x19AEDA3D, 0xCDD4CAD5,
+0xD835332E, 0x2412DA1B, 0xD0CBEBD7, 0xC3CEF425, 0xD1D743E3, 0x000A163B, 0x23DC3129, 0x202332D1,
+0x322F2216, 0x28F5131A, 0xD316CF0D, 0xD0344C30, 0x423325D7, 0x37204237, 0xEEDDC721, 0x2038E805,
+0xD525C522, 0xBEDDE327, 0x3AC8BCC5, 0x45402E27, 0x34DFC1D9, 0x2DB0D049, 0x322F2ACF, 0xDB3AC3C5,
+0xD8D0EB4F, 0x2A1DCCCC, 0xD0D33DC2, 0x1349DC45, 0x39CBBC32, 0x30301EBF, 0x2C00DFC0, 0x5DD0CA11,
+0xD0220C3A, 0xC527CD1A, 0x31CD372C, 0x2E0ED7DC, 0xC6F92338, 0xF537E8D0, 0x3626DBBF, 0xC9C3C6C3,
+0x30DDBE17, 0x50394C39, 0x3A11343B, 0x27E8DC2E, 0x0DDB303F, 0x1818BCF0, 0xC5DC17DB, 0x24C53A26,
+0xECB0E7E2, 0xC21B1928, 0x15D7C920, 0x4126AACE, 0xE214D8C7, 0xD40BCD42, 0xB2CBD018, 0x554436DB,
+0x3C2D25D9, 0x21CEC0DC, 0xE9251919, 0xE41ACDC3, 0xDECF67C3, 0xEDDE3225, 0xCA30EEDD, 0xCFE01E37,
+0xD231BF41, 0x34DF1EBD, 0x1DD2CC2C, 0x21142E29, 0xEA322B37, 0xCEC311DE, 0xF0F738DD, 0xEBED1A40,
+0xDCE640E8, 0xD0D1BA2B, 0xE906D6DB, 0xC71938B1, 0x13C59F39, 0x1ED6DBB6, 0x231BD3A9, 0x2C2B30DC,
+0x0ED50000, 0x2DD4EED6, 0xD9D21BEE, 0xE1442E36, 0x38CEC4AE, 0xC626CCF4, 0xC2CD3F36, 0xD71F2BD9,
+0x2F421837, 0x31B11A23, 0xD4D5282D, 0xD0E6BED7, 0x30D737CB, 0xC8142A09, 0xD8D2CFDC, 0xC22D3C44,
+0xF62DF1C9, 0x3D38DBC9, 0xBFC2E5D3, 0xDCE42128, 0x3A304038, 0xDBE6D626, 0x28250FE0, 0x27B52BCF,
+0xE0D8DC3C, 0xC8DA09DA, 0x2DF02FD4, 0xE539D7D1, 0xCDE729C2, 0x4816E313, 0x4E392AC5, 0x112CF50F,
+0x3AD94924, 0x4B22273A, 0x43D2DE9E, 0xDA22DE30, 0x3FE324DB, 0xD9CC2811, 0x29D253D4, 0xE2BC353C,
+0x0CC92147, 0xB8F0C6F5, 0x3D35DEBF, 0xED4ACBEB, 0xAC34E532, 0xEA2AC526, 0xEAC0BFC8, 0x4431D9DD,
+0xC0CE4E21, 0x0000F2DD, 0xE0D8C7BA, 0xDDDC2E36, 0xDA42C22B, 0x2B312614, 0xDC391EF4, 0xCC2E31D8,
+0x3DF4D630, 0xC72C21D9, 0xDB2BD531, 0xD916DB3C, 0xBEC11DD2, 0xD1D5CEA4, 0xBA072ED7, 0x402F2829,
+0xE3C0F627, 0xC7CC3CBD, 0xF41D3345, 0xD706DB14, 0xB2DF36AC, 0xEBC4551F, 0x32B01929, 0xC5B6DDEC,
+0xD91DE130, 0xE1213222, 0x4126D927, 0xAF52300D, 0x291B301C, 0x241A1843, 0xE43C1FDC, 0xBBCC191C,
+0x2C25E011, 0xBD3EE9DB, 0xC9BF1345, 0x2F333AD2, 0x1CD822DB, 0x23BE43EA, 0x2527EADC, 0xB52E1C1E,
+0x391CCF17, 0xD2C82C0C, 0x242E3830, 0xD328D808, 0x35CEF4CD, 0xD81BE035, 0xD0DF38DA, 0xD1D3C42E,
+0x3A2C1EEA, 0xC6D03AD2, 0x1E362E4E, 0xE6080000, 0xD018C312, 0xEFAA323B, 0xD1294BD2, 0xBAD52C3B,
+0xE0373E10, 0x260CDDE2, 0xC902E040, 0x30472BD5, 0x534BE7D2, 0x20CCB523, 0x21CCD843, 0x2259E24E,
+0xDE35FDD1, 0xD4D91D3E, 0xCFCA11D5, 0x35D724BD, 0x3C3F0CB8, 0x3EC447CB, 0xE835DDC4, 0xC3C73E31,
+0xDD432B2F, 0x2FDCBDC2, 0x2D3CCE17, 0x25B8AB31, 0x2ACCFFE5, 0x40E03C2B, 0xE7DA1841, 0x17E53020,
+0xD44E0B2F, 0x46DA22EC, 0x33422425, 0x211840C5, 0x23C1CFD5, 0xC8350BE5, 0xD833CDD0, 0xE63DC528,
+0x292ADC17, 0xD8BCD3C1, 0xCD39F02E, 0xA71EC343, 0xD6CC3A3E, 0x2E12D2CF, 0xC40B1FB1, 0x37DCDC33,
+0x20E52EEA, 0x271629E5, 0xC4BEE0C2, 0x1B3CDBD6, 0x00004934, 0x18E145C7, 0x4BE93522, 0x3029C309,
+0x31D1D50F, 0x3DB42C1A, 0x21A643B2, 0x3E26D8C2, 0xCDDE28D1, 0x44E835E1, 0xEDC4DED1, 0xC4F9C9ED,
+0xC5E1BBCC, 0x4426C1D4, 0xD9BB372B, 0x37232E0D, 0xE5D0D0AE, 0xC9D23CC5, 0xF638E2C7, 0x2DB6E6D9,
+0xC0C9B72D, 0xDF28E6D0, 0x11E2DCC8, 0xD8E2F31C, 0xEA3937DE, 0x2741B953, 0x19D5CEE6, 0x33DDC22D,
+0x2BF72326, 0x2143363C, 0x13CA1A1F, 0xB9D7DAC9, 0x22C6B72E, 0xC5DA2631, 0xCB32ECCF, 0x032D15D4,
+0xBB1EE613, 0x38C42452, 0xDBCD2726, 0x1AF44039, 0x22CF2EC6, 0xCAEDE6B4, 0x2823D423, 0xDCC61C39,
+0xC12D19BF, 0xC612C31B, 0x31F1D32D, 0x3E1C09E4, 0xD824C5E7, 0xDFFC2839, 0x2AD40000, 0xDFCCBBBC,
+0x3FC9CC12, 0xEF2626E1, 0x0FCDEA2A, 0xEBD735CF, 0x4E1A2834, 0xCDEDE1D5, 0x31CCCD29, 0x2F4618DF,
+0x48C11936, 0x29DADE41, 0xD71C1AE0, 0xDDD2285A, 0xB13DCDC8, 0xF020B8DB, 0xD0B837C2, 0xDC3B48E8,
+0x18C3C530, 0x192C2940, 0x2ADA3AE4, 0xEA34C55A, 0xDAB2BED4, 0x1A51E838, 0xC832AEBE, 0x10DE2DE2,
+0x3B2408CC, 0x22CEBD1E, 0xC919D6BE, 0x21D2D128, 0xCFE03A2A, 0xB7DEDC3B, 0x33C630ED, 0x5A0EEAD1,
+0x3CB03FCE, 0x24EC15E4, 0xD0385BBF, 0x20CB4E4B, 0x30E0C535, 0x301BCD3C, 0x3642DDD3, 0xD90FDC50,
+0xCA35BBCC, 0x393B3B2F, 0xE2BE352D, 0x362BE3BF, 0x1922B73D, 0xDE3448BD, 0xF7C0C02D, 0x00002F43,
+0x2FCAD0E4, 0xDE412A34, 0xFBF339DA, 0x2BB94330, 0x39B521D5, 0x2DE31F43, 0x382C4F23, 0x35314C2D,
+0x2DE3DBDC, 0x3A18EAB9, 0xD0DF131C, 0x45EA41E0, 0x48BBC1BF, 0x2220D7E4, 0x29C8D0C5, 0x3C0527CA,
+0xC1ED061C, 0xCB48CA3E, 0xE846E633, 0x0EB2D7CF, 0x44C42335, 0x27F0D440, 0x332FD847, 0xD72F2CE3,
+0xD7ECD6C9, 0x4026D51F, 0xD334BEE6, 0xE01B40C5, 0xD62BDA2F, 0xDEEA36AF, 0xABD039C7, 0x2E123FCE,
+0xFD3924A8, 0xD0C6D529, 0xD52AEED4, 0x211D2A35, 0x1EE9C5F1, 0xCECAF921, 0x38C92740, 0x3E4E2A1A,
+0xB8FAC7C3, 0xF11F1C36, 0xD4DA163A, 0x2701DC38, 0x0E3019D5, 0x57DB23E1, 0x43CD26D0, 0xADCC4934,
+0xE0D3D706, 0x403A0000, 0xDECED5E1, 0xDAE6CF1D, 0xD5E33C40, 0x35B3D038, 0x24D73231, 0x2EC01D40,
+0xC2D23CDC, 0x44C20BC6, 0x44C1D7A8, 0xE9D1C745, 0x36E5C2C6, 0xB81B2D42, 0x413917CC, 0xD8E031BA,
+0xCE3CC1C4, 0x3EC91AC5, 0x0DE406CE, 0x35D1DA27, 0xC8E5CAE3, 0x313EC127, 0xB61631CA, 0xD73B3444,
+0xD834C850, 0x37D31DE2, 0xCCC9153D, 0xBF41E9CA, 0xD649F9DC, 0x3A31D501, 0x50CD1DE3, 0xC8E54012,
+0x4432D4D5, 0xCBB93023, 0xE8FCD6C2, 0xCEE0CAD1, 0xE41B2E39, 0x28CC0E40, 0xDFEAEFFD, 0xB3EA2723,
+0x3534B935, 0x42D12A09, 0xED3DCA0A, 0x263C352B, 0xAD224EDF, 0x2CDF2A10, 0xF0BE4CAD, 0xBD45D8D5,
+0x263F27D4, 0xE2372FB4, 0xC35240DF, 0x1EF3DCDA, 0x3AD0D224, 0x27DAD527, 0x303A2CBE, 0xCDDCC829,
+0xE22B35C9, 0xD5DC222F, 0xEEBDCB63, 0x2042DAD8, 0x06CC3524, 0xD11BBB3E, 0xAE2229E6, 0x1FC81E1F,
+0xEF4B12DA, 0xE1D846DD, 0xBA3B1CDA, 0xE154C801, 0xD6092CD2, 0xD0F132CB, 0x3A40D027, 0x123530BB,
+0x1EC5B4DC, 0xD11825CB, 0xC603DECC, 0x28BCC5ED, 0x2C03E1CD, 0xE9AA12A5, 0xDB2DD53A, 0xCA32D01E,
+0x2F4A09C5, 0xFE411E26, 0x1354CEC8, 0x3736C5F4, 0xC62F3C3B, 0x252DDFB9, 0xD0353723, 0xD8DDC21E,
+0xE3DF21ED, 0xDAE33AC0, 0x2ADA323E, 0xDC43E1D9, 0x3A23463E, 0xD71934F8, 0xDB1037C8, 0x38B7BCCC,
+0xDA2C1CC1, 0x3EEEE349, 0x2ACB2A26, 0xD4BCBCD8, 0x4AB50000, 0x9EC941D8, 0x3824C9D0, 0x203CCD36,
+0x0DCDEDD8, 0x5B333036, 0x3125C7DD, 0xD7383F30, 0xD6C72617, 0xE1C245DD, 0xBDD3E818, 0x3210422F,
+0xD00ECF2E, 0x44411A3A, 0x02E72E22, 0xF106D24C, 0xCFC847CF, 0x0421AFCF, 0xD2C525A9, 0x3CBCE63A,
+0xE02A1E36, 0xE036E3E4, 0xDDC22B25, 0x2EC7452E, 0xE1E3EFE3, 0xD82ED6CE, 0x36C1E115, 0xD129E026,
+0x251E1C44, 0xE8E5D7CA, 0xDDE7D40F, 0xC5D8D9D8, 0xA1C52550, 0x3ACDDA25, 0x3548C4E1, 0x2913D9C8,
+0x1E28243A, 0xCA3324E2, 0xD0D7D1C0, 0xBDE9D0C4, 0x35BF4FE0, 0xCA42E33C, 0xBBFA33DA, 0xD753C9CD,
+0xDA2CE11D, 0xD9BEE407, 0xE31DD4C1, 0xCBCCD51B, 0x3BB8D6C9, 0x0000DDDD, 0x28D3CDDC, 0xD62445B5,
+0xB3211F13, 0xD7B9BF29, 0xD429D5E5, 0xB9C23CCE, 0xC219EDC1, 0x211E0B34, 0xB8F0E1C1, 0x33C0EF4C,
+0xD8D6C7D0, 0x30E8D3D8, 0xB06514D1, 0x21B9D915, 0xE2323DCD, 0xDA41311F, 0xE24AB11F, 0xE9B92BE7,
+0x33EA23C3, 0x04C430C0, 0xE849EF0D, 0xD1232C2C, 0x260FD13E, 0x002DCBDD, 0xEB3129E2, 0x20B4C7C6,
+0x25D32335, 0x2CCB39D0, 0xEA13DAC6, 0xCDEE2E14, 0xCDAA2CD0, 0xE1D339E6, 0x36DCD03B, 0xF5453114,
+0x34D428ED, 0xEAEDF458, 0xD226CC2D, 0xEDD03AD8, 0xEE1CC83D, 0x10DBB5E5, 0xF018CBDB, 0x5E33E31E,
+0xC6D9232B, 0x1A373130, 0xDFE7DDCB, 0xB21FC5C6, 0xC1CDB1B7, 0x3F2DF128, 0x482BB426, 0x323E0000,
+0xF5D43741, 0xCC1C1FB9, 0x00004E2E, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x13000000, 0xC9112F26, 0xE3DF1FED, 0x284020CF, 0xC6ED13CA, 0x38B1E217, 0xD90FE8DB,
+0xD7C0C3B7, 0x341336CE, 0x45E2D239, 0x3E22F0D8, 0x461D2C29, 0x3825D628, 0xD733E5F1, 0xD7B6C532,
+0xC62B28C7, 0xD0BF3024, 0xF0BA3A26, 0x2D1D2836, 0x1BCF2DDE, 0xD02B251A, 0xB938CD2C, 0x34E220D9,
+0xC2BEC23B, 0xCC2908CD, 0x1D080039, 0x42BB25C5, 0x32EB3206, 0x36D3D1E0, 0xC32E10C3, 0x243B13E6,
+0xC02A1FF0, 0xC325D6DD, 0x23E33D2C, 0xDCD7DED5, 0x9C23C21D, 0x32E62056, 0x06314421, 0xE9E4ED24,
+0xC0C9C233, 0x44BE3FDD, 0xD25134E5, 0x292EE2E7, 0x4EE0D1DF, 0x29C82E3A, 0xF5392A22, 0x4BE2D133,
+0x58C2C4C8, 0xD2212920, 0x2935D4DB, 0xDECF4400, 0x31D7CCC9, 0x12DCFB2D, 0x2B2F0723, 0x2DE7B54E,
+0x2AD24ADA, 0x261E2931, 0xD538CEDF, 0xE12A1C2C, 0x33DDEDE9, 0x2FFC36C4, 0xE61823CE, 0xC225E1DF,
+0xC2102FEF, 0xCFD22617, 0x3EFBDA37, 0xDAD6BCD8, 0x110623E7, 0x3320E2D1, 0x1932B8D5, 0xCCEBBFC9,
+0x47234011, 0x0A2B45D8, 0x25C11244, 0x00EF3221, 0xC634CC38, 0x0F34D0E6, 0x1A3F40EA, 0x2DEDC82D,
+0xFFD2C8BD, 0x40E321CD, 0x24441BD3, 0xD932EDDD, 0x48362127, 0x1230EADE, 0x39E632F9, 0xD0D451DC,
+0x18DD2DC0, 0xC22AC72E, 0xD71E172E, 0xAFDED12B, 0x1DBAA948, 0xF927B647, 0xD7C31C23, 0x3328E73B,
+0xDBD72DD9, 0x3E23D424, 0xCB09E025, 0x16BA21CF, 0xDD00B9CB, 0x29E3CAD7, 0x3A19D011, 0xEA0EC4E0,
+0xD51CDDBF, 0x2AD1C640, 0x2CD6CBD3, 0x36D6D43C, 0xA72851C2, 0xE7EE3C3F, 0x432A4721, 0x46C726E5,
+0x253FD426, 0xD03B2C27, 0x1AEC343B, 0x5A2BC735, 0xCE31D2D2, 0xCFEDF30D, 0x492B4141, 0x20DC1BAD,
+0xDAF81CD9, 0xD6EAD21D, 0x2339CD25, 0xA31546BB, 0xD0C0F63F, 0x382BE719, 0xDA34BFDB, 0x1EDBBADF,
+0x5151E646, 0xC164D5E2, 0xD8292FCA, 0x33CF1F3B, 0x3FF531F4, 0xD3EB3453, 0xD433E236, 0x1B102B1C,
+0xC6C320E8, 0xD8393C2E, 0x17EAB7EB, 0xE0C42CE5, 0x313720CC, 0x3F39C42D, 0x33374AD5, 0xCE1ED41E,
+0xF7D2BE0D, 0xF114311E, 0xE22CD6EB, 0x4E23CA2A, 0xCDCF36D3, 0x463B1EC4, 0x312DE400, 0x1A1219CE,
+0x0CD1E2C3, 0x3850CBEA, 0x31D7CCCD, 0x3F2D3936, 0xC518E33E, 0xC31F31B7, 0xC0AED6C9, 0x2AC6E5D9,
+0xC334B8BF, 0x35EFD72E, 0xD72B3AD8, 0x31073AD7, 0x25E22D38, 0xF0CD4A64, 0x28DFDB2D, 0x22D9E714,
+0xB8E43935, 0x35FCBFEC, 0x1DC1391E, 0xD6E731A5, 0xBBC8B837, 0xBD3FBE3A, 0x00BADC53, 0x28C43F33,
+0x1CE0BAC2, 0xE0E125D9, 0x3BD6CB3D, 0x313230BE, 0xC4243D34, 0x1F24D2B1, 0x2058384C, 0x2AE9192D,
+0x302CCCEE, 0xD435C4C7, 0xB0D53217, 0xE52D32D9, 0xE0AF2127, 0x3E47D0CA, 0x4112BFCA, 0x27D0D0BD,
+0xE81E5CF9, 0xD50CBCE5, 0x2DC9B4F7, 0x3FBA33BC, 0xCBCC2821, 0xDFD51326, 0xD20ADA3A, 0x2000C3BB,
+0xC4DC4BE5, 0xCD39D7A7, 0xC40FF54F, 0xCC3BD1CC, 0x2C19EACC, 0xCD2E2129, 0x44D9F0DB, 0x2B40E11C,
+0x31343F4C, 0x0E142817, 0xD0104135, 0xE304CAC7, 0x259A1FD4, 0xC3EAED3C, 0x1A311AD7, 0xD8242BEE,
+0x20BF4EFD, 0x3FCA16C5, 0xDDEED03A, 0x0A22C52E, 0xD53B2D3A, 0xE22A2CB5, 0x291D3228, 0x2CCC2E45,
+0x48BA00D5, 0x4FE12D1D, 0xD8D91DD1, 0xCEDBEC31, 0xFBD526B9, 0x3C1DE845, 0xAFDCE91C, 0xD622D31E,
+0xCF2620D9, 0x28D63427, 0x362C3DDF, 0xD72C2530, 0xD6A7C203, 0x442C3233, 0x29B24E3F, 0xDD21412C,
+0x400BD6D0, 0xC8D4B831, 0x171EF12A, 0x34FFC9D0, 0x3B3ED02D, 0x0BC7E2CB, 0xC43D28C6, 0x42F6C948,
+0xD24AD429, 0xCB2C2A00, 0x43E2A236, 0xBC353312, 0xD91324B5, 0x30B4D013, 0xC92FDE2F, 0xBFD6D432,
+0xC82DCABC, 0xC032DC1D, 0x30C9D2CB, 0xE0341DC5, 0xDDCEBE39, 0x2CC41D58, 0xE213BF14, 0xDFCDCBD9,
+0x2E3C36DD, 0xE5262833, 0xF841291D, 0x15E324F5, 0x0315D732, 0xD1C5C5CA, 0xD73144D3, 0x2ABEBA1A,
+0xBCF42E2C, 0x00E1E53B, 0x4423AD2C, 0xB021CF20, 0xD8D5EEB6, 0xBD35BCCD, 0xE6D85334, 0xD549DF2D,
+0x35C74D19, 0x3F4BBE3D, 0x1F3FA3EB, 0xCEB2B335, 0x35D0BCBA, 0xD5D8CF27, 0xB11DCFC4, 0x24D3D408,
+0x183B35D0, 0x1C14D619, 0x35D445BB, 0xDE452444, 0xC83315C5, 0x3F2122D0, 0xB623C737, 0x33321DD0,
+0xD6DF33DE, 0xDE39AA20, 0xCF00F239, 0x412410D5, 0xC5DC2339, 0x1D3BD1B6, 0xC0E3481E, 0x1030451A,
+0x30EA30D1, 0xC6DCB9C7, 0x2C36DC17, 0xCBB0ED30, 0x26C20FBE, 0x35D6D528, 0xD6CC2242, 0xEDE4241E,
+0xC036DED9, 0x26303627, 0xB6B6371B, 0x26E3D6DF, 0x0D36C729, 0xBEEE4FD7, 0xE3C839D1, 0xC0313031,
+0xAEAD2828, 0x36323D23, 0x13342728, 0x2904EE20, 0x261DDCD6, 0x0CBCE1E1, 0xD2CBD5C3, 0xFD1C4B2C,
+0x1CD8CDDB, 0xD4BE53B1, 0x2BD6CDDE, 0xC61A01E1, 0x3D41BED3, 0xE0333BD0, 0x4040E821, 0xC4A32449,
+0xD3D3A8BF, 0x36E11C2C, 0x3CC1321B, 0xC5D03E1C, 0xB813D9DD, 0xD6C51838, 0xCEBED141, 0x1FEA3813,
+0x3611CAC0, 0xD12EE2C6, 0xE1BFD22D, 0xD0DAE9CC, 0x0E03DB00, 0xBC37393F, 0x422BC916, 0x49C4D72A,
+0xBFC0243B, 0xC1C2F1C3, 0xDF36CC32, 0x49E53EE4, 0xBFC02CDF, 0x2BEE2BE1, 0xC23224C5, 0xD63F16DA,
+0x15DBC21F, 0x49E4CC57, 0xBE272CC7, 0x274E0643, 0x5C1DDBE7, 0x34B73DF0, 0xCD2D2EB9, 0x1AD43BCD,
+0xFD3047D3, 0xDAC53936, 0x1328DCC8, 0xBC32331D, 0x001F2634, 0xC845410F, 0xDBDB1C2B, 0xD1D819D0,
+0xEBDDE12D, 0x37E335D7, 0xCDA84635, 0x0F362FBE, 0x30C229C4, 0xBC1DC43E, 0x3CD02F3D, 0x2EF5F5F4,
+0x462D15E6, 0x362F1FC5, 0xC0C9CD49, 0x14C92639, 0x2BD135D0, 0x49C6B8DA, 0xDBC7E1D9, 0xC6382328,
+0xEDC217BC, 0xE4D1331C, 0xDCC741CF, 0x283A341C, 0x38B93420, 0x46001BE7, 0x3E1030C4, 0x42A8C1CD,
+0xBB3339C5, 0xE538DD20, 0xDF3F2602, 0xE52BE5C1, 0xBE2B41BA, 0x3BD4D337, 0x2D39C3DB, 0xC3BB36F0,
+0xD12CCF17, 0x4130B93A, 0xE31DEAEC, 0xF9DEF52D, 0xADD35231, 0xD62ED0EF, 0xBE303521, 0x1E2ADB41,
+0x310AC62F, 0x22DA2DC5, 0x26E1D9D0, 0x1F4D2AC1, 0xC8E6DCE1, 0xC6B3D62E, 0xD6D20019, 0x4EDC2D39,
+0x342AE224, 0x07CBD4CB, 0xE43FB3BE, 0x1BE53748, 0xDD44C8A2, 0xBC34B7BA, 0xA1DD1D43, 0x23D31827,
+0x3519E93F, 0xC83B3720, 0x1BF0B72A, 0xEAC7DCC0, 0xCA4B28EC, 0xD54D242F, 0xF35435D1, 0x3DDEC824,
+0xC31128CE, 0x0B0FD136, 0x442D1E2B, 0xCBD1C3EC, 0xD635341B, 0xDD1F2931, 0x3442CDD0, 0xDADD3600,
+0xC31E40E3, 0xB0BD1B22, 0x38CA1F0D, 0xD42D3043, 0xE65127E4, 0x2F15C9D6, 0x3E360B30, 0xB2CB1524,
+0xC7BBC4DF, 0x38D244C7, 0x483B31C0, 0xDB43C8D1, 0x43DCDBBC, 0xDCC7571D, 0x24BAC2C6, 0x3B4ED6DC,
+0x3AE03245, 0x0C40E1E2, 0x493724C0, 0xD4ECC537, 0x36CC30BA, 0x1C303FC6, 0xD12F27D5, 0x00C4272F,
+0xFFFD061D, 0xC2D9251D, 0xC1D7D625, 0xBFCD3AD3, 0xB42E11D4, 0xC7230E1E, 0x24CD2C21, 0x0BD436F9,
+0xCECCD331, 0xE6BDE0D5, 0xD2C6C941, 0xE1D1D3EF, 0xEB4123CD, 0xDA1755E5, 0xCEE4C529, 0xDC43C5D1,
+0xD8FDDFEA, 0x1AC9C317, 0x22E13DCE, 0x01D7BA29, 0x1551E449, 0x43CD363E, 0xC6281B24, 0xCBD23725,
+0x3200D61C, 0x35D6CCBC, 0x262CB22C, 0xE2E43DB1, 0x26493335, 0x3AD72ACA, 0xC4244430, 0x3AD7C9C3,
+0xC91ED8D1, 0x40EAD2AC, 0x38C9CDAC, 0x413BC137, 0xCD304B1F, 0xEFCA2323, 0xAC3FE4CD, 0x3616F6E0,
+0x41C2272A, 0xDCD7B2E2, 0x27D9E018, 0xDEE2D943, 0xD5C01F22, 0xB0D93540, 0xB411C13D, 0xDE39CBE0,
+0xE2C6F126, 0x31450828, 0xD2BC2927, 0xBACA1DD1, 0x34DDCDC3, 0xD8302AD5, 0xE2D02824, 0x0B2BE03E,
+0x3BCAFD2C, 0x2E461D45, 0xBBF6F32E, 0x31E5DED2, 0x2ED4E847, 0x3BDDCD29, 0x231331D8, 0xF521CF2E,
+0xD024C718, 0x20D91011, 0xDB1E0F34, 0xD931C0BB, 0xBB310837, 0x29B7C5CB, 0x3B31DEE0, 0x0836B926,
+0x28CB1FD4, 0x31072A30, 0xEE41F300, 0x35CB501E, 0x603A2B47, 0x2C2739CE, 0xC0CFC4D9, 0xE0CED43C,
+0x22BDC9CA, 0xBAEC122D, 0x4D16F2C5, 0xB6E5C3DA, 0x19D5C9D0, 0x1D1DDFC2, 0x223A23FB, 0xCD382B09,
+0x3025C2E6, 0x3918BDD5, 0x33DFEF0E, 0x291A302B, 0x14184930, 0xD414D233, 0x473CCED7, 0xD2D318B7,
+0x3E2738D2, 0x2928D537, 0x002E14BB, 0xE2E03734, 0x1B1EDFD1, 0xCF483FD8, 0x3D043844, 0xD52E1C4C,
+0x2823EAD6, 0x1F2D241A, 0xBC4B22E6, 0x2EE7DFB8, 0x3424E2F0, 0xD41BD7CB, 0x2BBCDF1E, 0x155B5033,
+0xB527D543, 0xE3C5E9F4, 0xD9B5C92B, 0xD3CAE0DF, 0x31C4CED7, 0x0BD33B25, 0xCF3B111D, 0xE62F241F,
+0x22D93D22, 0xCF27EF43, 0xDAD2C5DD, 0xC60019BE, 0x2935D5C3, 0x2D0BCD22, 0x224714EA, 0xE7CAB817,
+0xD1282222, 0x3C25EBD0, 0x45F0A8DC, 0x3ACFB92D, 0x34B4E7E6, 0xE93523E0, 0x2C292FCA, 0x44D4C7AC,
+0xEA22C3FE, 0xEF37E524, 0x313ADCDA, 0x2212D846, 0x1BE0FF4B, 0x1CBC2E34, 0x174AF041, 0xD245223E,
+0xE1DB2BDC, 0xF2E9A515, 0xE3C33BCC, 0x43DBD5CE, 0xF11700DB, 0xDE44DD36, 0x26E1D604, 0xC2ACE419,
+0xB9D8C7D4, 0x37EFE21E, 0xE2BAC2D1, 0x3926E91A, 0xD013E8BC, 0x2C43ECD9, 0x232B30F8, 0xD6C9E0BD,
+0x26A718BC, 0xEFF6C840, 0xC13332C2, 0xC4B9BD36, 0x1B4921BD, 0xD0EBECE0, 0xBCE4D647, 0x35D4DCD5,
+0x1BBE4C27, 0xECC1B7CB, 0xD820284D, 0x0BC33DBF, 0x34D03140, 0x38EC3900, 0x29EBDBC9, 0xD43A3041,
+0x3AE0DD0C, 0x09CFCFDB, 0x44E0C7CE, 0x20DBC4E3, 0x26DC41DE, 0xBA3AD2E5, 0x2ABA34E1, 0xD70FBEB7,
+0x40E03FE2, 0xF8D62041, 0xBD47B7EA, 0xD2E03E34, 0x1FC6D2DE, 0xCF1CD155, 0x32D52630, 0x3C463D2C,
+0x253130E3, 0x1ED8BB4A, 0x411BDFDD, 0x3FD8EE35, 0x33D02BBB, 0x002ECAAE, 0xDF1FDFEB, 0x2CD8DA3C,
+0xB6352D59, 0xD5BDD3B9, 0x1946630D, 0xD9181731, 0xD419D31F, 0xCE2FB7D0, 0x32EFE3C3, 0xCDDB2FD3,
+0xD247BB3E, 0xBA41DECA, 0x23244AD2, 0xDEAAF2B2, 0xB8D525F2, 0xD327A4D0, 0x3718C0E2, 0x2D3E20D9,
+0x24CFDF12, 0x26D0BE1C, 0xC8D9282E, 0xEB54CADF, 0x44DB1AED, 0xC927BF29, 0x2E002B39, 0xBB2625E4,
+0xBB4421D2, 0x18CBAA3A, 0x213ECD37, 0x0F33163C, 0x3622E432, 0xE5C7C62B, 0xDE39E7C7, 0xF3151CCA,
+0x2ACED6D2, 0x2ADADFC4, 0xD6241ACC, 0xB92F0622, 0x1BC639E4, 0x33D92BC4, 0xAF14E0DD, 0xE6EEC2C9,
+0x16BDCAE3, 0x272E1AC3, 0x292E1EBE, 0xDCE439B1, 0x4225E1C6, 0xCD372420, 0x27D716B1, 0xD83EE339,
+0xDBCAD4B3, 0x26385033, 0xC5373528, 0x2DD2C936, 0xF9D5BAE6, 0x2E2DC7C2, 0xCD4BD045, 0x1DDF2DE8,
+0x0E3740CE, 0xE5D82C36, 0x29D1360A, 0xCD03C8C6, 0x37CCCCD8, 0xD83AD330, 0xBFD619CD, 0xDEDDC432,
+0xD0DADAEC, 0xD3E14F26, 0xA8CD35D9, 0xA3F325BD, 0xBC1626D7, 0x3AB81BD5, 0xBBFF1832, 0xC9DB2126,
+0x16250000, 0xE003BB39, 0x35D533CE, 0x1801C610, 0xD9D44644, 0x474BD3C3, 0x1C30C51E, 0x2E3342C6,
+0xB7D6B3E9, 0x5AE44BD2, 0x46D62830, 0xDBDD4B0C, 0x38CF2F1D, 0x2D331ACB, 0x36CCDED6, 0x10D7DA10,
+0xD42246E0, 0x0FC73FC0, 0x2C3E1E37, 0x2CF0D1B8, 0x17412EDD, 0x2630D0DD, 0xDBD535E4, 0xD927DA43,
+0xB636C11E, 0x25CBE2D8, 0x4711F64B, 0xBC2C2029, 0xD0E3F538, 0xB92C27DF, 0x272DE2D2, 0x0CC5BCEB,
+0xC0BC2EDF, 0x26D131C9, 0x1F092FEE, 0x2D342B34, 0x31B825D5, 0xC6BBC9C1, 0x38F1D0E4, 0xCBF7FDC7,
+0xC3CAC9B6, 0xDBC436C6, 0x19DC1FD8, 0x28CCAED1, 0x1921BDB4, 0x24BCBF33, 0x301EE244, 0x36BDBDE1,
+0x31C5B724, 0x00003ECD, 0x220B1EE7, 0xDEBAD3DC, 0x21CAB942, 0xC9193B33, 0xE3CD3A0A, 0x0DC22CC3,
+0x3EC0C7CB, 0x43F2BFE4, 0x0ECFE9C6, 0x3ECA2FD5, 0xCB492DD9, 0x23E7BDC9, 0xD33DC151, 0xFCBE2933,
+0x5ACEC51E, 0xF2172E1C, 0x3C24DE23, 0x3320D4D5, 0x2AB53C20, 0xC328323A, 0x45EA4133, 0x24391A32,
+0xC7D8DA2B, 0xF4EAAF39, 0xDFCA36E3, 0xDEBED5C8, 0x36252C36, 0x04D7DBC7, 0x30CAC23D, 0xB60BF73D,
+0xEACA2A30, 0x34C12ABE, 0xE2D747D8, 0x19D21FE3, 0x1DFD24EC, 0xB6B5D9C4, 0xBF2C1DD2, 0xD2B442E0,
+0x37CCE1BD, 0x2AD1E1CC, 0x18DAC6BD, 0x213AD93E, 0x2031D8CB, 0xD82F2D12, 0xD112D2F2, 0x19CD43F1,
+0x36BCB9CA, 0xD7C5DDFC, 0x34011D28, 0x3BDB0000, 0xCD00E1AA, 0x5228252C, 0x3512CA34, 0x0EE53A41,
+0x242CD2C2, 0xF425DD2A, 0xF02FDDF8, 0xD82026D3, 0x4ABEE7B8, 0x2DC9DDDC, 0x3BEECD3C, 0x2ED1442A,
+0xC713E92A, 0x310CC12B, 0xE128D520, 0x48E5C1CF, 0xC91CE3ED, 0xCCCBC72F, 0x0B23E3E9, 0xC1D2C8B6,
+0x511ED534, 0x2AC7D4C3, 0xCFDCE335, 0xD4C9F643, 0xD433EBF1, 0x1BF8DA31, 0x223FC515, 0xCC2F13C2,
+0xF825FFC8, 0x35E51633, 0x36293C4A, 0xC72ACA36, 0x4544E736, 0x1BD9315C, 0xCF16DFD4, 0xD0AFEFC3,
+0xCECBBDE2, 0x05D6AA32, 0xD851F045, 0x240FD948, 0x3D35B2E6, 0x17D7C7EE, 0x0B22DACE, 0xF53AD637,
+0xB2372DDB, 0xF6DF14CB, 0xBED95B24, 0xD4D5190B, 0x0000CB29, 0x3DC1ECF5, 0x30C6B34F, 0x1D2629B6,
+0xD429D1CC, 0xD50716E3, 0xD0C3C2CC, 0xC82CC7D4, 0x5F27C718, 0xE6201BE4, 0xDACFD42F, 0x2E2EE9D4,
+0x3AD036C0, 0x3828DB20, 0x27D63439, 0xD21026DE, 0xD60710BC, 0x13AEB9E9, 0x28C41944, 0x49D5E3D7,
+0x27163429, 0x1BBAD528, 0xB12A14BC, 0xC72FD9E2, 0x1F43213A, 0x133B3EE5, 0x3622FE21, 0xD438DCBE,
+0x41CB25E8, 0xD0D83E2C, 0x32BFC2CE, 0x362BE1DA, 0xC3CBCE24, 0x22DECDC2, 0x30CBD5CD, 0xD42DBC26,
+0xDDF6AAD0, 0xCADC0EC8, 0xDC333434, 0x333114F5, 0xCE24361A, 0xB1C5D123, 0x4B25380B, 0x2FEC3634,
+0x3EE2A610, 0xB4CEE72F, 0x29BCC721, 0xB23850CD, 0xA51AE4DD, 0xC81BBC2F, 0xD4DF0000, 0x2DE5D1E8,
+0x2E0A28D0, 0x29E3C1E1, 0x56F62DD6, 0x3828DD4B, 0xC41ACFDF, 0xD2390A3A, 0xDF3028CC, 0xE8C5E22B,
+0xD11CDCC1, 0x44D1CBEC, 0x33C73DDC, 0x1D25B7DC, 0xE7DD0525, 0x2743C41A, 0x2AE2D3DC, 0x21D6E82A,
+0x133CBAC7, 0x593F34B0, 0xDA5FE339, 0x5206252C, 0x394FD5BD, 0x21D2C92C, 0x292426E0, 0x48E0362B,
+0xCC272DE4, 0xC815C4DE, 0x49BD5D37, 0x1912342F, 0x2CE9E01B, 0x30D8D2D9, 0xDEBF46E8, 0x392F473A,
+0x3A18D324, 0x2FE31FD0, 0x2B2B2710, 0xB53B2AC7, 0xB3481CFF, 0x2DD7CFBC, 0x2232351A, 0xD7C91C16,
+0x1CB4DA16, 0x1BCBDF3C, 0xD2213822, 0x2121DB1F, 0xDBD1C02A, 0x27DA33C7, 0x351FC4CD, 0x0000B9D8,
+0xC2142C29, 0x38B9DD31, 0x54E60CDF, 0x2A4A42DB, 0x35CF2BB5, 0x0CEA3323, 0xC2D8BEE2, 0xC61F3B33,
+0x10CE11D0, 0x3336CE2E, 0x303ADD25, 0x3347B7D9, 0x33222C1A, 0x1A43E4C1, 0x4326E019, 0x2AE2E92E,
+0xD2C5DC40, 0xBA45D7D6, 0xDF341BDC, 0x3A361925, 0xD4FEF4D2, 0x3018DA31, 0xDDC12817, 0x3038DE24,
+0xEDC0292B, 0x3E3E3336, 0xCB1BEF17, 0xE10B2EBF, 0x2B20BABF, 0xC80C421B, 0xC2411D21, 0xECD8C7D6,
+0xC824E4AD, 0x65B53DD7, 0x304325D4, 0xDD1DEAE6, 0xD33131CF, 0x2F36452B, 0x23B219E9, 0xC1C23529,
+0x21DC3836, 0xD618E933, 0x393E2C14, 0x362ACA3A, 0xD6E2C237, 0xD6085111, 0xD721FCB1, 0xCCE6DEBC,
+0xD1DCD920, 0xC3320000, 0xEA26CB19, 0x18BB26B7, 0x233BDF4F, 0xDE23FD3F, 0x2ADA1ECB, 0x3122E839,
+0xEF42D7D7, 0xCAC7202D, 0xCD4CDED1, 0x2633C824, 0xD0123E4E, 0x104429B6, 0xC8CD4B00, 0x5136B738,
+0xCFC8202B, 0x163135DD, 0x2C3821E8, 0x29314CE0, 0x0F3CE4EC, 0xE5432DAF, 0xC63AE340, 0x4639DB18,
+0xDF282511, 0x25B5CBD3, 0xCAF50F37, 0x1E443B33, 0xE32CD32D, 0x10DA47B9, 0xDA410526, 0x34F0E4EA,
+0xCEED3134, 0xC0B31AA7, 0xD12B1AD3, 0xC722C743, 0xBFBEDD1F, 0xD328D52B, 0xCC384024, 0x18B43FB8,
+0x281742BB, 0xD8322FD2, 0xB5D628C6, 0xE420C0CB, 0xC9EB391D, 0x41E6B419, 0xBCC543E1, 0x2C37DDEF,
+0x1F2D41E9, 0xD0F0D205, 0x1FEAE5C5, 0x15DF14B8, 0x47E327D9, 0xD328CE25, 0x36DB2E24, 0xD92E1EBF,
+0x2B3230F4, 0xD1EAD5D9, 0xC7212ADA, 0xCD1235DC, 0xC519D5DB, 0xBFC631DF, 0xD5222B35, 0x35B6DEC6,
+0x153C4428, 0xC5C3E42F, 0x1B2E2D2A, 0x3CD422A6, 0xC22842CC, 0xCADAC43D, 0x2C10DAD2, 0x18C708B5,
+0x36D636BD, 0xCD29C5D3, 0xBFED433A, 0xE0384939, 0x005629F2, 0x36E2C425, 0x2830DF1C, 0xC9CB351C,
+0xB0D7D3E6, 0xF3CEC214, 0xDC25D1C7, 0x1BD5CBCC, 0x19DD21C9, 0xC854EE30, 0x4FE14EE3, 0x38D5D3E8,
+0xC9D126E4, 0x2FDD2130, 0xCE2130D1, 0xCFCAB0C9, 0xC71F0E1A, 0x2627D4DE, 0xCBE9DACD, 0xE7121F22,
+0x2CC8E435, 0x3838391D, 0xDD37242E, 0xEBBE2F10, 0x233C0000, 0xAFC91CE7, 0xCE3536F6, 0x0F25D248,
+0x2D04EBE4, 0x3FF634E5, 0xE929CE26, 0x24E0BABE, 0x302CD52B, 0xD1E2073F, 0x4333D11C, 0xDA48C2D1,
+0x2D33F315, 0x29B2C8C3, 0x3B26E3EB, 0x3821C6DA, 0x32163DD6, 0x1DC737BC, 0x463CCD24, 0x19D63DDD,
+0x200BDDB7, 0xBDD41E22, 0xC40A444F, 0x34BF49ED, 0xD4C0C0F4, 0xA41FB721, 0xBEDF51E8, 0x15D82A17,
+0x383FDF21, 0x2B2918D0, 0xE6EB4718, 0x244530DB, 0x25DD3919, 0x3BA819BE, 0xDAEFBE38, 0xEB3FCCD9,
+0xD1DF2E1C, 0x2520C3E3, 0x32D0BFD5, 0x37312BD5, 0xDC29D0C9, 0xBED02432, 0x310C3A18, 0x411ED8D7,
+0xA4E5CE22, 0x163CBD30, 0xC3E2BE45, 0xCFBBAAC3, 0xC8C0E4CF, 0x0000CEFC, 0xE8CC2433, 0x39ED223F,
+0x243AD83B, 0xD44D39C6, 0xCABF24DE, 0x252050EB, 0x29C73B40, 0xD4F434CF, 0xCAE4D5DF, 0xC5F2EEF1,
+0x2919C8D2, 0x2FC4D20B, 0x1CBF5528, 0x3DBBD52D, 0xE03AD031, 0x3D2CCA17, 0xBE23BDB8, 0xE7DA3B30,
+0xD1D2D331, 0xCC1825EA, 0x2F2D39D2, 0xF9313526, 0xCFBCC2E1, 0xE5BE3AD4, 0xBF59BE1C, 0x22FFC8B5,
+0x32B14015, 0x31D6BEE6, 0x46DF3843, 0xDCD1D8B2, 0xE728C8BE, 0xEA1E2A28, 0xD1D8C7D2, 0x30CAF134,
+0xEDD0EADA, 0x13C1E3D0, 0xB9D7DC29, 0xEAB93624, 0x24E49F38, 0x2E3FDEDC, 0xE6D0D23D, 0x1FBB3ED2,
+0x23D540DD, 0xD727D92B, 0x251E33E6, 0x4BA7EECE, 0xC1CD203C, 0xC5CFED32, 0xB9CF35C3, 0x29710000,
+0x29D7C636, 0x3A3ED1D0, 0xCC1B271F, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000
+
+hard_output0 =
+0x42441F44, 0x006DFAE9, 0xDBB63AC2, 0xA3365CB3, 0xFA44372B, 0xC2603862, 0xA6C86E09, 0x416F0BF7,
+0x8E58011D, 0x47C54B99, 0x269AD14C, 0x0B286902, 0x093E4C64, 0x8D84D8E1, 0xB8AE0993, 0x49567118,
+0x8CEAABD2, 0x12D33409, 0xE3358237, 0x130176F6, 0x0986718F, 0xA18C83B5, 0x04EEF058, 0x59704040,
+0x7478FE81, 0x01D27193, 0xEA1AD7F3, 0x21E6C2B9, 0x6478A1FF, 0xED9959AD, 0xE39E57BE, 0x4D859105,
+0x056EF72D, 0xBD170BB7, 0xF01F9ADD, 0x99BF0C05, 0x44BAD09F, 0xF6ABDD61, 0xC0F8F116, 0x2972B53C,
+0x0FEC944B, 0xD1675432, 0x0025F563, 0xF42B2EA8, 0x808E5C37, 0xB6E79AD5, 0x3706284D, 0xB9C0AFA5,
+0xFF0E7E28, 0x5FA45C6F, 0x9CD5244E, 0xA013DDEA, 0x0D27D1A2, 0x2AE414AD, 0x41614379, 0xE6B68872,
+0x5585D926, 0x5098D45B, 0xF8980ABD, 0x65821418, 0xEF8968A3, 0x301DEC3A, 0x57EF2A7F, 0xC17BE446,
+0x94B65D62, 0xC9E6F350, 0x2E6130BC, 0x235F2E5E, 0xF1C13241, 0x94B291D6, 0x8C342458, 0x175B1FCA,
+0xE07310FD, 0xD24934DD, 0x3CE8D053, 0x5C8F243D, 0x945B0AB3, 0x50EB8CC1, 0x8EF499D4, 0xA67801BF,
+0x1680F061, 0x283FE705, 0xB8D7E773, 0x13AD3D2F, 0x4A6C305B, 0x1C1E5B12, 0x6F57D880, 0x8A666E5E,
+0x26511296, 0xFFC09750, 0xFF91760A, 0xAC26795C, 0x75F321FD, 0x4221B9CB, 0x2E119188, 0x0772A832,
+0x74D6036B, 0x505D6D64, 0x16A001B7, 0xF5F0D728, 0x48CBE119, 0x91C5D6B2, 0x8E1BBAB0, 0xB11BBE51,
+0x52C647DC, 0x65240CE2, 0xAB3F8AAE, 0x62E0CDEA, 0x6CBE7240, 0x7F572063, 0x7FC816E6, 0xB38E5A6C,
+0xDF9E2738, 0x752419CB, 0xC3A6BF9B, 0x8D48B21F, 0xA88C4AED, 0xE3C1D8BC, 0x8501353D, 0x20A99D7D,
+0x8D9C6DDD, 0x77A65039, 0x834E7E57, 0x1F623FA1, 0x6CF02B26, 0x1FF0BBA6, 0x9035AC70, 0xBED818E5,
+0x437CA713, 0x91011537, 0x3CD1302B, 0x7755459E, 0x5963FDA6, 0x49ECF937, 0xDEBBE0E3, 0xE873FD4F,
+0x735C48C9, 0x7C70F46F, 0xA00B1543, 0x789F4159, 0xE17C343E, 0x51B3D085, 0xD9042663, 0x771933DA,
+0xE183AF8C, 0xF62AC11B, 0xF776C25C, 0x22083E6C, 0x8400DDBA, 0x6D6AD2F2, 0x5DF87DBC, 0xBD7D40B4,
+0x356EBF21, 0xD8972E85, 0x3A632B51, 0x4D5BFBA2, 0x58CDF1D4, 0xD1117491, 0x5906DC45, 0xF793D63A,
+0x8F9D0552, 0xD261C804, 0x70BFDE9F, 0xDC77827B, 0xE9FFB130, 0x4FF18BBC, 0x17D50C32, 0xC315521E,
+0x4C7D2470, 0xAB5EE34C, 0x692AC0C8, 0x15B22832, 0xD34107FE, 0xA7E6DA1E, 0x2966A2A3, 0xD0B204B4,
+0x500E02F9, 0x02E5A455, 0x81EAF941, 0x6818F57A, 0x978EEC9C, 0xBFD575F3, 0x3FFC1BE8, 0x97104E07,
+0x4ADF219F, 0x182EC93D, 0x386033EE, 0x87C1351A, 0x31420C6A, 0xE20B5DC8, 0x83D90D23, 0x3C13B9E8,
+0xCCCD65BE, 0x7EDB17A9, 0x81C73C2A, 0xE202E332
+
+c =
+2
+
+cab =
+1
+
+ea =
+4918
+
+eb =
+4920
+
+c_neg =
+0
+
+k_neg =
+3072
+
+k_pos =
+3136
+
+rv_index =
+0
+
+iter_max =
+8
+
+iter_min =
+4
+
+expected_iter_count =
+8
+
+ext_scale =
+15
+
+num_maps =
+0
+
+r =
+0
+
+code_block_mode =
+0
+
+op_flags =
+RTE_BBDEV_TURBO_SUBBLOCK_DEINTERLEAVE, RTE_BBDEV_TURBO_NEG_LLR_1_BIT_IN,
+RTE_BBDEV_TURBO_CRC_TYPE_24B, RTE_BBDEV_TURBO_DEC_TB_CRC_24B_KEEP
+
+expected_status =
+OK \ No newline at end of file
diff --git a/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c1_k40_r0_e1190_rm.data b/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c1_k40_r0_e1190_rm.data
new file mode 100644
index 000000000..6221756ae
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c1_k40_r0_e1190_rm.data
@@ -0,0 +1,36 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2017 Intel Corporation
+
+op_type =
+RTE_BBDEV_OP_TURBO_ENC
+
+input0 =
+0x11D2BCAC, 0x4D
+
+output0 =
+0xD2399179, 0x640EB999, 0x2CBAF577, 0xAF224AE2, 0x9D139927, 0xE6909B29, 0xA25B7F47, 0x2AA224CE,
+0x399179F2, 0x0EB999D2, 0xBAF57764, 0x224AE22C, 0x139927AF, 0x909B299D, 0x5B7F47E6, 0xA224CEA2,
+0x9179F22A, 0xB999D239, 0xF577640E, 0x4AE22CBA, 0x9927AF22, 0x9B299D13, 0x7F47E690, 0x24CEA25B,
+0x79F22AA2, 0x99D23991, 0x77640EB9, 0xE22CBAF5, 0x27AF224A, 0x299D1399, 0x47E6909B, 0xCEA25B7F,
+0xF22AA224, 0xD2399179, 0x640EB999, 0x2CBAF577, 0xAF224AE2, 0x24
+
+e =
+1190
+
+k =
+40
+
+ncb =
+192
+
+rv_index =
+0
+
+code_block_mode =
+1
+
+op_flags =
+RTE_BBDEV_TURBO_RATE_MATCH
+
+expected_status =
+OK
diff --git a/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c1_k40_r0_e1194_rm.data b/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c1_k40_r0_e1194_rm.data
new file mode 100644
index 000000000..c569abd78
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c1_k40_r0_e1194_rm.data
@@ -0,0 +1,36 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2017 Intel Corporation
+
+op_type =
+RTE_BBDEV_OP_TURBO_ENC
+
+input0 =
+0x11D2BCAC, 0x4D
+
+output0 =
+0xB3E8D6DF, 0xBC8A2889, 0x744E649E, 0x99436EA6, 0x8B6EFD1D, 0xAB889238, 0xE744E6C9, 0x39E4664A,
+0xE8D6DF91, 0x8A2889B3, 0x4E649EBC, 0x436EA674, 0x6EFD1D99, 0x8892388B, 0x44E6C9AB, 0xE4664AE7,
+0xD6DF9139, 0x2889B3E8, 0x649EBC8A, 0x6EA6744E, 0xFD1D9943, 0x92388B6E, 0xE6C9AB88, 0x664AE744,
+0xDF9139E4, 0x89B3E8D6, 0x9EBC8A28, 0xA6744E64, 0x1D99436E, 0x388B6EFD, 0xC9AB8892, 0x4AE744E6,
+0x9139E466, 0xB3E8D6DF, 0xBC8A2889, 0x744E649E, 0x99436EA6, 0xC01D
+
+e =
+1194
+
+k =
+40
+
+ncb =
+192
+
+rv_index =
+2
+
+code_block_mode =
+1
+
+op_flags =
+RTE_BBDEV_TURBO_RATE_MATCH
+
+expected_status =
+OK
diff --git a/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c1_k40_r0_e1196_rm.data b/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c1_k40_r0_e1196_rm.data
new file mode 100644
index 000000000..72be6f5d3
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c1_k40_r0_e1196_rm.data
@@ -0,0 +1,36 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2017 Intel Corporation
+
+op_type =
+RTE_BBDEV_OP_TURBO_ENC
+
+input0 =
+0x11D2BCAC, 0x4D
+
+output0 =
+0xBC8A2889, 0x744E649E, 0x99436EA6, 0x8B6EFD1D, 0xAB889238, 0xE744E6C9, 0x39E4664A, 0xE8D6DF91,
+0x8A2889B3, 0x4E649EBC, 0x436EA674, 0x6EFD1D99, 0x8892388B, 0x44E6C9AB, 0xE4664AE7, 0xD6DF9139,
+0x2889B3E8, 0x649EBC8A, 0x6EA6744E, 0xFD1D9943, 0x92388B6E, 0xE6C9AB88, 0x664AE744, 0xDF9139E4,
+0x89B3E8D6, 0x9EBC8A28, 0xA6744E64, 0x1D99436E, 0x388B6EFD, 0xC9AB8892, 0x4AE744E6, 0x9139E466,
+0xB3E8D6DF, 0xBC8A2889, 0x744E649E, 0x99436EA6, 0x8B6EFD1D, 0x9038
+
+e =
+1196
+
+k =
+40
+
+ncb =
+192
+
+rv_index =
+3
+
+code_block_mode =
+1
+
+op_flags =
+RTE_BBDEV_TURBO_RATE_MATCH
+
+expected_status =
+OK
diff --git a/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c1_k40_r0_e272_rm.data b/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c1_k40_r0_e272_rm.data
new file mode 100644
index 000000000..883a76cf8
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c1_k40_r0_e272_rm.data
@@ -0,0 +1,33 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2017 Intel Corporation
+
+op_type =
+RTE_BBDEV_OP_TURBO_ENC
+
+input0 =
+0x11d2bcac, 0x4d
+
+output0 =
+0xd2399179, 0x640eb999, 0x2cbaf577, 0xaf224ae2, 0x9d139927, 0xe6909b29, 0xa25b7f47, 0x2aa224ce,
+0x79f2
+
+e =
+272
+
+k =
+40
+
+ncb =
+192
+
+rv_index =
+0
+
+code_block_mode =
+1
+
+op_flags =
+RTE_BBDEV_TURBO_RATE_MATCH
+
+expected_status =
+OK
diff --git a/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c1_k6144_r0_e120_rm_rvidx.data b/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c1_k6144_r0_e120_rm_rvidx.data
new file mode 100644
index 000000000..b3867f35f
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c1_k6144_r0_e120_rm_rvidx.data
@@ -0,0 +1,63 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2017 Intel Corporation
+
+op_type =
+RTE_BBDEV_OP_TURBO_ENC
+
+input0 =
+0x11d2bcac, 0x7715ae4d, 0xc9f4dbc6, 0x2fda3c1a, 0x09349b16, 0x2cd3c189,
+0xe5650429, 0xc73c42c1, 0xe7336bb7, 0xbb7de593, 0x83f986aa, 0xc0ade12e,
+0x6730b095, 0x78f7c059, 0xaa907199, 0x75c323d1, 0x7061f9ba, 0x97e067bf,
+0xc155cd55, 0x6a4cb08d, 0x4260e2fa, 0xff35e496, 0x37f251d3, 0x02fd9f9e,
+0x6f53345c, 0x790cda6d, 0x3b8549e4, 0x56d0c6ea, 0x70a38006, 0xfff18223,
+0x6f2035b5, 0x6cf508d3, 0x98a0a308, 0x432353fc, 0x0eb818eb, 0xdd9a128b,
+0xf92431b2, 0xad788286, 0xda07d5de, 0x44b4b3a8, 0xbe62fd67, 0x61a4eb54,
+0x90d7ac9f, 0xc4d9a930, 0xfddc3c24, 0xf5e3b1c8, 0x38143538, 0xcb1d3062,
+0xcae36df3, 0x50a73437, 0x542dcab7, 0x875973a0, 0x34690309, 0x49cb1ddb,
+0xf8a62b92, 0x82af6103, 0xc9f8c928, 0x3835b822, 0x16b044a6, 0xdae89096,
+0xa5be47d4, 0xaf61189e, 0x5cd70faf, 0x037331cf, 0xef7fa5f6, 0xb2f2b41a,
+0xa6f222c6, 0xdb60fe4c, 0x2a857a9a, 0x0b821f9d, 0x348afd17, 0x7eecbaeb,
+0x92bb9509, 0x8a3cec24, 0xd02549a2, 0x155ffa81, 0x2b7feac6, 0x3ee461e7,
+0xc981f936, 0x89b544c7, 0x9a431e36, 0x62511734, 0x769f9647, 0x211a747e,
+0x567abef4, 0xad87e2b4, 0xa3e0c3bf, 0x6d325dd5, 0xf561cc46, 0x39925735,
+0x3d8abbfd, 0xc3724c88, 0x8bdf03c9, 0x1b02a12a, 0x4f233a0c, 0x9ca9444a,
+0xc5d1f7e6, 0x4d995f37, 0xd9aefb32, 0xd0465248, 0x0f3a3b21, 0x62ea8c0c,
+0x91f8d54e, 0x5cf75514, 0x14618a01, 0x8fe9b87e, 0xf2b424f9, 0x49724ce2,
+0xa1464587, 0x5e00dc83, 0x59475455, 0x444119b1, 0x4fb9f036, 0x65fcbc1a,
+0x1c63a990, 0x767a6114, 0xb0ede06a, 0xcfb91ae3, 0x7874af5f, 0xf78772a3,
+0xa2932c81, 0x77f2759d, 0x930dc8f1, 0x95ce14a5, 0x134363ee, 0x61ee143f,
+0xf0034b35, 0xfdc75fce, 0x3be2dcf3, 0xff3a07eb, 0xdc43f0eb, 0x23ba73bb,
+0x45f7649e, 0xcacc297c, 0xa3dd98db, 0x058d46a9, 0x6bcfc154, 0x7be8e1e6,
+0x618a4754, 0x8d193c46, 0xba39e1ce, 0xc3b85cfc, 0xd80d853b, 0x38d6440d,
+0x9c1a6185, 0x90c9dfcb, 0x01c6e841, 0xeedfe6ac, 0x7b61a3ae, 0xad3924dd,
+0x514bc1a8, 0x6ed60d7e, 0x1b74b79b, 0xea295947, 0x5f9a5d33, 0xcd24311f,
+0x0bd3d10c, 0xd214ecfe, 0xcb37035d, 0x8ce95168, 0x7020cb52, 0xe432107d,
+0x042d63ac, 0x6201c8dd, 0x4bea65a2, 0x1a3cf453, 0x5b8e868d, 0x3d653bb0,
+0x24c1967e, 0x37f183a9, 0x3700e703, 0xb168a02b, 0x2592cd82, 0x5c0cdb66,
+0x70b64ebd, 0xf8dcb9a7, 0x634a8335, 0x06642398, 0xfe2f4497, 0x2e775256,
+0x30f85cbe, 0xf4d2fdaf, 0x46ca6c9d, 0x022097d6, 0xcedeb03e, 0x3d8353bc,
+0x0d005559, 0xd457eb38, 0xb1931313, 0xd4f12824, 0xcc444f1b, 0xfaa42c5f
+
+output0 =
+0xd0d936d6, 0x870c26f3, 0x3f12805d, 0x4a6016
+
+e =
+120
+
+k =
+6144
+
+ncb =
+18528
+
+rv_index =
+1
+
+code_block_mode =
+1
+
+op_flags =
+RTE_BBDEV_TURBO_RATE_MATCH, RTE_BBDEV_TURBO_RV_INDEX_BYPASS
+
+expected_status =
+OK
diff --git a/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c1_k6144_r0_e18444.data b/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c1_k6144_r0_e18444.data
new file mode 100644
index 000000000..dcad55878
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c1_k6144_r0_e18444.data
@@ -0,0 +1,156 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2017 Intel Corporation
+
+op_type =
+RTE_BBDEV_OP_TURBO_ENC
+
+input0 =
+0x11d2bcac, 0x7715ae4d, 0xc9f4dbc6, 0x2fda3c1a, 0x09349b16, 0x2cd3c189,
+0xe5650429, 0xc73c42c1, 0xe7336bb7, 0xbb7de593, 0x83f986aa, 0xc0ade12e,
+0x6730b095, 0x78f7c059, 0xaa907199, 0x75c323d1, 0x7061f9ba, 0x97e067bf,
+0xc155cd55, 0x6a4cb08d, 0x4260e2fa, 0xff35e496, 0x37f251d3, 0x02fd9f9e,
+0x6f53345c, 0x790cda6d, 0x3b8549e4, 0x56d0c6ea, 0x70a38006, 0xfff18223,
+0x6f2035b5, 0x6cf508d3, 0x98a0a308, 0x432353fc, 0x0eb818eb, 0xdd9a128b,
+0xf92431b2, 0xad788286, 0xda07d5de, 0x44b4b3a8, 0xbe62fd67, 0x61a4eb54,
+0x90d7ac9f, 0xc4d9a930, 0xfddc3c24, 0xf5e3b1c8, 0x38143538, 0xcb1d3062,
+0xcae36df3, 0x50a73437, 0x542dcab7, 0x875973a0, 0x34690309, 0x49cb1ddb,
+0xf8a62b92, 0x82af6103, 0xc9f8c928, 0x3835b822, 0x16b044a6, 0xdae89096,
+0xa5be47d4, 0xaf61189e, 0x5cd70faf, 0x037331cf, 0xef7fa5f6, 0xb2f2b41a,
+0xa6f222c6, 0xdb60fe4c, 0x2a857a9a, 0x0b821f9d, 0x348afd17, 0x7eecbaeb,
+0x92bb9509, 0x8a3cec24, 0xd02549a2, 0x155ffa81, 0x2b7feac6, 0x3ee461e7,
+0xc981f936, 0x89b544c7, 0x9a431e36, 0x62511734, 0x769f9647, 0x211a747e,
+0x567abef4, 0xad87e2b4, 0xa3e0c3bf, 0x6d325dd5, 0xf561cc46, 0x39925735,
+0x3d8abbfd, 0xc3724c88, 0x8bdf03c9, 0x1b02a12a, 0x4f233a0c, 0x9ca9444a,
+0xc5d1f7e6, 0x4d995f37, 0xd9aefb32, 0xd0465248, 0x0f3a3b21, 0x62ea8c0c,
+0x91f8d54e, 0x5cf75514, 0x14618a01, 0x8fe9b87e, 0xf2b424f9, 0x49724ce2,
+0xa1464587, 0x5e00dc83, 0x59475455, 0x444119b1, 0x4fb9f036, 0x65fcbc1a,
+0x1c63a990, 0x767a6114, 0xb0ede06a, 0xcfb91ae3, 0x7874af5f, 0xf78772a3,
+0xa2932c81, 0x77f2759d, 0x930dc8f1, 0x95ce14a5, 0x134363ee, 0x61ee143f,
+0xf0034b35, 0xfdc75fce, 0x3be2dcf3, 0xff3a07eb, 0xdc43f0eb, 0x23ba73bb,
+0x45f7649e, 0xcacc297c, 0xa3dd98db, 0x058d46a9, 0x6bcfc154, 0x7be8e1e6,
+0x618a4754, 0x8d193c46, 0xba39e1ce, 0xc3b85cfc, 0xd80d853b, 0x38d6440d,
+0x9c1a6185, 0x90c9dfcb, 0x01c6e841, 0xeedfe6ac, 0x7b61a3ae, 0xad3924dd,
+0x514bc1a8, 0x6ed60d7e, 0x1b74b79b, 0xea295947, 0x5f9a5d33, 0xcd24311f,
+0x0bd3d10c, 0xd214ecfe, 0xcb37035d, 0x8ce95168, 0x7020cb52, 0xe432107d,
+0x042d63ac, 0x6201c8dd, 0x4bea65a2, 0x1a3cf453, 0x5b8e868d, 0x3d653bb0,
+0x24c1967e, 0x37f183a9, 0x3700e703, 0xb168a02b, 0x2592cd82, 0x5c0cdb66,
+0x70b64ebd, 0xf8dcb9a7, 0x634a8335, 0x06642398, 0xfe2f4497, 0x2e775256,
+0x30f85cbe, 0xf4d2fdaf, 0x46ca6c9d, 0x022097d6, 0xcedeb03e, 0x3d8353bc,
+0x0d005559, 0xd457eb38, 0xb1931313, 0xd4f12824, 0xcc444f1b, 0xfaa42c5f
+
+output0 =
+0x11d2bcac, 0x7715ae4d, 0xc9f4dbc6, 0x2fda3c1a, 0x09349b16, 0x2cd3c189,
+0xe5650429, 0xc73c42c1, 0xe7336bb7, 0xbb7de593, 0x83f986aa, 0xc0ade12e,
+0x6730b095, 0x78f7c059, 0xaa907199, 0x75c323d1, 0x7061f9ba, 0x97e067bf,
+0xc155cd55, 0x6a4cb08d, 0x4260e2fa, 0xff35e496, 0x37f251d3, 0x02fd9f9e,
+0x6f53345c, 0x790cda6d, 0x3b8549e4, 0x56d0c6ea, 0x70a38006, 0xfff18223,
+0x6f2035b5, 0x6cf508d3, 0x98a0a308, 0x432353fc, 0x0eb818eb, 0xdd9a128b,
+0xf92431b2, 0xad788286, 0xda07d5de, 0x44b4b3a8, 0xbe62fd67, 0x61a4eb54,
+0x90d7ac9f, 0xc4d9a930, 0xfddc3c24, 0xf5e3b1c8, 0x38143538, 0xcb1d3062,
+0xcae36df3, 0x50a73437, 0x542dcab7, 0x875973a0, 0x34690309, 0x49cb1ddb,
+0xf8a62b92, 0x82af6103, 0xc9f8c928, 0x3835b822, 0x16b044a6, 0xdae89096,
+0xa5be47d4, 0xaf61189e, 0x5cd70faf, 0x037331cf, 0xef7fa5f6, 0xb2f2b41a,
+0xa6f222c6, 0xdb60fe4c, 0x2a857a9a, 0x0b821f9d, 0x348afd17, 0x7eecbaeb,
+0x92bb9509, 0x8a3cec24, 0xd02549a2, 0x155ffa81, 0x2b7feac6, 0x3ee461e7,
+0xc981f936, 0x89b544c7, 0x9a431e36, 0x62511734, 0x769f9647, 0x211a747e,
+0x567abef4, 0xad87e2b4, 0xa3e0c3bf, 0x6d325dd5, 0xf561cc46, 0x39925735,
+0x3d8abbfd, 0xc3724c88, 0x8bdf03c9, 0x1b02a12a, 0x4f233a0c, 0x9ca9444a,
+0xc5d1f7e6, 0x4d995f37, 0xd9aefb32, 0xd0465248, 0x0f3a3b21, 0x62ea8c0c,
+0x91f8d54e, 0x5cf75514, 0x14618a01, 0x8fe9b87e, 0xf2b424f9, 0x49724ce2,
+0xa1464587, 0x5e00dc83, 0x59475455, 0x444119b1, 0x4fb9f036, 0x65fcbc1a,
+0x1c63a990, 0x767a6114, 0xb0ede06a, 0xcfb91ae3, 0x7874af5f, 0xf78772a3,
+0xa2932c81, 0x77f2759d, 0x930dc8f1, 0x95ce14a5, 0x134363ee, 0x61ee143f,
+0xf0034b35, 0xfdc75fce, 0x3be2dcf3, 0xff3a07eb, 0xdc43f0eb, 0x23ba73bb,
+0x45f7649e, 0xcacc297c, 0xa3dd98db, 0x058d46a9, 0x6bcfc154, 0x7be8e1e6,
+0x618a4754, 0x8d193c46, 0xba39e1ce, 0xc3b85cfc, 0xd80d853b, 0x38d6440d,
+0x9c1a6185, 0x90c9dfcb, 0x01c6e841, 0xeedfe6ac, 0x7b61a3ae, 0xad3924dd,
+0x514bc1a8, 0x6ed60d7e, 0x1b74b79b, 0xea295947, 0x5f9a5d33, 0xcd24311f,
+0x0bd3d10c, 0xd214ecfe, 0xcb37035d, 0x8ce95168, 0x7020cb52, 0xe432107d,
+0x042d63ac, 0x6201c8dd, 0x4bea65a2, 0x1a3cf453, 0x5b8e868d, 0x3d653bb0,
+0x24c1967e, 0x37f183a9, 0x3700e703, 0xb168a02b, 0x2592cd82, 0x5c0cdb66,
+0x70b64ebd, 0xf8dcb9a7, 0x634a8335, 0x06642398, 0xfe2f4497, 0x2e775256,
+0x30f85cbe, 0xf4d2fdaf, 0x46ca6c9d, 0x022097d6, 0xcedeb03e, 0x3d8353bc,
+0x0d005559, 0xd457eb38, 0xb1931313, 0xd4f12824, 0xcc444f1b, 0xfaa42c5f,
+0x4fde636c, 0x10ea20a0, 0xe6da8721, 0xbfde5b08, 0x9c3739da, 0xb6dc015a,
+0x427db088, 0xdfdb8e6f, 0x756be6c1, 0x21f5297b, 0x06135665, 0xc1602b7d,
+0x049536c5, 0xbbb3b801, 0x0cdb0c19, 0x7b2ad622, 0xfee8218f, 0xc5c7f123,
+0x8abd3301, 0xa15b534d, 0x29dd2053, 0xd409abf9, 0x3ef19d6b, 0x70a3cbc2,
+0x7a51423a, 0x4505b2ad, 0xdc74c75e, 0x068751a9, 0xb0b56437, 0x14a10371,
+0x76af806f, 0xa8a47e19, 0x7c97a26e, 0x7998a3d6, 0xdc1ad1e2, 0xb532a301,
+0xca8a3e7d, 0xd0aef374, 0x204990c0, 0xc7011aec, 0xa69151ea, 0x53390026,
+0x7bf0d762, 0x735c2202, 0x64159e54, 0x5a3b1a56, 0x9ef1def2, 0x0ab8a961,
+0x587b0886, 0xb8cc5975, 0x2a5a0f23, 0x069d05be, 0x9cc3c207, 0x40ef1a02,
+0x4fae3f5b, 0x1f127aae, 0xd4e6d411, 0x17ac43ef, 0xe4bf891b, 0xfbb21765,
+0x2c560c7e, 0x8561988c, 0x73a01032, 0x0cfef73a, 0x694c4991, 0x885d7a3f,
+0x4218d1ff, 0xc2efaffb, 0xaf9d9715, 0xf76de6b2, 0xcce8e8ff, 0x370e3800,
+0x493675eb, 0xd8fbcbda, 0xa5b382c2, 0x86c8f1ea, 0x3d724ea4, 0xb067034c,
+0x6491d87e, 0x1a745ce4, 0xbb27180b, 0x1a2f0acc, 0xac4b7b3b, 0xe324578b,
+0xc87928df, 0x9c1de566, 0x0ce2a17d, 0xaf2e13ce, 0x146a8659, 0x8727f6ae,
+0xe2df7d03, 0x1a8e4cb4, 0xfa590976, 0x13a7c236, 0xc07489d0, 0xbe905e17,
+0xafeb3d4b, 0x201e73f2, 0x5bdca12e, 0x3e15a852, 0xbcfc3271, 0x5d398410,
+0x6bfacc15, 0x011fc61f, 0x43e43fd7, 0x0640717c, 0x96bfb3ff, 0x158eac19,
+0x3b852e91, 0x74f9ceda, 0xcac71326, 0xfc0e312a, 0x20e8137b, 0xa1162611,
+0x239ac7fe, 0xb9d00f8a, 0xea0b5241, 0x019f0d25, 0xc5153264, 0xb48a5547,
+0xe54e339f, 0x17a6cca5, 0x5065af0d, 0x5ce648b9, 0xb457b342, 0xc1cb3f0e,
+0x28d03c8b, 0x5144ed7a, 0xdb80779f, 0x53ce1b87, 0xbc071147, 0xbfe46c11,
+0x7296785e, 0x83e4a63e, 0xc58982e9, 0x9538c5b9, 0xf14abaaa, 0xd915124c,
+0x73540cd6, 0xe333696b, 0x58f9e00a, 0xd4dad10f, 0xc0de1420, 0x355e2bdc,
+0xb2faa8fd, 0xbe6a12f1, 0x45d415cc, 0x47f5aed9, 0x4754e770, 0x2bb07385,
+0x41374352, 0xf80beb47, 0xef02f35c, 0xc9c1b86e, 0x94b5785b, 0xba33123f,
+0x7e39f0c9, 0x028a9286, 0x7d52c9f1, 0x06f04da6, 0xbc6a68d1, 0xfc70bace,
+0x95b6a129, 0xfff224bb, 0x701ef3fb, 0x3309286f, 0x544ae8c1, 0xdca62c4a,
+0xf8862ee2, 0xf9e3cd29, 0x2c07cce2, 0x8d93652a, 0xf47e4611, 0x4635f586,
+0x1c03e0f4, 0x819724c7, 0x96b2a3f0, 0xeeb1ad95, 0xff08e517, 0xbd4ba6ed,
+0x49ddb12d, 0x365734b5, 0x5edf7459, 0x2ee117a9, 0x067b9462, 0xb703685f,
+0x72499876, 0xb71dd772, 0x5d02b478, 0x4b6fed1d, 0x2df232c1, 0x733eaaff,
+0x1618c029, 0x0adda94b, 0xd271e560, 0xd120ba30, 0x6dfecc73, 0x4e751af7,
+0x0e7a6b63, 0xa1ad5dad, 0xb41201b1, 0x245f3e86, 0x3a5114ac, 0x5cd532c9,
+0x27ff9c3a, 0x7a847392, 0x6b2d0514, 0x82d0cc45, 0x0c779ba2, 0x8690f3ef,
+0x0c058474, 0x47a8ee9a, 0xac4c2475, 0x496b67a5, 0x033f43f5, 0x6e6ce3c9,
+0x644f5163, 0x8f4b92d9, 0x217798ee, 0x4b8e5368, 0xce751989, 0x7ab05365,
+0xe227cee3, 0xf35e2851, 0x6f304c87, 0x1389c81d, 0x6ebc3989, 0x2b32ac3e,
+0x59c5d111, 0xa8e8699c, 0xa5b15150, 0x8cacebe8, 0x40c2ede6, 0x71ea78c9,
+0xa9e40f49, 0x58309eab, 0xd2eb879c, 0x54b9086f, 0xce206d93, 0x47e7087a,
+0xac1e1dd9, 0x1d3a7bf1, 0x07d21fd4, 0x3a84a2a7, 0xe3ce33de, 0x55c94ddf,
+0xd827c1ea, 0x3b4dcf5a, 0x7d5fbeb6, 0xd71ccdae, 0x516a9035, 0x33b3bee0,
+0x61201364, 0xcf344f8d, 0x8c887934, 0x1998c127, 0xe24f1190, 0x75e8ea20,
+0x8a379eda, 0x8a894b14, 0xa3d7c264, 0xa62b0119, 0x87f4d316, 0xecdc5f2b,
+0xbc2424ec, 0x71169a71, 0x61aa2d5d, 0xb5f5f160, 0xc15a4969, 0xc5419315,
+0xbf84483e, 0x2b1687c1, 0xd1aa06df, 0x22d5befd, 0x8b09b15f, 0xa88ffc01,
+0xbb33617f, 0xb01a3e2e, 0x912a939c, 0xc649d802, 0xeba14b11, 0x3c902b57,
+0xbcf35a8d, 0x45a964a1, 0x0c9416ef, 0xec9ae2d1, 0xc5e56fee, 0x88bfa336,
+0x653cfe85, 0x92d21037, 0x96bc60e4, 0xf5317c1e, 0x5e7118f4, 0x91a9e04b,
+0x43f0cfec, 0xb763dc3c, 0xad6bac40, 0x21685f69, 0x5e4d6f70, 0xd8d5a4c4,
+0x15ed5efe, 0x3bbefa38, 0xbf7cf912, 0xb1427ffd, 0x652235ff, 0x927a7046,
+0x8806625f, 0x56967b59, 0x6ec3dba6, 0x0ee31e0f, 0x25111a51, 0x091c763e,
+0x1867732b, 0x28365594, 0xa589c975, 0x585b906f, 0xb85c4f20, 0xced98475,
+0x52f29d16, 0x1ca0de39, 0xede3c4c8, 0xda808e91, 0x449784ab, 0xe3caf590,
+0xabf23939, 0xe97f259a, 0x0a879f81, 0x5c6268ac, 0x0a4f1b62, 0xfe15825e,
+0xbea5e6f9, 0x0d2db98f, 0xeec8cd64, 0x1747ddf5, 0x8b4f161c, 0xd236c9f6,
+0x1a5b5a2f, 0x08918e6d, 0xdde43ad9, 0x8c316d0f, 0x7f1b3342, 0x3e385cee,
+0x55ff6f87, 0x89bbe534, 0x67c23afe, 0x250dc97a, 0x06b3b332, 0x61a03930,
+0x2ca17159, 0x3260c4f6, 0x3c810bde, 0x28d94372, 0xa9701f5a, 0x3880475b,
+0x352ff389, 0x2bf653e0, 0xa4a6cc35, 0x4d211cfc, 0xeda0b37d, 0x14c0e6d8,
+0xe457aaea, 0x1c6ed15f, 0x155d3b90, 0x7f43aed4, 0x289a98f9, 0x42246910,
+0x62d047f5, 0x75714462, 0xe2c2a4df, 0x9dfc0f13, 0x03361f4c, 0xc55b5ca7,
+0x9dd89720, 0x17376073, 0xfb6ee849, 0x280e697e, 0x57b24f3a, 0x2089b956,
+0xa8baa602, 0x5b7ab88c, 0xd69f8b56, 0x64f80d52, 0x223427b9, 0xfd393c95,
+0xb074
+
+e =
+18444
+
+k =
+6144
+
+ncb =
+18528
+
+rv_index =
+0
+
+code_block_mode =
+1
+
+expected_status =
+OK
diff --git a/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c1_k6144_r0_e18448_crc24a.data b/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c1_k6144_r0_e18448_crc24a.data
new file mode 100644
index 000000000..345d1410f
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c1_k6144_r0_e18448_crc24a.data
@@ -0,0 +1,159 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2017 Intel Corporation
+
+op_type =
+RTE_BBDEV_OP_TURBO_ENC
+
+input0 =
+0x11d2bcac, 0x7715ae4d, 0xc9f4dbc6, 0x2fda3c1a, 0x09349b16, 0x2cd3c189,
+0xe5650429, 0xc73c42c1, 0xe7336bb7, 0xbb7de593, 0x83f986aa, 0xc0ade12e,
+0x6730b095, 0x78f7c059, 0xaa907199, 0x75c323d1, 0x7061f9ba, 0x97e067bf,
+0xc155cd55, 0x6a4cb08d, 0x4260e2fa, 0xff35e496, 0x37f251d3, 0x02fd9f9e,
+0x6f53345c, 0x790cda6d, 0x3b8549e4, 0x56d0c6ea, 0x70a38006, 0xfff18223,
+0x6f2035b5, 0x6cf508d3, 0x98a0a308, 0x432353fc, 0x0eb818eb, 0xdd9a128b,
+0xf92431b2, 0xad788286, 0xda07d5de, 0x44b4b3a8, 0xbe62fd67, 0x61a4eb54,
+0x90d7ac9f, 0xc4d9a930, 0xfddc3c24, 0xf5e3b1c8, 0x38143538, 0xcb1d3062,
+0xcae36df3, 0x50a73437, 0x542dcab7, 0x875973a0, 0x34690309, 0x49cb1ddb,
+0xf8a62b92, 0x82af6103, 0xc9f8c928, 0x3835b822, 0x16b044a6, 0xdae89096,
+0xa5be47d4, 0xaf61189e, 0x5cd70faf, 0x037331cf, 0xef7fa5f6, 0xb2f2b41a,
+0xa6f222c6, 0xdb60fe4c, 0x2a857a9a, 0x0b821f9d, 0x348afd17, 0x7eecbaeb,
+0x92bb9509, 0x8a3cec24, 0xd02549a2, 0x155ffa81, 0x2b7feac6, 0x3ee461e7,
+0xc981f936, 0x89b544c7, 0x9a431e36, 0x62511734, 0x769f9647, 0x211a747e,
+0x567abef4, 0xad87e2b4, 0xa3e0c3bf, 0x6d325dd5, 0xf561cc46, 0x39925735,
+0x3d8abbfd, 0xc3724c88, 0x8bdf03c9, 0x1b02a12a, 0x4f233a0c, 0x9ca9444a,
+0xc5d1f7e6, 0x4d995f37, 0xd9aefb32, 0xd0465248, 0x0f3a3b21, 0x62ea8c0c,
+0x91f8d54e, 0x5cf75514, 0x14618a01, 0x8fe9b87e, 0xf2b424f9, 0x49724ce2,
+0xa1464587, 0x5e00dc83, 0x59475455, 0x444119b1, 0x4fb9f036, 0x65fcbc1a,
+0x1c63a990, 0x767a6114, 0xb0ede06a, 0xcfb91ae3, 0x7874af5f, 0xf78772a3,
+0xa2932c81, 0x77f2759d, 0x930dc8f1, 0x95ce14a5, 0x134363ee, 0x61ee143f,
+0xf0034b35, 0xfdc75fce, 0x3be2dcf3, 0xff3a07eb, 0xdc43f0eb, 0x23ba73bb,
+0x45f7649e, 0xcacc297c, 0xa3dd98db, 0x058d46a9, 0x6bcfc154, 0x7be8e1e6,
+0x618a4754, 0x8d193c46, 0xba39e1ce, 0xc3b85cfc, 0xd80d853b, 0x38d6440d,
+0x9c1a6185, 0x90c9dfcb, 0x01c6e841, 0xeedfe6ac, 0x7b61a3ae, 0xad3924dd,
+0x514bc1a8, 0x6ed60d7e, 0x1b74b79b, 0xea295947, 0x5f9a5d33, 0xcd24311f,
+0x0bd3d10c, 0xd214ecfe, 0xcb37035d, 0x8ce95168, 0x7020cb52, 0xe432107d,
+0x042d63ac, 0x6201c8dd, 0x4bea65a2, 0x1a3cf453, 0x5b8e868d, 0x3d653bb0,
+0x24c1967e, 0x37f183a9, 0x3700e703, 0xb168a02b, 0x2592cd82, 0x5c0cdb66,
+0x70b64ebd, 0xf8dcb9a7, 0x634a8335, 0x06642398, 0xfe2f4497, 0x2e775256,
+0x30f85cbe, 0xf4d2fdaf, 0x46ca6c9d, 0x022097d6, 0xcedeb03e, 0x3d8353bc,
+0x0d005559, 0xd457eb38, 0xb1931313, 0xd4f12824, 0xcc444f1b, 0x5f
+
+output0 =
+0x11d2bcac, 0x7715ae4d, 0xc9f4dbc6, 0x2fda3c1a, 0x09349b16, 0x2cd3c189,
+0xe5650429, 0xc73c42c1, 0xe7336bb7, 0xbb7de593, 0x83f986aa, 0xc0ade12e,
+0x6730b095, 0x78f7c059, 0xaa907199, 0x75c323d1, 0x7061f9ba, 0x97e067bf,
+0xc155cd55, 0x6a4cb08d, 0x4260e2fa, 0xff35e496, 0x37f251d3, 0x02fd9f9e,
+0x6f53345c, 0x790cda6d, 0x3b8549e4, 0x56d0c6ea, 0x70a38006, 0xfff18223,
+0x6f2035b5, 0x6cf508d3, 0x98a0a308, 0x432353fc, 0x0eb818eb, 0xdd9a128b,
+0xf92431b2, 0xad788286, 0xda07d5de, 0x44b4b3a8, 0xbe62fd67, 0x61a4eb54,
+0x90d7ac9f, 0xc4d9a930, 0xfddc3c24, 0xf5e3b1c8, 0x38143538, 0xcb1d3062,
+0xcae36df3, 0x50a73437, 0x542dcab7, 0x875973a0, 0x34690309, 0x49cb1ddb,
+0xf8a62b92, 0x82af6103, 0xc9f8c928, 0x3835b822, 0x16b044a6, 0xdae89096,
+0xa5be47d4, 0xaf61189e, 0x5cd70faf, 0x037331cf, 0xef7fa5f6, 0xb2f2b41a,
+0xa6f222c6, 0xdb60fe4c, 0x2a857a9a, 0x0b821f9d, 0x348afd17, 0x7eecbaeb,
+0x92bb9509, 0x8a3cec24, 0xd02549a2, 0x155ffa81, 0x2b7feac6, 0x3ee461e7,
+0xc981f936, 0x89b544c7, 0x9a431e36, 0x62511734, 0x769f9647, 0x211a747e,
+0x567abef4, 0xad87e2b4, 0xa3e0c3bf, 0x6d325dd5, 0xf561cc46, 0x39925735,
+0x3d8abbfd, 0xc3724c88, 0x8bdf03c9, 0x1b02a12a, 0x4f233a0c, 0x9ca9444a,
+0xc5d1f7e6, 0x4d995f37, 0xd9aefb32, 0xd0465248, 0x0f3a3b21, 0x62ea8c0c,
+0x91f8d54e, 0x5cf75514, 0x14618a01, 0x8fe9b87e, 0xf2b424f9, 0x49724ce2,
+0xa1464587, 0x5e00dc83, 0x59475455, 0x444119b1, 0x4fb9f036, 0x65fcbc1a,
+0x1c63a990, 0x767a6114, 0xb0ede06a, 0xcfb91ae3, 0x7874af5f, 0xf78772a3,
+0xa2932c81, 0x77f2759d, 0x930dc8f1, 0x95ce14a5, 0x134363ee, 0x61ee143f,
+0xf0034b35, 0xfdc75fce, 0x3be2dcf3, 0xff3a07eb, 0xdc43f0eb, 0x23ba73bb,
+0x45f7649e, 0xcacc297c, 0xa3dd98db, 0x058d46a9, 0x6bcfc154, 0x7be8e1e6,
+0x618a4754, 0x8d193c46, 0xba39e1ce, 0xc3b85cfc, 0xd80d853b, 0x38d6440d,
+0x9c1a6185, 0x90c9dfcb, 0x01c6e841, 0xeedfe6ac, 0x7b61a3ae, 0xad3924dd,
+0x514bc1a8, 0x6ed60d7e, 0x1b74b79b, 0xea295947, 0x5f9a5d33, 0xcd24311f,
+0x0bd3d10c, 0xd214ecfe, 0xcb37035d, 0x8ce95168, 0x7020cb52, 0xe432107d,
+0x042d63ac, 0x6201c8dd, 0x4bea65a2, 0x1a3cf453, 0x5b8e868d, 0x3d653bb0,
+0x24c1967e, 0x37f183a9, 0x3700e703, 0xb168a02b, 0x2592cd82, 0x5c0cdb66,
+0x70b64ebd, 0xf8dcb9a7, 0x634a8335, 0x06642398, 0xfe2f4497, 0x2e775256,
+0x30f85cbe, 0xf4d2fdaf, 0x46ca6c9d, 0x022097d6, 0xcedeb03e, 0x3d8353bc,
+0x0d005559, 0xd457eb38, 0xb1931313, 0xd4f12824, 0xcc444f1b, 0xa533d85f,
+0x4fde63ac, 0x10ea20a0, 0xe6da8721, 0xbfde5b08, 0x9c3739da, 0xb6dc015a,
+0x427db088, 0xdfdb8e6f, 0x756be6c1, 0x21f5297b, 0x06135665, 0xc1602b7d,
+0x049536c5, 0xbbb3b801, 0x0cdb0c19, 0x7b2ad622, 0xfee8218f, 0xc5c7f123,
+0x8abd3301, 0xa15b534d, 0x29dd2053, 0xd409abf9, 0x3ef19d6b, 0x70a3cbc2,
+0x7a51423a, 0x4505b2ad, 0xdc74c75e, 0x068751a9, 0xb0b56437, 0x14a10371,
+0x76af806f, 0xa8a47e19, 0x7c97a26e, 0x7998a3d6, 0xdc1ad1e2, 0xb532a301,
+0xca8a3e7d, 0xd0aef374, 0x204990c0, 0xc7011aec, 0xa69151ea, 0x53390026,
+0x7bf0d762, 0x735c2202, 0x64159e54, 0x5a3b1a56, 0x9ef1def2, 0x0ab8a961,
+0x587b0886, 0xb8cc5975, 0x2a5a0f23, 0x069d05be, 0x9cc3c207, 0x40ef1a02,
+0x4fae3f5b, 0x1f127aae, 0xd4e6d411, 0x17ac43ef, 0xe4bf891b, 0xfbb21765,
+0x2c560c7e, 0x8561988c, 0x73a01032, 0x0cfef73a, 0x694c4991, 0x885d7a3f,
+0x4218d1ff, 0xc2efaffb, 0xaf9d9715, 0xf76de6b2, 0xcce8e8ff, 0x370e3800,
+0x493675eb, 0xd8fbcbda, 0xa5b382c2, 0x86c8f1ea, 0x3d724ea4, 0xb067034c,
+0x6491d87e, 0x1a745ce4, 0xbb27180b, 0x1a2f0acc, 0xac4b7b3b, 0xe324578b,
+0xc87928df, 0x9c1de566, 0x0ce2a17d, 0xaf2e13ce, 0x146a8659, 0x8727f6ae,
+0xe2df7d03, 0x1a8e4cb4, 0xfa590976, 0x13a7c236, 0xc07489d0, 0xbe905e17,
+0xafeb3d4b, 0x201e73f2, 0x5bdca12e, 0x3e15a852, 0xbcfc3271, 0x5d398410,
+0x6bfacc15, 0x011fc61f, 0x43e43fd7, 0x0640717c, 0x96bfb3ff, 0x158eac19,
+0x3b852e91, 0x74f9ceda, 0xcac71326, 0xfc0e312a, 0x20e8137b, 0xa1162611,
+0x239ac7fe, 0xb9d00f8a, 0xea0b5241, 0x019f0d25, 0xc5153264, 0xb48a5547,
+0xe54e339f, 0x17a6cca5, 0x5065af0d, 0x5ce648b9, 0xb457b342, 0xc1cb3f0e,
+0x28d03c8b, 0x5144ed7a, 0xdb80779f, 0x53ce1b87, 0xbc071147, 0xbfe46c11,
+0x7296785e, 0x83e4a63e, 0xc58982e9, 0x9538c5b9, 0xf14abaaa, 0xd915124c,
+0x73540cd6, 0xe333696b, 0x58f9e00a, 0xd4dad10f, 0xc0de1420, 0x355e2bdc,
+0xb2faa8fd, 0xbe6a12f1, 0x45d415cc, 0x47f5aed9, 0x4754e770, 0x2bb07385,
+0x41374352, 0xf80beb47, 0xef02f35c, 0xc9c1b86e, 0x94b5785b, 0xba33123f,
+0x7e39f0c9, 0x028a9286, 0x7d52c9f1, 0x06f04da6, 0xbc6a68d1, 0xfc70bace,
+0x95b6a129, 0xfff224bb, 0x701ef3fb, 0x3309286f, 0x544ae8c1, 0xdca62c4a,
+0xf8862ee2, 0xf9e3cd29, 0x2c07cce2, 0x8d93652a, 0xf47e4611, 0x4635f586,
+0x1c03e0f4, 0x819724c7, 0x96b2a3f0, 0xeeb1ad95, 0xff08e517, 0xbd4ba6ed,
+0x49ddb12d, 0x365734b5, 0x5edf7459, 0x2ee117a9, 0x067b9462, 0xb703685f,
+0x72499876, 0xb71dd772, 0x5d02b478, 0x4b6fed1d, 0x2df232c1, 0xb9dea0ff,
+0x1618c046, 0x0adda94b, 0xd271e560, 0xd120ba30, 0x6dfecc73, 0x4e751af7,
+0x0e7a6b63, 0xa1ad5dad, 0xb41201b1, 0x245f3e86, 0x3a5114ac, 0x5cd532c9,
+0x27ff9c3a, 0x7a847392, 0x6b2d0514, 0x82d0cc45, 0x30779ba2, 0x3f0c8156,
+0x9bce6106, 0x3511b2b4, 0x82dbef90, 0xac19def9, 0x5f11d43e, 0xa5899170,
+0xdd137ff4, 0x188077ab, 0x53cec4c0, 0x6519988d, 0x2b07a0d5, 0x269ec4ae,
+0x29c2bc5a, 0x4a0206c6, 0xf8fba9f5, 0x61309433, 0x402bf26c, 0xce401562,
+0xf7eb46da, 0x4d9ad0c0, 0xf99fc69b, 0x1b670e56, 0x327bb1c8, 0x5f7db32c,
+0x4c96b615, 0x041e0960, 0x190ef525, 0xede526f8, 0x59eb88e1, 0x355e5454,
+0x8289d63c, 0xf848c2ad, 0x5bfc881f, 0xf161d01e, 0x5a921d49, 0xc202a8ad,
+0xaa9e9dc4, 0x8211e14d, 0xea945bc4, 0xa5a59180, 0x7ffd5bd0, 0xd6c107bc,
+0x3d0e84af, 0x04d13d34, 0xa21f54a3, 0xfcea787b, 0xbe61865b, 0xbe0d9899,
+0x336bb04d, 0xf843ae66, 0x8d400981, 0x4359b845, 0xdbda44dd, 0x27392d92,
+0x05780a7b, 0xe6dd7f03, 0x13137173, 0x9b623a85, 0x2428f035, 0x996f04de,
+0x74613a87, 0x924aa956, 0x4661e3ad, 0x506ce2d3, 0xa59e7aba, 0x34fd455d,
+0x70d613c6, 0x094610b9, 0x06e176ee, 0xb4f0842c, 0xc53680f4, 0xd9e2920b,
+0xe0ddcd46, 0x8e4c1618, 0xb5c83878, 0x7b5107a3, 0xb75c33c0, 0xa62868d3,
+0x804e47d9, 0xcefc87fc, 0xca5e125d, 0x3ed40ea7, 0xe72d3663, 0x06620539,
+0x314993c2, 0x99f417d9, 0x4819151c, 0x7d46c8a2, 0x95a81dc9, 0x61898a53,
+0x8226bb8c, 0x4907a616, 0x91eb32f7, 0x5430c6a1, 0x390ca234, 0x599f02ff,
+0x315a4cc8, 0xc15d9e2b, 0x1c7a8788, 0x2074d5ea, 0xc063a30d, 0x5532e1f5,
+0xd3820192, 0x916a7b03, 0x32422c07, 0x2ae2cc41, 0x96cb84c5, 0x2bab3d29,
+0x0edc0add, 0x408e4981, 0x2606b671, 0x63dca006, 0x8f4261d9, 0xbfe4623b,
+0x60174b80, 0x50230b0d, 0x9d4c7af3, 0x2edb3482, 0x24d8d087, 0x1b673b02,
+0xe28b7132, 0xc6c8cb36, 0x5794e3f3, 0x808c3887, 0xf9f64a32, 0xfca10213,
+0xff29e373, 0x54bf19a6, 0x16014860, 0x356d4398, 0xe8d0d630, 0x4c8100c0,
+0x7b68a462, 0x6cc95c68, 0x3becad35, 0xb2c6b4c3, 0x740aef1c, 0x4f37f2d5,
+0xc9d3c805, 0x6e4e533d, 0xf7647967, 0x91856de5, 0x87e7e428, 0xddf2fe07,
+0x69016442, 0xe0132159, 0x1afae2a2, 0x63b6d719, 0x08d20a21, 0x48ee7113,
+0x2fb2d853, 0xa532ffc8, 0x8296dee2, 0x0dfaf2fa, 0x060d531c, 0xa756d04c,
+0x3efed03e, 0xbe9436db, 0x5b9e8a48, 0x0a37ea61, 0x718f4362, 0xebcc9742,
+0x78aa2e7c, 0x4b19f7b8, 0x308b9af0, 0x915247e9, 0xc079aa48, 0x5230e578,
+0x862d6de7, 0xbe0801d0, 0x8ab11c9d, 0xaf1d7feb, 0xe9d15530, 0x44651202,
+0xc006
+
+e =
+18448
+
+k =
+6144
+
+ncb =
+18528
+
+rv_index =
+0
+
+code_block_mode =
+1
+
+op_flags =
+RTE_BBDEV_TURBO_CRC_24A_ATTACH
+
+expected_status =
+OK \ No newline at end of file
diff --git a/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c1_k6144_r0_e32256_crc24b_rm.data b/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c1_k6144_r0_e32256_crc24b_rm.data
new file mode 100644
index 000000000..9ce68b723
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c1_k6144_r0_e32256_crc24b_rm.data
@@ -0,0 +1,180 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2017 Intel Corporation
+
+op_type =
+RTE_BBDEV_OP_TURBO_ENC
+
+input0 =
+0xe5e0a392, 0x6f5468f1, 0xc8f1c505, 0x4502caf2, 0x23df5578, 0xc2f29afe, 0x06838d34, 0x264eab9b,
+0x1e97c133, 0xabad27aa, 0x684fa9b4, 0x0fed735e, 0x6ab6bcad, 0x9c3e401a, 0x66a63035, 0xa72f7f6b,
+0x509d2953, 0xf03c574a, 0x48f12185, 0x27318395, 0x008fc1ce, 0x7efcf19d, 0x0120de12, 0x6ed28bff,
+0x2044547a, 0x04d95124, 0x6baf2e1e, 0x60d93509, 0x299aa27f, 0x8b67d93a, 0xc33d9631, 0xe468dbe1,
+0x1a82d0b6, 0x8ee2ff7b, 0x39298170, 0x33a90b6a, 0x273d17f7, 0xb4368615, 0x60c390b8, 0x24696570,
+0xa1f4abcc, 0x08b68dd0, 0x91f8c883, 0xc9ceed85, 0x6467da9b, 0x48dfae24, 0xf4ff4992, 0x8c8200cf,
+0xaac02792, 0xf506f71d, 0x096df98a, 0x3074be38, 0x9b675626, 0x4ccace33, 0x50f0f60d, 0xf4b59cc4,
+0x748a8799, 0x9032c151, 0x1fb945f6, 0x01bd098a, 0x90a7907b, 0xe086172c, 0x7ed3dc8d, 0xea0dd126,
+0xf9b35bc1, 0x8ad4e233, 0x37b5e1a1, 0x95bf8c3a, 0x9d288b43, 0x23a860f1, 0x4e993fc3, 0x3c774bd4,
+0xe411be48, 0x22ab80c7, 0x9dd09a47, 0xc9e6988e, 0xb4cbf0b2, 0xb9e2a389, 0xf1494438, 0x2c87638b,
+0x892468ec, 0x7915d1aa, 0x4d9cb9c4, 0x643a388e, 0x48c4358f, 0x937ad5a1, 0xdae53508, 0xa1305607,
+0xbfb63a5c, 0xb4bb9324, 0x71daab0b, 0xa582346b, 0x0e5402e1, 0x75af83e7, 0x2b241b17, 0xfa17aca1,
+0x9637cb2e, 0xc61fe511, 0x093934f7, 0x4b703b44, 0x992ab229, 0x4ddc99b5, 0xe2be6b60, 0xa2217861,
+0x8f621931, 0x272c0ec6, 0x23a4d5b2, 0xc6f4e002, 0xb76397c0, 0xc00e3c01, 0xb89d29b3, 0x5e9bc984,
+0x00391d56, 0x55fae02f, 0x4bc4bc9d, 0x9a147b22, 0x0fb492ed, 0x753dc9a6, 0x9f493eec, 0x6e135dc2,
+0x0eeca515, 0x1c1512f9, 0xb88075e3, 0x326a97f0, 0xc755faf5, 0x06b7961b, 0xbd50fd69, 0x5f071c92,
+0x2806c099, 0xe364f4ab, 0x2c4a114a, 0x7655b100, 0xf5e66750, 0xf9212705, 0x245e3b8d, 0xb0f1fb0d,
+0xd7be9558, 0x27030e24, 0x9ea9b62e, 0xbde9be45, 0xce0adae6, 0xc28780a4, 0x1664ccde, 0xa7a62e3f,
+0xa4f8ec00, 0x964e813c, 0x108c95e0, 0x097fe10b, 0x08da3505, 0xde413158, 0x046a31c0, 0xd9cdd804,
+0xdfbdff9a, 0xfd77493f, 0xdffb2388, 0xe2ffa111, 0x29eb6ac7, 0xf9e1ac68, 0xc2ed68c7, 0x34d65405,
+0x25f187ba, 0x3df23a2c, 0x96a2a5a9, 0x2bef4b26, 0x28d1c41d, 0xf380c0f1, 0xc4d5456e, 0x6b699c28,
+0x0aafd6b3, 0xf88f3078, 0x114438d0, 0x93836544, 0xebd5767d, 0x9185b5c2, 0x593e4fe7, 0x29d3348c,
+0x881f16c4, 0x77e33d03, 0x6794bbf5, 0x6b6c38f3, 0xa860673a, 0xb1d2d152, 0x08f9f310, 0x82c37500,
+0xce0ae34c, 0xd5478e86, 0xcfe1adfc, 0xfaf06d37, 0xf7e21bfc, 0x3b077287, 0x45b33c08, 0x41
+
+output0 =
+0x25832957, 0x1235fe50, 0xa3b0b09b, 0x0bb7c797, 0xce815b03, 0x7b702251, 0x2c25fc60, 0x23ac55e0,
+0x8bea35cb, 0xe33b833c, 0xec1d38a4, 0xb59acb59, 0x0f1fa8b7, 0xcb77fce6, 0x6564fc78, 0x9e6c39cc,
+0x94f1bed1, 0xe02684ad, 0x074045a4, 0x4dc9b344, 0xd187bed8, 0x2a129ecb, 0xf6c5bd4d, 0xf98d5c26,
+0x78addaae, 0xbe87f7d2, 0xf42a7df6, 0xa4683306, 0xbfa9b509, 0x3a67ddfe, 0x013d68d5, 0xb2a1fb8a,
+0x0dfc5da7, 0x792f6b24, 0xaa220ec2, 0x6cb0a7a4, 0xd6e5ea4a, 0x1cd6156c, 0x9bac3cad, 0x926a3950,
+0x658815b0, 0x2a2e4349, 0x9684d70f, 0x67a62f63, 0x7a8aae48, 0x8aa046e5, 0x3cad66d5, 0xe7e269b8,
+0x95a9a8ca, 0x426f46ae, 0xf780d265, 0x2e0d244d, 0x5480bc07, 0x66554568, 0x938aeda7, 0x1144006c,
+0x450320b3, 0xce9dfce9, 0x59a277a8, 0xde38cc1a, 0x1cd2bd60, 0x0079ca20, 0x58dd4633, 0x55398bbd,
+0x5fcf982f, 0xdbbd3e30, 0xdcaab5e4, 0xc368c59f, 0xfba8e7d2, 0x9902b581, 0x2ec0a87f, 0x0ebea4ee,
+0x13bb2fd2, 0xbc1df5be, 0xe34baa5e, 0x4a66fc5d, 0x7fc9d926, 0x1d2dc178, 0xe780752f, 0x160e82fd,
+0x2e6205ba, 0x3d2fd1d7, 0x22b03620, 0x1c1ce57b, 0x5a8f8e09, 0xc9522523, 0x712e5cc0, 0xa27b10ad,
+0x52d2df01, 0x3fe886d6, 0x29f37f12, 0x479e3783, 0xa37a445c, 0x338f9df1, 0x74dca176, 0x11acbbc4,
+0xac50920a, 0xe9375593, 0xc483a084, 0xed281b58, 0x21ea3cd3, 0x5cf2e76a, 0x50c5e5f4, 0x68d14253,
+0x374cea8e, 0xf3533631, 0xb8f1bece, 0x3a188078, 0xb15325de, 0x989b4e70, 0x40f142f9, 0x4a55cc30,
+0x72a442b2, 0xe583a6c7, 0x4cb90a7d, 0xe19187c0, 0x899ea4e0, 0x42598555, 0x7d012357, 0x3e9cd281,
+0x75094cbb, 0x80afef50, 0x8a834f90, 0xa6182605, 0xdfb7c49e, 0xde57caf6, 0x62720457, 0x5a40705e,
+0x2728f823, 0xde22d20c, 0x8389268a, 0x2aad9f81, 0xa376314c, 0xd9288769, 0xa7a1cc5d, 0x1dcdb0ed,
+0x0b23e2d8, 0x024e9165, 0x0e375ea5, 0x27c561c7, 0x48687976, 0xe97021bc, 0xbf82aea2, 0x6cb87bd3,
+0xaa3f7ed5, 0x1e5c3aaf, 0xccad60b5, 0xb672d5da, 0xde0ff047, 0xf7cd4216, 0x45220a3b, 0x060d16c7,
+0xb6dc8617, 0xc10d9dc7, 0x3d229a69, 0x8deea79a, 0xda6883e1, 0x610f41f9, 0xfa0f57f0, 0x6f97b547,
+0xf00577ee, 0xe1be3d28, 0x809810e0, 0x7d4b8416, 0xdcc82557, 0xce6a01b1, 0xbc4cb663, 0x8bc88eac,
+0xab9e918d, 0x6ec29c41, 0xbd0e745e, 0xa97bc23e, 0x1e1370c2, 0xc2744139, 0xf5d2f67b, 0x9d5ae9dd,
+0x1040a10a, 0x1b54944c, 0x9a6810b1, 0xc7079d11, 0x8c89d60d, 0xc9523c76, 0x304b7adc, 0x2fd915eb,
+0x076192e8, 0x8cbd3bc1, 0x90440a9c, 0x81961a26, 0x6a53f026, 0xd2b07ce5, 0xc72e767a, 0x9d47c3d9,
+0xab2b7cb3, 0xf4b3aeec, 0x18441c12, 0x56b3007f, 0x81c3cfff, 0x128b72ed, 0x214dee41, 0xc735baeb,
+0x89cf54e7, 0xcdfce851, 0x77cc0a00, 0x57cc6e0a, 0x7ffc8dad, 0xb036445b, 0x0699a9f7, 0x8781d7b5,
+0xdd0f9d01, 0x43f01de8, 0x6a2e7dee, 0xf802d6b3, 0x10094fc1, 0x954cf6ad, 0xd7aee91a, 0x1e3369c8,
+0x2acd8c15, 0x3303a61d, 0x79344e4d, 0x1253cd91, 0x34c34c77, 0xbd075dce, 0xe0fdd1cc, 0xf9015c56,
+0x931b9096, 0x604f4bbf, 0x3b1d991a, 0x24007891, 0x7c0c1709, 0xe0d43230, 0x11821166, 0xf21e2558,
+0x2c37009d, 0x98718786, 0xa9a112e6, 0xd7e20b10, 0xfe917f72, 0xb76101ff, 0x42a8d327, 0x9039f71b,
+0x6d1628cb, 0xfd01251c, 0x6f0572a2, 0xb36a7e7a, 0x2b1a4556, 0xe679b027, 0x313573d0, 0xb5f7c20c,
+0xc8d1530a, 0x338e756e, 0xe6befc47, 0xfe12dccd, 0x6ad1e5b7, 0x40b078ff, 0x96aaacba, 0xedfdeb8f,
+0x8da3673a, 0xc965882e, 0xa4dec6e9, 0x7bace08f, 0xf144852a, 0xd5d787d0, 0x204d32e6, 0x733098aa,
+0x12f3a53a, 0xe060086d, 0x3ab1739a, 0xd391e860, 0xc23d9687, 0x0d3a84e0, 0x855ea4cf, 0x0d0ea5b7,
+0xfd082430, 0x70df7cb4, 0xe712f026, 0x84ce32ac, 0x67b04602, 0xac0b1faa, 0xed119dcd, 0x184afb0b,
+0x9abbefd2, 0x41b3e2f9, 0xe18d5703, 0x6e5f4de7, 0xb47380a2, 0x239a3714, 0x810bb522, 0x5ad95c77,
+0xe4b37e0c, 0x1cc200a6, 0x404c4390, 0x90533af1, 0xb49f2403, 0x1dada65f, 0x96f86d1b, 0x58f679a9,
+0x1fe3c66d, 0xcc5eb28d, 0x504b7aff, 0x7c18a397, 0x47ad4d5f, 0x348f12c5, 0x80bac6e0, 0x47bb3c74,
+0xccf16f02, 0xa932a5af, 0x51ebb452, 0x25808fcc, 0x47d14a43, 0xf0c2a0af, 0x30f938b5, 0x428420c7,
+0x61a66d9c, 0x082caa4f, 0xd9c74e3d, 0xb4d161b9, 0xb409f331, 0x14245a44, 0xddb67f1e, 0x1018c62c,
+0xc1e58e6d, 0x4ba86bd6, 0xf4a282aa, 0x4a85f90d, 0xbf0efb7b, 0x03706f08, 0xbe06a5f2, 0xe37f45f1,
+0xcbc4001c, 0x14decb05, 0xf3c6050f, 0xd1df33d7, 0xdab729c7, 0x8898dad3, 0x4a44a313, 0x30bee51e,
+0xd67b07ef, 0xf233eb19, 0x4c52bca3, 0x5d824a4b, 0x275faf2b, 0x428f8a95, 0x03f70c8b, 0x609e4036,
+0x59ce2147, 0xc7eecc6b, 0xa22d21c2, 0xc5764d9a, 0xb4524bc6, 0x6d9bdfc9, 0x0918b4f7, 0x62bb8022,
+0x7a98bdcc, 0xc963131d, 0x949036b8, 0x649ae51d, 0x93038d33, 0xe26cb45e, 0x4813516a, 0xc06c759c,
+0xfa6a9793, 0xdd59c686, 0x37b4b5b0, 0x66a02fac, 0xde159ecf, 0x90cdb66e, 0x1c9f7f94, 0x3a31f69e,
+0xcd93bc45, 0x32744ee0, 0x0f6ae2b1, 0x3bc9e963, 0x8cddbae4, 0x8f9517ff, 0x7d304ec1, 0x344e0357,
+0x7cd2ed30, 0x1f9fa3a4, 0x9dbeb67b, 0x59253b51, 0x41b6911a, 0x12b574af, 0x62a777da, 0x9a6c834a,
+0xaa16081d, 0x3f105c37, 0x6eac5dc0, 0x76e56fd1, 0x67bffbfb, 0xce069b80, 0x8fe970b1, 0x61945ee0,
+0xaf9d44c2, 0xf2cd16cc, 0x07a768c5, 0xd6eecaa6, 0x6e8ce063, 0x4b30b443, 0x360822c9, 0xa6442b33,
+0xf02d09a0, 0x22056421, 0xc552aa94, 0x1346ea1a, 0xab6c54a1, 0x35a69bdf, 0xfc6095ea, 0xbde0d55a,
+0x1b433ec0, 0x137483a0, 0x8c1cb29d, 0xf2bc4e17, 0x45df6882, 0xbd702bc9, 0xabbead61, 0xc97ef61d,
+0x01b68438, 0xbdd10231, 0x2e046323, 0x80e619bd, 0xa5126a2a, 0x74106e0d, 0x9e57b499, 0xcb275127,
+0x9e01f21e, 0xbaf4a744, 0x38604f7e, 0xa85493d6, 0x9a4b4541, 0x3f397269, 0xdde71734, 0x157dfe98,
+0x40334ad9, 0xc889f52f, 0xbddf4d23, 0xd2200018, 0x2a4b7180, 0x8a1a357f, 0xcd6af7e4, 0x1426b52b,
+0x2a45481f, 0xfc38394c, 0x05123e4e, 0xa0215834, 0xe2c2306e, 0x4ee9fe1a, 0x6bbbf30c, 0x19a39072,
+0x846b0bdf, 0xde4ef7f9, 0x47f1d67c, 0xf507e9e8, 0x14c1f617, 0xaa756ccf, 0xececc02a, 0x183cd616,
+0x9d4bac81, 0xd959d1ea, 0xefb81e2b, 0xd8ca27fc, 0x5c7e9eb4, 0x64d5d550, 0x32ed3c41, 0x8f62e8a8,
+0x5e2b65c5, 0x0a7e5e1b, 0x88abb657, 0x781ee74a, 0x840c27fd, 0xec83df4c, 0x163acaf0, 0xb2649960,
+0x2a706f9a, 0x5226c811, 0x5bcb501c, 0xb87caa99, 0xecb4a37e, 0x8927c424, 0xfea9ac62, 0x17da41d1,
+0x571c5987, 0x4217ea55, 0x5043b664, 0x18fb3ece, 0xfb2d13b9, 0xb6599d4b, 0xbb8a536d, 0xa719683f,
+0x81cc2d0f, 0xc888f1d3, 0xccb0a428, 0xd2cdff48, 0x0b3440e6, 0x45700619, 0xcea80987, 0xa5ad1cc3,
+0xd29deaf7, 0x4a8c95af, 0x9ac63a98, 0xf46d26b0, 0xf9a09352, 0x5f8b3fb7, 0x367c8da1, 0x3244b6a2,
+0x9634b973, 0x27292ae5, 0xc4f7ae33, 0x9b73a4f7, 0x086a8bb4, 0x616cd17b, 0x74fdb210, 0x5f483d60,
+0xf7666630, 0x107cd026, 0xfa2a4a07, 0x171b319e, 0x509d50c8, 0xf2d15061, 0x981d5759, 0xf23bc5c6,
+0xe9befe22, 0x1e784009, 0x7cda3751, 0x1c5b2b69, 0x3ba09115, 0x756f1ef5, 0x2b47353b, 0x553a33d9,
+0x1f029262, 0x6393d0ee, 0x97e01180, 0x0c53980c, 0x5da79e34, 0x1e0b53c4, 0x06a9f2ba, 0x622181b0,
+0x4898ac50, 0x874c780e, 0xf8cc5072, 0x4a5a63ca, 0xf6dea6a2, 0xc3134004, 0x4505bae6, 0xc3f4b638,
+0x0dda8e07, 0x0c4135bf, 0x61e80f25, 0x4b31a76c, 0xd91f0d09, 0x4ba0d577, 0xc95d0086, 0x21a61725,
+0x16862c1f, 0x9588795d, 0x6ecde7c4, 0x353288cd, 0x94e4647e, 0xeceaba51, 0x7c602ff8, 0xbba48cef,
+0x6556c6bf, 0xde912190, 0x86602d55, 0xf549554a, 0xd4d52081, 0x9728c5db, 0x7d09e129, 0x068008ab,
+0x353a6ea4, 0x90b44e4e, 0x5c97a08a, 0x6293b3c7, 0xa3e4114b, 0x7ce44646, 0x8f2b0269, 0x291ca1bb,
+0x98721528, 0xe30f5532, 0x0bbb2951, 0x7b7c390a, 0xb835b070, 0x2712e51c, 0xc20fb607, 0x5a05ce52,
+0x5eb33cc2, 0x33c8b3a8, 0x81433abe, 0xb99cc5de, 0x817a5bab, 0xc76ffef0, 0xc68fb77c, 0x96c35c46,
+0xef1bedc9, 0x42d84a19, 0x54440a6e, 0x3c4b7400, 0xe88bdd94, 0xe1b91c7d, 0xdcdba422, 0xc865625f,
+0xaaed9adf, 0x782f8dd7, 0xd267ef7b, 0x366340af, 0x5a9b408a, 0xd6edff9b, 0x8356ad73, 0xbaaf18d0,
+0xdf752a1b, 0xb246d2c0, 0xe2209cf7, 0x7b4aaa2a, 0xaeaec406, 0x5dc1665d, 0xcad3ca61, 0x9603b5c9,
+0x58012ba9, 0x32945486, 0x78fda0e2, 0xfa326649, 0xe88a7466, 0x6a54aea7, 0x6a56ad08, 0x9e86cbd3,
+0x8aaa7c2e, 0x66e45a99, 0x285d26f4, 0x40d2740f, 0xc87be0d2, 0x55844605, 0xd87e6a56, 0x04c036a9,
+0x00321b41, 0xc99f5e34, 0x7a87eadc, 0xc3ac9125, 0xdd0be68d, 0xa70cc221, 0x6d340390, 0xb3d88bd5,
+0x8cf95295, 0xeb03f3f5, 0x5a4bbedd, 0x56fcc9ad, 0x7a2e3d8c, 0x501bb88f, 0x8cfa9729, 0x4beaee02,
+0xfb22ede0, 0x51ef3bb1, 0xa4eac5db, 0xc6df35be, 0x9c6da264, 0x128cf797, 0x58f7d2d1, 0x20d87f0e,
+0x56a06be1, 0x127ded22, 0x6b03d2f3, 0x51be2702, 0xe898c0c1, 0x5532a2f5, 0xc2059c2c, 0x07d11ae7,
+0xfd1d20ba, 0x6e682d25, 0xff27f183, 0x79339832, 0x47c475e4, 0xd8193faa, 0x1d6a37f3, 0xba4b4cc7,
+0x25a910c1, 0x5335c90a, 0x084a987e, 0xb281453c, 0xce33dd8e, 0x7fae16a2, 0x5c4ecf25, 0x2d340555,
+0xa4ee8816, 0x651373c3, 0xefeb3c3f, 0x0188871b, 0x55e2ad83, 0xe904173b, 0x2f948fb9, 0xc50c0314,
+0x2a24ab54, 0x687a2c47, 0xabd0573e, 0x7908cc94, 0x490a1e1e, 0x555895e8, 0x30722594, 0x291dd817,
+0xc0b4ebc3, 0xfa0e5597, 0xf80409f8, 0x6152a038, 0x4bec698a, 0xa56cff7d, 0x4770e57d, 0x04e72526,
+0x823fa205, 0x22cd7082, 0x68a2e82d, 0xfa193898, 0x17c3a4d2, 0x7298366a, 0xcadc958d, 0x0cdb7e1a,
+0x228eddd1, 0x1459b630, 0xe3552ae0, 0x1c76ec70, 0x96677752, 0x17c28b84, 0xe82a9a0e, 0xbb37fd2b,
+0xe357cd86, 0xa5f3aafa, 0x0a56ebc1, 0x57adcddc, 0x007f642b, 0x2c64e1fd, 0xa2b073df, 0x60715c24,
+0x6d7861d0, 0xd0796ccb, 0xa29916dc, 0x7eaad923, 0x3618dee8, 0x1094af8d, 0x70051ff6, 0x597ba4ff,
+0x70e7fe76, 0xdb83025f, 0x09011eee, 0x44680188, 0x5c72d5b7, 0x1610cb8d, 0x643be6ac, 0xecc8cacb,
+0x19d9b888, 0xcc19b4ea, 0x40e7e526, 0x27ecd3eb, 0x01279cba, 0x1794e331, 0x6dbf274c, 0x95de5d2f,
+0x14aad0a9, 0x45c90401, 0x0611bb41, 0xd019a189, 0x68dd707c, 0xc563c798, 0xa4c79d2c, 0x5db10eb3,
+0x2689fe92, 0xbb137c10, 0xa4c0c9d8, 0xa9610249, 0x056f1268, 0xcb57ae36, 0x62a7270d, 0x349c7dec,
+0xc237db79, 0xebcabeba, 0xc421413f, 0x0bf08741, 0xfcfc6f35, 0x28d71e38, 0xe41e24b1, 0xa3bb1ed2,
+0x4c757e5c, 0x8f1e95f8, 0xac00d0cc, 0xeca670c7, 0xdfd87ac5, 0x43b4f5c7, 0x997a0f6b, 0x785d6b90,
+0xd0197018, 0xdf81defd, 0xd2e73e04, 0x603dabe6, 0xf0148c2f, 0x64df0a91, 0x9aae51c9, 0x93867ced,
+0xcc58e131, 0x60daa1d2, 0xe3d43433, 0xd51c9947, 0xcc742731, 0xd0e54c33, 0x1fcddc7b, 0xc06505de,
+0x0169991f, 0xb4f43bb9, 0x91a901f6, 0x8017b9d3, 0x70914002, 0x2d03c3c7, 0x1861064e, 0x51821521,
+0x03d029ef, 0x7768c872, 0x2a618e19, 0xbe00911a, 0xf927772d, 0x16f0ef1f, 0x3a7d721b, 0x73bf2184,
+0x81b20c99, 0x50c2d166, 0x2027da1f, 0xe6a7f756, 0x516435ab, 0x077bb2a2, 0x33076d9e, 0x2fcc1053,
+0x3da5507b, 0x58e7861c, 0xcb7f34e3, 0xc1dd6cee, 0x5d7eeb2f, 0x8bf7af16, 0xcaaa0b04, 0xbffe68a9,
+0x7aa6d3de, 0x86e8d238, 0x6d9c9e5c, 0x0afe48ea, 0x54a8b2c7, 0x7d081d4f, 0x24635e7d, 0x83a90ad2,
+0x5faa3307, 0x86d02631, 0x3ba7090e, 0x890ea613, 0x6379381d, 0x43082edc, 0x45fadca0, 0x507a5be8,
+0x4002d3e0, 0xcd47db8f, 0x016f02f7, 0x2cc37a2e, 0x6b2440e8, 0xf0a17a06, 0xd1d9ccba, 0xb4bfd01e,
+0xfb2e8da1, 0x2b9eafb9, 0x78351034, 0xd5741ede, 0x0728eaf6, 0x7943413b, 0x502b32a2, 0xcd7517b8,
+0xebc7a095, 0x0c604a3e, 0x3404c921, 0xa5130fc4, 0x49320039, 0x6afa45fb, 0xdfb6d1d1, 0x9f976a89,
+0x6edc8665, 0x25dbf831, 0xa4f7cfec, 0x317a09b5, 0xdaf4c587, 0x28517cd4, 0x6b0c4ef3, 0xcb4307a8,
+0xff2670b4, 0x53faca1c, 0x4e2b952a, 0xf8c81cb5, 0xad345402, 0x0cfa7a14, 0x8f530b2f, 0x08720c93,
+0xdac62944, 0xa2fa1466, 0xecd483c0, 0x1d969b7d, 0x301f431b, 0xa245449b, 0xfbe74141, 0x61ccd26d,
+0xeed80681, 0xba661d5c, 0x2aa8ba84, 0x98df402f, 0xb0bfa754, 0xf786f0eb, 0x502a3f00, 0x5714ef6b,
+0x0cc031fe, 0xbd5cb04c, 0x5cf040e1, 0x3d733d6f, 0x9b721cfd, 0xa93dad7d, 0x343a8188, 0x5beea144,
+0x77f00ee3, 0xb39e61bd, 0xc53b2a3f, 0xa8b4c424, 0xf5bad225, 0xa85879f2, 0xcfb028f4, 0x09643370,
+0x1c7204e6, 0xcebc96e5, 0x12227cec, 0xd7a429da, 0xb5645c6c, 0xf99d4c2b, 0x417bdfb6, 0x0b289280,
+0xd9cb2cb6, 0x36d1a187, 0x69839b3c, 0x59de4109, 0xd03843a6, 0x46eb3539, 0x11a526ce, 0x56c78934,
+0x763909cc, 0x656ca8af, 0x5b0bdb9d, 0xfac27a43, 0xe1f96c06, 0x6cebe65d, 0xf94709d9, 0x63efc9f1,
+0xc95ba413, 0xe704de3c, 0x261e2b43, 0x9c3ef6a0, 0xad4bbe93, 0x79f1cfd8, 0xe314fc58, 0x3470d507,
+0xdd0e43e3, 0x394aca27, 0x6bbbf7f1, 0xb213d5e9, 0x1ba99155, 0x4bf71a64, 0x7aa72d51, 0x36a82476,
+0x81d0a1c9, 0xc175a36a, 0xda05fc03, 0xfe16edc6, 0xbbbf6f57, 0xb00978f6, 0x0e17eb6c, 0xe905fe98,
+0x49241c46, 0x6cc1fcda, 0x8a562cdf, 0xae6c7a70, 0x083e66ed, 0x433be4c6, 0x2092bc04, 0xb4326383,
+0x92006a4a, 0x401602df, 0xa54a2952, 0xa4ae512c, 0x46153a61, 0xbaf9bdca, 0x56a95e63, 0x5eadc50f,
+0xe403dc0b, 0x3708ba31, 0x21db3941, 0xeb74c1c8, 0x8d2628cf, 0xb7925cf4, 0xdb1ad60b, 0x67dfb1ea,
+0x4b8893ec, 0x2d101360, 0x3036d21b, 0x9ed1eb42, 0xa1a60268, 0xe1d6502a, 0x459b4907, 0x1275e279,
+0x20efb17c, 0x7f4ae419, 0xf6e4a74b, 0x35698d03, 0x5414844a, 0x2397a6b9, 0x7e41f393, 0xe78fd97d
+
+e =
+32256
+
+k =
+6144
+
+ncb =
+18528
+
+rv_index =
+0
+
+code_block_mode =
+1
+
+op_flags =
+RTE_BBDEV_TURBO_RATE_MATCH, RTE_BBDEV_TURBO_CRC_24B_ATTACH
+
+expected_status =
+OK
diff --git a/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c3_k4800_r2_e14412_crc24b.data b/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c3_k4800_r2_e14412_crc24b.data
new file mode 100644
index 000000000..9e17429d3
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/test_vectors/turbo_enc_c3_k4800_r2_e14412_crc24b.data
@@ -0,0 +1,153 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2017 Intel Corporation
+
+op_type =
+RTE_BBDEV_OP_TURBO_ENC
+
+input0 =
+0xb0fe86aa, 0xffbf2968, 0x4f55a631, 0xf2152dbc, 0x195a49a5, 0xa4aa7c6c,
+0x48a7be38, 0xd32c84f2, 0xb040da60, 0xb39eb07c, 0x3443aad6, 0x19f52e13,
+0xb2914341, 0x0d5dfdb3, 0x1ba8aec0, 0x62d0c7be, 0x1d55475c, 0x10f7dd79,
+0x967e5333, 0xc0d524c1, 0xdca8da87, 0x1146ecf7, 0xfa09a85c, 0x83be800f,
+0x11b814cc, 0x362a4704, 0x4f22e7ce, 0x9985a0e2, 0x9de4be72, 0x488a45b3,
+0x6996ade2, 0xdb18c09a, 0x487d62a3, 0x94f82d13, 0xa0743f83, 0x75d2f5dd,
+0x0e470346, 0x6e2ec2e5, 0x1a67fe5f, 0xc369330d, 0x860e8766, 0x42c110f6,
+0x804a9985, 0x55db02b4, 0xb899fc5c, 0x57811d20, 0xda4f1f9d, 0x2a2efc30,
+0x953e7487, 0x4b0c3065, 0x247d5d47, 0xdde382e7, 0x1d6d2ad7, 0x4358ac24,
+0x2d0fd97f, 0x1483821e, 0xf6c74ee5, 0x23b5c2f4, 0x95d4a5fc, 0x486f370b,
+0x8dbae43d, 0x248f17d5, 0x2df76099, 0xd19ec872, 0xf592aa0e, 0x8de04c3c,
+0x3ada94fb, 0x9dd001a3, 0x2b4db6d1, 0x791cf495, 0x57dc764b, 0x21789f1f,
+0x0d38adf5, 0xd8cefdc2, 0xed98f8bf, 0x024bc4ed, 0x4f9d3062, 0x332d27c5,
+0xde70ad4e, 0xd85872d2, 0x5d0e29c0, 0xa4fd1887, 0x3fa67ba1, 0x46b9b008,
+0x055bbf61, 0xf78e59f0, 0x287d2e3b, 0x5b473fe7, 0xd7ad6e04, 0x9cdf4986,
+0x830432ae, 0xffded1ba, 0x35c00f77, 0xcf0a6648, 0x196c03aa, 0xba4e2dd3,
+0xdaf70fe4, 0x883de2cd, 0xedc3b52e, 0x14e638c1, 0xe607103a, 0xc4cfb700,
+0x4ed9843d, 0xc442a0cb, 0xc0d3bba2, 0x36789ba8, 0x9c9b7a24, 0xb943b6a4,
+0x8f2c6879, 0x0fb16a0c, 0x2677bada, 0xd14f2f7e, 0x662ec398, 0x1e37b7ae,
+0x8ad0312d, 0x21adb6a1, 0x072a11fd, 0x7ae828d1, 0xb510655f, 0x09f7b477,
+0x10a175fc, 0xb7086f51, 0x24546af3, 0xfae81b50, 0xcb328832, 0x63693615,
+0xa37c3678, 0x15fb6364, 0xb5f75a78, 0xfa9aa5f6, 0x03804a0e, 0x1d245890,
+0x06d6cdcd, 0x7485a3c7, 0x35a008ae, 0x1abeaf1c, 0xd9c55966, 0x2b694666,
+0x5341f2df, 0xcb647280, 0xfb88d81e, 0xf99a44d0, 0xb0585534, 0x0877b530,
+0x752ab39a, 0xd493d8bc, 0xfaa6a57a, 0xccb7c008, 0x9c35994b, 0xb8
+
+output0 =
+0xb0fe86aa, 0xffbf2968, 0x4f55a631, 0xf2152dbc, 0x195a49a5, 0xa4aa7c6c,
+0x48a7be38, 0xd32c84f2, 0xb040da60, 0xb39eb07c, 0x3443aad6, 0x19f52e13,
+0xb2914341, 0x0d5dfdb3, 0x1ba8aec0, 0x62d0c7be, 0x1d55475c, 0x10f7dd79,
+0x967e5333, 0xc0d524c1, 0xdca8da87, 0x1146ecf7, 0xfa09a85c, 0x83be800f,
+0x11b814cc, 0x362a4704, 0x4f22e7ce, 0x9985a0e2, 0x9de4be72, 0x488a45b3,
+0x6996ade2, 0xdb18c09a, 0x487d62a3, 0x94f82d13, 0xa0743f83, 0x75d2f5dd,
+0x0e470346, 0x6e2ec2e5, 0x1a67fe5f, 0xc369330d, 0x860e8766, 0x42c110f6,
+0x804a9985, 0x55db02b4, 0xb899fc5c, 0x57811d20, 0xda4f1f9d, 0x2a2efc30,
+0x953e7487, 0x4b0c3065, 0x247d5d47, 0xdde382e7, 0x1d6d2ad7, 0x4358ac24,
+0x2d0fd97f, 0x1483821e, 0xf6c74ee5, 0x23b5c2f4, 0x95d4a5fc, 0x486f370b,
+0x8dbae43d, 0x248f17d5, 0x2df76099, 0xd19ec872, 0xf592aa0e, 0x8de04c3c,
+0x3ada94fb, 0x9dd001a3, 0x2b4db6d1, 0x791cf495, 0x57dc764b, 0x21789f1f,
+0x0d38adf5, 0xd8cefdc2, 0xed98f8bf, 0x024bc4ed, 0x4f9d3062, 0x332d27c5,
+0xde70ad4e, 0xd85872d2, 0x5d0e29c0, 0xa4fd1887, 0x3fa67ba1, 0x46b9b008,
+0x055bbf61, 0xf78e59f0, 0x287d2e3b, 0x5b473fe7, 0xd7ad6e04, 0x9cdf4986,
+0x830432ae, 0xffded1ba, 0x35c00f77, 0xcf0a6648, 0x196c03aa, 0xba4e2dd3,
+0xdaf70fe4, 0x883de2cd, 0xedc3b52e, 0x14e638c1, 0xe607103a, 0xc4cfb700,
+0x4ed9843d, 0xc442a0cb, 0xc0d3bba2, 0x36789ba8, 0x9c9b7a24, 0xb943b6a4,
+0x8f2c6879, 0x0fb16a0c, 0x2677bada, 0xd14f2f7e, 0x662ec398, 0x1e37b7ae,
+0x8ad0312d, 0x21adb6a1, 0x072a11fd, 0x7ae828d1, 0xb510655f, 0x09f7b477,
+0x10a175fc, 0xb7086f51, 0x24546af3, 0xfae81b50, 0xcb328832, 0x63693615,
+0xa37c3678, 0x15fb6364, 0xb5f75a78, 0xfa9aa5f6, 0x03804a0e, 0x1d245890,
+0x06d6cdcd, 0x7485a3c7, 0x35a008ae, 0x1abeaf1c, 0xd9c55966, 0x2b694666,
+0x5341f2df, 0xcb647280, 0xfb88d81e, 0xf99a44d0, 0xb0585534, 0x0877b530,
+0x752ab39a, 0xd493d8bc, 0xfaa6a57a, 0xccb7c008, 0x9c35994b, 0x47ee26b8,
+0x94f624ac, 0xa3bd4876, 0xf7d4854e, 0x8871d433, 0x9321d942, 0x7b626be8,
+0x72c934b0, 0x3b7af8a4, 0x5102c29f, 0x710e4dbc, 0x99708292, 0x1458c4c1,
+0x61026bc5, 0xe776e388, 0x4a0222b3, 0x760e5aaf, 0x662f3583, 0x5ab1005b,
+0xe527ef70, 0x4170d611, 0x307bebc4, 0xfdd00caf, 0xbaae1044, 0xcab4d459,
+0x38281dcf, 0x90580c89, 0x49cf5986, 0xa27da769, 0xceced49b, 0x5ea37953,
+0x8a7e6c1c, 0x1e01b4e2, 0xe08026ae, 0x3754534a, 0x903b0ecf, 0x65f97a55,
+0x90798ed9, 0x9d1133bc, 0xe356a39f, 0xe47acbce, 0x01ccf326, 0x1954fd3d,
+0x240e69f8, 0x1da20bb4, 0xe1ab1684, 0x44c65d48, 0xd265e6c2, 0x51d4ef07,
+0x000970ef, 0xfeb939f4, 0x5dcc0132, 0x2bd27ae5, 0xba5dbd25, 0xa9d190e4,
+0x61556bec, 0x7fd6caba, 0x7fe312cb, 0xdd319413, 0x92a5dbbf, 0x17e61915,
+0x56067b67, 0x3dc348c0, 0x58c17fe0, 0xbe6bffcc, 0xd379026c, 0xc4174780,
+0xcce7f026, 0xb74b7eb0, 0xe4d5f625, 0x6bc16d3b, 0xff3e300e, 0x83f0d55a,
+0xf2e537df, 0x75c18f78, 0xa5458d1a, 0x47c778b0, 0x92eb8716, 0xcb5816fd,
+0xc2cc7079, 0xa7f1dc75, 0xed9e5ffa, 0xb7d6747f, 0xa2dc6907, 0x99b4d187,
+0x69f3138a, 0xbd285a1f, 0xb8ee18e0, 0x734b77a5, 0xc0700f69, 0x6c72a77a,
+0x76609ba9, 0xcfae9b73, 0x2cd329f0, 0x0d45aa12, 0x419fbcd7, 0x03e00f00,
+0x0effee99, 0x7f879eb4, 0x29a4c8df, 0x4432400a, 0x22b9cf55, 0xa1c4c645,
+0x200251b0, 0xff293906, 0xe11288e2, 0xde1e8ec7, 0x675752d1, 0x9630743e,
+0xd848c67e, 0x1eedfda9, 0x58b954fc, 0xa0dc7f1c, 0x0aea313e, 0x062b9449,
+0x0f17e57f, 0x96def6ec, 0x2ba45f14, 0xd9a5f8c5, 0x231483c8, 0x29b8783e,
+0xa6d24594, 0x1a62ffcd, 0x54c87a7f, 0x6fa9ca9a, 0xfff0f890, 0x51d6ae46,
+0xa96e82b0, 0x68cd9808, 0x56214df5, 0x2169defa, 0x72c1ecce, 0x2448e3c9,
+0x8eb2b3b3, 0x62c89c11, 0xbba20ee2, 0xea33f53a, 0x8b96a6b8, 0x9d33d551,
+0x363bd14e, 0x5fdd2b5f, 0xf8187546, 0xb692beab, 0x8df6b4c0, 0x753e2302,
+0xb90f7a37, 0x2b6bac6a, 0x13a07bc5, 0xb67f6d2b, 0x47b21569, 0xc2ab143f,
+0xf86ce30a, 0xde2dab70, 0x6f258860, 0x2878735c, 0x2aaeac20, 0xda80fb3e,
+0xe7a8ccf6, 0xbf011844, 0x40a610f8, 0x82f3fdf7, 0xadc4ec2c, 0xb8551030,
+0x76004380, 0xa384ff18, 0x080cf587, 0x6c4991d3, 0x2daea9aa, 0xa92d0c4f,
+0x4a9d117e, 0x2761f025, 0x96b40443, 0x57a82be4, 0x62374c44, 0x55dc64ae,
+0x28aa9f0c, 0x03a3b963, 0x41dbaa26, 0xb3c23735, 0x971cbd31, 0x939a9f80,
+0x76439fdc, 0xa9df79d6, 0x926ae3e2, 0x5ee75745, 0xf2396e52, 0xe18bd816,
+0x3f9834b9, 0x816a07bc, 0x8f873310, 0x45cf9b96, 0x0ce634dd, 0xe64a16d9,
+0x2733775a, 0x2b648c7e, 0xe600ee8e, 0xd99d8ae3, 0x10dadf2a, 0x904d3f87,
+0x3963e9e7, 0x47fcce89, 0xc256c898, 0x7db6cb66, 0xe1611a8b, 0xed81b10d,
+0x75eff974, 0x8a0a3d67, 0xa44311ff, 0x6f876783, 0x43dc93ce, 0x88616a33,
+0xa8706e8f, 0x33a2cbed, 0x3a6d20c3, 0x55175086, 0x39680945, 0x2d779a7b,
+0x0818a4ce, 0x55558918, 0xf7c08d35, 0x980a3038, 0x9cf068db, 0x3385d333,
+0xd81b33fb, 0x188018d5, 0x47c57bd3, 0x9ec2324f, 0x6901cd77, 0xc3bac44f,
+0x4d96aba8, 0x9094da5b, 0xa67a1353, 0x1fdfc4db, 0xa2fbeefa, 0xab4828e3,
+0x37d1db45, 0x0d33b3e9, 0x1ad72bb9, 0x7257bf9c, 0x2ec35167, 0xa4488b7f,
+0xf9dae588, 0x1038905a, 0x88ddf410, 0xaac11693, 0x24ac025d, 0x56cefbb5,
+0x6afe7f59, 0xc7f989e8, 0x15872570, 0x1bf16cdb, 0xfe9c93ce, 0x1fc9a076,
+0x85d37185, 0x1078cd31, 0xe1cd0327, 0x6d5315bc, 0x298cd836, 0xc8e21f06,
+0xe561c32d, 0x8ec404b4, 0x4d39bfbb, 0x24ede8c8, 0x451d6034, 0x3bafeea2,
+0x202f0ccf, 0x1fad37ce, 0xf04b5693, 0xeee57cd9, 0x5ef70007, 0x018e8a4f,
+0xfa61c9a9, 0x09989fcf, 0xe66b558b, 0x966efd48, 0x7525021d, 0xe7978b5e,
+0x7eb1d6dc, 0xa10c5e5b, 0xb7815e69, 0x7d486cfb, 0xcffdeb2a, 0x7375cb32,
+0x599008dc, 0xff91c796, 0x560ed4ad, 0x14e9a876, 0xfccf6a66, 0xa58be028,
+0xea9d408b, 0x3afc373b, 0xee008458, 0x19b6042e, 0x84806314, 0x431a4ba4,
+0x009ad6a1, 0xd7c62bf4, 0x1bebecba, 0x5c662f69, 0x83bfdea1, 0x45872a9a,
+0x00c9
+
+
+ea =
+14412
+
+eb =
+14412
+
+cab =
+4
+
+c =
+4
+
+c_neg =
+0
+
+k_pos =
+4800
+
+k_neg =
+4736
+
+ncb_pos =
+14496
+
+ncb_neg =
+14304
+
+r =
+2
+
+rv_index =
+0
+
+code_block_mode =
+0
+
+op_flags =
+RTE_BBDEV_TURBO_CRC_24B_ATTACH
+
+expected_status =
+OK \ No newline at end of file
diff --git a/src/spdk/dpdk/app/test-bbdev/turbo_dec_default.data b/src/spdk/dpdk/app/test-bbdev/turbo_dec_default.data
new file mode 120000
index 000000000..371cbc692
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/turbo_dec_default.data
@@ -0,0 +1 @@
+test_vectors/turbo_dec_c1_k6144_r0_e10376_crc24b_sbd_negllr_high_snr.data \ No newline at end of file
diff --git a/src/spdk/dpdk/app/test-bbdev/turbo_enc_default.data b/src/spdk/dpdk/app/test-bbdev/turbo_enc_default.data
new file mode 120000
index 000000000..a2bc833c1
--- /dev/null
+++ b/src/spdk/dpdk/app/test-bbdev/turbo_enc_default.data
@@ -0,0 +1 @@
+test_vectors/turbo_enc_c1_k6144_r0_e18444.data \ No newline at end of file