This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "".
The branch, api-next has been updated via 43dd326bf4777a01a0fa75c9c9055376d246e44b (commit) via 6ba195384379a09c2fc774128651be51b21bf3de (commit) via 4ce3d7c700607b433718de07f875184cf3fcef35 (commit) via 44820ab64901d087c428a0de52f576d3e27d2599 (commit) via 5d9c339a04cd766449b3bef701f3baa8fb0d2b8e (commit) via 126798b957b0fcc6f55ab93ee0cd50c2a9eb62a2 (commit) from 92c8ebd0b9ec85a71e3993c4864d48bcbb30a012 (commit)
Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below.
- Log ----------------------------------------------------------------- commit 43dd326bf4777a01a0fa75c9c9055376d246e44b Author: Dmitry Eremin-Solenikov dmitry.ereminsolenikov@linaro.org Date: Thu Nov 29 13:59:35 2018 +0300
linux-gen: comp: add stub implementation
Add stub implementation supporting no compression and digest algorithms.
Signed-off-by: Dmitry Eremin-Solenikov dmitry.ereminsolenikov@linaro.org Reviewed-by: Bill Fischofer bill.fischofer@linaro.org Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org
diff --git a/platform/linux-generic/Makefile.am b/platform/linux-generic/Makefile.am index 7c76a4f9..01ddfe9c 100644 --- a/platform/linux-generic/Makefile.am +++ b/platform/linux-generic/Makefile.am @@ -157,6 +157,7 @@ __LIB__libodp_linux_la_SOURCES = \ odp_buffer.c \ odp_chksum.c \ odp_classification.c \ + odp_comp.c \ odp_cpumask.c \ odp_cpumask_task.c \ odp_errno.c \ diff --git a/platform/linux-generic/odp_comp.c b/platform/linux-generic/odp_comp.c new file mode 100644 index 00000000..7000e497 --- /dev/null +++ b/platform/linux-generic/odp_comp.c @@ -0,0 +1,125 @@ +/* Copyright (c) 2018, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ +#include "config.h" + +#include <string.h> + +#include <odp/api/comp.h> +#include <odp/api/event.h> +#include <odp/api/packet.h> +#include <odp/api/plat/strong_types.h> + +#include <odp_debug_internal.h> + +void odp_comp_session_param_init(odp_comp_session_param_t *param) +{ + memset(param, 0, sizeof(odp_comp_session_param_t)); +} + +odp_comp_session_t +odp_comp_session_create(const odp_comp_session_param_t *params) +{ + (void)params; + return ODP_COMP_SESSION_INVALID; +} + +int odp_comp_session_destroy(odp_comp_session_t session) +{ + (void)session; + return 0; +} + +int odp_comp_capability(odp_comp_capability_t *capa) +{ + if (NULL == capa) + return -1; + + /* Initialize comp capability structure */ + memset(capa, 0, sizeof(odp_comp_capability_t)); + + capa->comp_algos.bit.null = 0; + capa->hash_algos.bit.none = 0; + capa->sync = ODP_SUPPORT_NO; + capa->async = ODP_SUPPORT_NO; + capa->max_sessions = 0; + + return 0; +} + +int +odp_comp_alg_capability(odp_comp_alg_t comp, + odp_comp_alg_capability_t *capa) +{ + (void)capa; + switch (comp) { + default: + /* Error unsupported enum */ + return -1; + } + return -1; +} + +int +odp_comp_hash_alg_capability(odp_comp_hash_alg_t hash, + odp_comp_hash_alg_capability_t *capa) +{ + (void)capa; + switch (hash) { + default: + return -1; + } + return -1; +} + +int odp_comp_op(const odp_packet_t pkt_in[], odp_packet_t pkt_out[], + int num_pkt, const odp_comp_packet_op_param_t param[]) +{ + (void)pkt_in; + (void)pkt_out; + (void)num_pkt; + (void)param; + + return -1; +} + +int odp_comp_op_enq(const odp_packet_t pkt_in[], odp_packet_t pkt_out[], + int num_pkt, const odp_comp_packet_op_param_t param[]) +{ + (void)pkt_in; + (void)pkt_out; + (void)num_pkt; + (void)param; + + return -1; +} + +int odp_comp_result(odp_comp_packet_result_t *result, + odp_packet_t packet) +{ + (void)result; + (void)packet; + return 0; +} + +odp_packet_t odp_comp_packet_from_event(odp_event_t ev) +{ + /* This check not mandated by the API specification */ + ODP_ASSERT(odp_event_type(ev) == ODP_EVENT_PACKET); + ODP_ASSERT(odp_event_subtype(ev) == ODP_EVENT_PACKET_COMP); + + return odp_packet_from_event(ev); +} + +odp_event_t odp_comp_packet_to_event(odp_packet_t pkt) +{ + return odp_packet_to_event(pkt); +} + +/** Get printable format of odp_comp_session_t */ +uint64_t odp_comp_session_to_u64(odp_comp_session_t hdl) +{ + return _odp_pri(hdl); +}
commit 6ba195384379a09c2fc774128651be51b21bf3de Author: Dmitry Eremin-Solenikov dmitry.ereminsolenikov@linaro.org Date: Thu Nov 29 13:43:58 2018 +0300
validation: add compression tests
Signed-off-by: Shally Verma shally.verma@cavium.com Signed-off-by: Mahipal Challa mchalla@cavium.com Signed-off-by: Dmitry Eremin-Solenikov dmitry.ereminsolenikov@linaro.org Reviewed-by: Bill Fischofer bill.fischofer@linaro.org Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org
diff --git a/test/m4/configure.m4 b/test/m4/configure.m4 index 309c18ae..b2b6cf0e 100644 --- a/test/m4/configure.m4 +++ b/test/m4/configure.m4 @@ -22,6 +22,7 @@ AC_CONFIG_FILES([test/Makefile test/validation/api/buffer/Makefile test/validation/api/chksum/Makefile test/validation/api/classification/Makefile + test/validation/api/comp/Makefile test/validation/api/cpumask/Makefile test/validation/api/crypto/Makefile test/validation/api/errno/Makefile diff --git a/test/validation/api/Makefile.am b/test/validation/api/Makefile.am index 92ae85f8..25776464 100644 --- a/test/validation/api/Makefile.am +++ b/test/validation/api/Makefile.am @@ -3,6 +3,7 @@ ODP_MODULES = atomic \ buffer \ chksum \ classification \ + comp \ cpumask \ crypto \ errno \ @@ -36,6 +37,7 @@ TESTS = \ buffer/buffer_main$(EXEEXT) \ chksum/chksum_main$(EXEEXT) \ classification/classification_main$(EXEEXT) \ + comp/comp_main$(EXEEXT) \ cpumask/cpumask_main$(EXEEXT) \ crypto/crypto_main$(EXEEXT) \ errno/errno_main$(EXEEXT) \ diff --git a/test/validation/api/comp/Makefile.am b/test/validation/api/comp/Makefile.am new file mode 100644 index 00000000..2e5d3a26 --- /dev/null +++ b/test/validation/api/comp/Makefile.am @@ -0,0 +1,7 @@ +include ../Makefile.inc + +test_PROGRAMS = comp_main + +comp_main_SOURCES = \ + comp.c \ + test_vectors.h diff --git a/test/validation/api/comp/comp.c b/test/validation/api/comp/comp.c new file mode 100644 index 00000000..e84764f7 --- /dev/null +++ b/test/validation/api/comp/comp.c @@ -0,0 +1,591 @@ +/* Copyright (c) 2018, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#include "config.h" + +#include <odp_api.h> +#include <odp_cunit_common.h> +#include "test_vectors.h" + +#define TEST_NUM_PKT 64 +#define TEST_PKT_LEN (8 * 1024) + +#define SEGMENTED_TEST_PKT_LEN (16 * 1024) +#define SEGMENTED_TEST_PATTERN 0xAA + +#define COMP_PACKET_POOL "packet_pool" +#define COMP_OUT_QUEUE "comp-out" + +struct suite_context_s { + odp_comp_op_mode_t op_mode; + odp_pool_t pool; + odp_queue_t queue; +}; + +static struct suite_context_s suite_context; + +/** + * Check if given compression and hash algorithms are supported + * + * @param comp Compression algorithm + * @param hash Hash algorithm + * + * @retval ODP_TEST_ACTIVE when both algorithms are supported + * @retval ODP_TEST_INACTIVE when either algorithm is not supported + */ +static int check_comp_alg_support(odp_comp_alg_t comp, + odp_comp_hash_alg_t hash) +{ + odp_comp_capability_t capability; + + if (odp_comp_capability(&capability)) + return ODP_TEST_INACTIVE; + + if (suite_context.op_mode == ODP_COMP_OP_MODE_SYNC && + capability.sync == ODP_SUPPORT_NO) + return ODP_TEST_INACTIVE; + if (suite_context.op_mode == ODP_COMP_OP_MODE_ASYNC && + capability.async == ODP_SUPPORT_NO) + return ODP_TEST_INACTIVE; + + /* Compression algorithms */ + switch (comp) { + case ODP_COMP_ALG_NULL: + if (!capability.comp_algos.bit.null) + return ODP_TEST_INACTIVE; + break; + case ODP_COMP_ALG_DEFLATE: + if (!capability.comp_algos.bit.deflate) + return ODP_TEST_INACTIVE; + break; + case ODP_COMP_ALG_ZLIB: + if (!capability.comp_algos.bit.zlib) + return ODP_TEST_INACTIVE; + break; + case ODP_COMP_ALG_LZS: + if (!capability.comp_algos.bit.lzs) + return ODP_TEST_INACTIVE; + break; + default: + fprintf(stderr, "Unsupported compression algorithm\n"); + return ODP_TEST_INACTIVE; + } + + /* Hash algorithms */ + switch (hash) { + case ODP_COMP_HASH_ALG_NONE: + if (!capability.hash_algos.bit.none) + return ODP_TEST_INACTIVE; + break; + case ODP_COMP_HASH_ALG_SHA1: + if (!capability.hash_algos.bit.sha1) + return ODP_TEST_INACTIVE; + break; + case ODP_COMP_HASH_ALG_SHA256: + if (!capability.hash_algos.bit.sha256) + return ODP_TEST_INACTIVE; + break; + default: + fprintf(stderr, "Unsupported hash algorithm\n"); + return ODP_TEST_INACTIVE; + } + + return ODP_TEST_ACTIVE; +} + +static odp_packet_t run_comp_op(odp_comp_op_t op, + odp_comp_alg_t comp_alg, + odp_comp_hash_alg_t hash_alg, + odp_packet_t inpkt, + unsigned int outtext_len) +{ + odp_comp_session_t session; + odp_comp_capability_t capa; + odp_comp_alg_capability_t comp_capa; + odp_comp_hash_alg_capability_t hash_capa; + odp_comp_session_param_t ses_params; + odp_comp_packet_op_param_t op_params; + odp_packet_t outpkt; + odp_comp_packet_result_t comp_result; + int rc; + + rc = odp_comp_capability(&capa); + CU_ASSERT_FATAL(!rc); + + if (comp_alg == ODP_COMP_ALG_NULL && + !(capa.comp_algos.bit.null)) + rc = -1; + if (comp_alg == ODP_COMP_ALG_DEFLATE && + !(capa.comp_algos.bit.deflate)) + rc = -1; + if (comp_alg == ODP_COMP_ALG_ZLIB && + !(capa.comp_algos.bit.zlib)) + rc = -1; + if (comp_alg == ODP_COMP_ALG_LZS && + !(capa.comp_algos.bit.lzs)) + rc = -1; + + CU_ASSERT(!rc); + + if (hash_alg == ODP_COMP_HASH_ALG_NONE && + !(capa.hash_algos.bit.none)) + rc = -1; + if (hash_alg == ODP_COMP_HASH_ALG_SHA1 && + !(capa.hash_algos.bit.sha1)) + rc = -1; + if (hash_alg == ODP_COMP_HASH_ALG_SHA256 && + !(capa.hash_algos.bit.sha256)) + rc = -1; + + CU_ASSERT(!rc); + + rc = odp_comp_alg_capability(comp_alg, &comp_capa); + CU_ASSERT(!rc); + + rc = odp_comp_hash_alg_capability(hash_alg, &hash_capa); + CU_ASSERT(!rc); + + if (hash_alg == ODP_COMP_HASH_ALG_NONE && + !(comp_capa.hash_algo.bit.none)) + rc = -1; + if (hash_alg == ODP_COMP_HASH_ALG_SHA1 && + !(comp_capa.hash_algo.bit.sha1)) + rc = -1; + if (hash_alg == ODP_COMP_HASH_ALG_SHA256 && + !(comp_capa.hash_algo.bit.sha256)) + rc = -1; + + CU_ASSERT(!rc); + + /* Create a compression session */ + odp_comp_session_param_init(&ses_params); + ses_params.op = op; + ses_params.comp_algo = comp_alg; + ses_params.hash_algo = hash_alg; + ses_params.compl_queue = suite_context.queue; + ses_params.mode = suite_context.op_mode; + + session = odp_comp_session_create(&ses_params); + CU_ASSERT_FATAL(session != ODP_COMP_SESSION_INVALID); + CU_ASSERT(odp_comp_session_to_u64(session) != + odp_comp_session_to_u64(ODP_COMP_SESSION_INVALID)); + + /* Allocate compression output packet */ + outpkt = odp_packet_alloc(suite_context.pool, outtext_len); + CU_ASSERT(outpkt != ODP_PACKET_INVALID); + + op_params.out_data_range.offset = 0; + op_params.out_data_range.length = outtext_len; + op_params.in_data_range.offset = 0; + op_params.in_data_range.length = odp_packet_len(inpkt); + op_params.session = session; + + if (suite_context.op_mode == ODP_COMP_OP_MODE_SYNC) { + rc = odp_comp_op(&inpkt, &outpkt, 1, &op_params); + CU_ASSERT(rc >= 0); + if (rc < 0) + goto cleanup; + } else { + odp_event_t event; + odp_packet_t packet; + + rc = odp_comp_op_enq(&inpkt, &outpkt, 1, &op_params); + CU_ASSERT(rc == 1); + if (rc <= 0) + goto cleanup; + /* Poll completion queue for results */ + do { + event = odp_queue_deq(suite_context.queue); + } while (event == ODP_EVENT_INVALID); + CU_ASSERT(ODP_EVENT_PACKET == odp_event_type(event)); + CU_ASSERT(ODP_EVENT_PACKET_COMP == + odp_event_subtype(event)); + + packet = odp_comp_packet_from_event(event); + CU_ASSERT(packet != ODP_PACKET_INVALID); + CU_ASSERT(packet == outpkt); + } + + rc = odp_comp_result(&comp_result, outpkt); + CU_ASSERT(!rc); + CU_ASSERT(comp_result.status == ODP_COMP_STATUS_SUCCESS); + CU_ASSERT(comp_result.output_data_range.offset == 0); + odp_packet_trunc_tail(&outpkt, + odp_packet_len(outpkt) - + comp_result.output_data_range.length, + NULL, NULL); + +cleanup: + + rc = odp_comp_session_destroy(session); + CU_ASSERT(!rc); + + if (rc < 0) { + odp_packet_free(outpkt); + return ODP_PACKET_INVALID; + } + + return outpkt; +} + +static void packet_cmp(odp_packet_t pkt, + const uint8_t *text, + unsigned int text_len) +{ + odp_packet_seg_t seg; + uint32_t cmp_offset = 0, outlen = 0; + uint32_t compare_len = 0; + uint8_t *outdata; + + seg = odp_packet_first_seg(pkt); + do { + outdata = odp_packet_seg_data(pkt, seg); + outlen = odp_packet_seg_data_len(pkt, seg); + compare_len = outlen < (text_len - cmp_offset) ? + outlen : (text_len - cmp_offset); + + CU_ASSERT(!memcmp(outdata, + text + cmp_offset, compare_len)); + cmp_offset += compare_len; + seg = odp_packet_next_seg(pkt, seg); + } while (seg != ODP_PACKET_SEG_INVALID && cmp_offset < text_len); +} + +static void comp_decomp_alg_test(odp_comp_alg_t comp_alg, + odp_comp_hash_alg_t hash_alg, + const uint8_t *plaintext, + unsigned int plaintext_len) +{ + odp_packet_t decomp_outpkt, comp_outpkt, inpkt; + int rc; + + /* Allocate compression input packet */ + inpkt = odp_packet_alloc(suite_context.pool, plaintext_len); + CU_ASSERT(inpkt != ODP_PACKET_INVALID); + + /* copy test data in to pkt memory */ + rc = odp_packet_copy_from_mem(inpkt, 0, + plaintext_len, plaintext); + CU_ASSERT_FATAL(!rc); + + comp_outpkt = run_comp_op(ODP_COMP_OP_COMPRESS, + comp_alg, hash_alg, + inpkt, + plaintext_len); + if (comp_outpkt == ODP_PACKET_INVALID) + goto clean_in; + + decomp_outpkt = run_comp_op(ODP_COMP_OP_DECOMPRESS, + comp_alg, hash_alg, + comp_outpkt, + plaintext_len); + if (decomp_outpkt == ODP_PACKET_INVALID) + goto cleanup; + + packet_cmp(decomp_outpkt, plaintext, plaintext_len); + + odp_packet_free(decomp_outpkt); + +cleanup: + odp_packet_free(comp_outpkt); +clean_in: + odp_packet_free(inpkt); +} + +static void comp_alg_test(odp_comp_alg_t comp_alg, + odp_comp_hash_alg_t hash_alg, + const uint8_t *plaintext, + unsigned int plaintext_len) +{ + odp_packet_t comp_outpkt, inpkt; + int rc; + + /* Allocate compression input packet */ + inpkt = odp_packet_alloc(suite_context.pool, plaintext_len); + CU_ASSERT(inpkt != ODP_PACKET_INVALID); + + /* copy test data in to pkt memory */ + rc = odp_packet_copy_from_mem(inpkt, 0, + plaintext_len, plaintext); + CU_ASSERT_FATAL(!rc); + + comp_outpkt = run_comp_op(ODP_COMP_OP_COMPRESS, + comp_alg, hash_alg, + inpkt, + plaintext_len); + if (comp_outpkt == ODP_PACKET_INVALID) + goto clean_in; + + odp_packet_free(comp_outpkt); +clean_in: + odp_packet_free(inpkt); +} + +static void decomp_alg_test(odp_comp_alg_t comp_alg, + odp_comp_hash_alg_t hash_alg, + const uint8_t *comptext, + unsigned int comptext_len, + const uint8_t *plaintext, + unsigned int plaintext_len) +{ + odp_packet_t decomp_outpkt, inpkt; + int rc; + + /* Allocate compression input packet */ + inpkt = odp_packet_alloc(suite_context.pool, comptext_len); + CU_ASSERT(inpkt != ODP_PACKET_INVALID); + + /* copy test data in to pkt memory */ + rc = odp_packet_copy_from_mem(inpkt, 0, + comptext_len, comptext); + CU_ASSERT_FATAL(!rc); + + decomp_outpkt = run_comp_op(ODP_COMP_OP_DECOMPRESS, + comp_alg, hash_alg, + inpkt, + plaintext_len); + if (decomp_outpkt == ODP_PACKET_INVALID) + goto cleanup; + + packet_cmp(decomp_outpkt, plaintext, plaintext_len); + + odp_packet_free(decomp_outpkt); +cleanup: + odp_packet_free(inpkt); +} + +static int comp_check_deflate_none(void) +{ + return check_comp_alg_support(ODP_COMP_ALG_DEFLATE, + ODP_COMP_HASH_ALG_NONE); +} + +/* Compress content using deflate algorithm */ +static void comp_test_compress_alg_deflate_none(void) +{ + comp_alg_test(ODP_COMP_ALG_DEFLATE, + ODP_COMP_HASH_ALG_NONE, + plaintext, PLAIN_TEXT_SIZE); +} + +/* Decompress content using deflate algorithm */ +static void comp_test_decompress_alg_deflate_none(void) +{ + decomp_alg_test(ODP_COMP_ALG_DEFLATE, + ODP_COMP_HASH_ALG_NONE, + compressed_text_def, COMP_DEFLATE_SIZE, + plaintext, PLAIN_TEXT_SIZE); +} + +static int comp_check_zlib_none(void) +{ + return check_comp_alg_support(ODP_COMP_ALG_ZLIB, + ODP_COMP_HASH_ALG_NONE); +} + +/* Compress content using zlib algorithm */ +static void comp_test_compress_alg_zlib_none(void) +{ + comp_alg_test(ODP_COMP_ALG_ZLIB, ODP_COMP_HASH_ALG_NONE, + plaintext, PLAIN_TEXT_SIZE); +} + +/* Decompress content using zlib algorithm */ +static void comp_test_decompress_alg_zlib_none(void) +{ + decomp_alg_test(ODP_COMP_ALG_ZLIB, ODP_COMP_HASH_ALG_NONE, + compressed_text_zlib, COMP_ZLIB_SIZE, + plaintext, PLAIN_TEXT_SIZE); +} + +/* Compress/Decompress content using deflate algorithm */ +static void comp_test_comp_decomp_alg_deflate_none(void) +{ + comp_decomp_alg_test(ODP_COMP_ALG_DEFLATE, + ODP_COMP_HASH_ALG_NONE, + plaintext, PLAIN_TEXT_SIZE); +} + +/* Compress/Decompress content using zlib algorithm */ +static void comp_test_comp_decomp_alg_zlib_none(void) +{ + comp_decomp_alg_test(ODP_COMP_ALG_ZLIB, + ODP_COMP_HASH_ALG_NONE, + plaintext, PLAIN_TEXT_SIZE); +} + +static int comp_suite_sync_init(void) +{ + suite_context.pool = odp_pool_lookup(COMP_PACKET_POOL); + if (suite_context.pool == ODP_POOL_INVALID) + return -1; + + suite_context.queue = ODP_QUEUE_INVALID; + suite_context.op_mode = ODP_COMP_OP_MODE_SYNC; + return 0; +} + +static int comp_suite_async_init(void) +{ + suite_context.pool = odp_pool_lookup(COMP_PACKET_POOL); + if (suite_context.pool == ODP_POOL_INVALID) + return -1; + suite_context.queue = odp_queue_lookup(COMP_OUT_QUEUE); + if (suite_context.queue == ODP_QUEUE_INVALID) + return -1; + + suite_context.op_mode = ODP_COMP_OP_MODE_ASYNC; + return 0; +} + +static odp_testinfo_t comp_suite[] = { + ODP_TEST_INFO_CONDITIONAL(comp_test_compress_alg_deflate_none, + comp_check_deflate_none), + ODP_TEST_INFO_CONDITIONAL(comp_test_compress_alg_zlib_none, + comp_check_zlib_none), + ODP_TEST_INFO_CONDITIONAL(comp_test_decompress_alg_deflate_none, + comp_check_deflate_none), + ODP_TEST_INFO_CONDITIONAL(comp_test_decompress_alg_zlib_none, + comp_check_zlib_none), + ODP_TEST_INFO_CONDITIONAL(comp_test_comp_decomp_alg_deflate_none, + comp_check_deflate_none), + ODP_TEST_INFO_CONDITIONAL(comp_test_comp_decomp_alg_zlib_none, + comp_check_zlib_none), + ODP_TEST_INFO_NULL, +}; + +static int comp_suite_term(void) +{ + int i; + int first = 1; + + for (i = 0; comp_suite[i].name; i++) { + if (comp_suite[i].check_active && + comp_suite[i].check_active() == ODP_TEST_INACTIVE) { + if (first) { + first = 0; + printf("\n\n Inactive tests:\n"); + } + printf(" %s\n", comp_suite[i].name); + } + } + return 0; +} + +/* Suite names */ +#define ODP_COMP_SYNC_TEST "Comp/decomp sync test" +#define ODP_COMP_ASYNC_TEST "Comp/decomp async test" + +static odp_suiteinfo_t comp_suites[] = { + {ODP_COMP_SYNC_TEST, comp_suite_sync_init, + comp_suite_term, comp_suite}, + {ODP_COMP_ASYNC_TEST, comp_suite_async_init, + comp_suite_term, comp_suite}, + ODP_SUITE_INFO_NULL, +}; + +static int comp_init(odp_instance_t *inst) +{ + odp_pool_param_t params; + odp_pool_t pool; + odp_queue_t out_queue; + odp_pool_capability_t pool_capa; + + if (0 != odp_init_global(inst, NULL, NULL)) { + fprintf(stderr, "error: odp_init_global() failed.\n"); + return -1; + } + + if (0 != odp_init_local(*inst, ODP_THREAD_CONTROL)) { + fprintf(stderr, "error: odp_init_local() failed.\n"); + return -1; + } + + if (odp_pool_capability(&pool_capa) < 0) { + fprintf(stderr, "error: odp_pool_capability() failed.\n"); + return -1; + } + + odp_pool_param_init(¶ms); + params.pkt.seg_len = TEST_PKT_LEN; + params.pkt.len = TEST_PKT_LEN; + params.pkt.num = TEST_NUM_PKT; + params.type = ODP_POOL_PACKET; + + if (pool_capa.pkt.max_seg_len && + TEST_PKT_LEN > pool_capa.pkt.max_seg_len) { + fprintf(stderr, "Warning: small packet segment length\n"); + params.pkt.seg_len = pool_capa.pkt.max_seg_len; + } + + pool = odp_pool_create(COMP_PACKET_POOL, ¶ms); + if (ODP_POOL_INVALID == pool) { + fprintf(stderr, "Packet pool creation failed.\n"); + return -1; + } + + /* Queue to store compression/decompression events */ + out_queue = odp_queue_create(COMP_OUT_QUEUE, NULL); + if (ODP_QUEUE_INVALID == out_queue) { + fprintf(stderr, "Comp outq creation failed.\n"); + return -1; + } + + return 0; +} + +static int comp_term(odp_instance_t inst) +{ + odp_pool_t pool; + odp_queue_t out_queue; + + out_queue = odp_queue_lookup(COMP_OUT_QUEUE); + if (ODP_QUEUE_INVALID != out_queue) { + if (odp_queue_destroy(out_queue)) + fprintf(stderr, "Comp outq destroy failed.\n"); + } else { + fprintf(stderr, "Comp outq not found.\n"); + } + + pool = odp_pool_lookup(COMP_PACKET_POOL); + if (ODP_POOL_INVALID != pool) { + if (odp_pool_destroy(pool)) + fprintf(stderr, "Packet pool destroy failed.\n"); + } else { + fprintf(stderr, "Packet pool not found.\n"); + } + + if (0 != odp_term_local()) { + fprintf(stderr, "error: odp_term_local() failed.\n"); + return -1; + } + + if (0 != odp_term_global(inst)) { + fprintf(stderr, "error: odp_term_global() failed.\n"); + return -1; + } + + return 0; +} + +int main(int argc, char *argv[]) +{ + int ret; + + /* parse common options: */ + if (odp_cunit_parse_options(argc, argv)) + return -1; + + odp_cunit_register_global_init(comp_init); + odp_cunit_register_global_term(comp_term); + + ret = odp_cunit_register(comp_suites); + + if (ret == 0) + ret = odp_cunit_run(); + + return ret; +} diff --git a/test/validation/api/comp/test_vectors.h b/test/validation/api/comp/test_vectors.h new file mode 100644 index 00000000..36d98b30 --- /dev/null +++ b/test/validation/api/comp/test_vectors.h @@ -0,0 +1,1997 @@ +/* Copyright (c) 2018, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#ifndef _ODP_TEST_COMP_VECTORS_H_ +#define _ODP_TEST_COMP_VECTORS_H_ + +#define PLAIN_TEXT_SIZE 8192 + +static uint8_t plaintext[PLAIN_TEXT_SIZE] = { + 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x45, 0x8b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0x23, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x98, 0x3c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x48, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0xdc, 0xb0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x5c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x4a, 0x94, 0xe8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x58, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0x1f, 0x8e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcd, 0x7c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xba, 0x58, 0x1b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xab, 0xd7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x41, 0xb1, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x1e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe3, 0xa9, 0xe2, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0xe1, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x5f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc2, 0x62, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x08, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x27, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x23, 0x16, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0xe9, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe7, 0xcd, 0x90, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8d, 0x43, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0x0f, 0x0e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x25, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x2e, 0xf9, 0x9c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x72, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0xc2, 0xdc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0xd7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc9, 0xc4, 0xa7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9a, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0xfb, 0x6a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x5d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x50, 0x9b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, 0xd7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0xba, 0x2d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0xe4, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xa3, 0x30, 0x71, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xd9, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x61, 0x6c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5d, 0x89, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xb1, 0x3a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0xa3, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0xa8, 0x43, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe9, 0x5a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x5e, 0x84, 0x63, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0xa8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xab, 0xbd, 0xed, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb2, 0x8c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xcd, 0xd0, 0x53, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x9b, 0x76, 0x9a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x9e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x24, 0xf3, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x86, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0xc4, 0x36, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x1d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x74, 0xf8, 0x95, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0x86, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0xf5, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0xbd, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x8d, 0x7b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0xf0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x1a, 0x22, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe9, 0xdd, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0xc8, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xc2, 0x9a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0xf8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xad, 0x0b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x23, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x82, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x5f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xc6, 0x24, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x97, 0x2a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xea, 0xb9, 0x63, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x4a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6b, 0xd3, 0xea, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x77, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0xd7, 0x0b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0xa4, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x58, 0x55, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x4e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x42, 0x23, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x7c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0xd4, 0x4e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x9a, 0xd8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0xcc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x8d, 0x6d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x8f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x89, 0x22, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0x1b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0x7f, 0x43, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0xa4, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xf9, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x48, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x78, 0x94, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0xbb, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x40, 0xc2, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0x26, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0xde, 0xa1, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0xc3, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x85, 0xe6, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0xa5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0xed, 0x0e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe6, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xf0, 0x4e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0xc1, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xb7, 0x9b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x94, 0xc7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x65, 0x38, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0x15, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xa8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x8c, 0x39, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0xe9, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0xaf, 0xb5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbb, 0x26, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xb6, 0x34, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0x3c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xb6, 0x6a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x95, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xb1, 0x57, 0x0c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x35, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0xe4, 0x9b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb3, 0x50, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x7e, 0xf8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xef, 0x5d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf7, 0x0b, 0xa7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe9, 0x84, 0xd0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa1, 0xea, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x82, 0x81, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x0a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xca, 0x8f, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x70, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xcb, 0x4a, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x31, 0x8a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x47, 0xb9, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbd, 0x96, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x12, 0x8e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x5d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x3f, 0x1e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x9e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x47, 0x0a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7b, 0xee, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0xc5, 0xd9, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc5, 0xfd, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x2b, 0xf7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0x7b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x3e, 0x96, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc5, 0x82, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x5e, 0xb1, 0xf2, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4b, 0x23, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0xd3, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x2f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x81, 0x62, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xdf, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0xee, 0xa5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0xca, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x70, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x11, 0xea, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0x59, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0xe0, 0xb7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x5b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xac, 0xd9, 0x6d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x11, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x5e, 0x88, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x21, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0xa8, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x70, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x7e, 0xe1, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcd, 0xe7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe3, 0x0e, 0xde, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0xc5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0xd6, 0xf6, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0xd4, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0xc3, 0x2a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xbb, 0x4f, 0xfc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6f, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x84, 0xf1, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xba, 0x24, 0xf3, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9b, 0x57, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7d, 0x30, 0xda, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0xa5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x37, 0xb8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x1e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0xac, 0x88, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x8f, 0xa7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0xbd, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x5a, 0xc7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0x70, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x18, 0x5e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x34, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x82, 0xa1, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x77, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x55, 0x5c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xca, 0x2a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x4e, 0xe7, 0xfc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0xd3, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x12, 0xc9, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xf6, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x38, 0x99, 0x29, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xe8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0xca, 0x92, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x5c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0xea, 0xad, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x1a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x5d, 0x15, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5f, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x4e, 0x1b, 0x7e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0x82, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0xc5, 0xa0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcb, 0x4b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x28, 0x5e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xfd, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xac, 0x6a, 0xd8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0xd4, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0xfe, 0x10, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0xfa, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0x91, 0x59, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x59, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x6a, 0xdf, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa2, 0xaa, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0x8d, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0xec, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x21, 0x9e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0xe3, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x17, 0x27, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x09, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0xb7, 0xa7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd3, 0x29, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0xff, 0x75, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x94, 0x50, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xb3, 0x12, 0xb0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0xc9, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe2, 0xac, 0x25, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0xfc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, 0xe3, 0x97, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x0a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, 0x6b, 0xfd, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x8d, 0x43, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x31, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0x4a, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0xb5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x4e, 0x2e, 0xf7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa9, 0xb5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x8a, 0x88, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x2c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0xaf, 0xc6, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb2, 0x1b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x8a, 0x85, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0x1a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0xc6, 0x99, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x13, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x9a, 0x06, 0x27, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xe8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0xf6, 0x57, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd5, 0x1d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0xf1, 0xd2, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0xae, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x47, 0x3e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0xf0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xac, 0xfe, 0xd0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x5a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf3, 0xb9, 0x51, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0xab, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x57, 0x4c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd7, 0x9d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0xb6, 0x31, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9b, 0xc2, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x9d, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x42, 0x43, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0xf3, 0xe7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xe8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0xf8, 0x16, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x22, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0x9d, 0xb4, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcd, 0x82, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xa3, 0x4e, 0xe7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x4d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x9e, 0x81, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0xd4, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0x67, 0x21, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x64, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xe7, 0xb5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0x4c, 0x53, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0xde, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0x8c, 0x96, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x3d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x4a, 0x8c, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0xd3, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x2e, 0x6f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0x8a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x2e, 0xc3, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0xe8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x36, 0xd5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x85, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x85, 0xaa, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb2, 0xec, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x48, 0x59, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x23, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x2f, 0x7c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x3b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x0b, 0x18, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb9, 0x28, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x5e, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xba, 0xa8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0xab, 0x32, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0xac, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0xf6, 0x47, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x4a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x80, 0xcf, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x5d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xae, 0xcf, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x68, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0xcc, 0xb1, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, 0xfb, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0x46, 0x93, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x58, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xa3, 0x39, 0x49, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe3, 0xd2, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, 0x2c, 0x1d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd3, 0x67, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0x5d, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x5a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf7, 0x4f, 0x79, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5e, 0x94, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0xdf, 0xef, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0xd5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x81, 0x5b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x27, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xf8, 0xcd, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0xb1, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x94, 0x63, 0x8a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0xd9, 0x6a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0xc1, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0xac, 0xb2, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x85, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x6e, 0xb2, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0xa2, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0xcf, 0x51, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0xef, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe6, 0x00, 0x64, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x7e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x57, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0xcd, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xda, 0x79, 0x44, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x9e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0x25, 0x5e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0xb3, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x71, 0x3b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x51, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x1b, 0x46, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0xcf, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xb3, 0xab, 0x5b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0x6b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x84, 0x63, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x53, 0x8b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x41, 0xe3, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x94, 0xe4, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0xb2, 0x94, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x3a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0x95, 0x42, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x16, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x3e, 0x97, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x6f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0xd8, 0xc9, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xee, 0xea, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x9b, 0xf4, 0x4a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x46, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe9, 0x8d, 0x44, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0xc3, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x36, 0xfe, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0x8e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x42, 0xbe, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf5, 0x8d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe9, 0x5b, 0xbe, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe2, 0xbb, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x5e, 0x2c, 0xa0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x53, 0x81, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0x6f, 0x90, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0x9d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd2, 0xd2, 0x97, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb2, 0x8a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd0, 0x6c, 0x96, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0x7e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0xf5, 0x95, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0xd0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x09, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x37, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0xb4, 0x10, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0xbc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x71, 0x2a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0x4a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0xd3, 0xf2, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0xaf, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xb9, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xab, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x9a, 0x0b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0xae, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0xf2, 0x38, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x28, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x72, 0xe8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8a, 0x28, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0xb7, 0xf8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0xb4, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xb6, 0x3c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x29, 0x13, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x44, 0x70, 0xa9, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0xe2, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x94, 0xd3, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0xdf, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x80, 0xb8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4e, 0x67, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x6a, 0x10, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x59, 0xed, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd3, 0xe5, 0x5e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x51, 0x60, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xad, 0xbd, 0xf4, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xac, 0xef, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0x97, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x95, 0x72, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xac, 0x71, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x08, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0xbd, 0x58, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x85, 0xb8, 0x0b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x76, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x8c, 0x2b, 0x21, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0x53, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x25, 0xa5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf1, 0x1d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x7b, 0x67, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x97, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x46, 0x91, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbb, 0x32, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x4c, 0x34, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xfc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x45, 0x17, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0xbc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xda, 0xdf, 0xaa, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xda, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0b, 0x9c, 0x17, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x60, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0x41, 0x56, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x4d, 0xb2, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x27, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x66, 0xce, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x0b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0x17, 0x53, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0xfe, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x7d, 0xac, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0xc3, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0x07, 0x38, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x3b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x93, 0x43, 0x29, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xac, 0xbf, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xb2, 0x5e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x6f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xb8, 0x12, 0x5b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6d, 0xd7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x8d, 0xa4, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x34, 0x8e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x6f, 0x91, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8d, 0xd3, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xef, 0xc0, 0x22, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, 0xbb, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0xd0, 0x03, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x77, 0xa3, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0xb0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0xe1, 0x24, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0x13, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0x10, 0x12, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x22, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x1a, 0xe3, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x83, 0x5e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x4a, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, 0x69, 0x6b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x61, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x7f, 0x9f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0xe7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0x25, 0x48, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0x86, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x23, 0x1d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x68, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x45, 0x1b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xd5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xd7, 0xbb, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9d, 0x58, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x77, 0xac, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0xe6, 0x38, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x1b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0x38, 0x96, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc1, 0xa7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0xd6, 0xd6, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x09, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x95, 0xae, 0x95, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xaa, 0x4e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x82, 0xb9, 0x48, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xca, 0x8f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x62, 0x35, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0xca, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0xb2, 0x35, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0x7c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xcd, 0x28, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0xfd, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0xfd, 0xc9, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xba, 0x92, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xac, 0x5e, 0xe9, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7a, 0x7c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x7a, 0xa2, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x83, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xb4, 0x02, 0x41, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x9d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xca, 0xec, 0xa2, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0x48, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xb2, 0x72, 0x3b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc2, 0xc4, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0xa1, 0xd2, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xcb, 0x29, 0xbf, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x88, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0x3a, 0xcc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x62, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc9, 0x2f, 0x67, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0x11, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x6b, 0xef, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5e, 0xde, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x60, 0x1d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x25, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x6e, 0xb7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xda, 0xc2, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0xef, 0x92, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd7, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0x3f, 0x6b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x18, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, 0x1d, 0x53, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd2, 0x3c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd3, 0xaa, 0x3c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0x7c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0xb9, 0x9e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0x25, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x8b, 0x00, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0xc3, 0x9e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0xed, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x9a, 0x04, 0x3c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x35, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0xb2, 0x6f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0xa5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x54, 0x95, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe4, 0xdb, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0x2d, 0x1a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcd, 0x8f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0x3e, 0x84, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa3, 0x5d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x91, 0xa1, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xa9, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x3c, 0x7e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x01, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc9, 0xce, 0xab, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0xaa, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd9, 0xc4, 0x74, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0xbe, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0xcb, 0x22, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0x04, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0xd6, 0xf0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xee, 0xe8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x41, 0x15, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x81, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0x65, 0xb2, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xfa, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xa6, 0x0c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x66, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0xb6, 0x93, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x69, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0x53, 0x31, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0xba, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x72, 0x9f, 0x85, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x05, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xcd, 0x60, 0xde, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0xf4, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x65, 0xe1, 0xcf, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x8e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x84, 0x7c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xab, 0x1f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0xec, 0x79, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0x25, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0xc9, 0xc7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4b, 0x28, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xce, 0x27, 0xa3, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x98, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0xd2, 0x2d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xec, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, 0x56, 0xb2, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0x9d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xea, 0xf0, 0xf7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x2c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x64, 0x86, 0xc6, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x31, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0xad, 0xd0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xeb, 0xeb, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x2c, 0xc1, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0x53, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x51, 0x99, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc3, 0xe2, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x9b, 0xbd, 0x88, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0xa5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0x9d, 0x24, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x5d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe9, 0xaa, 0x6b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8c, 0xfe, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7e, 0x51, 0x29, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4e, 0x8c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x8d, 0xfb, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbd, 0xd5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0xab, 0x8f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0x79, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x8c, 0xfb, 0x26, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0x75, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0xa1, 0x6d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x23, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x0d, 0xcb, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3c, 0x74, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x10, 0xe2, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x63, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xb2, 0x11, 0xec, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x72, 0x90, 0x20, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x98, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xec, 0x32, 0xe7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf3, 0x3d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x84, 0x2b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x5f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x91, 0xce, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd6, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x42, 0xfd, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8b, 0x4f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0x7b, 0x8f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0xdf, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x99, 0xac, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x26, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0xde, 0x24, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x17, 0xfe, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0xb2, 0x36, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0x6b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0xd3, 0x34, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x5e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xe5, 0x95, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xcf, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xd4, 0x1d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x86, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0xf2, 0x25, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0xe1, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0xfb, 0x9e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbe, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x9b, 0x45, 0x66, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbf, 0x0c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xab, 0x03, 0xe2, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0xd6, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd5, 0xa4, 0x3d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x36, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x14, 0x78, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd6, 0x28, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x95, 0x71, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0xa5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd6, 0xfe, 0x2d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0xd7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7d, 0xf5, 0x9d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x7a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc5, 0xb7, 0x90, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0xa2, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x8e, 0xa0, 0xb8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x96, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x2e, 0xa0, 0x92, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0x53, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xaf, 0x01, 0xd6, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x74, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc6, 0xb1, 0xb5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb9, 0xe6, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x43, 0x23, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc9, 0x85, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x8a, 0x6d, 0x6f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x36, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x67, 0xbc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x97, 0x68, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0x38, 0x51, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0c, 0xad, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x75, 0x99, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x3c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x83, 0xa9, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x1a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x73, 0xfc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1b, 0x97, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x43, 0x40, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x09, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x3d, 0x68, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x41, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0xe0, 0xdc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8b, 0x32, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0xbc, 0x2b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc2, 0x98, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xa1, 0xd4, 0x09, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0x5c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe3, 0x2e, 0x23, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0x74, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd2, 0xaf, 0xd3, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x92, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd2, 0xe8, 0x63, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0x61, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x4b, 0x17, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x35, 0x2c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0xe7, 0x5c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd5, 0x84, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x62, 0xd0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0x4e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0xed, 0xe2, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x9b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xdd, 0xfb, 0x3b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc2, 0x62, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0xd7, 0x54, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf7, 0x7e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, 0x7c, 0x53, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0x4a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x16, 0x07, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xef, 0xbf, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x53, 0xbf, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0x53, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0x01, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe2, 0x34, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xab, 0x85, 0x75, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdd, 0xbd, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0xcd, 0x09, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x5a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0x1a, 0x12, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x88, 0xfc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1c, 0xcf, 0x1b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x53, 0xca, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x2d, 0x26, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xee, 0xb7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x2b, 0x6f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x66, 0x44, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0xe4, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0x13, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0xc9, 0x5f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79, 0x46, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0x62, 0xe5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xb6, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xac, 0xe1, 0xf8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x5d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0x19, 0xbf, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x68, 0xb9, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf3, 0xdc, 0x06, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x58, 0x96, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x04, 0x9f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x06, 0xf3, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x56, 0xa6, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2b, 0x58, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x26, 0x46, 0x7d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x58, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x8d, 0xfa, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd2, 0xcb, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x15, 0xd6, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb2, 0x5a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x26, 0x72, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6c, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3a, 0x57, 0x31, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0xf5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0xfa, 0xcd, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x84, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0xad, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xab, 0x26, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xba, 0xc8, 0xe2, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4e, 0x91, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x39, 0x09, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf6, 0x91, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc7, 0xd7, 0xeb, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x9c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x9e, 0x48, 0x85, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0xb9, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0xfa, 0x0f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x62, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0x72, 0x32, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0xd7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x60, 0xf8, 0x56, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x77, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0a, 0xca, 0x24, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0x4e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, 0xcf, 0x2f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0x10, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, 0xa6, 0xa5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x5c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xdc, 0x94, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0xbc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0xb7, 0x2e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0x02, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0xed, 0x63, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x0e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x5d, 0xf7, 0x94, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcd, 0xe7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x9b, 0x92, 0xb7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x87, 0xa4, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x78, 0x0e, 0x6f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x5b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd5, 0x35, 0xb7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x48, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0xed, 0xdc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0xe4, 0x66, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xea, 0x35, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0f, 0xc7, 0x87, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0xde, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf2, 0x97, 0xa6, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xeb, 0x39, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0xb5, 0x8d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x53, 0x90, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0xb1, 0x8b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa7, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfa, 0xde, 0xfa, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x80, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd8, 0x8f, 0x54, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x85, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, 0xdc, 0xe5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0x6b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x42, 0x1c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc2, 0x93, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0x6d, 0xf0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5d, 0x2f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0xa2, 0x74, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x2a, 0x17, 0xb2, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa5, 0x34, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe2, 0x09, 0x28, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa3, 0x25, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfb, 0x8f, 0xc6, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb7, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x13, 0x6e, 0x99, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0x7d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x54, 0x4d, 0x82, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9a, 0x52, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0xb3, 0x05, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x63, 0x14, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x32, 0x31, 0x77, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x23, 0x4b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x4e, 0x4e, 0xc4, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xce, 0xe6, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x76, 0xdb, 0xa9, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0xff, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x66, 0xb7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0xba, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0x7f, 0x0b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, 0xf6, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x21, 0x40, 0x45, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6b, 0x5c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x28, 0x62, 0xf5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x82, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x2e, 0xf0, 0x05, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0xd0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xcf, 0xb1, 0xe1, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x37, 0x92, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x35, 0x6b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf9, 0xc8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xdc, 0xc6, 0xa6, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x62, 0x3f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0xee, 0xb4, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd7, 0x56, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x19, 0x7f, 0x72, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb0, 0x5c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1e, 0xd4, 0x10, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6d, 0xcc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x4a, 0xaf, 0x4e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4f, 0x87, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd1, 0xe0, 0xfe, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7c, 0xe0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x73, 0xd2, 0xc2, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x2f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x4a, 0xc7, 0xca, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe9, 0xad, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7b, 0x2e, 0x13, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x2d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x5a, 0x68, 0x11, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x31, 0xae, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x0d, 0x24, 0x8e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7b, 0xa8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x9c, 0x0a, 0x10, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x86, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xed, 0x2a, 0xb8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xca, 0xfa, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x5b, 0x56, 0x69, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0xdc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x8d, 0x90, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0x8b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, 0xa5, 0x2d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xde, 0x53, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3d, 0xcb, 0x67, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x52, 0x94, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0xaa, 0xa4, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x4a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xf1, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xd4, 0x7e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc4, 0x16, 0xcf, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4c, 0xa0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x24, 0x06, 0xcc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x95, 0xf7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x80, 0x45, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x97, 0xd8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x26, 0x91, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x12, 0x48, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0x86, 0xfb, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x30, 0x55, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xd2, 0x75, 0x92, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xdb, 0xee, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x61, 0x03, 0xc3, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x99, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x56, 0x97, 0x63, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x16, 0x20, 0xa4, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x43, 0xc2, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x08, 0xe9, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x76, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x9e, 0xb5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xca, 0x95, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x4d, 0x02, 0xe2, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb5, 0x44, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0xe9, 0xb0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8a, 0xcd, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0xd9, 0xc5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5e, 0x94, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe1, 0x17, 0x24, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0xca, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x33, 0x13, 0x0b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa6, 0x2e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0x6a, 0x76, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x57, 0x19, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x3b, 0x26, 0xc1, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1d, 0xeb, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xee, 0xf1, 0x65, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x4c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x2f, 0x33, 0xcc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6e, 0x78, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xa2, 0xf6, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xa9, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0x67, 0x6e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x81, 0xa5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe2, 0x42, 0x7f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, 0xfe, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xb3, 0x8c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x62, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe3, 0xc0, 0xed, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x47, 0xbc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x69, 0xd9, 0x30, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe3, 0x5f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x11, 0x52, 0xef, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb6, 0xdb, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x98, 0xa4, 0x86, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xb9, 0x3b, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x41, 0xa9, 0x5c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x9f, 0x7d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x18, 0xd0, 0xf5, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x22, 0xc1, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xa8, 0x47, 0x43, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x4b, 0xe3, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0xef, 0x73, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfd, 0xb1, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xa2, 0xfc, 0xd7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x16, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x1a, 0x9d, 0x75, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x90, 0xee, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xf4, 0x62, 0x87, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x49, 0xd0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xfe, 0x66, 0x9f, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x05, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x4b, 0x79, 0xa0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x48, 0xce, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x96, 0xaa, 0x37, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2d, 0xbc, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe8, 0xcc, 0xdf, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x5e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x25, 0x1f, 0x43, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xcb, 0x8d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x5c, 0x1a, 0x3a, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8f, 0xf8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xae, 0xed, 0x70, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6d, 0x6c, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x45, 0xd4, 0x86, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46, 0x92, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x27, 0xa8, 0xc9, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x86, 0x7d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xe5, 0x0f, 0x44, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x78, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xa9, 0x3e, 0x64, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x8d, 0x57, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x8a, 0x5b, 0xc0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x71, 0x2e, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x8a, 0x09, 0x41, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x2c, 0x58, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x75, 0x44, 0x0d, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa4, 0xa6, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xbc, 0x46, 0xd6, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x6a, 0xa7, + 0x00, 0x00, 0x00, 0x00, 0x00, 0xee, 0x76, 0xf8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xba, 0xad, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xac, 0x12, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x39, 0xf0, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x7c, 0x83, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x57, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x67, 0xac, 0xb8, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xea, 0x48 +}; + +/** Length of the pre-compressed data using deflate algorithm */ +#define COMP_DEFLATE_SIZE 3769 + +/** Pre-compressed data using deflate algorithm */ +static uint8_t compressed_text_def[COMP_DEFLATE_SIZE] = { + 0x35, 0x99, 0x7b, 0x5c, 0xcf, 0x77, 0xfb, 0xc7, + 0xdf, 0xe5, 0x18, 0x8b, 0xb0, 0x8a, 0xd8, 0x72, + 0x9e, 0xb3, 0x64, 0x0c, 0x91, 0x39, 0xe6, 0x90, + 0xd3, 0x44, 0x6e, 0xa7, 0x9b, 0x8c, 0x26, 0x87, + 0x85, 0x9b, 0xcd, 0x34, 0xe5, 0x7c, 0x33, 0x8d, + 0xed, 0x76, 0x3e, 0xe6, 0x9c, 0x8a, 0x08, 0x35, + 0x16, 0x33, 0x67, 0x99, 0x15, 0xe5, 0xd0, 0xb4, + 0xe6, 0xd4, 0x9c, 0x8a, 0xe4, 0x14, 0x39, 0xfc, + 0x7e, 0x8f, 0xf7, 0xf3, 0xb5, 0xfd, 0xb1, 0xd7, + 0x5e, 0xeb, 0xfb, 0xfd, 0x7c, 0xde, 0x87, 0xeb, + 0x7a, 0x5d, 0xaf, 0xeb, 0xfa, 0x1a, 0xf3, 0xff, + 0xff, 0x04, 0x77, 0xf9, 0xce, 0xd8, 0x7f, 0x4e, + 0xd5, 0xb2, 0x30, 0x76, 0x55, 0x5b, 0xf8, 0x94, + 0x6e, 0x16, 0xfa, 0x65, 0xed, 0x81, 0xbf, 0x1b, + 0x6a, 0xa1, 0xc7, 0xb2, 0xbb, 0xf0, 0xdc, 0x41, + 0x16, 0xea, 0x7b, 0x7e, 0x0f, 0x3f, 0x1f, 0x66, + 0xe1, 0xd0, 0xa0, 0xaa, 0xf0, 0xd8, 0x2b, 0x16, + 0x0a, 0x3a, 0xec, 0x85, 0x17, 0x7d, 0x68, 0xe1, + 0xd6, 0xce, 0x9b, 0xf0, 0xae, 0x37, 0x2c, 0x84, + 0x99, 0x7f, 0xc3, 0x8f, 0x05, 0x59, 0x08, 0x28, + 0x5d, 0x1d, 0x5e, 0xf8, 0x91, 0x85, 0xaa, 0xb5, + 0xdc, 0xe0, 0x77, 0xef, 0x59, 0xb8, 0x73, 0x7e, + 0x29, 0x3c, 0xb2, 0x93, 0x85, 0x69, 0xe5, 0xcb, + 0xc1, 0x07, 0xd7, 0xb1, 0xd0, 0xe4, 0xe5, 0x3a, + 0xf8, 0xa8, 0xc9, 0x16, 0x9a, 0x1f, 0xcb, 0x82, + 0x6f, 0x64, 0x3d, 0x67, 0x4f, 0xec, 0x80, 0xaf, + 0x29, 0x65, 0x61, 0x4c, 0x51, 0x08, 0xdc, 0x7b, + 0x98, 0x05, 0xe7, 0xbe, 0x6b, 0xe1, 0x49, 0x7c, + 0xbe, 0xd9, 0xa1, 0xc6, 0xf0, 0x41, 0xb7, 0x2d, + 0x6c, 0xf1, 0x9a, 0xa4, 0xf7, 0x65, 0x5a, 0xa8, + 0x33, 0x72, 0x3c, 0x7c, 0xd8, 0x42, 0x0b, 0x25, + 0xf6, 0xb6, 0x81, 0xbb, 0x6f, 0xe1, 0x6b, 0xd1, + 0xac, 0xd3, 0xdc, 0x1b, 0x6c, 0x61, 0xf8, 0xdc, + 0x51, 0xf0, 0x8c, 0x68, 0x0b, 0xb1, 0x87, 0xf3, + 0xe0, 0x09, 0x8b, 0x2d, 0x9c, 0x4f, 0xeb, 0x0f, + 0x3f, 0x75, 0xdd, 0xc2, 0xda, 0x69, 0x6b, 0xe0, + 0xfb, 0x37, 0x58, 0x08, 0xa8, 0xfd, 0x04, 0x5e, + 0x61, 0xbe, 0x85, 0x72, 0x27, 0x5a, 0xc2, 0x67, + 0x7f, 0x60, 0xe1, 0x3f, 0x85, 0xcb, 0xe1, 0x1d, + 0xf8, 0x7b, 0x8d, 0x67, 0xe1, 0xf0, 0x76, 0x87, + 0x2d, 0x64, 0x45, 0xce, 0x80, 0x2f, 0xc8, 0xb7, + 0x10, 0xea, 0x51, 0x53, 0xeb, 0xfb, 0xd3, 0x82, + 0xef, 0x99, 0x92, 0xf0, 0x4d, 0x19, 0x3c, 0xe6, + 0x98, 0xde, 0x7f, 0xa3, 0xd0, 0xc2, 0xeb, 0x5d, + 0x65, 0xe1, 0xc1, 0xc4, 0x8b, 0xef, 0xec, 0xe2, + 0x70, 0x07, 0xee, 0x71, 0xe6, 0xa9, 0xda, 0xf0, + 0x95, 0x0d, 0x2c, 0xdc, 0x3f, 0xa8, 0xfd, 0x66, + 0xf5, 0xb0, 0x30, 0x2e, 0xfd, 0x3e, 0x7c, 0xc5, + 0x57, 0x16, 0x96, 0x5c, 0xd1, 0xf3, 0x5a, 0x6d, + 0xb5, 0x30, 0x74, 0xd0, 0x00, 0x78, 0x83, 0xde, + 0x16, 0x72, 0x3b, 0xf2, 0x1e, 0xb3, 0x87, 0xf8, + 0xf2, 0xc9, 0xe0, 0xff, 0x9b, 0x22, 0xd6, 0xe9, + 0xbd, 0xe6, 0x2a, 0x3c, 0xfe, 0x37, 0x0b, 0x6d, + 0x23, 0x27, 0xc0, 0x03, 0x96, 0xf0, 0xfd, 0x85, + 0xda, 0x5f, 0x65, 0xe2, 0xf2, 0x5a, 0xb8, 0xee, + 0x63, 0x28, 0xef, 0x73, 0x7c, 0xf9, 0x0e, 0xee, + 0x41, 0xbc, 0xbf, 0xfd, 0x7a, 0x19, 0xbc, 0xd3, + 0xcf, 0xbc, 0xe6, 0xd3, 0x63, 0xf0, 0x57, 0x75, + 0x2d, 0xc4, 0x64, 0x6f, 0x82, 0xb7, 0x39, 0xce, + 0xdf, 0xe7, 0xfd, 0x0d, 0xaf, 0xbf, 0xcd, 0xc2, + 0x85, 0x3c, 0xc5, 0xe3, 0xdf, 0xed, 0x2d, 0x94, + 0xc8, 0xd7, 0x7a, 0xdb, 0xfe, 0x6a, 0x21, 0x2c, + 0x49, 0xf1, 0xb5, 0xec, 0xb4, 0x85, 0xa9, 0xa3, + 0x5b, 0xc1, 0xaf, 0x96, 0xb7, 0x70, 0xc4, 0xd5, + 0x01, 0x3e, 0x92, 0xf8, 0x58, 0xb8, 0xb8, 0x35, + 0xfc, 0x25, 0xf1, 0x3f, 0x34, 0xfe, 0x00, 0xfc, + 0x67, 0xd6, 0x13, 0x9d, 0xf8, 0x31, 0x7c, 0x35, + 0x79, 0x5b, 0x3e, 0x51, 0xf1, 0xbc, 0xfc, 0x53, + 0x0b, 0x7b, 0x03, 0xdf, 0x83, 0x3f, 0x68, 0x61, + 0xe1, 0xf1, 0x6d, 0xbd, 0x7f, 0x5f, 0x5f, 0xd6, + 0x37, 0x93, 0x7b, 0x35, 0x8f, 0x88, 0xff, 0x17, + 0x65, 0x95, 0x1f, 0xe6, 0x17, 0xfb, 0xef, 0x7b, + 0x73, 0xd3, 0xa0, 0x9b, 0xb8, 0xb7, 0x36, 0xb3, + 0x67, 0xc1, 0x73, 0xca, 0x58, 0x48, 0x59, 0xc2, + 0xba, 0x4d, 0xd9, 0x50, 0x0b, 0xe7, 0x7a, 0x68, + 0xfd, 0x69, 0xc4, 0x5d, 0xb7, 0x66, 0x8b, 0xe0, + 0x7e, 0x8e, 0x16, 0x3e, 0xf7, 0x3b, 0x08, 0x3f, + 0xbc, 0xc2, 0x82, 0x67, 0x45, 0xe9, 0x47, 0x2d, + 0xde, 0xff, 0x61, 0x7b, 0x74, 0xc2, 0x44, 0x13, + 0xef, 0xd5, 0xfc, 0x78, 0x8f, 0x99, 0xf1, 0x90, + 0xef, 0x9f, 0x24, 0xef, 0xcc, 0xc9, 0x37, 0x16, + 0xde, 0x6f, 0xf8, 0x02, 0x3e, 0x85, 0xb8, 0x1e, + 0xec, 0xbb, 0x42, 0x7f, 0x9f, 0x6d, 0x61, 0xf8, + 0xde, 0x02, 0x78, 0x4f, 0xe2, 0x68, 0x7a, 0xba, + 0xd6, 0x3b, 0xaa, 0xa9, 0x05, 0x9f, 0x59, 0xe8, + 0x8e, 0x09, 0xfd, 0x8b, 0xe7, 0x3f, 0xe4, 0x1e, + 0x4d, 0x6d, 0xe2, 0xab, 0x42, 0x8a, 0xe2, 0x63, + 0x03, 0xfb, 0x73, 0xaa, 0xa0, 0xf8, 0xcd, 0xfa, + 0x97, 0x85, 0x98, 0xeb, 0x49, 0xf0, 0x8c, 0x21, + 0x16, 0xe2, 0x32, 0x15, 0x7f, 0x05, 0x15, 0x2c, + 0x54, 0x1d, 0xfe, 0x5f, 0xb8, 0x4b, 0x0d, 0x0b, + 0xf1, 0xd1, 0xca, 0x17, 0x1f, 0x9e, 0xd7, 0x7c, + 0x26, 0x3a, 0x68, 0xce, 0xdf, 0xb1, 0x70, 0xab, + 0x5c, 0x36, 0xbc, 0xef, 0x49, 0x0b, 0xdd, 0x2e, + 0x3f, 0x87, 0xfb, 0x91, 0x8f, 0xae, 0xc7, 0xc9, + 0x2b, 0x33, 0x94, 0x73, 0xfe, 0xb9, 0xcf, 0x6b, + 0xf8, 0x97, 0xf0, 0x9a, 0x73, 0x1f, 0xc3, 0xab, + 0xc0, 0x0f, 0xfd, 0xa3, 0x17, 0x6b, 0x03, 0x2d, + 0x7c, 0xeb, 0xf5, 0x07, 0xfc, 0x19, 0xfb, 0x2c, + 0xfb, 0xc9, 0x4f, 0xf0, 0x1b, 0x9c, 0xbb, 0x47, + 0x9c, 0xd6, 0x5b, 0x8d, 0xef, 0x87, 0x2f, 0x51, + 0x3c, 0xd4, 0x42, 0x3f, 0x0a, 0x07, 0x13, 0xb7, + 0xa6, 0x3e, 0xeb, 0x2f, 0xac, 0x3c, 0x1c, 0xbe, + 0x95, 0x38, 0xac, 0x3a, 0x5b, 0xf9, 0x51, 0x89, + 0xfc, 0x3e, 0x30, 0x80, 0xba, 0x61, 0x52, 0x58, + 0x77, 0xef, 0x3b, 0x5a, 0xef, 0xdd, 0x74, 0x0b, + 0xab, 0x2a, 0x9e, 0x85, 0x7b, 0xb3, 0xcf, 0x56, + 0xab, 0xeb, 0xc3, 0xaf, 0x53, 0x67, 0xa6, 0xa7, + 0xfc, 0x08, 0xef, 0xc5, 0x73, 0xda, 0xdd, 0xdf, + 0x05, 0xff, 0xd8, 0xc3, 0x42, 0xf2, 0x30, 0x57, + 0xf8, 0xbf, 0x27, 0xf2, 0xfc, 0xaa, 0x33, 0xe1, + 0x5f, 0x71, 0xff, 0xaf, 0x4e, 0x46, 0xc1, 0xcf, + 0xf5, 0xb4, 0x30, 0xbe, 0x9e, 0xd6, 0x5b, 0x82, + 0xf8, 0x89, 0x0b, 0x91, 0x7e, 0xcc, 0xe7, 0x7c, + 0x6b, 0xbc, 0x75, 0x81, 0x37, 0x7c, 0x65, 0x21, + 0xe6, 0x07, 0xee, 0xd9, 0x78, 0x80, 0x03, 0x42, + 0x88, 0x13, 0xb3, 0x39, 0xc6, 0xc2, 0x91, 0x48, + 0x67, 0x78, 0x68, 0x2e, 0xfb, 0xad, 0x41, 0xdc, + 0x9a, 0x29, 0xb7, 0x2c, 0xf8, 0xb8, 0x53, 0xc7, + 0x4c, 0x71, 0x27, 0x0b, 0x43, 0x93, 0x74, 0x9e, + 0xe9, 0xec, 0xb3, 0xe5, 0xbb, 0xa9, 0xf0, 0x65, + 0x7d, 0x2d, 0xec, 0xab, 0xb8, 0x07, 0x1e, 0xcf, + 0xb9, 0xdc, 0x8c, 0xa3, 0xae, 0x99, 0x7c, 0xce, + 0xed, 0xf6, 0xad, 0x95, 0xf0, 0x0d, 0xe4, 0x45, + 0x9f, 0x71, 0xec, 0xc3, 0x78, 0x13, 0xa7, 0xae, + 0xaa, 0x8b, 0xa6, 0x7b, 0x33, 0x0b, 0x6f, 0x7a, + 0x70, 0x2e, 0x66, 0x36, 0xba, 0xd1, 0xbb, 0x89, + 0xf2, 0x65, 0x27, 0xbc, 0xf4, 0x22, 0xdd, 0x77, + 0x68, 0x23, 0x0b, 0x19, 0xf1, 0xa7, 0xe0, 0x09, + 0xe8, 0xe5, 0xa2, 0x79, 0xd7, 0xe1, 0xf5, 0x39, + 0xef, 0x80, 0x53, 0xab, 0xe1, 0xdd, 0x2a, 0x59, + 0x58, 0x53, 0x52, 0xfb, 0x2b, 0xc3, 0x7d, 0x25, + 0x3f, 0x27, 0xce, 0xcc, 0x25, 0xea, 0x51, 0xb9, + 0xc7, 0x17, 0xe1, 0x95, 0x77, 0x5b, 0x88, 0xf6, + 0xf3, 0x85, 0x77, 0xce, 0xb7, 0x10, 0xf7, 0x36, + 0x0d, 0x3e, 0x84, 0xfa, 0xf8, 0xe4, 0x60, 0x3f, + 0xf8, 0xf7, 0xb1, 0x16, 0xfc, 0x03, 0xfd, 0xe1, + 0x57, 0xd6, 0x5b, 0x68, 0x9c, 0xc8, 0xbe, 0xcc, + 0x5a, 0x74, 0xd9, 0x69, 0xbd, 0xf2, 0xb3, 0x23, + 0xfb, 0xce, 0x79, 0x42, 0x1e, 0x99, 0x92, 0xac, + 0xe7, 0x44, 0xa1, 0xfc, 0x43, 0x73, 0xea, 0x40, + 0xfc, 0xfa, 0xfd, 0xf0, 0xf3, 0xc4, 0xc7, 0x96, + 0xde, 0xfa, 0xfc, 0xdc, 0x5e, 0x16, 0xc2, 0x37, + 0x48, 0xdf, 0x1a, 0x13, 0x0f, 0xbb, 0x82, 0xc9, + 0x5b, 0x93, 0xf1, 0xb9, 0x85, 0x69, 0x77, 0xa4, + 0xbf, 0x7e, 0x9c, 0x6b, 0xb6, 0xbf, 0xea, 0xb5, + 0x37, 0x79, 0x5b, 0x6d, 0xb1, 0xf4, 0x27, 0xb7, + 0x9d, 0x85, 0x1e, 0x8b, 0x15, 0x1f, 0x27, 0x88, + 0x77, 0xaf, 0x26, 0x5f, 0xc2, 0x9f, 0xa3, 0x8b, + 0xd5, 0x9b, 0x50, 0x47, 0x4c, 0x2d, 0xd6, 0x3b, + 0xaf, 0xe5, 0x25, 0xf8, 0xf8, 0x79, 0x16, 0x8a, + 0xe6, 0x11, 0x67, 0x26, 0x81, 0xf8, 0x2a, 0xd5, + 0x4d, 0xf1, 0x58, 0x1c, 0x3d, 0x7b, 0xda, 0x34, + 0x4c, 0xef, 0xf3, 0xb1, 0x50, 0xb6, 0x6c, 0x65, + 0xf8, 0xc1, 0x7a, 0x3c, 0x7f, 0x78, 0x75, 0xf8, + 0x21, 0xea, 0xc9, 0xfc, 0x58, 0x6f, 0xf8, 0xf1, + 0x38, 0x0b, 0xbe, 0xcf, 0xfd, 0xe0, 0x25, 0xa8, + 0xcf, 0x8f, 0x23, 0x52, 0xf5, 0x3c, 0xf4, 0x38, + 0x73, 0xb7, 0x78, 0xf0, 0x17, 0x16, 0x9a, 0xff, + 0x26, 0x3f, 0x97, 0x54, 0x64, 0x61, 0x75, 0xd7, + 0xff, 0xc1, 0xfb, 0xe2, 0x07, 0xb7, 0xb4, 0xee, + 0x0e, 0xbf, 0xc5, 0xbd, 0xbf, 0xdf, 0x88, 0x38, + 0x30, 0xe9, 0xc1, 0x3c, 0x6f, 0x98, 0xfc, 0xc8, + 0xc7, 0xdc, 0xf7, 0x8b, 0x3e, 0xd3, 0xe1, 0xc3, + 0xa9, 0xbb, 0x51, 0x7f, 0x3d, 0x82, 0x17, 0x70, + 0x0e, 0x2e, 0xb3, 0xd0, 0x55, 0x13, 0x4d, 0x9c, + 0x3d, 0x2f, 0x3c, 0xaf, 0xf5, 0xb2, 0x8e, 0x65, + 0xa3, 0x54, 0x5f, 0x1c, 0xd0, 0xd5, 0x23, 0x99, + 0xaa, 0x7f, 0xfb, 0xa9, 0xb7, 0xc9, 0x71, 0x09, + 0xf0, 0xce, 0x9c, 0xe7, 0xd7, 0x13, 0xc5, 0x5f, + 0x6d, 0xb6, 0xd0, 0x3d, 0x55, 0xf1, 0x36, 0x96, + 0xf7, 0xfe, 0x6d, 0xb8, 0x67, 0x53, 0x0b, 0x1d, + 0x49, 0x0b, 0xc4, 0x27, 0x1a, 0x0f, 0xde, 0xfb, + 0xc7, 0xf4, 0xce, 0xfa, 0x3c, 0x79, 0x1e, 0x52, + 0x47, 0x7a, 0x32, 0x73, 0x9f, 0x05, 0xff, 0x49, + 0x3e, 0xe2, 0x3c, 0xb7, 0x5f, 0xd5, 0xae, 0xf0, + 0x3a, 0x9c, 0xe3, 0xbe, 0x58, 0xed, 0xa7, 0xdb, + 0x38, 0x0b, 0x73, 0x47, 0xa9, 0x1e, 0xf5, 0xc7, + 0x87, 0xb7, 0xe9, 0x80, 0x6e, 0x98, 0x65, 0xf8, + 0xcd, 0xa2, 0x04, 0xf9, 0x91, 0x66, 0xf8, 0xca, + 0xd5, 0xcb, 0x3b, 0xc2, 0x97, 0x12, 0xd7, 0xde, + 0xbe, 0xd2, 0x83, 0x40, 0xe2, 0xaa, 0xf3, 0x55, + 0xe9, 0xe9, 0x43, 0xea, 0xd4, 0xda, 0xa7, 0xdc, + 0xab, 0x49, 0x66, 0x1d, 0xf7, 0x22, 0xb5, 0xfe, + 0x1c, 0xe2, 0xae, 0x4e, 0xcb, 0xb7, 0xf0, 0x54, + 0xea, 0x70, 0xe9, 0x8e, 0x47, 0xe0, 0xcf, 0x22, + 0xf9, 0xfc, 0x10, 0xf1, 0x9b, 0xf8, 0xa1, 0xe1, + 0x8d, 0xa2, 0xb4, 0x5e, 0xf2, 0x64, 0xc4, 0x97, + 0x4b, 0xe1, 0x31, 0xe4, 0xe7, 0xc5, 0x8b, 0x5a, + 0x4f, 0x02, 0xf7, 0x92, 0x36, 0x5e, 0xf9, 0x30, + 0x8f, 0xf3, 0x7c, 0xf5, 0x4c, 0xfe, 0x34, 0x20, + 0xcd, 0xc2, 0x55, 0x27, 0x7c, 0x92, 0x69, 0xf1, + 0x89, 0x85, 0xbb, 0xfb, 0x5d, 0xe0, 0x19, 0xc9, + 0x16, 0xc6, 0x4c, 0x52, 0xbd, 0x9b, 0xcd, 0x3e, + 0x3e, 0x4f, 0x57, 0x3d, 0x5f, 0x15, 0x6f, 0x21, + 0x53, 0x76, 0xc2, 0x44, 0xa3, 0x17, 0x0b, 0xd6, + 0xc8, 0x4f, 0x4e, 0x45, 0x6f, 0x46, 0x17, 0xc8, + 0x5f, 0x85, 0x92, 0x0f, 0x83, 0x27, 0xab, 0x7f, + 0x59, 0x04, 0x6f, 0x9f, 0x24, 0xff, 0x13, 0x84, + 0x2e, 0x44, 0x24, 0xaa, 0xff, 0xa9, 0x8f, 0xbe, + 0x75, 0x0e, 0xdd, 0x09, 0xcf, 0xa6, 0x6f, 0x09, + 0x5b, 0x46, 0x1e, 0x9b, 0x6d, 0xd4, 0x81, 0x85, + 0x11, 0xaa, 0x9f, 0xbd, 0x89, 0xef, 0xc0, 0x10, + 0xad, 0xff, 0x5f, 0xf8, 0xfa, 0xf4, 0x1c, 0xc5, + 0x47, 0xbf, 0x11, 0x16, 0x76, 0x1d, 0x7e, 0x0a, + 0x8f, 0x23, 0xde, 0xe6, 0xaf, 0xf4, 0x84, 0x2f, + 0xa7, 0x5f, 0x89, 0x88, 0x53, 0x7f, 0x91, 0x5b, + 0xda, 0x82, 0xfb, 0x61, 0xf2, 0xca, 0xdc, 0x26, + 0x6f, 0xe6, 0xfd, 0xa4, 0xfd, 0x3d, 0x9e, 0x66, + 0x61, 0x71, 0x43, 0xe9, 0xd3, 0x7b, 0xe8, 0xd0, + 0x98, 0x3a, 0xf2, 0x2f, 0x8f, 0xc9, 0xbb, 0xb0, + 0x19, 0xac, 0xcb, 0x1c, 0xe5, 0x5e, 0xc2, 0xba, + 0xfe, 0x00, 0xff, 0x19, 0x1d, 0xa8, 0xe9, 0x2f, + 0xff, 0xf8, 0x5a, 0xf5, 0xa5, 0x8b, 0x3b, 0x7c, + 0x0c, 0xe7, 0xff, 0xc7, 0x5f, 0xd2, 0x9f, 0x91, + 0xf8, 0x86, 0xb2, 0xeb, 0xf4, 0xf7, 0x51, 0xec, + 0x27, 0xbe, 0xc3, 0x40, 0x78, 0x10, 0x7e, 0x29, + 0xb9, 0x97, 0xf2, 0x6b, 0x0e, 0xf9, 0xba, 0x7f, + 0xcc, 0xef, 0xf0, 0xb1, 0xac, 0xbb, 0xa9, 0xbb, + 0xf4, 0xb2, 0x0d, 0x71, 0xf7, 0xee, 0x5b, 0x74, + 0xc8, 0xc4, 0x13, 0x8f, 0x1f, 0x95, 0xd2, 0x7d, + 0xb9, 0x91, 0x47, 0xff, 0xeb, 0x24, 0x3f, 0x10, + 0x87, 0x1f, 0x2d, 0x95, 0xa0, 0xf3, 0xf4, 0x24, + 0xde, 0x7f, 0xaa, 0xa8, 0x7c, 0x9a, 0x40, 0xbf, + 0x56, 0x21, 0x12, 0x5f, 0x6f, 0x3e, 0x26, 0x9e, + 0x1b, 0x7f, 0xa9, 0xfd, 0x46, 0x72, 0x6f, 0x8f, + 0x8e, 0xaa, 0x1f, 0xe8, 0x43, 0x3c, 0x2f, 0x4c, + 0x2b, 0x06, 0xcf, 0x60, 0xfd, 0x89, 0x5f, 0x6d, + 0xd1, 0xfe, 0xf6, 0x58, 0x68, 0x71, 0x43, 0xfd, + 0xcc, 0xaf, 0xc4, 0xc3, 0x69, 0x97, 0x8a, 0xf0, + 0xdb, 0x3c, 0xa7, 0xb6, 0x87, 0xf2, 0x75, 0x0e, + 0xeb, 0x0a, 0xee, 0xe1, 0x05, 0xbf, 0x1a, 0x61, + 0x21, 0x6f, 0x2c, 0x79, 0x6e, 0x56, 0x8c, 0xb4, + 0x50, 0x31, 0x7c, 0x23, 0x3c, 0x97, 0xba, 0xd3, + 0xa5, 0x0e, 0x7d, 0x87, 0x69, 0x4d, 0xbf, 0xe6, + 0x58, 0x4b, 0x7a, 0x79, 0x15, 0xbd, 0xcd, 0xe9, + 0xa2, 0x7e, 0xba, 0x0c, 0x7a, 0x58, 0x78, 0x85, + 0x75, 0x9b, 0xf5, 0xc4, 0xc5, 0x57, 0x71, 0xd2, + 0x53, 0xa7, 0xd1, 0x16, 0x2e, 0xfc, 0xad, 0xf3, + 0xdb, 0xc6, 0xf7, 0x56, 0xb4, 0x52, 0xfe, 0xfd, + 0x8a, 0xef, 0x78, 0x7a, 0xf9, 0x32, 0xdc, 0x13, + 0x3f, 0xb2, 0x7c, 0xb7, 0xf2, 0x31, 0x86, 0x3e, + 0x65, 0xf6, 0x41, 0xad, 0x27, 0x85, 0xfe, 0x69, + 0x7c, 0x10, 0x7d, 0x83, 0xe9, 0x9e, 0x62, 0x61, + 0x77, 0x82, 0xf8, 0x52, 0xea, 0xce, 0xf9, 0x7a, + 0x8a, 0x5f, 0x37, 0x7c, 0xc8, 0x17, 0x6f, 0xa4, + 0x3f, 0x87, 0xf0, 0x6d, 0x71, 0xc3, 0xe9, 0x5b, + 0xcc, 0x37, 0x7c, 0x7e, 0xfb, 0x37, 0xe8, 0xae, + 0x29, 0x98, 0x63, 0x61, 0xbf, 0x63, 0x07, 0x78, + 0x34, 0xfa, 0x91, 0x92, 0xab, 0xbf, 0xaf, 0x66, + 0x1d, 0x09, 0x93, 0xa5, 0xa7, 0xc7, 0x4e, 0x58, + 0xf8, 0x64, 0x93, 0xfc, 0x44, 0x03, 0xde, 0x7b, + 0xae, 0x3e, 0x71, 0x61, 0x4a, 0xe3, 0x63, 0x52, + 0xdb, 0xd0, 0x07, 0x9a, 0x91, 0xf8, 0xfa, 0xb3, + 0x4d, 0x15, 0xff, 0xc7, 0xf1, 0xe3, 0x11, 0xe3, + 0x54, 0x5f, 0x86, 0x53, 0xaf, 0x27, 0x8e, 0xd0, + 0x79, 0x17, 0xc3, 0x67, 0xd5, 0x9b, 0x28, 0x3f, + 0xff, 0x07, 0xfe, 0xc2, 0xff, 0x91, 0xfc, 0xe7, + 0x95, 0xea, 0x16, 0x42, 0xda, 0xeb, 0x3e, 0xab, + 0x50, 0x67, 0xf3, 0x3e, 0x50, 0x3c, 0x5f, 0x44, + 0x37, 0xd2, 0x63, 0xa4, 0x1f, 0xab, 0xd9, 0xaf, + 0xff, 0x41, 0xf9, 0xc1, 0xe9, 0x3c, 0xff, 0x3b, + 0x23, 0x3f, 0x66, 0xc8, 0xaf, 0x9a, 0xc7, 0xf5, + 0xf7, 0x81, 0xe8, 0xc5, 0x9a, 0xe2, 0xfa, 0x7e, + 0x06, 0xe7, 0x5c, 0x39, 0x41, 0x7e, 0xe1, 0x02, + 0x79, 0xfd, 0x36, 0x40, 0xf7, 0x75, 0xfb, 0x9a, + 0x85, 0xcc, 0xc6, 0xf8, 0x32, 0x73, 0x9e, 0xfb, + 0xea, 0xe2, 0x3b, 0x17, 0xbe, 0x85, 0xfa, 0xfd, + 0xc3, 0x26, 0xf5, 0x1b, 0xa7, 0xd0, 0x31, 0x87, + 0xb6, 0xf2, 0xc7, 0xef, 0xf0, 0xf7, 0x67, 0x7f, + 0x47, 0x37, 0x4d, 0x03, 0xf2, 0x3c, 0xf3, 0xc4, + 0x7f, 0xe0, 0xae, 0xe8, 0xbe, 0xc3, 0x39, 0xe5, + 0x4b, 0x27, 0x9e, 0xd3, 0xf4, 0x72, 0x3e, 0xfc, + 0x21, 0x3a, 0xea, 0xda, 0x41, 0xfe, 0xdb, 0x91, + 0x7a, 0xb0, 0x60, 0xb4, 0xf2, 0x7f, 0x24, 0xfe, + 0x39, 0x6c, 0xbb, 0xfa, 0xcf, 0x4a, 0x63, 0x2c, + 0x04, 0x25, 0xca, 0x2f, 0x6c, 0x18, 0x6b, 0x61, + 0x6c, 0x7f, 0xf9, 0xb9, 0xd7, 0x87, 0x2c, 0x4c, + 0xde, 0x48, 0x9d, 0x36, 0xb3, 0x4a, 0xb0, 0xad, + 0x11, 0xea, 0x87, 0x26, 0xa1, 0x9b, 0xa3, 0x6f, + 0xc8, 0x8f, 0x6c, 0x27, 0xbf, 0x7d, 0xe7, 0xca, + 0xff, 0xc4, 0x12, 0x0f, 0xdd, 0x73, 0xe5, 0x27, + 0x52, 0x39, 0xef, 0x49, 0x67, 0xd5, 0xaf, 0xf4, + 0x44, 0xef, 0x7f, 0xff, 0x48, 0xf9, 0xdd, 0x66, + 0x95, 0x85, 0xa9, 0x17, 0x35, 0xdf, 0xd9, 0x81, + 0xbf, 0xea, 0x33, 0x50, 0xeb, 0x9f, 0x46, 0x3c, + 0xde, 0xcf, 0x97, 0x5f, 0x9e, 0x89, 0x3f, 0xfe, + 0x7c, 0xbe, 0xfc, 0xf1, 0x3b, 0xd6, 0x3d, 0x6b, + 0x57, 0x1a, 0xfc, 0xc1, 0x03, 0xb6, 0xdd, 0x08, + 0xdf, 0x61, 0xde, 0x10, 0x17, 0x6f, 0xfb, 0xc9, + 0x2f, 0x1f, 0xa7, 0x7e, 0xac, 0x3d, 0x2c, 0xbf, + 0x1d, 0xcc, 0x7d, 0xfe, 0xb2, 0x5e, 0xfa, 0xe2, + 0xcc, 0x7d, 0xdd, 0x8b, 0x51, 0x7c, 0x2d, 0x46, + 0x1f, 0x67, 0xf6, 0x93, 0xfe, 0xf5, 0x66, 0x3e, + 0xe4, 0x1d, 0x89, 0xef, 0x32, 0x87, 0xd1, 0x83, + 0x97, 0xb1, 0xdc, 0xbb, 0x09, 0x63, 0xdf, 0x8b, + 0x8b, 0x98, 0x0b, 0x98, 0x10, 0xfa, 0x8a, 0xd3, + 0x9b, 0xd4, 0x8f, 0x0e, 0xc1, 0x2f, 0x6e, 0x75, + 0x3e, 0x07, 0x6f, 0xcb, 0x3d, 0x3b, 0xba, 0x68, + 0x1e, 0xf7, 0x94, 0x39, 0x4d, 0x42, 0x05, 0xce, + 0xc1, 0x68, 0x2c, 0x35, 0x79, 0x69, 0x75, 0xfe, + 0xc3, 0x8d, 0xf3, 0xca, 0xf5, 0x96, 0x5f, 0x7e, + 0x82, 0xbf, 0x75, 0x98, 0xdb, 0x10, 0xde, 0x8b, + 0xf9, 0x4f, 0xfe, 0x0f, 0xd2, 0x7b, 0x83, 0xce, + 0xb8, 0x74, 0x54, 0x7f, 0xf2, 0x5d, 0x1f, 0xb6, + 0x3d, 0x43, 0xeb, 0x4d, 0xa5, 0x7e, 0xae, 0x8e, + 0x43, 0xb7, 0x4c, 0x5f, 0xd6, 0x3d, 0x24, 0x5b, + 0xe7, 0xe1, 0xce, 0xfe, 0x37, 0x26, 0x68, 0xbe, + 0xf5, 0x3d, 0xe7, 0x92, 0x91, 0xae, 0x7a, 0xb5, + 0x0a, 0xbd, 0x2d, 0x93, 0xa3, 0x7c, 0x18, 0x49, + 0x5c, 0x14, 0xcb, 0x50, 0x3e, 0x5f, 0x40, 0x4f, + 0x93, 0x0b, 0xd4, 0x3f, 0xed, 0xa0, 0xcf, 0x76, + 0x2e, 0x52, 0xbe, 0x1d, 0x61, 0x1e, 0xb1, 0xb6, + 0x0b, 0x71, 0x69, 0x7e, 0x21, 0x4e, 0x63, 0x8b, + 0xe9, 0x3c, 0xca, 0xb1, 0xfe, 0x4b, 0x5b, 0xdb, + 0xe9, 0x7d, 0xac, 0xc3, 0xe1, 0xfd, 0xaf, 0xb5, + 0x3d, 0xe2, 0x29, 0x67, 0xb9, 0xea, 0x75, 0x01, + 0xf7, 0x79, 0xf9, 0xad, 0xe2, 0xe9, 0x39, 0xf5, + 0xe8, 0xdb, 0x67, 0xc4, 0x91, 0xf1, 0xfd, 0xc6, + 0xc2, 0xc9, 0xa4, 0xa5, 0x70, 0x37, 0x74, 0xee, + 0xfb, 0x28, 0xf9, 0x87, 0x1a, 0xe8, 0x74, 0x93, + 0x28, 0xe9, 0x4d, 0x63, 0xe2, 0x27, 0xde, 0x41, + 0x7a, 0xed, 0xc8, 0x7d, 0x9d, 0xda, 0xab, 0xfe, + 0xe3, 0x20, 0x73, 0xa7, 0x51, 0x9d, 0x34, 0x1f, + 0x3b, 0x4b, 0xde, 0x2c, 0x9a, 0x20, 0xbd, 0xf0, + 0x64, 0xbd, 0xa1, 0xc1, 0xe8, 0x8c, 0x59, 0x49, + 0x3d, 0xc9, 0x6e, 0x25, 0xbf, 0xfb, 0x1e, 0x7d, + 0xf4, 0xc0, 0xa9, 0x8a, 0xcf, 0x85, 0xe8, 0x8e, + 0xc7, 0x1c, 0xf9, 0x9d, 0x86, 0xe8, 0x4a, 0x8d, + 0x29, 0xea, 0xd7, 0xab, 0xe2, 0x1f, 0x1c, 0x3a, + 0x7d, 0x0a, 0x2f, 0x45, 0xfd, 0x70, 0x6e, 0xc7, + 0x73, 0xcd, 0x55, 0x74, 0xfc, 0xcd, 0x75, 0xcd, + 0x5b, 0xbf, 0xc3, 0x5f, 0xb8, 0x25, 0x2b, 0x3e, + 0x8e, 0x11, 0x3f, 0x9b, 0x32, 0xf8, 0x9e, 0xd9, + 0x4a, 0x3f, 0x7f, 0xab, 0x89, 0xd6, 0x9f, 0xca, + 0xfe, 0x2e, 0xc6, 0xcb, 0x5f, 0xfd, 0xe8, 0x05, + 0xbf, 0xab, 0xf9, 0xe1, 0x2a, 0xea, 0x67, 0x4f, + 0x77, 0xc5, 0x4b, 0x0b, 0xf2, 0x71, 0xe4, 0x1d, + 0xcd, 0x17, 0x2e, 0xa1, 0x7b, 0x03, 0x82, 0xd2, + 0xe0, 0x17, 0xa8, 0x67, 0xe3, 0xf3, 0x74, 0x9f, + 0xcd, 0x99, 0x7b, 0xfd, 0x59, 0xf4, 0x4f, 0x3d, + 0xa1, 0x3e, 0x24, 0x5f, 0x09, 0x80, 0xbf, 0x40, + 0x17, 0xf3, 0xc2, 0xa4, 0xe7, 0xd9, 0xf8, 0xcd, + 0x4a, 0x6e, 0xf2, 0xff, 0x8f, 0xa8, 0x33, 0x39, + 0xfd, 0x55, 0x6f, 0xaa, 0xf3, 0xb9, 0xd3, 0x0e, + 0xc4, 0x91, 0xb9, 0x49, 0x5c, 0xc6, 0xce, 0x53, + 0x3f, 0xff, 0x27, 0xf3, 0x92, 0xad, 0xe7, 0xb5, + 0xdf, 0x5e, 0xf4, 0x3b, 0xb3, 0x3c, 0xe4, 0x1f, + 0xfe, 0xcb, 0xb9, 0x56, 0x4b, 0x55, 0x7d, 0xef, + 0x4f, 0x7d, 0xf5, 0x68, 0xac, 0xfc, 0x7d, 0x48, + 0x1d, 0x7a, 0xd0, 0x50, 0xf7, 0x39, 0x06, 0xdf, + 0x5e, 0xfb, 0xb6, 0xe6, 0xb3, 0xfe, 0xf8, 0x11, + 0x9f, 0xb3, 0x9a, 0x9f, 0x4f, 0xc7, 0xdf, 0x7f, + 0x18, 0x94, 0x03, 0x8f, 0x4e, 0xb4, 0x10, 0xa7, + 0xb9, 0xad, 0x29, 0x42, 0x5f, 0x42, 0xaa, 0x68, + 0xfd, 0x5f, 0x60, 0x9c, 0x9f, 0x64, 0xe9, 0x79, + 0x83, 0x88, 0xbf, 0xae, 0xc5, 0xe5, 0x4f, 0x4a, + 0x32, 0x37, 0xf2, 0x1b, 0xb8, 0x1d, 0xde, 0x10, + 0xbf, 0x51, 0xb7, 0xeb, 0xb7, 0xf0, 0x72, 0x70, + 0xe7, 0x48, 0x74, 0xde, 0x5c, 0x44, 0x57, 0x1e, + 0xb8, 0x2a, 0x5e, 0x13, 0xd8, 0xaf, 0x67, 0x5d, + 0x7c, 0xad, 0x19, 0xef, 0x65, 0xa1, 0x4d, 0xa0, + 0xf4, 0xde, 0xe7, 0x99, 0x85, 0xa3, 0xaf, 0xd4, + 0xcf, 0x05, 0x70, 0x7f, 0x0d, 0x76, 0xa9, 0x5f, + 0x8e, 0xe5, 0x1c, 0x0e, 0x9d, 0xd1, 0xfd, 0xf5, + 0xc6, 0xc7, 0x15, 0xb6, 0xd6, 0x79, 0x3e, 0x87, + 0x9f, 0xbe, 0x82, 0xee, 0x1a, 0x37, 0xe6, 0xfe, + 0x1b, 0xba, 0xa9, 0x7e, 0x4c, 0x61, 0x7f, 0x15, + 0x5e, 0xa9, 0xbf, 0x2a, 0xcd, 0x7d, 0x5f, 0x9b, + 0xac, 0xfe, 0xb7, 0x38, 0xf9, 0x39, 0xa2, 0x50, + 0xfe, 0xb5, 0x26, 0xf3, 0xaa, 0x32, 0x29, 0xd2, + 0x9f, 0x1d, 0xc4, 0x4f, 0xaf, 0x54, 0xe6, 0x84, + 0xa6, 0x99, 0x8b, 0x85, 0x03, 0xdb, 0xe5, 0xaf, + 0x87, 0x10, 0x77, 0xc5, 0xb2, 0xd4, 0x9f, 0x45, + 0x91, 0x67, 0xce, 0x49, 0x4d, 0xf4, 0x3c, 0xe2, + 0xc2, 0x39, 0x4f, 0xf1, 0xeb, 0xc7, 0x5c, 0x78, + 0xd8, 0x0b, 0x7d, 0x5e, 0xf3, 0xbe, 0xb5, 0x3f, + 0xca, 0x6f, 0x2c, 0xc0, 0xb7, 0x7e, 0x5d, 0x4e, + 0xf7, 0x3d, 0x10, 0x5f, 0x7b, 0xa9, 0x85, 0xfe, + 0x1e, 0x8a, 0x1f, 0xf2, 0xcf, 0x53, 0x7e, 0xad, + 0xe3, 0x9c, 0xe6, 0xdf, 0x96, 0x7e, 0xdd, 0xc7, + 0x2f, 0x94, 0x3f, 0xbd, 0x00, 0xbe, 0x8a, 0xba, + 0x59, 0xb0, 0x52, 0xf7, 0xf7, 0x80, 0x39, 0xf2, + 0xba, 0x03, 0xf4, 0x75, 0xa6, 0xff, 0x52, 0xd6, + 0xb7, 0x57, 0xbf, 0xff, 0xec, 0xc0, 0x47, 0xbe, + 0xca, 0xd6, 0x7d, 0x0e, 0x8e, 0xb0, 0x70, 0x75, + 0x89, 0xf2, 0x63, 0x0f, 0xe7, 0x7a, 0x20, 0x4b, + 0xf1, 0x75, 0x0d, 0x3d, 0xee, 0xdb, 0xb1, 0x1a, + 0xfc, 0x18, 0x75, 0xfd, 0xcd, 0x84, 0x7c, 0xf8, + 0x30, 0xce, 0xcd, 0x69, 0xb3, 0xfc, 0xc4, 0x60, + 0xf2, 0xb6, 0x81, 0xbb, 0xea, 0xeb, 0x36, 0xf2, + 0xe5, 0xa6, 0x13, 0x3a, 0x6a, 0xb6, 0xa0, 0xd3, + 0x45, 0x4b, 0x54, 0x5f, 0x93, 0xe8, 0x0b, 0x2b, + 0x4d, 0x94, 0x3e, 0xf9, 0x11, 0x77, 0x01, 0xbd, + 0x98, 0xdb, 0x98, 0x35, 0x9f, 0x59, 0x68, 0xb6, + 0x0f, 0x9f, 0x60, 0x46, 0xbd, 0x6f, 0xc1, 0xbb, + 0x19, 0xf7, 0x68, 0x6a, 0x31, 0xef, 0xeb, 0xdd, + 0x1b, 0xdf, 0x68, 0x7e, 0x47, 0x2f, 0xa7, 0x5d, + 0x93, 0xbe, 0x0d, 0x61, 0x6e, 0x34, 0x75, 0x8c, + 0xce, 0x77, 0x12, 0xfe, 0x23, 0x31, 0x5c, 0xfd, + 0x55, 0x2f, 0xe6, 0x91, 0x35, 0x3e, 0xed, 0x02, + 0x1f, 0xc7, 0x7d, 0xd7, 0x0b, 0x7a, 0xa6, 0xcf, + 0xb3, 0x8e, 0x26, 0xf9, 0x7a, 0x7f, 0x9d, 0x34, + 0x0b, 0xa9, 0x7b, 0x35, 0xcf, 0xfd, 0x04, 0x1d, + 0x8f, 0x68, 0xa1, 0x7a, 0xfe, 0xf2, 0x8c, 0x85, + 0xac, 0x53, 0xba, 0x8f, 0x20, 0xf6, 0xb7, 0xee, + 0xa1, 0xe6, 0x51, 0x57, 0x88, 0xc3, 0x2a, 0xe1, + 0xca, 0x97, 0x3d, 0xbc, 0xef, 0xc3, 0x0c, 0x17, + 0xf8, 0x04, 0x7c, 0x6d, 0x8f, 0x78, 0xfd, 0x9e, + 0xd0, 0x87, 0x7b, 0xbe, 0x70, 0x5d, 0xfd, 0x7b, + 0xd8, 0x75, 0x0b, 0x53, 0x2e, 0xea, 0xf7, 0x0a, + 0x4f, 0xce, 0xbf, 0xc7, 0x69, 0x74, 0xc5, 0xdc, + 0x43, 0xef, 0x67, 0x34, 0x41, 0x37, 0xcc, 0x51, + 0xea, 0xd4, 0xe0, 0x2f, 0xf0, 0xc5, 0xa6, 0x19, + 0xfd, 0xb2, 0x73, 0x6d, 0xcd, 0xe3, 0x67, 0x30, + 0x2f, 0x5a, 0x57, 0x46, 0xef, 0x6f, 0x49, 0x3d, + 0xcd, 0x6b, 0xa0, 0x7a, 0x95, 0x42, 0x9c, 0x0c, + 0x19, 0x88, 0x8f, 0x33, 0xc9, 0xc4, 0xa5, 0x63, + 0xe4, 0x52, 0xf8, 0x35, 0xe2, 0xea, 0xc0, 0x36, + 0xd5, 0xc3, 0x6c, 0xf4, 0xb2, 0xdd, 0x39, 0xf9, + 0xf1, 0xcf, 0xc8, 0x83, 0xc4, 0x18, 0xf5, 0x6b, + 0x81, 0xe8, 0xad, 0xe3, 0x63, 0x2f, 0x78, 0x06, + 0x7a, 0x7c, 0xc2, 0x4d, 0x7e, 0xcf, 0x3f, 0xca, + 0x42, 0xed, 0x92, 0xf2, 0xf7, 0xcb, 0xf1, 0x65, + 0x67, 0x22, 0x74, 0x3f, 0x2b, 0x99, 0xe3, 0x1e, + 0xa8, 0xab, 0x7e, 0xaf, 0x22, 0xf9, 0x12, 0x31, + 0x5f, 0x7e, 0xc9, 0x8b, 0xdf, 0x95, 0x2e, 0x4e, + 0x55, 0x7d, 0xbd, 0xc6, 0xef, 0x09, 0x23, 0x8b, + 0x69, 0xfe, 0x76, 0x9d, 0x38, 0x1b, 0xb8, 0x52, + 0xf9, 0xfa, 0x86, 0xfc, 0x72, 0xab, 0xae, 0xf5, + 0x75, 0xe2, 0x5c, 0xcf, 0x94, 0x56, 0x3f, 0x33, + 0x89, 0xfe, 0xfb, 0xdd, 0x06, 0xd5, 0xe3, 0x14, + 0x7c, 0x48, 0x2f, 0x47, 0xe9, 0xd5, 0x01, 0xf4, + 0x3a, 0xfa, 0xde, 0x1e, 0xf8, 0x22, 0x74, 0xae, + 0x54, 0x26, 0x73, 0xfd, 0x7f, 0xe6, 0x5d, 0x37, + 0xdc, 0xa5, 0x37, 0x4e, 0xdc, 0x53, 0xf3, 0x4a, + 0x8a, 0xbf, 0xed, 0xe8, 0xc8, 0x80, 0x10, 0xde, + 0x63, 0x02, 0xab, 0x58, 0xf0, 0xa9, 0x2b, 0x7f, + 0xf9, 0x01, 0xba, 0xf7, 0xf0, 0xb1, 0xea, 0x61, + 0x3e, 0x73, 0xd2, 0xa6, 0xcd, 0x75, 0x3e, 0x13, + 0xf1, 0x29, 0xd5, 0x37, 0xeb, 0xf7, 0x03, 0x47, + 0xe2, 0xbe, 0x7b, 0xb0, 0xfa, 0x8f, 0x59, 0xe8, + 0xd8, 0xcd, 0x8e, 0xea, 0x1f, 0xa3, 0x88, 0xa3, + 0xf0, 0x7d, 0xf8, 0x4c, 0x53, 0x88, 0x5e, 0xde, + 0x3a, 0x2a, 0x23, 0xe8, 0x87, 0xbe, 0x8d, 0xcd, + 0xf4, 0x82, 0xdf, 0xa2, 0xee, 0x54, 0xf8, 0x4c, + 0xfd, 0x54, 0x22, 0xfd, 0xc8, 0xaa, 0xad, 0xc4, + 0x89, 0x39, 0x48, 0x9d, 0xed, 0xb0, 0x53, 0xf5, + 0x79, 0x23, 0xf9, 0x5b, 0x39, 0x4d, 0xf9, 0x53, + 0x93, 0x7d, 0x44, 0xfb, 0x69, 0x5e, 0xdd, 0x93, + 0x3e, 0xfa, 0xcc, 0xa3, 0x29, 0xf0, 0x37, 0xcc, + 0xf7, 0x36, 0xbf, 0x46, 0xa7, 0x4d, 0x71, 0xe6, + 0x5d, 0x1e, 0xeb, 0x55, 0x5f, 0x97, 0x72, 0x7f, + 0x4f, 0x83, 0xa4, 0x77, 0xdd, 0xd3, 0x2c, 0xbc, + 0x1d, 0xa3, 0xfa, 0xe5, 0x4a, 0x5e, 0xf6, 0x9c, + 0x1e, 0x05, 0xef, 0x86, 0x2f, 0x5d, 0x11, 0xc3, + 0x9c, 0xc9, 0x34, 0x66, 0x3f, 0x77, 0x7f, 0xd3, + 0x3c, 0xdf, 0x15, 0x3f, 0x59, 0xc7, 0x53, 0xeb, + 0x39, 0x87, 0x4e, 0x0e, 0xf5, 0xd0, 0xef, 0xb9, + 0x4b, 0xa8, 0xa3, 0xbb, 0xf3, 0x42, 0xe1, 0x13, + 0xf8, 0xdd, 0xb7, 0x4b, 0x86, 0xf6, 0xdb, 0x95, + 0xb8, 0xfa, 0x28, 0x5a, 0xfd, 0xef, 0x7c, 0xf6, + 0x9b, 0x53, 0x5e, 0xf3, 0xb6, 0xf6, 0xdc, 0xc7, + 0x4e, 0x5f, 0xcd, 0x17, 0x23, 0x99, 0x93, 0x2f, + 0x1a, 0x72, 0x14, 0x3e, 0x89, 0xfb, 0x5e, 0xe4, + 0xa4, 0x7e, 0xb8, 0x11, 0xf5, 0x75, 0x6a, 0x67, + 0xd5, 0xc3, 0xad, 0xe8, 0x46, 0x72, 0x57, 0xd5, + 0xd7, 0x10, 0xfa, 0xf9, 0x87, 0xd3, 0x54, 0xdf, + 0x0f, 0x91, 0xdf, 0xe1, 0x71, 0xf2, 0x17, 0xad, + 0xf3, 0x2d, 0x38, 0x86, 0xcd, 0xd1, 0xfe, 0x78, + 0x5f, 0x70, 0x9c, 0xf2, 0xf7, 0x7e, 0xb7, 0xff, + 0x03 +}; + +/** Length of the pre-compressed data using zlib algorithm */ +#define COMP_ZLIB_SIZE 3771 + +/** Pre-compressed data using zlib algorithm */ +static uint8_t compressed_text_zlib[COMP_ZLIB_SIZE] = { + 0x78, 0x9c, 0x35, 0x99, 0x77, 0x5c, 0xd6, 0xe5, + 0x1a, 0xc6, 0x1f, 0x70, 0xa2, 0xe1, 0x0c, 0x50, + 0xb4, 0x70, 0xe7, 0x44, 0xc5, 0x34, 0x27, 0xe6, + 0x04, 0x15, 0x51, 0x73, 0x1e, 0x51, 0x8e, 0x60, + 0x42, 0xe2, 0x08, 0xf5, 0x68, 0x99, 0x24, 0xb8, + 0xd3, 0x24, 0xad, 0xe3, 0x9e, 0xb8, 0x11, 0x50, + 0x12, 0x15, 0xd2, 0xd0, 0xcc, 0x2d, 0x66, 0x28, + 0xe0, 0x20, 0x89, 0x5c, 0xe4, 0xc4, 0x81, 0x0b, + 0xc5, 0x71, 0xce, 0xe7, 0xf9, 0x5e, 0xf5, 0x47, + 0x57, 0x57, 0xbc, 0xef, 0xef, 0xf7, 0x8c, 0xfb, + 0xbe, 0xee, 0xeb, 0xbe, 0x5f, 0x63, 0xfe, 0xff, + 0x4f, 0x68, 0xb7, 0x6f, 0x8d, 0xfd, 0xe7, 0x78, + 0x6d, 0x0b, 0xa3, 0x57, 0xb4, 0x87, 0x4f, 0xf2, + 0xb5, 0xd0, 0x2f, 0xe7, 0x47, 0xf8, 0xdb, 0x61, + 0x16, 0x7a, 0x2e, 0xb9, 0x05, 0xbf, 0x37, 0xc4, + 0x42, 0x03, 0x8f, 0xef, 0xe0, 0x67, 0x22, 0x2c, + 0xec, 0x1f, 0x52, 0x0d, 0x1e, 0x7f, 0xd1, 0x42, + 0x41, 0xa7, 0x5d, 0xf0, 0xa2, 0xf7, 0x2d, 0x5c, + 0xdf, 0x7e, 0x0d, 0xde, 0xfd, 0xaa, 0x85, 0x08, + 0xf3, 0x6f, 0xf8, 0xe1, 0x60, 0x0b, 0x03, 0x4a, + 0xd7, 0x80, 0x17, 0x7e, 0x60, 0xa1, 0x5a, 0x6d, + 0x57, 0xf8, 0xad, 0xdb, 0x16, 0x6e, 0x9e, 0x59, + 0x0c, 0x8f, 0xee, 0x62, 0x61, 0x4a, 0xf9, 0x72, + 0xf0, 0xa1, 0x75, 0x2d, 0x78, 0xbe, 0x58, 0x03, + 0x1f, 0x39, 0xd1, 0x42, 0x8b, 0xc3, 0x39, 0xf0, + 0xf5, 0xac, 0xe7, 0xd4, 0xd1, 0x6d, 0xf0, 0x55, + 0xa5, 0x2c, 0x84, 0x14, 0x85, 0xc1, 0xbd, 0x86, + 0x5b, 0x70, 0xee, 0xbb, 0x1a, 0x9e, 0xc2, 0xe7, + 0x9b, 0xef, 0x6f, 0x02, 0x1f, 0x72, 0xc3, 0xc2, + 0xa6, 0x66, 0x13, 0xf4, 0xbe, 0x6c, 0x0b, 0x75, + 0x83, 0xc6, 0xc2, 0x87, 0xcf, 0xb7, 0x50, 0x62, + 0x57, 0x5b, 0xb8, 0xdb, 0x26, 0xbe, 0x16, 0xcb, + 0x3a, 0xcd, 0xed, 0xa1, 0x16, 0x02, 0x67, 0x8f, + 0x84, 0x67, 0xc5, 0x5a, 0x88, 0x3f, 0x90, 0x0f, + 0x4f, 0x5a, 0x68, 0xe1, 0xcc, 0xd9, 0xfe, 0xf0, + 0xe3, 0x57, 0x2c, 0xac, 0x9e, 0xb2, 0x0a, 0xbe, + 0x67, 0x1d, 0xe7, 0x53, 0xe7, 0x31, 0xbc, 0xe2, + 0x5c, 0x0b, 0xe5, 0x8e, 0xb6, 0x82, 0xcf, 0x7c, + 0xcf, 0xc2, 0x7f, 0x0a, 0x97, 0xc2, 0x3b, 0xf1, + 0xf7, 0x9a, 0x4f, 0x23, 0xe1, 0x1d, 0x0e, 0x58, + 0xc8, 0x89, 0x9e, 0x06, 0x9f, 0xf7, 0xd0, 0x42, + 0xb8, 0x7b, 0x2d, 0xad, 0xef, 0x4f, 0x0b, 0xde, + 0x27, 0x4b, 0xc2, 0x37, 0x64, 0xf1, 0x98, 0xc3, + 0x7a, 0xff, 0xd5, 0x42, 0x0b, 0xaf, 0x76, 0x94, + 0x85, 0x87, 0x12, 0x2f, 0xde, 0x33, 0x8b, 0xc3, + 0x1d, 0xb8, 0xc7, 0xe9, 0xc7, 0xeb, 0xc0, 0x97, + 0x37, 0xb4, 0x70, 0x67, 0x9f, 0xf6, 0x9b, 0xd3, + 0xd3, 0xc2, 0x98, 0xcc, 0x3b, 0xf0, 0x65, 0x5f, + 0x58, 0x58, 0x74, 0x51, 0xcf, 0x6b, 0xbd, 0xd9, + 0xc2, 0xb0, 0x21, 0x03, 0xe1, 0x0d, 0xfd, 0x2d, + 0xdc, 0xeb, 0xcc, 0x7b, 0xcc, 0x8f, 0xc4, 0x57, + 0xbb, 0x2c, 0xfe, 0xbf, 0x29, 0x62, 0x9d, 0x5e, + 0xab, 0x2e, 0xc1, 0x13, 0x7f, 0xb3, 0xd0, 0x3e, + 0x7a, 0x1c, 0x7c, 0xc0, 0x22, 0xbe, 0x3f, 0x5f, + 0xfb, 0xab, 0x42, 0x5c, 0x5e, 0x8e, 0xd4, 0x7d, + 0x0c, 0xe3, 0x7d, 0x8e, 0x2f, 0xde, 0xc2, 0xdd, + 0x89, 0xf7, 0x37, 0x5f, 0x2e, 0x81, 0x77, 0xf9, + 0x99, 0xd7, 0x7c, 0x7c, 0x18, 0xfe, 0xb2, 0x9e, + 0x85, 0xb8, 0xdc, 0x0d, 0xf0, 0xb6, 0x47, 0xf8, + 0xfb, 0x9c, 0xbf, 0xe1, 0x0d, 0xb6, 0x58, 0x38, + 0x97, 0xaf, 0x78, 0xfc, 0xbb, 0xa3, 0x85, 0x12, + 0x0f, 0xb5, 0xde, 0xf6, 0xbf, 0x5a, 0x88, 0x48, + 0x51, 0x7c, 0x2d, 0x39, 0x61, 0x61, 0xf2, 0xa8, + 0xd6, 0xf0, 0x4b, 0xe5, 0x2d, 0x1c, 0x74, 0x71, + 0x80, 0x07, 0x11, 0x1f, 0xf3, 0x17, 0xb6, 0x81, + 0xbf, 0x20, 0xfe, 0x87, 0x25, 0xee, 0x85, 0xff, + 0xcc, 0x7a, 0x62, 0x93, 0x3f, 0x84, 0xaf, 0x24, + 0x6f, 0xcb, 0x27, 0x2b, 0x9e, 0x97, 0x7e, 0x6c, + 0x61, 0xd7, 0xe0, 0x77, 0xe0, 0x77, 0x5b, 0x5a, + 0x78, 0x74, 0x43, 0xef, 0xdf, 0xdd, 0x97, 0xf5, + 0x4d, 0xe7, 0x5e, 0xcd, 0x03, 0xe2, 0xff, 0x79, + 0x59, 0xe5, 0x87, 0xf9, 0xc5, 0xfe, 0xfb, 0xf6, + 0xec, 0xb3, 0xd0, 0x0d, 0xdc, 0x5b, 0xdb, 0x99, + 0x33, 0xe0, 0x79, 0x65, 0x2c, 0xa4, 0x2d, 0x62, + 0xdd, 0xa6, 0x6c, 0xb8, 0x85, 0xd3, 0x3d, 0xb5, + 0xfe, 0xb3, 0xc4, 0x9d, 0x6f, 0xf3, 0x05, 0x70, + 0x1f, 0x47, 0x0b, 0x9f, 0xfa, 0xec, 0x83, 0x1f, + 0x58, 0x66, 0xc1, 0xa3, 0x92, 0xf4, 0xa3, 0x36, + 0xef, 0x7f, 0xbf, 0x23, 0x3a, 0x61, 0x62, 0x89, + 0xf7, 0xea, 0x3e, 0xbc, 0xc7, 0x4c, 0xbb, 0xcf, + 0xf7, 0x8f, 0x91, 0x77, 0xe6, 0xd8, 0x6b, 0x0b, + 0xef, 0x36, 0x7a, 0x0e, 0x9f, 0x44, 0x5c, 0x0f, + 0xf5, 0x5e, 0xa6, 0xbf, 0xcf, 0xb4, 0x10, 0xb8, + 0xab, 0x00, 0xde, 0x8b, 0x38, 0x9a, 0x9a, 0xa9, + 0xf5, 0x8e, 0x6c, 0x6a, 0xa1, 0xdd, 0x0c, 0x74, + 0xc7, 0x84, 0xff, 0xc5, 0xf3, 0xef, 0x73, 0x8f, + 0xa6, 0x0e, 0xf1, 0x55, 0x31, 0x4d, 0xf1, 0xb1, + 0x8e, 0xfd, 0x39, 0x55, 0x54, 0xfc, 0xe6, 0xfc, + 0xcb, 0x42, 0xdc, 0x95, 0x14, 0x78, 0x56, 0x80, + 0x85, 0x84, 0x6c, 0xc5, 0x5f, 0x41, 0x45, 0x0b, + 0xd5, 0x02, 0xbf, 0x81, 0x57, 0xa8, 0x69, 0x21, + 0x31, 0x56, 0xf9, 0xd2, 0x8e, 0xe7, 0xb5, 0x98, + 0x8e, 0x0e, 0x9a, 0x33, 0x37, 0x2d, 0x5c, 0x2f, + 0x97, 0x0b, 0xef, 0x7b, 0xcc, 0x82, 0xef, 0x85, + 0x67, 0x70, 0x1f, 0xf2, 0xd1, 0xe5, 0x08, 0x79, + 0x65, 0x86, 0x71, 0xce, 0x3f, 0xf7, 0x79, 0x05, + 0xff, 0x1c, 0x5e, 0x6b, 0xf6, 0x23, 0x78, 0x55, + 0xf8, 0xfe, 0x7f, 0xf4, 0x62, 0xf5, 0x60, 0x0b, + 0x5f, 0x37, 0xfb, 0x03, 0xfe, 0x94, 0x7d, 0x96, + 0xfd, 0xe8, 0x27, 0xf8, 0x55, 0xce, 0xdd, 0x3d, + 0x41, 0xeb, 0xad, 0xce, 0xf7, 0x23, 0x17, 0x29, + 0x1e, 0x6a, 0xa3, 0x1f, 0x85, 0x43, 0x89, 0x5b, + 0xd3, 0x80, 0xf5, 0x17, 0x56, 0x09, 0x84, 0x6f, + 0x26, 0x0e, 0xab, 0xcd, 0x54, 0x7e, 0x54, 0x26, + 0xbf, 0xf7, 0x0e, 0xa4, 0x6e, 0x98, 0x34, 0xd6, + 0xed, 0x7f, 0x53, 0xeb, 0xbd, 0x95, 0x69, 0x61, + 0x45, 0xa5, 0x53, 0x70, 0x2f, 0xf6, 0xd9, 0x7a, + 0x65, 0x03, 0xf8, 0x15, 0xea, 0xcc, 0xd4, 0xb4, + 0x1f, 0xe0, 0xbd, 0x79, 0x4e, 0x87, 0x3b, 0x3b, + 0xe0, 0x1f, 0xba, 0x5b, 0x48, 0x1d, 0xee, 0x02, + 0xff, 0xf7, 0x78, 0x9e, 0x5f, 0x6d, 0x3a, 0xfc, + 0x0b, 0xee, 0xff, 0xe5, 0xb1, 0x18, 0xf8, 0xe9, + 0x5e, 0x16, 0xc6, 0xd6, 0xd7, 0x7a, 0x4b, 0x10, + 0x3f, 0x09, 0x61, 0xd2, 0x8f, 0xb9, 0x9c, 0x6f, + 0xcd, 0x37, 0x15, 0xe0, 0x8d, 0x5e, 0x5a, 0x88, + 0xfb, 0x9e, 0x7b, 0x36, 0xee, 0xe0, 0xc0, 0x30, + 0xe2, 0xc4, 0x6c, 0x8c, 0xb3, 0x70, 0x30, 0xda, + 0x19, 0x1e, 0x7e, 0x8f, 0xfd, 0xd6, 0x24, 0x6e, + 0xcd, 0xa4, 0xeb, 0x16, 0xda, 0xb9, 0x51, 0xc7, + 0x4c, 0x71, 0x27, 0x0b, 0xc3, 0x52, 0x74, 0x9e, + 0x99, 0xec, 0xb3, 0xd5, 0xdb, 0xc9, 0xf0, 0x25, + 0xe4, 0xe3, 0xee, 0x4a, 0xaa, 0xb7, 0x89, 0x9c, + 0xcb, 0xb5, 0x04, 0xea, 0x9a, 0x79, 0xc8, 0xb9, + 0xdd, 0xb8, 0xbe, 0x1c, 0xbe, 0x8e, 0xbc, 0xe8, + 0x33, 0x86, 0x7d, 0x18, 0x2f, 0xe2, 0xd4, 0x45, + 0x75, 0xd1, 0xf4, 0x68, 0x6e, 0xe1, 0x75, 0x4f, + 0xce, 0xc5, 0xcc, 0x44, 0x37, 0xfc, 0x3d, 0x95, + 0x2f, 0xdb, 0xe1, 0xa5, 0x17, 0xe8, 0xbe, 0xc3, + 0x1b, 0x5b, 0xc8, 0x4a, 0x3c, 0x0e, 0x4f, 0x42, + 0x2f, 0x17, 0xcc, 0xb9, 0x02, 0x6f, 0xc0, 0x79, + 0x0f, 0x38, 0xbe, 0x12, 0xee, 0x5b, 0xd9, 0xc2, + 0xaa, 0x92, 0xda, 0x5f, 0x19, 0xee, 0x2b, 0xf5, + 0x19, 0x71, 0x66, 0xce, 0x53, 0x8f, 0xca, 0x3d, + 0xca, 0x80, 0x57, 0xd9, 0x69, 0x21, 0xd6, 0xc7, + 0x1b, 0xde, 0x95, 0xfa, 0x93, 0xf0, 0x46, 0xfa, + 0x12, 0x40, 0x7d, 0x7c, 0xbc, 0xaf, 0x1f, 0xfc, + 0xbb, 0x78, 0x0b, 0x7e, 0x83, 0xfd, 0xe0, 0x17, + 0xd7, 0x5a, 0x68, 0x92, 0xcc, 0xbe, 0xcc, 0x6a, + 0x74, 0xd9, 0x69, 0xad, 0xf2, 0xb3, 0x33, 0xfb, + 0xce, 0x7b, 0x4c, 0x1e, 0x99, 0x92, 0xac, 0xe7, + 0x68, 0xa1, 0xfc, 0x43, 0x0b, 0xea, 0x40, 0xe2, + 0xda, 0x3d, 0xf0, 0x33, 0xc4, 0xc7, 0x26, 0x7f, + 0x7d, 0x7e, 0x76, 0x6f, 0x0b, 0x91, 0xeb, 0xa4, + 0x6f, 0x4d, 0x88, 0x87, 0x1d, 0xa1, 0xe4, 0xad, + 0xc9, 0xfa, 0xd4, 0xc2, 0x94, 0x9b, 0xd2, 0x5f, + 0x1f, 0xce, 0x35, 0xd7, 0x4f, 0xf5, 0xda, 0x8b, + 0xbc, 0xad, 0xbe, 0x50, 0xfa, 0x73, 0xaf, 0x83, + 0x85, 0x9e, 0x0b, 0x15, 0x1f, 0x47, 0x89, 0xf7, + 0x66, 0x9e, 0x9f, 0xc3, 0x9f, 0xa1, 0x8b, 0x35, + 0x3c, 0xa9, 0x23, 0xa6, 0x36, 0xeb, 0x9d, 0xd3, + 0xea, 0x3c, 0x7c, 0xec, 0x1c, 0x0b, 0x45, 0x73, + 0x88, 0x33, 0x93, 0x44, 0x7c, 0x95, 0xf2, 0x55, + 0x3c, 0x16, 0x47, 0xcf, 0x9e, 0x34, 0x8d, 0xd0, + 0xfb, 0xda, 0x59, 0x28, 0x5b, 0xb6, 0x0a, 0x7c, + 0x5f, 0x7d, 0x9e, 0x1f, 0x58, 0x03, 0xbe, 0x9f, + 0x7a, 0x32, 0x37, 0xde, 0x0b, 0x7e, 0x24, 0xc1, + 0x82, 0xf7, 0x33, 0x1f, 0x78, 0x09, 0xea, 0xf3, + 0xa3, 0xa8, 0x74, 0x3d, 0x0f, 0x3d, 0xce, 0xde, + 0x29, 0x1e, 0xfa, 0x99, 0x85, 0x16, 0xbf, 0xc9, + 0xcf, 0xa5, 0x14, 0x59, 0x58, 0xd9, 0xfd, 0xbf, + 0xf0, 0xbe, 0xf8, 0xc1, 0x4d, 0x6d, 0x7a, 0xc0, + 0xaf, 0x73, 0xef, 0xef, 0x36, 0x26, 0x0e, 0x4c, + 0x66, 0x28, 0xcf, 0x1b, 0x2e, 0x3f, 0xf2, 0x21, + 0xf7, 0xfd, 0xbc, 0xcf, 0x54, 0x78, 0x20, 0x75, + 0x37, 0xe6, 0xaf, 0x07, 0xf0, 0x02, 0xce, 0xa1, + 0xc2, 0x0c, 0x74, 0xd5, 0xc4, 0x12, 0x67, 0xcf, + 0x0a, 0xcf, 0x68, 0xbd, 0xac, 0x63, 0xc9, 0x48, + 0xd5, 0x17, 0x07, 0x74, 0xf5, 0x60, 0xb6, 0xea, + 0xdf, 0x1e, 0xea, 0x6d, 0x6a, 0x42, 0x12, 0xbc, + 0x2b, 0xe7, 0xf9, 0xe5, 0x78, 0xf1, 0x97, 0x1b, + 0x2d, 0xf4, 0x48, 0x57, 0xbc, 0x8d, 0xe6, 0xbd, + 0x7f, 0x1b, 0xee, 0xd9, 0xd4, 0x46, 0x47, 0xce, + 0x0e, 0xc6, 0x27, 0x1a, 0x77, 0xde, 0xfb, 0xc7, + 0xd4, 0xae, 0xfa, 0x3c, 0x79, 0x1e, 0x56, 0x57, + 0x7a, 0x32, 0x7d, 0xb7, 0x05, 0xbf, 0x09, 0xed, + 0xc4, 0x79, 0x6e, 0xbf, 0x6a, 0xdd, 0xe1, 0x75, + 0x39, 0xc7, 0xdd, 0xf1, 0xda, 0x8f, 0xef, 0x18, + 0x0b, 0xb3, 0x47, 0xaa, 0x1e, 0xf5, 0xc7, 0x87, + 0xb7, 0xed, 0x84, 0x6e, 0x98, 0x25, 0xf8, 0xcd, + 0xa2, 0x24, 0xf9, 0x91, 0xe6, 0xf8, 0xca, 0x95, + 0x4b, 0x3b, 0xc3, 0x17, 0x13, 0xd7, 0x5e, 0xde, + 0xd2, 0x83, 0xc1, 0xc4, 0x55, 0xd7, 0x4b, 0xd2, + 0xd3, 0xfb, 0xd4, 0xa9, 0xd5, 0x4f, 0xb8, 0x57, + 0x93, 0xca, 0x3a, 0x6e, 0x47, 0x6b, 0xfd, 0x79, + 0xc4, 0x5d, 0xdd, 0x56, 0x6f, 0xe0, 0xe9, 0xd4, + 0xe1, 0xd2, 0x9d, 0x0f, 0xc2, 0x9f, 0x46, 0xf3, + 0xf9, 0x00, 0xf1, 0x6b, 0xf8, 0xa1, 0xc0, 0xc6, + 0x31, 0x5a, 0x2f, 0x79, 0x32, 0xe2, 0x73, 0xf9, + 0xf1, 0x38, 0xf2, 0x33, 0x23, 0x43, 0xeb, 0x49, + 0xe2, 0x5e, 0xce, 0x8e, 0x55, 0x3e, 0xcc, 0xe1, + 0x3c, 0x5f, 0x3e, 0x95, 0x3f, 0x1d, 0x40, 0xde, + 0x5f, 0x72, 0xc2, 0x27, 0x99, 0x96, 0x1f, 0x59, + 0xb8, 0xb5, 0x47, 0xfa, 0x9b, 0x95, 0x6a, 0x21, + 0x64, 0x82, 0xea, 0xdd, 0x4c, 0xf6, 0xf1, 0x69, + 0xa6, 0xea, 0xf9, 0x8a, 0x44, 0x0b, 0xd9, 0xb2, + 0x13, 0x26, 0x16, 0xbd, 0x98, 0xb7, 0x4a, 0x7e, + 0x72, 0x32, 0x7a, 0x33, 0xaa, 0x40, 0xfe, 0x2a, + 0x9c, 0x7c, 0x18, 0x3a, 0x51, 0xfd, 0xcb, 0x02, + 0x78, 0xc7, 0x14, 0xf9, 0x9f, 0x60, 0x74, 0x21, + 0x2a, 0x59, 0xfd, 0x4f, 0x03, 0xf4, 0xad, 0x6b, + 0xf8, 0x76, 0x78, 0x2e, 0x7d, 0x4b, 0xc4, 0x12, + 0xf2, 0xd8, 0x6c, 0xa1, 0x0e, 0xcc, 0x8f, 0x52, + 0xfd, 0xf4, 0x27, 0xbe, 0x07, 0x87, 0x69, 0xfd, + 0xff, 0xc2, 0xd7, 0x67, 0xe6, 0x29, 0x3e, 0xfa, + 0x8d, 0xb0, 0xb0, 0xe3, 0xc0, 0x13, 0x78, 0x02, + 0xf1, 0x36, 0x77, 0xb9, 0x07, 0x7c, 0x29, 0xfd, + 0x4a, 0x54, 0x82, 0xfa, 0x8b, 0x7b, 0xa5, 0x2d, + 0xb8, 0x1d, 0x20, 0xaf, 0xcc, 0x0d, 0xf2, 0x66, + 0xce, 0x4f, 0xda, 0xdf, 0xa3, 0x29, 0x16, 0x16, + 0x36, 0x92, 0x3e, 0xbd, 0x83, 0x0e, 0x85, 0xd4, + 0x95, 0x7f, 0x79, 0x44, 0xde, 0x45, 0x4c, 0x63, + 0x5d, 0xe6, 0x10, 0xf7, 0x12, 0xd1, 0xfd, 0x7b, + 0xf8, 0xcf, 0xe8, 0x40, 0x2d, 0x3f, 0xf9, 0xc7, + 0x57, 0xaa, 0x2f, 0xdd, 0xdc, 0xe0, 0x21, 0x9c, + 0xff, 0x1f, 0x7f, 0x49, 0x7f, 0x82, 0xf0, 0x0d, + 0x65, 0xd7, 0xe8, 0xef, 0x23, 0xd9, 0x4f, 0x62, + 0xa7, 0x41, 0xf0, 0x60, 0xfc, 0x52, 0x6a, 0x6f, + 0xe5, 0xd7, 0x2c, 0xf2, 0x75, 0x4f, 0xc8, 0xef, + 0xf0, 0xd1, 0xac, 0xbb, 0xa9, 0x9b, 0xf4, 0xb2, + 0x2d, 0x71, 0xf7, 0xf6, 0x6b, 0x74, 0xc8, 0x24, + 0x12, 0x8f, 0x1f, 0x94, 0xd2, 0x7d, 0xb9, 0x92, + 0x47, 0xff, 0xed, 0x22, 0x3f, 0x90, 0x80, 0x1f, + 0x2d, 0x95, 0xa4, 0xf3, 0xf4, 0x20, 0xde, 0x7f, + 0xaa, 0xa4, 0x7c, 0x1a, 0x47, 0xbf, 0x56, 0x31, + 0x1a, 0x5f, 0x6f, 0x3e, 0x24, 0x9e, 0x9b, 0x7c, + 0xae, 0xfd, 0x46, 0x73, 0x6f, 0x0f, 0x0e, 0xa9, + 0x1f, 0xe8, 0x43, 0x3c, 0xcf, 0x3f, 0x5b, 0x0c, + 0x9e, 0xc5, 0xfa, 0x93, 0xbf, 0xd8, 0xa4, 0xfd, + 0x51, 0x87, 0x5b, 0x5e, 0x55, 0x3f, 0xf3, 0x2b, + 0xf1, 0x70, 0xa2, 0x42, 0x25, 0xf8, 0x0d, 0x9e, + 0x53, 0xc7, 0x5d, 0xf9, 0x3a, 0x8b, 0x75, 0x85, + 0xf6, 0x6c, 0x06, 0xbf, 0x14, 0x65, 0x21, 0x7f, + 0x34, 0x79, 0x6e, 0x96, 0x05, 0x59, 0xa8, 0x14, + 0xb9, 0x1e, 0x7e, 0x8f, 0xba, 0xd3, 0xad, 0x2e, + 0x7d, 0x87, 0x69, 0x43, 0xbf, 0xe6, 0x58, 0x5b, + 0x7a, 0x79, 0x09, 0xbd, 0xcd, 0xeb, 0xa6, 0x7e, + 0xba, 0x0c, 0x7a, 0x58, 0x78, 0x91, 0x75, 0x9b, + 0xb5, 0xc4, 0xc5, 0x17, 0x09, 0xd2, 0x53, 0xa7, + 0x51, 0x16, 0xce, 0xfd, 0xad, 0xf3, 0xdb, 0xc2, + 0xf7, 0x96, 0xb5, 0x56, 0xfe, 0xfd, 0x8a, 0xef, + 0x78, 0x72, 0xe1, 0x02, 0xdc, 0x03, 0x3f, 0xb2, + 0x74, 0xa7, 0xf2, 0x31, 0x8e, 0x3e, 0x65, 0xe6, + 0x3e, 0xad, 0x27, 0x8d, 0xfe, 0x69, 0x6c, 0x30, + 0x7d, 0x83, 0xe9, 0x91, 0x66, 0x61, 0x67, 0x92, + 0xf8, 0x62, 0xea, 0xce, 0x99, 0xfa, 0x8a, 0x5f, + 0x57, 0x7c, 0xc8, 0x67, 0xaf, 0xa5, 0x3f, 0xfb, + 0xf1, 0x6d, 0x09, 0x81, 0xf4, 0x2d, 0xe6, 0x2b, + 0x3e, 0xbf, 0xf5, 0x2b, 0x74, 0xd7, 0x14, 0xcc, + 0xb2, 0xb0, 0xc7, 0xb1, 0x13, 0x3c, 0x16, 0xfd, + 0x48, 0xbb, 0xa7, 0xbf, 0xaf, 0x64, 0x1d, 0x49, + 0x13, 0xa5, 0xa7, 0x87, 0x8f, 0x5a, 0xf8, 0x68, + 0x83, 0xfc, 0x44, 0x43, 0xde, 0x7b, 0xba, 0x01, + 0x71, 0x61, 0x4a, 0xe3, 0x63, 0xd2, 0xdb, 0xd2, + 0x07, 0x9a, 0x20, 0x7c, 0xfd, 0xa9, 0xa6, 0x8a, + 0xff, 0x23, 0xf8, 0xf1, 0xa8, 0x31, 0xaa, 0x2f, + 0x81, 0xd4, 0xeb, 0xf1, 0x23, 0x74, 0xde, 0xc5, + 0xf0, 0x59, 0xf5, 0xc7, 0xcb, 0xcf, 0xff, 0x81, + 0xbf, 0xf0, 0x7b, 0x20, 0xff, 0x79, 0xb1, 0x86, + 0x85, 0xb0, 0x8e, 0xba, 0xcf, 0xaa, 0xd4, 0xd9, + 0xfc, 0xf7, 0x14, 0xcf, 0x19, 0xe8, 0x46, 0x66, + 0x9c, 0xf4, 0x63, 0x25, 0xfb, 0xf5, 0xdb, 0x27, + 0x3f, 0x38, 0x95, 0xe7, 0x7f, 0x6b, 0xe4, 0xc7, + 0x0c, 0xf9, 0x55, 0xeb, 0x88, 0xfe, 0x3e, 0x08, + 0xbd, 0x58, 0x55, 0x5c, 0xdf, 0xcf, 0xe2, 0x9c, + 0xab, 0x24, 0xc9, 0x2f, 0x9c, 0x23, 0xaf, 0xdf, + 0x0c, 0xd0, 0x7d, 0xdd, 0xb8, 0x6c, 0x21, 0xbb, + 0x09, 0xbe, 0xcc, 0x9c, 0xe1, 0xbe, 0xba, 0x79, + 0xcf, 0x86, 0x6f, 0xa2, 0x7e, 0x7f, 0xbf, 0x41, + 0xfd, 0xc6, 0x71, 0x74, 0xcc, 0xa1, 0xbd, 0xfc, + 0xf1, 0x5b, 0xfc, 0xfd, 0xa9, 0xdf, 0xd1, 0x4d, + 0xd3, 0x90, 0x3c, 0xcf, 0x3e, 0xfa, 0x1f, 0xb8, + 0x0b, 0xba, 0xef, 0x70, 0x5a, 0xf9, 0xd2, 0x85, + 0xe7, 0x34, 0xbd, 0x80, 0x6f, 0x33, 0xf7, 0xd1, + 0x51, 0x97, 0x4e, 0xf2, 0xdf, 0x8e, 0xd4, 0x83, + 0x79, 0xa3, 0x94, 0xff, 0x41, 0xf8, 0xe7, 0x88, + 0xad, 0xea, 0x3f, 0x2b, 0x87, 0x58, 0x08, 0x4e, + 0x96, 0x5f, 0x58, 0x37, 0xda, 0xc2, 0xe8, 0xfe, + 0xf2, 0x73, 0xaf, 0xf6, 0x5b, 0x98, 0xb8, 0x9e, + 0x3a, 0x6d, 0x66, 0x94, 0x60, 0x5b, 0x23, 0xd4, + 0x0f, 0x4d, 0x40, 0x37, 0x47, 0x5d, 0x95, 0x1f, + 0xd9, 0x4a, 0x7e, 0x7b, 0xcf, 0x96, 0xff, 0x89, + 0x27, 0x1e, 0x7a, 0xdc, 0x93, 0x9f, 0x48, 0xe7, + 0xbc, 0x27, 0x9c, 0x52, 0xbf, 0xd2, 0x0b, 0xbd, + 0xff, 0xfd, 0x03, 0xe5, 0x77, 0xdb, 0x15, 0x16, + 0x26, 0x67, 0x68, 0xbe, 0xb3, 0x0d, 0x7f, 0xd5, + 0x67, 0x90, 0xd6, 0x3f, 0x85, 0x78, 0xbc, 0xf3, + 0x50, 0x7e, 0x79, 0x3a, 0xfe, 0xf8, 0xd3, 0xb9, + 0xf2, 0xc7, 0x6f, 0x59, 0xf7, 0x8c, 0x1d, 0xf2, + 0xaf, 0x77, 0xef, 0xb2, 0xed, 0xc6, 0xf8, 0x0e, + 0xf3, 0x9a, 0xb8, 0x78, 0xd3, 0x4f, 0x7e, 0xf9, + 0x08, 0xf5, 0x63, 0xf5, 0x01, 0xf9, 0xed, 0x50, + 0xee, 0xf3, 0x97, 0xb5, 0xd2, 0x17, 0x67, 0xee, + 0xeb, 0x76, 0x9c, 0xe2, 0x6b, 0x21, 0xfa, 0x38, + 0xbd, 0x9f, 0xf4, 0xcf, 0x9f, 0xf9, 0x90, 0x57, + 0x34, 0xbe, 0xcb, 0x1c, 0x40, 0x0f, 0x5e, 0xc4, + 0x73, 0xef, 0x26, 0x82, 0x7d, 0x2f, 0x2c, 0x62, + 0x2e, 0x60, 0xc2, 0xe8, 0x2b, 0x4e, 0x6c, 0x50, + 0x3f, 0x1a, 0x80, 0x5f, 0xdc, 0xec, 0x7c, 0x1a, + 0xde, 0x9e, 0x7b, 0x76, 0xac, 0xa0, 0x79, 0xdc, + 0x13, 0xe6, 0x34, 0x49, 0x15, 0x39, 0x07, 0xa3, + 0xb1, 0xd4, 0xc4, 0xc5, 0x35, 0xf8, 0x0f, 0x57, + 0xce, 0xeb, 0x9e, 0x97, 0xfc, 0xf2, 0x63, 0xfc, + 0xad, 0xc3, 0xec, 0x46, 0xf0, 0xde, 0xcc, 0x7f, + 0x1e, 0x7e, 0x2f, 0xbd, 0x37, 0xe8, 0x4c, 0x85, + 0xce, 0xea, 0x4f, 0xbe, 0xed, 0xc3, 0xb6, 0xa7, + 0x69, 0xbd, 0xe9, 0xd4, 0xcf, 0x95, 0x09, 0xe8, + 0x96, 0xe9, 0xcb, 0xba, 0x03, 0x72, 0x75, 0x1e, + 0x6e, 0xec, 0x7f, 0x7d, 0x92, 0xe6, 0x5b, 0xdf, + 0x71, 0x2e, 0x59, 0x99, 0xaa, 0x57, 0x2b, 0xd0, + 0xdb, 0x32, 0x79, 0xca, 0x87, 0x20, 0xe2, 0xa2, + 0x58, 0x96, 0xf2, 0xf9, 0x1c, 0x7a, 0x9a, 0x5a, + 0xa0, 0xfe, 0x69, 0x1b, 0x7d, 0xb6, 0x73, 0x91, + 0xf2, 0xed, 0x20, 0xf3, 0x88, 0xd5, 0xdd, 0x88, + 0x4b, 0xf3, 0x0b, 0x71, 0x1a, 0x5f, 0x4c, 0xe7, + 0x51, 0x8e, 0xf5, 0x9f, 0xdf, 0xdc, 0x41, 0xef, + 0x63, 0x1d, 0x0e, 0xef, 0x7e, 0xa9, 0xed, 0x11, + 0x4f, 0x79, 0x4b, 0x55, 0xaf, 0x0b, 0xb8, 0xcf, + 0x0b, 0x6f, 0x14, 0x4f, 0xcf, 0xa8, 0x47, 0x5f, + 0x3f, 0x25, 0x8e, 0x8c, 0xf7, 0x57, 0x16, 0x8e, + 0xa5, 0xc8, 0x2f, 0xb9, 0xa2, 0x73, 0xdf, 0xc5, + 0xc8, 0x3f, 0xd4, 0x44, 0xa7, 0x3d, 0x63, 0xa4, + 0x37, 0x4d, 0x88, 0x9f, 0x44, 0x07, 0xe9, 0xb5, + 0x23, 0xf7, 0x75, 0x7c, 0x97, 0xfa, 0x8f, 0x7d, + 0xcc, 0x9d, 0x46, 0x76, 0xd1, 0x7c, 0xec, 0x14, + 0x79, 0xb3, 0x60, 0x9c, 0xf4, 0xc2, 0x83, 0xf5, + 0x86, 0x87, 0xa2, 0x33, 0x66, 0x39, 0xf5, 0x24, + 0xb7, 0xb5, 0xfc, 0xee, 0x3b, 0xf4, 0xd1, 0x83, + 0x26, 0x2b, 0x3e, 0xe7, 0xa3, 0x3b, 0xee, 0xb3, + 0xe4, 0x77, 0x1a, 0xa1, 0x2b, 0x35, 0x27, 0xa9, + 0x5f, 0xaf, 0x86, 0x7f, 0x70, 0xe8, 0xf2, 0x31, + 0xbc, 0x14, 0xf5, 0xc3, 0xb9, 0x03, 0xcf, 0x35, + 0x97, 0xd0, 0xf1, 0xd7, 0x57, 0x34, 0x6f, 0xfd, + 0x16, 0x7f, 0xe1, 0x9a, 0xaa, 0xf8, 0x38, 0x4c, + 0xfc, 0x6c, 0xc8, 0xe2, 0x7b, 0x66, 0x33, 0xfd, + 0xfc, 0x75, 0x4f, 0xad, 0x3f, 0x9d, 0xfd, 0x65, + 0x24, 0xca, 0x5f, 0xfd, 0x40, 0x1d, 0xcd, 0xb8, + 0xa5, 0xf9, 0xe1, 0x0a, 0xea, 0x67, 0x2f, 0x37, + 0xc5, 0x4b, 0x4b, 0xf2, 0x31, 0xe8, 0xa6, 0xe6, + 0x0b, 0xe7, 0xd1, 0xbd, 0x81, 0xc1, 0xca, 0xc7, + 0x73, 0xd4, 0xb3, 0xb1, 0xf9, 0xba, 0xcf, 0x16, + 0xcc, 0xbd, 0xfe, 0x2c, 0xfa, 0xa7, 0x9e, 0x50, + 0x1f, 0x52, 0x2f, 0x0e, 0x80, 0x3f, 0x47, 0x17, + 0xf3, 0x23, 0xa4, 0xe7, 0xb9, 0xf8, 0xcd, 0xca, + 0xae, 0xf2, 0xff, 0x0f, 0xa8, 0x33, 0x79, 0xfd, + 0x55, 0x6f, 0x6a, 0xf0, 0xb9, 0x13, 0x0e, 0xc4, + 0x91, 0xb9, 0x46, 0x5c, 0xc6, 0xcf, 0x51, 0x3f, + 0xff, 0x27, 0xf3, 0x92, 0xcd, 0x67, 0xb4, 0xdf, + 0xde, 0xf4, 0x3b, 0x33, 0xdc, 0xe5, 0x1f, 0xbe, + 0xe1, 0x5c, 0xab, 0xa7, 0xab, 0xbe, 0xf7, 0xa7, + 0xbe, 0xba, 0x37, 0x51, 0xfe, 0xde, 0xa7, 0x0e, + 0xdd, 0x6d, 0xa4, 0xfb, 0x0c, 0xc1, 0xb7, 0xd7, + 0xb9, 0xa1, 0xf9, 0xac, 0x1f, 0x7e, 0xa4, 0xdd, + 0x29, 0xcd, 0xcf, 0xa7, 0xe2, 0xef, 0xdf, 0x0f, + 0xce, 0x83, 0xc7, 0x26, 0x5b, 0x48, 0xd0, 0xdc, + 0xd6, 0x14, 0xa1, 0x2f, 0x61, 0x55, 0xb5, 0xfe, + 0xcf, 0x30, 0xce, 0x8f, 0x73, 0xf4, 0xbc, 0x21, + 0xc4, 0x5f, 0xf7, 0xe2, 0xf2, 0x27, 0x25, 0x99, + 0x1b, 0xf9, 0x0c, 0xda, 0x0a, 0x6f, 0x84, 0xdf, + 0xa8, 0xd7, 0xfd, 0x6b, 0x78, 0x39, 0xb8, 0x73, + 0x34, 0x3a, 0x6f, 0x32, 0xd0, 0x95, 0xbb, 0x2e, + 0x8a, 0xd7, 0x24, 0xf6, 0xeb, 0x51, 0x0f, 0x5f, + 0x6b, 0xc6, 0x72, 0x9f, 0x6d, 0x07, 0x4b, 0xef, + 0xdb, 0x3d, 0xb5, 0x70, 0xe8, 0xa5, 0xfa, 0xb9, + 0x01, 0xdc, 0x5f, 0xc3, 0x1d, 0xea, 0x97, 0xe3, + 0x39, 0x87, 0xfd, 0x27, 0x75, 0x7f, 0xfe, 0xf8, + 0xb8, 0xc2, 0x36, 0x3a, 0xcf, 0x67, 0xf0, 0x13, + 0x17, 0xd1, 0x5d, 0xe3, 0xca, 0xdc, 0x7f, 0x9d, + 0xaf, 0xea, 0xc7, 0x24, 0xf6, 0x57, 0xf1, 0xa5, + 0xfa, 0xab, 0xd2, 0xdc, 0xf7, 0xe5, 0x89, 0xea, + 0x7f, 0x8b, 0x93, 0x9f, 0x23, 0x0a, 0xe5, 0x5f, + 0x6b, 0x31, 0xaf, 0x2a, 0x93, 0x26, 0xfd, 0xd9, + 0x46, 0xfc, 0xf4, 0x4e, 0x67, 0x4e, 0x68, 0x9a, + 0xe3, 0xeb, 0xf7, 0x6e, 0x95, 0xbf, 0x0e, 0x20, + 0xee, 0x8a, 0xe5, 0xa8, 0x3f, 0x8b, 0x21, 0xcf, + 0x9c, 0x53, 0x3c, 0xf5, 0x3c, 0xe2, 0xc2, 0x39, + 0x5f, 0xf1, 0xeb, 0xc3, 0x5c, 0x78, 0xf8, 0x73, + 0x7d, 0x5e, 0xf3, 0xbe, 0xd5, 0x3f, 0xc8, 0x6f, + 0xcc, 0xc3, 0xb7, 0x7e, 0x59, 0x4e, 0xf7, 0x3d, + 0x08, 0x5f, 0x7b, 0xbe, 0xa5, 0xfe, 0x1e, 0x8e, + 0x1f, 0xf2, 0xcb, 0x57, 0x7e, 0xad, 0xe1, 0x9c, + 0xe6, 0xde, 0x90, 0x7e, 0xdd, 0xc1, 0x2f, 0x94, + 0x3f, 0x31, 0x0f, 0xbe, 0x82, 0xba, 0x59, 0xb0, + 0x5c, 0xf7, 0x77, 0x97, 0x39, 0xf2, 0x9a, 0xbd, + 0xf4, 0x75, 0xa6, 0x3f, 0x3a, 0xe4, 0xbc, 0x4b, + 0xbf, 0xff, 0x6c, 0xc3, 0x47, 0xbe, 0xcc, 0xd5, + 0x7d, 0x0e, 0x8d, 0xb2, 0x70, 0x69, 0x91, 0xf2, + 0xe3, 0x47, 0xce, 0x75, 0x6f, 0x8e, 0xe2, 0xeb, + 0x32, 0x7a, 0xdc, 0xb7, 0x73, 0x75, 0xf8, 0x61, + 0xea, 0xfa, 0xeb, 0x71, 0xf2, 0x07, 0xc3, 0x39, + 0x37, 0xa7, 0x8d, 0xf2, 0x13, 0x43, 0xc9, 0xdb, + 0x86, 0x6e, 0xaa, 0xaf, 0x5b, 0xc8, 0x97, 0x6b, + 0x4e, 0xe8, 0xa8, 0xd9, 0x84, 0x4e, 0x17, 0x2d, + 0x52, 0x7d, 0x4d, 0xa1, 0x2f, 0xac, 0x3c, 0x5e, + 0xfa, 0xe4, 0x43, 0xdc, 0x0d, 0xe8, 0xcd, 0xdc, + 0xc6, 0xac, 0xfa, 0xc4, 0x42, 0xf3, 0xdd, 0xf8, + 0x04, 0x33, 0xf2, 0x5d, 0x0b, 0x5e, 0xcd, 0xb9, + 0x47, 0x53, 0x9b, 0x79, 0x9f, 0xbf, 0x3f, 0xbe, + 0xd1, 0xfc, 0x8e, 0x5e, 0x4e, 0xb9, 0x2c, 0x7d, + 0x0b, 0x60, 0x6e, 0x34, 0x39, 0x44, 0xe7, 0x3b, + 0x01, 0xff, 0x91, 0x1c, 0xa9, 0xfe, 0xaa, 0x37, + 0xf3, 0xc8, 0x9a, 0x1f, 0x77, 0x83, 0x8f, 0xe1, + 0xbe, 0xeb, 0x07, 0x3f, 0xd5, 0xe7, 0x59, 0x87, + 0xe7, 0x43, 0xbd, 0xbf, 0x2e, 0xba, 0x93, 0xbe, + 0x4b, 0xf3, 0xdc, 0x8f, 0xd0, 0xf1, 0xa8, 0x96, + 0xaa, 0xe7, 0x2f, 0x4e, 0x5a, 0xc8, 0x39, 0xae, + 0xfb, 0x08, 0x66, 0x7f, 0x6b, 0xee, 0x6b, 0x1e, + 0x75, 0x91, 0x38, 0xac, 0x1a, 0xa9, 0x7c, 0xf9, + 0x91, 0xf7, 0xbd, 0x9f, 0xa5, 0x7e, 0x72, 0x1c, + 0xbe, 0xb6, 0x67, 0xa2, 0x7e, 0x4f, 0xe8, 0xc3, + 0x3d, 0x9f, 0xbb, 0xa2, 0xfe, 0x3d, 0xe2, 0x8a, + 0x85, 0x49, 0x19, 0xfa, 0xbd, 0xc2, 0x83, 0xf3, + 0xef, 0x79, 0x02, 0x5d, 0x31, 0xb7, 0xd1, 0xfb, + 0x69, 0x9e, 0xe8, 0x86, 0x39, 0x44, 0x9d, 0x1a, + 0xfa, 0x19, 0xbe, 0xd8, 0x34, 0xa7, 0x5f, 0x76, + 0xae, 0xa3, 0x79, 0xfc, 0x34, 0xe6, 0x45, 0x6b, + 0xca, 0xe8, 0xfd, 0xad, 0xa8, 0xa7, 0xf9, 0x0d, + 0x55, 0xaf, 0xd2, 0x88, 0x93, 0x80, 0x41, 0xf8, + 0x38, 0x93, 0x4a, 0x5c, 0x3a, 0x46, 0xab, 0xbe, + 0x5d, 0x26, 0xae, 0xf6, 0x6e, 0x51, 0x3d, 0xcc, + 0x45, 0x2f, 0x3b, 0x9c, 0x96, 0x1f, 0xff, 0x84, + 0x3c, 0x48, 0x8e, 0x53, 0xbf, 0x36, 0x18, 0xbd, + 0x75, 0x7c, 0xa4, 0xfe, 0x29, 0x0b, 0x3d, 0x3e, + 0xea, 0x2a, 0xbf, 0xe7, 0x17, 0x63, 0xa1, 0x4e, + 0x49, 0xf9, 0xfb, 0xa5, 0xf8, 0xb2, 0x93, 0x51, + 0xba, 0x9f, 0xe5, 0xcc, 0x71, 0xf7, 0xd6, 0x53, + 0xbf, 0x57, 0x89, 0x7c, 0x89, 0x9a, 0x2b, 0xbf, + 0xd4, 0x8c, 0xdf, 0x95, 0x32, 0x26, 0xab, 0xbe, + 0x5e, 0xe6, 0xf7, 0x84, 0xa0, 0x62, 0x9a, 0xbf, + 0x5d, 0x21, 0xce, 0x06, 0x2d, 0x57, 0xbe, 0xbe, + 0x26, 0xbf, 0x5c, 0x6b, 0x68, 0x7d, 0x5d, 0x38, + 0xd7, 0x93, 0xa5, 0xd5, 0xcf, 0x4c, 0xa0, 0xff, + 0x7e, 0xbb, 0x4e, 0xf5, 0x38, 0x0d, 0x1f, 0xd2, + 0xdb, 0x51, 0x7a, 0xb5, 0x17, 0xbd, 0x8e, 0xbd, + 0xad, 0x79, 0xee, 0x02, 0x74, 0xae, 0x54, 0x36, + 0x73, 0xfd, 0x7f, 0xe6, 0x5d, 0x57, 0xdd, 0xa4, + 0x37, 0x4e, 0xdc, 0x53, 0x8b, 0xca, 0x8a, 0xbf, + 0xad, 0xe8, 0xc8, 0xc0, 0xb0, 0x29, 0x3a, 0x9f, + 0xaa, 0x16, 0xda, 0xd5, 0x93, 0xbf, 0x7c, 0x0f, + 0xdd, 0xbb, 0xff, 0x48, 0xf5, 0xf0, 0x21, 0x73, + 0xd2, 0xa6, 0x2d, 0x74, 0x3e, 0xe3, 0xf1, 0x29, + 0x35, 0x36, 0xea, 0xf7, 0x03, 0x47, 0xe2, 0xbe, + 0x47, 0xa8, 0xfa, 0x8f, 0x19, 0xe8, 0xd8, 0xb5, + 0xce, 0xea, 0x1f, 0x63, 0x88, 0xa3, 0xc8, 0xdd, + 0xf8, 0x4c, 0x53, 0x88, 0x5e, 0x5e, 0x3f, 0x24, + 0x23, 0xe8, 0x83, 0xbe, 0x8d, 0xce, 0xd6, 0xfd, + 0x5c, 0xa7, 0xee, 0x54, 0xfc, 0x44, 0xfd, 0x54, + 0x32, 0xfd, 0xc8, 0x8a, 0xcd, 0xc4, 0x89, 0xd9, + 0x47, 0x9d, 0xed, 0xb4, 0x5d, 0xf5, 0x79, 0x3d, + 0xf9, 0x5b, 0xe5, 0xac, 0xf2, 0xa7, 0x16, 0xfb, + 0x88, 0xf5, 0xd1, 0xbc, 0xba, 0x17, 0x7d, 0xf4, + 0xc9, 0x07, 0x93, 0xe0, 0xaf, 0x99, 0xef, 0x6d, + 0x7c, 0x85, 0x4e, 0x9b, 0xe2, 0xcc, 0xbb, 0xdc, + 0xd7, 0xaa, 0xbe, 0x2e, 0xe6, 0xfe, 0x9e, 0x04, + 0x4b, 0xef, 0x7a, 0x90, 0x7f, 0x6f, 0x42, 0x54, + 0xbf, 0x5c, 0xc8, 0xcb, 0x5e, 0x53, 0x63, 0xe0, + 0xbe, 0xf8, 0xd2, 0x65, 0x71, 0xcc, 0x99, 0x4c, + 0x13, 0xf6, 0x73, 0xeb, 0x37, 0xcd, 0xf3, 0x5d, + 0xf0, 0x93, 0x75, 0x3d, 0xb4, 0x9e, 0xd3, 0xe8, + 0xe4, 0x30, 0x77, 0xfd, 0x9e, 0xbb, 0x88, 0x3a, + 0xba, 0x33, 0x9f, 0xdf, 0x3d, 0xcc, 0x38, 0x7e, + 0xf7, 0xed, 0x96, 0xa5, 0xfd, 0x76, 0x27, 0xae, + 0x3e, 0x88, 0x55, 0xff, 0x3b, 0x97, 0xfd, 0xe6, + 0x95, 0xd7, 0xbc, 0xad, 0x23, 0xf7, 0xb1, 0xdd, + 0x5b, 0xf3, 0xc5, 0x68, 0xe6, 0xe4, 0x0b, 0x02, + 0x0e, 0xc1, 0x27, 0x70, 0xdf, 0x0b, 0x9c, 0xd4, + 0x0f, 0x37, 0xa6, 0xbe, 0x4e, 0xee, 0xaa, 0x7a, + 0xb8, 0x19, 0xdd, 0x48, 0xed, 0xae, 0xfa, 0x1a, + 0x46, 0x3f, 0x7f, 0x7f, 0x8a, 0xea, 0xfb, 0x7e, + 0xf2, 0x3b, 0x32, 0x41, 0xfe, 0xa2, 0x0d, 0x3a, + 0xec, 0x18, 0x31, 0x4b, 0xfb, 0xe3, 0x7d, 0xa1, + 0x09, 0xca, 0xdf, 0x3b, 0xbe, 0xff, 0x03, 0x4e, + 0x9a, 0x03, 0x4d +}; + +#endif
commit 4ce3d7c700607b433718de07f875184cf3fcef35 Author: Dmitry Eremin-Solenikov dmitry.ereminsolenikov@linaro.org Date: Thu Nov 29 13:56:27 2018 +0300
linux-gen: event: define ODP_EVENT_PACKET_COMP
Signed-off-by: Dmitry Eremin-Solenikov dmitry.ereminsolenikov@linaro.org Reviewed-by: Bill Fischofer bill.fischofer@linaro.org Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org
diff --git a/include/odp/api/spec/event.h b/include/odp/api/spec/event.h index a6b8fdbf..162fd5a7 100644 --- a/include/odp/api/spec/event.h +++ b/include/odp/api/spec/event.h @@ -79,7 +79,7 @@ extern "C" { * - ODP_EVENT_PACKET_BASIC * - Packet event (odp_packet_t) with basic packet metadata * - ODP_EVENT_PACKET_COMP - * - Packet event (odp_packet_t) generated as a result of an compression/ + * - Packet event (odp_packet_t) generated as a result of a compression/ * decompression operation. It contains compression specific metadata in * addition to the basic packet metadata. * - ODP_EVENT_PACKET_CRYPTO diff --git a/platform/linux-generic/include-abi/odp/api/abi/event.h b/platform/linux-generic/include-abi/odp/api/abi/event.h index d7bd57c0..a8024654 100644 --- a/platform/linux-generic/include-abi/odp/api/abi/event.h +++ b/platform/linux-generic/include-abi/odp/api/abi/event.h @@ -40,7 +40,8 @@ typedef enum odp_event_subtype_t { ODP_EVENT_NO_SUBTYPE = 0, ODP_EVENT_PACKET_BASIC = 1, ODP_EVENT_PACKET_CRYPTO = 2, - ODP_EVENT_PACKET_IPSEC = 3 + ODP_EVENT_PACKET_IPSEC = 3, + ODP_EVENT_PACKET_COMP = 4 } odp_event_subtype_t;
/* Inlined functions for non-ABI compat mode */
commit 44820ab64901d087c428a0de52f576d3e27d2599 Author: Dmitry Eremin-Solenikov dmitry.ereminsolenikov@linaro.org Date: Thu Nov 29 13:53:00 2018 +0300
linux-gen: add compression ABI file
Signed-off-by: Dmitry Eremin-Solenikov dmitry.ereminsolenikov@linaro.org Reviewed-by: Bill Fischofer bill.fischofer@linaro.org Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org
diff --git a/platform/linux-generic/Makefile.am b/platform/linux-generic/Makefile.am index f21fbf70..7c76a4f9 100644 --- a/platform/linux-generic/Makefile.am +++ b/platform/linux-generic/Makefile.am @@ -52,6 +52,7 @@ odpapiabiarchinclude_HEADERS += \ include-abi/odp/api/abi/buffer.h \ include-abi/odp/api/abi/byteorder.h \ include-abi/odp/api/abi/classification.h \ + include-abi/odp/api/abi/comp.h \ include-abi/odp/api/abi/cpumask.h \ include-abi/odp/api/abi/crypto.h \ include-abi/odp/api/abi/debug.h \ diff --git a/platform/linux-generic/include-abi/odp/api/abi/comp.h b/platform/linux-generic/include-abi/odp/api/abi/comp.h new file mode 100644 index 00000000..ac3d3a4a --- /dev/null +++ b/platform/linux-generic/include-abi/odp/api/abi/comp.h @@ -0,0 +1,34 @@ +/* Copyright (c) 2018, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#ifndef ODP_ABI_COMP_H_ +#define ODP_ABI_COMP_H_ + +#include <odp/api/plat/strong_types.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#include <stdint.h> + +/** @ingroup odp_compression + * @{ + */ + +typedef ODP_HANDLE_T(odp_comp_session_t); + +#define ODP_COMP_SESSION_INVALID _odp_cast_scalar(odp_comp_session_t, 0) + +/** + * @} + */ + +#ifdef __cplusplus +} +#endif + +#endif
commit 5d9c339a04cd766449b3bef701f3baa8fb0d2b8e Author: Dmitry Eremin-Solenikov dmitry.ereminsolenikov@linaro.org Date: Thu Nov 29 13:56:17 2018 +0300
api: event: define ODP_EVENT_PACKET_COMP
Signed-off-by: Dmitry Eremin-Solenikov dmitry.ereminsolenikov@linaro.org Reviewed-by: Bill Fischofer bill.fischofer@linaro.org Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org
diff --git a/include/odp/api/abi-default/event.h b/include/odp/api/abi-default/event.h index b0eee9cb..3f88681b 100644 --- a/include/odp/api/abi-default/event.h +++ b/include/odp/api/abi-default/event.h @@ -36,7 +36,8 @@ typedef enum odp_event_subtype_t { ODP_EVENT_NO_SUBTYPE = 0, ODP_EVENT_PACKET_BASIC = 1, ODP_EVENT_PACKET_CRYPTO = 2, - ODP_EVENT_PACKET_IPSEC = 3 + ODP_EVENT_PACKET_IPSEC = 3, + ODP_EVENT_PACKET_COMP = 4 } odp_event_subtype_t;
/** diff --git a/include/odp/api/spec/event.h b/include/odp/api/spec/event.h index affdc7b0..a6b8fdbf 100644 --- a/include/odp/api/spec/event.h +++ b/include/odp/api/spec/event.h @@ -78,6 +78,10 @@ extern "C" { * List of event subtypes: * - ODP_EVENT_PACKET_BASIC * - Packet event (odp_packet_t) with basic packet metadata + * - ODP_EVENT_PACKET_COMP + * - Packet event (odp_packet_t) generated as a result of an compression/ + * decompression operation. It contains compression specific metadata in + * addition to the basic packet metadata. * - ODP_EVENT_PACKET_CRYPTO * - Packet event (odp_packet_t) generated as a result of a Crypto * operation. It contains crypto specific metadata in addition to the
commit 126798b957b0fcc6f55ab93ee0cd50c2a9eb62a2 Author: Dmitry Eremin-Solenikov dmitry.ereminsolenikov@linaro.org Date: Thu Nov 29 13:46:35 2018 +0300
api: fix compression API headers
- small syntax typo fix - fix header guarding define - add abi files - include comp.h from odp_api.h header
Signed-off-by: Dmitry Eremin-Solenikov dmitry.ereminsolenikov@linaro.org Reviewed-by: Bill Fischofer bill.fischofer@linaro.org Signed-off-by: Maxim Uvarov maxim.uvarov@linaro.org
diff --git a/include/Makefile.am b/include/Makefile.am index 97f52840..49ed0164 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -16,6 +16,7 @@ odpapiinclude_HEADERS = \ odp/api/byteorder.h \ odp/api/chksum.h \ odp/api/classification.h \ + odp/api/comp.h \ odp/api/cpu.h \ odp/api/cpumask.h \ odp/api/crypto.h \ @@ -65,6 +66,7 @@ odpapispecinclude_HEADERS = \ odp/api/spec/byteorder.h \ odp/api/spec/chksum.h \ odp/api/spec/classification.h \ + odp/api/spec/comp.h \ odp/api/spec/cpu.h \ odp/api/spec/cpumask.h \ odp/api/spec/crypto.h \ @@ -117,6 +119,7 @@ odpapiabidefaultinclude_HEADERS = \ odp/api/abi-default/buffer.h \ odp/api/abi-default/byteorder.h \ odp/api/abi-default/classification.h \ + odp/api/abi-default/comp.h \ odp/api/abi-default/cpu.h \ odp/api/abi-default/cpumask.h \ odp/api/abi-default/crypto.h \ @@ -159,6 +162,7 @@ odpapiabiarchinclude_HEADERS = \ odp/arch/arm32-linux/odp/api/abi/buffer.h \ odp/arch/arm32-linux/odp/api/abi/byteorder.h \ odp/arch/arm32-linux/odp/api/abi/classification.h \ + odp/arch/arm32-linux/odp/api/abi/comp.h \ odp/arch/arm32-linux/odp/api/abi/cpu.h \ odp/arch/arm32-linux/odp/api/abi/cpumask.h \ odp/arch/arm32-linux/odp/api/abi/crypto.h \ @@ -197,6 +201,7 @@ odpapiabiarchinclude_HEADERS = \ odp/arch/arm64-linux/odp/api/abi/buffer.h \ odp/arch/arm64-linux/odp/api/abi/byteorder.h \ odp/arch/arm64-linux/odp/api/abi/classification.h \ + odp/arch/arm64-linux/odp/api/abi/comp.h \ odp/arch/arm64-linux/odp/api/abi/cpu.h \ odp/arch/arm64-linux/odp/api/abi/cpumask.h \ odp/arch/arm64-linux/odp/api/abi/crypto.h \ @@ -235,6 +240,7 @@ odpapiabiarchinclude_HEADERS = \ odp/arch/default-linux/odp/api/abi/buffer.h \ odp/arch/default-linux/odp/api/abi/byteorder.h \ odp/arch/default-linux/odp/api/abi/classification.h \ + odp/arch/default-linux/odp/api/abi/comp.h \ odp/arch/default-linux/odp/api/abi/cpu.h \ odp/arch/default-linux/odp/api/abi/cpumask.h \ odp/arch/default-linux/odp/api/abi/crypto.h \ @@ -273,6 +279,7 @@ odpapiabiarchinclude_HEADERS = \ odp/arch/mips64-linux/odp/api/abi/buffer.h \ odp/arch/mips64-linux/odp/api/abi/byteorder.h \ odp/arch/mips64-linux/odp/api/abi/classification.h \ + odp/arch/mips64-linux/odp/api/abi/comp.h \ odp/arch/mips64-linux/odp/api/abi/cpu.h \ odp/arch/mips64-linux/odp/api/abi/cpumask.h \ odp/arch/mips64-linux/odp/api/abi/crypto.h \ @@ -311,6 +318,7 @@ odpapiabiarchinclude_HEADERS = \ odp/arch/power64-linux/odp/api/abi/buffer.h \ odp/arch/power64-linux/odp/api/abi/byteorder.h \ odp/arch/power64-linux/odp/api/abi/classification.h \ + odp/arch/power64-linux/odp/api/abi/comp.h \ odp/arch/power64-linux/odp/api/abi/cpu.h \ odp/arch/power64-linux/odp/api/abi/cpumask.h \ odp/arch/power64-linux/odp/api/abi/crypto.h \ @@ -349,6 +357,7 @@ odpapiabiarchinclude_HEADERS = \ odp/arch/x86_32-linux/odp/api/abi/buffer.h \ odp/arch/x86_32-linux/odp/api/abi/byteorder.h \ odp/arch/x86_32-linux/odp/api/abi/classification.h \ + odp/arch/x86_32-linux/odp/api/abi/comp.h \ odp/arch/x86_32-linux/odp/api/abi/cpu.h \ odp/arch/x86_32-linux/odp/api/abi/cpumask.h \ odp/arch/x86_32-linux/odp/api/abi/crypto.h \ @@ -387,6 +396,7 @@ odpapiabiarchinclude_HEADERS = \ odp/arch/x86_64-linux/odp/api/abi/buffer.h \ odp/arch/x86_64-linux/odp/api/abi/byteorder.h \ odp/arch/x86_64-linux/odp/api/abi/classification.h \ + odp/arch/x86_64-linux/odp/api/abi/comp.h \ odp/arch/x86_64-linux/odp/api/abi/cpu.h \ odp/arch/x86_64-linux/odp/api/abi/cpumask.h \ odp/arch/x86_64-linux/odp/api/abi/crypto.h \ diff --git a/include/odp/api/comp.h b/include/odp/api/comp.h new file mode 100644 index 00000000..59d4f52a --- /dev/null +++ b/include/odp/api/comp.h @@ -0,0 +1,30 @@ +/* Copyright (c) 2018, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +/** + * @file + * + * ODP crypto + */ + +#ifndef ODP_API_COMP_H_ +#define ODP_API_COMP_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include <odp/api/abi/comp.h> +#include <odp/api/abi/event.h> +#include <odp/api/abi/queue.h> + +#include <odp/api/spec/comp.h> + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/odp/api/spec/comp.h b/include/odp/api/spec/comp.h index a5eb5a23..e0271919 100644 --- a/include/odp/api/spec/comp.h +++ b/include/odp/api/spec/comp.h @@ -10,8 +10,8 @@ * ODP Compression */
-#ifndef ODP_API_COMP_H_ -#define ODP_API_COMP_H_ +#ifndef ODP_API_SPEC_COMP_H_ +#define ODP_API_SPEC_COMP_H_
#include <odp/visibility_begin.h> #include <odp/api/support.h> @@ -121,7 +121,7 @@ typedef union odp_comp_hash_algos_t { /** hash algorithms */ struct { /** ODP_COMP_HASH_ALG_NONE */ - uint32_t none : 1, + uint32_t none : 1;
/** ODP_COMP_HASH_ALG_SHA1 */ uint32_t sha1 : 1; @@ -181,7 +181,7 @@ typedef struct odp_comp_capability_t { /** Synchronous compression mode support (ODP_COMP_OP_MODE_SYNC) */ odp_support_t sync;
- /** Aynchronous compression mode support (ODP_COMP_OP_MODE_SSYNC) */ + /** Aynchronous compression mode support (ODP_COMP_OP_MODE_ASYNC) */ odp_support_t async; } odp_comp_capability_t;
@@ -343,7 +343,7 @@ typedef struct odp_comp_packet_result_t { /** Output packet data range * Specifies offset and length of data resulting from compression * operation. When hashing is configured output_data_range.len equals - * length of output data + 'digest+len' + * length of output data + length of digest. */ odp_packet_data_range_t output_data_range; } odp_comp_packet_result_t; diff --git a/include/odp/arch/arm32-linux/odp/api/abi/comp.h b/include/odp/arch/arm32-linux/odp/api/abi/comp.h new file mode 100644 index 00000000..a8f6439f --- /dev/null +++ b/include/odp/arch/arm32-linux/odp/api/abi/comp.h @@ -0,0 +1,7 @@ +/* Copyright (c) 2018, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#include <odp/api/abi-default/comp.h> diff --git a/include/odp/arch/arm64-linux/odp/api/abi/comp.h b/include/odp/arch/arm64-linux/odp/api/abi/comp.h new file mode 100644 index 00000000..a8f6439f --- /dev/null +++ b/include/odp/arch/arm64-linux/odp/api/abi/comp.h @@ -0,0 +1,7 @@ +/* Copyright (c) 2018, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#include <odp/api/abi-default/comp.h> diff --git a/include/odp/arch/default-linux/odp/api/abi/comp.h b/include/odp/arch/default-linux/odp/api/abi/comp.h new file mode 100644 index 00000000..a8f6439f --- /dev/null +++ b/include/odp/arch/default-linux/odp/api/abi/comp.h @@ -0,0 +1,7 @@ +/* Copyright (c) 2018, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#include <odp/api/abi-default/comp.h> diff --git a/include/odp/arch/mips64-linux/odp/api/abi/comp.h b/include/odp/arch/mips64-linux/odp/api/abi/comp.h new file mode 100644 index 00000000..a8f6439f --- /dev/null +++ b/include/odp/arch/mips64-linux/odp/api/abi/comp.h @@ -0,0 +1,7 @@ +/* Copyright (c) 2018, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#include <odp/api/abi-default/comp.h> diff --git a/include/odp/arch/power64-linux/odp/api/abi/comp.h b/include/odp/arch/power64-linux/odp/api/abi/comp.h new file mode 100644 index 00000000..a8f6439f --- /dev/null +++ b/include/odp/arch/power64-linux/odp/api/abi/comp.h @@ -0,0 +1,7 @@ +/* Copyright (c) 2018, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#include <odp/api/abi-default/comp.h> diff --git a/include/odp/arch/x86_32-linux/odp/api/abi/comp.h b/include/odp/arch/x86_32-linux/odp/api/abi/comp.h new file mode 100644 index 00000000..a8f6439f --- /dev/null +++ b/include/odp/arch/x86_32-linux/odp/api/abi/comp.h @@ -0,0 +1,7 @@ +/* Copyright (c) 2018, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#include <odp/api/abi-default/comp.h> diff --git a/include/odp/arch/x86_64-linux/odp/api/abi/comp.h b/include/odp/arch/x86_64-linux/odp/api/abi/comp.h new file mode 100644 index 00000000..a8f6439f --- /dev/null +++ b/include/odp/arch/x86_64-linux/odp/api/abi/comp.h @@ -0,0 +1,7 @@ +/* Copyright (c) 2018, Linaro Limited + * All rights reserved. + * + * SPDX-License-Identifier: BSD-3-Clause + */ + +#include <odp/api/abi-default/comp.h> diff --git a/include/odp_api.h b/include/odp_api.h index 2185e60a..66b39e31 100644 --- a/include/odp_api.h +++ b/include/odp_api.h @@ -24,6 +24,7 @@ extern "C" { #include <odp/api/align.h> #include <odp/api/hash.h> #include <odp/api/chksum.h> +#include <odp/api/comp.h> #include <odp/api/hints.h> #include <odp/api/debug.h> #include <odp/api/byteorder.h>
-----------------------------------------------------------------------
Summary of changes: include/Makefile.am | 10 + include/odp/api/abi-default/event.h | 3 +- include/odp/api/{event.h => comp.h} | 12 +- include/odp/api/spec/comp.h | 10 +- include/odp/api/spec/event.h | 4 + .../odp/arch/arm32-linux/odp/api/abi/comp.h | 4 +- .../odp/arch/arm64-linux/odp/api/abi/comp.h | 4 +- .../odp/arch/default-linux/odp/api/abi/comp.h | 4 +- .../odp/arch/mips64-linux/odp/api/abi/comp.h | 4 +- .../odp/arch/power64-linux/odp/api/abi/comp.h | 4 +- .../odp/arch/x86_32-linux/odp/api/abi/comp.h | 4 +- .../odp/arch/x86_64-linux/odp/api/abi/comp.h | 4 +- include/odp_api.h | 1 + platform/linux-generic/Makefile.am | 2 + .../linux-generic/include-abi/odp/api/abi}/comp.h | 9 +- .../linux-generic/include-abi/odp/api/abi/event.h | 3 +- platform/linux-generic/odp_comp.c | 125 ++ test/m4/configure.m4 | 1 + test/validation/api/Makefile.am | 2 + test/validation/api/comp/Makefile.am | 7 + test/validation/api/comp/comp.c | 591 ++++++ test/validation/api/comp/test_vectors.h | 1997 ++++++++++++++++++++ 22 files changed, 2774 insertions(+), 31 deletions(-) copy include/odp/api/{event.h => comp.h} (52%) copy platform/linux-generic/test/validation/api/shmem/shmem_odp2.h => include/odp/arch/arm32-linux/odp/api/abi/comp.h (50%) copy platform/linux-generic/test/validation/api/shmem/shmem_odp2.h => include/odp/arch/arm64-linux/odp/api/abi/comp.h (50%) copy platform/linux-generic/test/validation/api/shmem/shmem_odp2.h => include/odp/arch/default-linux/odp/api/abi/comp.h (50%) copy platform/linux-generic/test/validation/api/shmem/shmem_odp2.h => include/odp/arch/mips64-linux/odp/api/abi/comp.h (50%) copy platform/linux-generic/test/validation/api/shmem/shmem_odp2.h => include/odp/arch/power64-linux/odp/api/abi/comp.h (50%) copy platform/linux-generic/test/validation/api/shmem/shmem_odp2.h => include/odp/arch/x86_32-linux/odp/api/abi/comp.h (50%) copy platform/linux-generic/test/validation/api/shmem/shmem_odp2.h => include/odp/arch/x86_64-linux/odp/api/abi/comp.h (50%) copy {include/odp/api/abi-default => platform/linux-generic/include-abi/odp/api/abi}/comp.h (56%) create mode 100644 platform/linux-generic/odp_comp.c create mode 100644 test/validation/api/comp/Makefile.am create mode 100644 test/validation/api/comp/comp.c create mode 100644 test/validation/api/comp/test_vectors.h
hooks/post-receive