diff --git a/scintilla/pcre2/AUTHORS.md b/scintilla/pcre2/AUTHORS.md index 708fc2325c..4aa4ed044e 100644 --- a/scintilla/pcre2/AUTHORS.md +++ b/scintilla/pcre2/AUTHORS.md @@ -1,14 +1,14 @@ PCRE2 Authorship and Contributors ================================= -COPYRIGHT +Copyright --------- Please see the file [LICENCE](./LICENCE.md) in the PCRE2 distribution for copyright details. -MAINTAINERS +Maintainers ----------- The PCRE and PCRE2 libraries were authored and maintained by Philip Hazel. @@ -62,7 +62,7 @@ Both administrators are volunteers acting in a personal capacity. -CONTRIBUTORS +Contributors ------------ Many others have participated and contributed to PCRE2 over its history. @@ -77,9 +77,11 @@ All names listed alphabetically. ### Contributors to PCRE2 -This list includes names up until the PCRE2 10.44 release. New names will be +This list includes names up until the PCRE2 10.48 release. New names will be added from the Git history on each release. + Ilia Alshanetsky + Bernard Assan Scott Bell Carlo Marcelo Arenas Belón Edward Betts @@ -91,36 +93,53 @@ added from the Git history on each release. Alejandro Colomar Jeremie Courreges-Anglas Addison Crump + Weixie Cui Alex Dowad Daniel Engberg + Marco Feuerstein Daniel Richard G + Isaac Oscar Gariano David Gaussmann Andrey Gorbachev + Nikolay Govorov Jordan Griege + Rudi Heitbaum Jason Hood Bumsu Hyeon Roy Ivy + Nobuhiro Iwamatsu Martin Joerg Guillem Jover Ralf Junker + Anton Karpov Ayesh Karunaratne Michael Kaufmann + Srijan Keshri Yunho Kim Joshua Kinard David Korczynski Uwe Korn Jonas Kvinge Kristian Larsson + Lin Runze Kai Lu Behzod Mansurov + Brian McKenna B. Scott Michel + Greg Minshall Nathan Moinvaziri + Alexandre Moyer Mike Munday Marc Mutz + Kartik Naik + NaN Fabio Pagani Christian Persch + Alex Reinking + Joshua Rogers Tristan Ross William A Rowe Jr + Rocco Ruscitti David Seifert Yaakov Selkowitz Rich Siegel @@ -131,6 +150,8 @@ added from the Git history on each release. Greg Thain Lucas Trzesniewski Theodore Tsirpanis + Matt Turner + Aaron M. Ucko Matthew Vernon Rémi Verschelde Thomas Voss diff --git a/scintilla/pcre2/LICENCE.md b/scintilla/pcre2/LICENCE.md index f58ceb75a6..f6fba35db2 100644 --- a/scintilla/pcre2/LICENCE.md +++ b/scintilla/pcre2/LICENCE.md @@ -1,4 +1,4 @@ -PCRE2 License +PCRE2 Licence ============= | SPDX-License-Identifier: | BSD-3-Clause WITH PCRE2-exception | @@ -16,7 +16,8 @@ testdata directory is not copyrighted and is in the public domain. The basic library functions are written in C and are freestanding. Also included in the distribution is a just-in-time compiler that can be used to optimize pattern matching. This is an optional feature that can be omitted when -the library is built. +the library is built. The just-in-time compiler is separately licensed under the +"2-clause BSD" licence. COPYRIGHT @@ -53,6 +54,8 @@ COPYRIGHT Copyright (c) 2009-2024 Zoltan Herczeg All rights reserved. +The code in the `deps/sljit` directory has its own LICENSE file. + ### All other contributions Many other contributors have participated in the authorship of PCRE2. As PCRE2 @@ -99,5 +102,3 @@ not apply all the way down a chain of software. If binary package A includes PCRE2, it must respect the condition, but if package B is software that includes package A, the condition is not imposed on package B unless it uses PCRE2 independently. - -End diff --git a/scintilla/pcre2/deps/sljit/sljit_src/allocator_src/sljitExecAllocatorCore.c b/scintilla/pcre2/deps/sljit/sljit_src/allocator_src/sljitExecAllocatorCore.c index 4e1119bc40..314483c7ae 100644 --- a/scintilla/pcre2/deps/sljit/sljit_src/allocator_src/sljitExecAllocatorCore.c +++ b/scintilla/pcre2/deps/sljit/sljit_src/allocator_src/sljitExecAllocatorCore.c @@ -49,9 +49,9 @@ n - The size of the previous block. Using these size values we can go forward or backward on the block chain. - The unused blocks are stored in a chain list pointed by free_blocks. This - list is useful if we need to find a suitable memory area when the allocator - is called. + The unused blocks are stored in a chain list pointed by sljit_free_blocks. + This list is useful if we need to find a suitable memory area when the + allocator is called. When a block is freed, the new free block is connected to its adjacent free blocks if possible. @@ -115,20 +115,20 @@ struct free_block { #define ALIGN_SIZE(size) (((size) + sizeof(struct block_header) + 7u) & ~(sljit_uw)7) #define CHUNK_EXTRA_SIZE (sizeof(struct block_header) + CHUNK_HEADER_SIZE) -static struct free_block* free_blocks; -static sljit_uw allocated_size; -static sljit_uw total_size; +static struct free_block* sljit_free_blocks; +static sljit_uw sljit_allocated_size; +static sljit_uw sljit_total_size; static SLJIT_INLINE void sljit_insert_free_block(struct free_block *free_block, sljit_uw size) { free_block->header.size = 0; free_block->size = size; - free_block->next = free_blocks; + free_block->next = sljit_free_blocks; free_block->prev = NULL; - if (free_blocks) - free_blocks->prev = free_block; - free_blocks = free_block; + if (sljit_free_blocks) + sljit_free_blocks->prev = free_block; + sljit_free_blocks = free_block; } static SLJIT_INLINE void sljit_remove_free_block(struct free_block *free_block) @@ -139,8 +139,8 @@ static SLJIT_INLINE void sljit_remove_free_block(struct free_block *free_block) if (free_block->prev) free_block->prev->next = free_block->next; else { - SLJIT_ASSERT(free_blocks == free_block); - free_blocks = free_block->next; + SLJIT_ASSERT(sljit_free_blocks == free_block); + sljit_free_blocks = free_block->next; } } @@ -166,7 +166,7 @@ SLJIT_API_FUNC_ATTRIBUTE void* sljit_malloc_exec(sljit_uw size) size = ALIGN_SIZE(size); SLJIT_ALLOCATOR_LOCK(); - free_block = free_blocks; + free_block = sljit_free_blocks; while (free_block) { if (free_block->size >= size) { chunk_size = free_block->size; @@ -186,7 +186,7 @@ SLJIT_API_FUNC_ATTRIBUTE void* sljit_malloc_exec(sljit_uw size) header = (struct block_header*)free_block; size = chunk_size; } - allocated_size += size; + sljit_allocated_size += size; header->size = size; SLJIT_ALLOCATOR_UNLOCK(); return MEM_START(header); @@ -207,7 +207,7 @@ SLJIT_API_FUNC_ATTRIBUTE void* sljit_malloc_exec(sljit_uw size) #endif /* SLJIT_HAS_EXECUTABLE_OFFSET */ chunk_size -= CHUNK_EXTRA_SIZE; - total_size += chunk_size; + sljit_total_size += chunk_size; header = (struct block_header*)(((sljit_u8*)chunk_header) + CHUNK_HEADER_SIZE); @@ -218,7 +218,7 @@ SLJIT_API_FUNC_ATTRIBUTE void* sljit_malloc_exec(sljit_uw size) if (chunk_size > size + 64) { /* Cut the allocated space into a free and a used block. */ - allocated_size += size; + sljit_allocated_size += size; header->size = size; chunk_size -= size; @@ -231,7 +231,7 @@ SLJIT_API_FUNC_ATTRIBUTE void* sljit_malloc_exec(sljit_uw size) next_header = AS_BLOCK_HEADER(free_block, chunk_size); } else { /* All space belongs to this allocation. */ - allocated_size += chunk_size; + sljit_allocated_size += chunk_size; header->size = chunk_size; next_header = AS_BLOCK_HEADER(header, chunk_size); } @@ -254,7 +254,7 @@ SLJIT_API_FUNC_ATTRIBUTE void sljit_free_exec(void *ptr) #ifdef SLJIT_HAS_EXECUTABLE_OFFSET header = AS_BLOCK_HEADER(header, -header->executable_offset); #endif /* SLJIT_HAS_EXECUTABLE_OFFSET */ - allocated_size -= header->size; + sljit_allocated_size -= header->size; SLJIT_UPDATE_WX_FLAGS(NULL, NULL, 0); @@ -282,9 +282,9 @@ SLJIT_API_FUNC_ATTRIBUTE void sljit_free_exec(void *ptr) /* The whole chunk is free. */ if (SLJIT_UNLIKELY(!free_block->header.prev_size && header->size == 1)) { - /* If this block is freed, we still have (allocated_size / 2) free space. */ - if (total_size - free_block->size > (allocated_size * 3 / 2)) { - total_size -= free_block->size; + /* If this block is freed, we still have (sljit_allocated_size / 2) free space. */ + if (sljit_total_size - free_block->size > (sljit_allocated_size * 3 / 2)) { + sljit_total_size -= free_block->size; sljit_remove_free_block(free_block); free_chunk(free_block, free_block->size + CHUNK_EXTRA_SIZE); } @@ -302,19 +302,19 @@ SLJIT_API_FUNC_ATTRIBUTE void sljit_free_unused_memory_exec(void) SLJIT_ALLOCATOR_LOCK(); SLJIT_UPDATE_WX_FLAGS(NULL, NULL, 0); - free_block = free_blocks; + free_block = sljit_free_blocks; while (free_block) { next_free_block = free_block->next; if (!free_block->header.prev_size && AS_BLOCK_HEADER(free_block, free_block->size)->size == 1) { - total_size -= free_block->size; + sljit_total_size -= free_block->size; sljit_remove_free_block(free_block); free_chunk(free_block, free_block->size + CHUNK_EXTRA_SIZE); } free_block = next_free_block; } - SLJIT_ASSERT(total_size || (!total_size && !free_blocks)); + SLJIT_ASSERT(sljit_total_size || (!sljit_total_size && !sljit_free_blocks)); SLJIT_UPDATE_WX_FLAGS(NULL, NULL, 1); SLJIT_ALLOCATOR_UNLOCK(); } diff --git a/scintilla/pcre2/deps/sljit/sljit_src/allocator_src/sljitWXExecAllocatorPosix.c b/scintilla/pcre2/deps/sljit/sljit_src/allocator_src/sljitWXExecAllocatorPosix.c index 36d301434a..62f7371125 100644 --- a/scintilla/pcre2/deps/sljit/sljit_src/allocator_src/sljitWXExecAllocatorPosix.c +++ b/scintilla/pcre2/deps/sljit/sljit_src/allocator_src/sljitWXExecAllocatorPosix.c @@ -90,6 +90,9 @@ SLJIT_API_FUNC_ATTRIBUTE void* sljit_malloc_exec(sljit_uw size) #ifdef PROT_MAX prot |= PROT_MAX(PROT_READ | PROT_WRITE | PROT_EXEC); #endif +#ifdef PROT_MPROTECT + prot |= PROT_MPROTECT(PROT_EXEC); +#endif size += sizeof(sljit_uw); ptr = (sljit_uw*)mmap(NULL, size, prot, MAP_PRIVATE | MAP_ANON, -1, 0); diff --git a/scintilla/pcre2/deps/sljit/sljit_src/sljitConfig.h b/scintilla/pcre2/deps/sljit/sljit_src/sljitConfig.h index 993f4fe2fa..d43e8ae2aa 100644 --- a/scintilla/pcre2/deps/sljit/sljit_src/sljitConfig.h +++ b/scintilla/pcre2/deps/sljit/sljit_src/sljitConfig.h @@ -133,7 +133,7 @@ extern "C" { nonzero value - FPU is present. */ -/* For further configurations, see the beginning of sljitConfigInternal.h */ +/* For further configurations, see sljitConfigCPU.h and sljitConfigInternal.h */ #ifdef __cplusplus } /* extern "C" */ diff --git a/scintilla/pcre2/deps/sljit/sljit_src/sljitConfigCPU.h b/scintilla/pcre2/deps/sljit/sljit_src/sljitConfigCPU.h index dcf88efbd4..a0d8d44c93 100644 --- a/scintilla/pcre2/deps/sljit/sljit_src/sljitConfigCPU.h +++ b/scintilla/pcre2/deps/sljit/sljit_src/sljitConfigCPU.h @@ -46,6 +46,7 @@ /* #define SLJIT_CONFIG_RISCV_64 1 */ /* #define SLJIT_CONFIG_S390X 1 */ /* #define SLJIT_CONFIG_LOONGARCH_64 */ +/* #define SLJIT_CONFIG_ALPHA_64 1 */ /* #define SLJIT_CONFIG_AUTO 1 */ /* #define SLJIT_CONFIG_UNSUPPORTED 1 */ @@ -68,6 +69,7 @@ + (defined SLJIT_CONFIG_RISCV_64 && SLJIT_CONFIG_RISCV_64) \ + (defined SLJIT_CONFIG_S390X && SLJIT_CONFIG_S390X) \ + (defined SLJIT_CONFIG_LOONGARCH_64 && SLJIT_CONFIG_LOONGARCH_64) \ + + (defined SLJIT_CONFIG_ALPHA_64 && SLJIT_CONFIG_ALPHA_64) \ + (defined SLJIT_CONFIG_AUTO && SLJIT_CONFIG_AUTO) \ + (defined SLJIT_CONFIG_UNSUPPORTED && SLJIT_CONFIG_UNSUPPORTED) >= 2 #error "Multiple architectures are selected" @@ -87,6 +89,7 @@ && !(defined SLJIT_CONFIG_RISCV_64 && SLJIT_CONFIG_RISCV_64) \ && !(defined SLJIT_CONFIG_S390X && SLJIT_CONFIG_S390X) \ && !(defined SLJIT_CONFIG_LOONGARCH_64 && SLJIT_CONFIG_LOONGARCH_64) \ + && !(defined SLJIT_CONFIG_ALPHA_64 && SLJIT_CONFIG_ALPHA_64) \ && !(defined SLJIT_CONFIG_UNSUPPORTED && SLJIT_CONFIG_UNSUPPORTED) \ && !(defined SLJIT_CONFIG_AUTO && SLJIT_CONFIG_AUTO) #if defined SLJIT_CONFIG_AUTO && !SLJIT_CONFIG_AUTO @@ -134,6 +137,8 @@ #define SLJIT_CONFIG_LOONGARCH_64 1 #elif defined(__s390x__) #define SLJIT_CONFIG_S390X 1 +#elif defined(__alpha__) +#define SLJIT_CONFIG_ALPHA_64 1 #else /* Unsupported architecture */ #define SLJIT_CONFIG_UNSUPPORTED 1 @@ -183,6 +188,78 @@ #define SLJIT_CONFIG_RISCV 1 #elif (defined SLJIT_CONFIG_LOONGARCH_64 && SLJIT_CONFIG_LOONGARCH_64) #define SLJIT_CONFIG_LOONGARCH 1 +#elif (defined SLJIT_CONFIG_ALPHA_64 && SLJIT_CONFIG_ALPHA_64) +#define SLJIT_CONFIG_ALPHA 1 +#endif + +/*************************/ +/* Endianness detection. */ +/*************************/ + +#if !defined(SLJIT_BIG_ENDIAN) && !defined(SLJIT_LITTLE_ENDIAN) + +#if defined(SLJIT_CONFIG_ARM) && SLJIT_CONFIG_ARM + +#ifdef __ARM_BIG_ENDIAN +#define SLJIT_BIG_ENDIAN 1 +#else +#define SLJIT_LITTLE_ENDIAN 1 +#endif + +#elif (defined SLJIT_CONFIG_PPC && SLJIT_CONFIG_PPC) + +#ifdef __LITTLE_ENDIAN__ +#define SLJIT_LITTLE_ENDIAN 1 +#else +#define SLJIT_BIG_ENDIAN 1 +#endif + +#elif (defined SLJIT_CONFIG_MIPS && SLJIT_CONFIG_MIPS) + +#ifdef __MIPSEL__ +#define SLJIT_LITTLE_ENDIAN 1 +#else +#define SLJIT_BIG_ENDIAN 1 +#endif + +#ifndef SLJIT_MIPS_REV + +/* Auto detecting mips revision. */ +#if (defined __mips_isa_rev) && (__mips_isa_rev >= 6) +#define SLJIT_MIPS_REV 6 +#elif defined(__mips_isa_rev) && __mips_isa_rev >= 1 +#define SLJIT_MIPS_REV __mips_isa_rev +#elif defined(__clang__) \ + && (defined(_MIPS_ARCH_OCTEON) || defined(_MIPS_ARCH_P5600)) +/* clang either forgets to define (clang-7) __mips_isa_rev at all + * or sets it to zero (clang-8,-9) for -march=octeon (MIPS64 R2+) + * and -march=p5600 (MIPS32 R5). + * It also sets the __mips macro to 64 or 32 for -mipsN when N <= 5 + * (should be set to N exactly) so we cannot rely on this too. + */ +#define SLJIT_MIPS_REV 1 +#endif + +#endif /* !SLJIT_MIPS_REV */ + +#elif (defined SLJIT_CONFIG_S390X && SLJIT_CONFIG_S390X) + +#define SLJIT_BIG_ENDIAN 1 + +#else + +#define SLJIT_LITTLE_ENDIAN 1 + +#endif + +#endif /* !defined(SLJIT_BIG_ENDIAN) && !defined(SLJIT_LITTLE_ENDIAN) */ + +#if (defined(SLJIT_CONFIG_ARM_64) && SLJIT_CONFIG_ARM_64) \ + && (defined(SLJIT_BIG_ENDIAN) && SLJIT_BIG_ENDIAN) + +#undef SLJIT_CONFIG_ARM_64 +#define SLJIT_CONFIG_UNSUPPORTED 1 + #endif #endif /* SLJIT_CONFIG_CPU_H_ */ diff --git a/scintilla/pcre2/deps/sljit/sljit_src/sljitConfigInternal.h b/scintilla/pcre2/deps/sljit/sljit_src/sljitConfigInternal.h index c052434d2f..9c222349c5 100644 --- a/scintilla/pcre2/deps/sljit/sljit_src/sljitConfigInternal.h +++ b/scintilla/pcre2/deps/sljit/sljit_src/sljitConfigInternal.h @@ -54,6 +54,14 @@ SLJIT_UPPER_BITS_ZERO_EXTENDED : 32 bit operations clears the upper bits of destination registers SLJIT_UPPER_BITS_SIGN_EXTENDED : 32 bit operations replicates the sign bit in the upper bits of destination registers SLJIT_UPPER_BITS_PRESERVED : 32 bit operations preserves the upper bits of destination registers + SLJIT_SUBC_SETS_SIGNED : SLJIT_SUBC[32] operation always sets the signed result, so setting + the following status flags after a subtract with carry operation is valid: + sljit_set_current_flags(..., SLJIT_CURRENT_FLAGS_SUB | SLJIT_SET_SIG_LESS) + sljit_set_current_flags(..., SLJIT_CURRENT_FLAGS_SUB | SLJIT_SET_SIG_GREATER) + SLJIT_SHARED_COMPARISON_FLAGS: the cpu has different instructions for signed and unsigned + comparisons, which sets the same status flags, so passing SLJIT_LESS + or SLJIT_SIG_LESS as an argument has the same effect, and this is true + for all other signed/unsigned comparison type pairs Constants: SLJIT_NUMBER_OF_REGISTERS : number of available registers @@ -100,18 +108,21 @@ SLJIT_TMP_DEST_REG : a temporary register for results, see the rules below SLJIT_TMP_DEST_FREG : a temporary register for float results, see the rules below SLJIT_TMP_DEST_VREG : a temporary register for vector results, see the rules below - SLJIT_TMP_OPT_REG : a temporary register which might not be defined, see the rules below + SLJIT_TMP_OPT_REG : an optional temporary register, see the rules below + SLJIT_TMP_FLAG_REG : an optional temporary register for storing the value of a flag SLJIT_FUNC : calling convention attribute for both calling JIT from C and C calling back from JIT SLJIT_W(number) : defining 64 bit constants on 64 bit architectures (platform independent helper) SLJIT_F64_SECOND(reg) : provides the register index of the second 32 bit part of a 64 bit floating point register when SLJIT_HAS_F64_AS_F32_PAIR returns non-zero Temporary register rules (e.g. SLJIT_TMP_DEST_REG / SLJIT_TMP_OPT_REG): - Sljit tries to emit instructions without using any temporary registers whenever it is possible. - When a single temporary register is needed, it is always the "OPT" register. When two temporary - registers are needed, both the "DEST" and "OPT" are used. The x86-32 does not define an "OPT" - register, and handles all cases without an "OPT" register which requires an "OPT" register - on other architectures. + The sljit compiler avoids using temporary registers, but certain instruction + forms cannot be generated without them. The number of temporary registers + reserved by the compiler depends on the target architecture. An SLJIT_TMP_* + name is assigned to some of these registers, which represents their + SLJIT_TMP_R(i) index. When such register is optional, it might not be + defined on all architectures. For example, the x86-32 code generator does + not use any optional temporary registers. */ #if (defined SLJIT_VERBOSE && SLJIT_VERBOSE) \ @@ -124,6 +135,13 @@ #include #endif +#ifdef __APPLE__ +#include +#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1050 +#include +#endif +#endif + #ifdef __cplusplus extern "C" { #endif @@ -242,10 +260,6 @@ extern "C" { /* Instruction cache flush. */ /****************************/ -#ifdef __APPLE__ -#include -#endif - /* * TODO: * @@ -291,7 +305,6 @@ extern "C" { /* Supported by all macs since Mac OS 10.5. However, it does not work on non-jailbroken iOS devices, although the compilation is successful. */ -#include #define SLJIT_CACHE_FLUSH(from, to) \ sys_icache_invalidate((void*)(from), (size_t)((char*)(to) - (char*)(from))) @@ -359,7 +372,8 @@ typedef int sljit_sw; && !(defined SLJIT_CONFIG_MIPS_64 && SLJIT_CONFIG_MIPS_64) \ && !(defined SLJIT_CONFIG_RISCV_64 && SLJIT_CONFIG_RISCV_64) \ && !(defined SLJIT_CONFIG_S390X && SLJIT_CONFIG_S390X) \ - && !(defined SLJIT_CONFIG_LOONGARCH_64 && SLJIT_CONFIG_LOONGARCH_64) + && !(defined SLJIT_CONFIG_LOONGARCH_64 && SLJIT_CONFIG_LOONGARCH_64) \ + && !(defined SLJIT_CONFIG_ALPHA_64 && SLJIT_CONFIG_ALPHA_64) #define SLJIT_32BIT_ARCHITECTURE 1 #define SLJIT_WORD_SHIFT 2 typedef unsigned int sljit_uw; @@ -428,6 +442,12 @@ typedef double sljit_f64; #define SLJIT_CONV_MAX_FLOAT SLJIT_CONV_RESULT_MAX_INT #define SLJIT_CONV_MIN_FLOAT SLJIT_CONV_RESULT_MIN_INT #define SLJIT_CONV_NAN_FLOAT SLJIT_CONV_RESULT_ZERO +#elif (defined SLJIT_CONFIG_ALPHA && SLJIT_CONFIG_ALPHA) +/* CVTTQ/SVC uses software completion; sljit_emit_fop1_conv_sw_from_f64 + emits FCMPLT/CMPTEQ + CMOVNE/CMOVEQ fixups to enforce saturation. */ +#define SLJIT_CONV_MAX_FLOAT SLJIT_CONV_RESULT_MAX_INT +#define SLJIT_CONV_MIN_FLOAT SLJIT_CONV_RESULT_MIN_INT +#define SLJIT_CONV_NAN_FLOAT SLJIT_CONV_RESULT_ZERO #else #error "Result for float to integer conversion is not defined" #endif @@ -451,55 +471,6 @@ typedef double sljit_f64; /* Endianness detection. */ /*************************/ -#if !defined(SLJIT_BIG_ENDIAN) && !defined(SLJIT_LITTLE_ENDIAN) - -/* These macros are mostly useful for the applications. */ -#if (defined SLJIT_CONFIG_PPC && SLJIT_CONFIG_PPC) - -#ifdef __LITTLE_ENDIAN__ -#define SLJIT_LITTLE_ENDIAN 1 -#else -#define SLJIT_BIG_ENDIAN 1 -#endif - -#elif (defined SLJIT_CONFIG_MIPS && SLJIT_CONFIG_MIPS) - -#ifdef __MIPSEL__ -#define SLJIT_LITTLE_ENDIAN 1 -#else -#define SLJIT_BIG_ENDIAN 1 -#endif - -#ifndef SLJIT_MIPS_REV - -/* Auto detecting mips revision. */ -#if (defined __mips_isa_rev) && (__mips_isa_rev >= 6) -#define SLJIT_MIPS_REV 6 -#elif defined(__mips_isa_rev) && __mips_isa_rev >= 1 -#define SLJIT_MIPS_REV __mips_isa_rev -#elif defined(__clang__) \ - && (defined(_MIPS_ARCH_OCTEON) || defined(_MIPS_ARCH_P5600)) -/* clang either forgets to define (clang-7) __mips_isa_rev at all - * or sets it to zero (clang-8,-9) for -march=octeon (MIPS64 R2+) - * and -march=p5600 (MIPS32 R5). - * It also sets the __mips macro to 64 or 32 for -mipsN when N <= 5 - * (should be set to N exactly) so we cannot rely on this too. - */ -#define SLJIT_MIPS_REV 1 -#endif - -#endif /* !SLJIT_MIPS_REV */ - -#elif (defined SLJIT_CONFIG_S390X && SLJIT_CONFIG_S390X) - -#define SLJIT_BIG_ENDIAN 1 - -#else -#define SLJIT_LITTLE_ENDIAN 1 -#endif - -#endif /* !defined(SLJIT_BIG_ENDIAN) && !defined(SLJIT_LITTLE_ENDIAN) */ - /* Sanity check. */ #if (defined SLJIT_BIG_ENDIAN && SLJIT_BIG_ENDIAN) && (defined SLJIT_LITTLE_ENDIAN && SLJIT_LITTLE_ENDIAN) #error "Exactly one endianness must be selected" @@ -616,6 +587,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_sw sljit_exec_offset(void *code); #define SLJIT_MASKED_SHIFT32 1 #define SLJIT_UPPER_BITS_IGNORED 1 #define SLJIT_UPPER_BITS_ZERO_EXTENDED 1 +#define SLJIT_SUBC_SETS_SIGNED 1 #elif (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) @@ -640,6 +612,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_sw sljit_exec_offset(void *code); #define SLJIT_MASKED_SHIFT32 1 #define SLJIT_UPPER_BITS_IGNORED 1 #define SLJIT_UPPER_BITS_ZERO_EXTENDED 1 +#define SLJIT_SUBC_SETS_SIGNED 1 #elif (defined SLJIT_CONFIG_ARM_32 && SLJIT_CONFIG_ARM_32) @@ -653,6 +626,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_sw sljit_exec_offset(void *code); #define SLJIT_TMP_OPT_REG SLJIT_TMP_R0 #define SLJIT_TMP_DEST_FREG SLJIT_TMP_FR0 #define SLJIT_LOCALS_OFFSET_BASE 0 +#define SLJIT_SUBC_SETS_SIGNED 1 #elif (defined SLJIT_CONFIG_ARM_64 && SLJIT_CONFIG_ARM_64) @@ -670,6 +644,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_sw sljit_exec_offset(void *code); #define SLJIT_MASKED_SHIFT32 1 #define SLJIT_UPPER_BITS_IGNORED 1 #define SLJIT_UPPER_BITS_ZERO_EXTENDED 1 +#define SLJIT_SUBC_SETS_SIGNED 1 #elif (defined SLJIT_CONFIG_PPC && SLJIT_CONFIG_PPC) @@ -691,6 +666,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_sw sljit_exec_offset(void *code); #define SLJIT_LOCALS_OFFSET_BASE (3 * (sljit_s32)sizeof(sljit_sw)) #endif /* SLJIT_CONFIG_PPC_64 || _AIX */ #define SLJIT_UPPER_BITS_IGNORED 1 +#define SLJIT_SHARED_COMPARISON_FLAGS 1 #elif (defined SLJIT_CONFIG_MIPS && SLJIT_CONFIG_MIPS) @@ -709,10 +685,12 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_sw sljit_exec_offset(void *code); #define SLJIT_NUMBER_OF_TEMPORARY_FLOAT_REGISTERS 3 #define SLJIT_TMP_DEST_REG SLJIT_TMP_R1 #define SLJIT_TMP_OPT_REG SLJIT_TMP_R0 +#define SLJIT_TMP_FLAG_REG SLJIT_TMP_R3 #define SLJIT_TMP_DEST_FREG SLJIT_TMP_FR0 #define SLJIT_MASKED_SHIFT 1 #define SLJIT_MASKED_SHIFT32 1 #define SLJIT_UPPER_BITS_SIGN_EXTENDED 1 +#define SLJIT_SHARED_COMPARISON_FLAGS 1 #elif (defined SLJIT_CONFIG_RISCV && SLJIT_CONFIG_RISCV) @@ -728,6 +706,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_sw sljit_exec_offset(void *code); #define SLJIT_NUMBER_OF_TEMPORARY_VECTOR_REGISTERS 2 #define SLJIT_TMP_DEST_REG SLJIT_TMP_R1 #define SLJIT_TMP_OPT_REG SLJIT_TMP_R0 +#define SLJIT_TMP_FLAG_REG SLJIT_TMP_R3 #define SLJIT_TMP_DEST_FREG SLJIT_TMP_FR0 #define SLJIT_TMP_DEST_VREG SLJIT_TMP_VR0 #define SLJIT_LOCALS_OFFSET_BASE 0 @@ -735,6 +714,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_sw sljit_exec_offset(void *code); #define SLJIT_MASKED_SHIFT32 1 #define SLJIT_UPPER_BITS_IGNORED 1 #define SLJIT_UPPER_BITS_SIGN_EXTENDED 1 +#define SLJIT_SHARED_COMPARISON_FLAGS 1 #elif (defined SLJIT_CONFIG_S390X && SLJIT_CONFIG_S390X) @@ -772,6 +752,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_sw sljit_exec_offset(void *code); #define SLJIT_MASKED_SHIFT 1 #define SLJIT_UPPER_BITS_IGNORED 1 #define SLJIT_UPPER_BITS_PRESERVED 1 +#define SLJIT_SHARED_COMPARISON_FLAGS 1 #elif (defined SLJIT_CONFIG_LOONGARCH && SLJIT_CONFIG_LOONGARCH) @@ -783,11 +764,38 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_sw sljit_exec_offset(void *code); #define SLJIT_NUMBER_OF_TEMPORARY_FLOAT_REGISTERS 2 #define SLJIT_TMP_DEST_REG SLJIT_TMP_R1 #define SLJIT_TMP_OPT_REG SLJIT_TMP_R0 +#define SLJIT_TMP_FLAG_REG SLJIT_TMP_R3 #define SLJIT_TMP_DEST_FREG SLJIT_TMP_FR0 #define SLJIT_LOCALS_OFFSET_BASE 0 #define SLJIT_MASKED_SHIFT 1 #define SLJIT_MASKED_SHIFT32 1 #define SLJIT_UPPER_BITS_SIGN_EXTENDED 1 +#define SLJIT_SHARED_COMPARISON_FLAGS 1 + +#elif (defined SLJIT_CONFIG_ALPHA && SLJIT_CONFIG_ALPHA) + +/* Alpha has 32 general registers (r31 hardwired zero) and 32 float registers + (f31 hardwired zero). Reserved: r31 (zero), r30 (sp), r29 (gp, unused by the + JIT). Backend temporaries: r24, r25, r26 (ra), r27 (pv), r28 (at). Exposed: + 17 scratch (r0-r8, r16-r23) + 7 callee-saved (r9-r15). */ +#define SLJIT_NUMBER_OF_REGISTERS 24 +#define SLJIT_NUMBER_OF_SAVED_REGISTERS 7 +#define SLJIT_NUMBER_OF_TEMPORARY_REGISTERS 5 +#define SLJIT_NUMBER_OF_FLOAT_REGISTERS 28 +#define SLJIT_NUMBER_OF_SAVED_FLOAT_REGISTERS 8 +#define SLJIT_NUMBER_OF_TEMPORARY_FLOAT_REGISTERS 2 +#define SLJIT_TMP_DEST_REG SLJIT_TMP_R1 +#define SLJIT_TMP_OPT_REG SLJIT_TMP_R0 +#define SLJIT_TMP_FLAG_REG SLJIT_TMP_R3 +#define SLJIT_TMP_DEST_FREG SLJIT_TMP_FR0 +/* One word is reserved at the bottom of the frame: CPUs without the FIX + extension have no register to register move between the integer and float + register files, so values are bounced through this slot instead. */ +#define SLJIT_LOCALS_OFFSET_BASE ((sljit_s32)sizeof(sljit_sw)) +#define SLJIT_MASKED_SHIFT 1 +#define SLJIT_MASKED_SHIFT32 1 +#define SLJIT_UPPER_BITS_SIGN_EXTENDED 1 +#define SLJIT_SHARED_COMPARISON_FLAGS 1 #elif (defined SLJIT_CONFIG_UNSUPPORTED && SLJIT_CONFIG_UNSUPPORTED) @@ -894,7 +902,8 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_sw sljit_exec_offset(void *code); || (defined SLJIT_CONFIG_MIPS && SLJIT_CONFIG_MIPS) \ || (defined SLJIT_CONFIG_RISCV && SLJIT_CONFIG_RISCV) \ || (defined SLJIT_CONFIG_S390X && SLJIT_CONFIG_S390X) \ - || (defined SLJIT_CONFIG_LOONGARCH && SLJIT_CONFIG_LOONGARCH) + || (defined SLJIT_CONFIG_LOONGARCH && SLJIT_CONFIG_LOONGARCH) \ + || (defined SLJIT_CONFIG_ALPHA && SLJIT_CONFIG_ALPHA) #define SLJIT_HAS_STATUS_FLAGS_STATE 1 #endif diff --git a/scintilla/pcre2/deps/sljit/sljit_src/sljitLir.c b/scintilla/pcre2/deps/sljit/sljit_src/sljitLir.c index 633e794b3b..e8c77f8564 100644 --- a/scintilla/pcre2/deps/sljit/sljit_src/sljitLir.c +++ b/scintilla/pcre2/deps/sljit/sljit_src/sljitLir.c @@ -2484,7 +2484,7 @@ static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_jump(struct sljit_compile CHECK_ARGUMENT(compiler->last_flags & SLJIT_SET_Z); else if ((compiler->last_flags & 0xff) == SLJIT_CARRY) { CHECK_ARGUMENT((type & 0xfe) == SLJIT_CARRY); - compiler->last_flags = 0; + compiler->last_flags &= ~SLJIT_SET_Z; } else CHECK_ARGUMENT((type & 0xfe) == (compiler->last_flags & 0xff) || CHECK_UNORDERED(type, compiler->last_flags)); @@ -2746,7 +2746,7 @@ static SLJIT_INLINE CHECK_RETURN_TYPE check_sljit_emit_select(struct sljit_compi CHECK_ARGUMENT(compiler->last_flags & SLJIT_SET_Z); else if ((compiler->last_flags & 0xff) == SLJIT_CARRY) { CHECK_ARGUMENT((type & 0xfe) == SLJIT_CARRY); - compiler->last_flags = 0; + compiler->last_flags &= ~SLJIT_SET_Z; } else CHECK_ARGUMENT((cond & 0xfe) == (compiler->last_flags & 0xff) || CHECK_UNORDERED(cond, compiler->last_flags)); @@ -3495,6 +3495,8 @@ static void sljit_reset_read_only_buffers(struct sljit_read_only_buffer *buffers # include "sljitNativeS390X.c" #elif (defined SLJIT_CONFIG_LOONGARCH && SLJIT_CONFIG_LOONGARCH) # include "sljitNativeLOONGARCH_64.c" +#elif (defined SLJIT_CONFIG_ALPHA && SLJIT_CONFIG_ALPHA) +# include "sljitNativeALPHA_64.c" #endif /* SLJIT_CONFIG_X86 */ #include "sljitSerialize.c" @@ -3737,7 +3739,8 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_mem_update(struct sljit_compiler * #endif /* !SLJIT_CONFIG_ARM && !SLJIT_CONFIG_PPC */ #if !(defined SLJIT_CONFIG_ARM_32 && SLJIT_CONFIG_ARM_32) \ - && !(defined SLJIT_CONFIG_MIPS && SLJIT_CONFIG_MIPS) + && !(defined SLJIT_CONFIG_MIPS && SLJIT_CONFIG_MIPS) \ + && !(defined SLJIT_CONFIG_ALPHA && SLJIT_CONFIG_ALPHA) SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fmem(struct sljit_compiler *compiler, sljit_s32 type, sljit_s32 freg, @@ -3749,7 +3752,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fmem(struct sljit_compiler *compil return sljit_emit_fmem_unaligned(compiler, type, freg, mem, memw); } -#endif /* !SLJIT_CONFIG_ARM_32 && !SLJIT_CONFIG_MIPS */ +#endif /* !SLJIT_CONFIG_ARM_32 && !SLJIT_CONFIG_MIPS && !SLJIT_CONFIG_ALPHA */ #if !(defined SLJIT_CONFIG_ARM_64 && SLJIT_CONFIG_ARM_64) \ && !(defined SLJIT_CONFIG_PPC && SLJIT_CONFIG_PPC) diff --git a/scintilla/pcre2/deps/sljit/sljit_src/sljitLir.h b/scintilla/pcre2/deps/sljit/sljit_src/sljitLir.h index c5bf1287c3..019ad60ea4 100644 --- a/scintilla/pcre2/deps/sljit/sljit_src/sljitLir.h +++ b/scintilla/pcre2/deps/sljit/sljit_src/sljitLir.h @@ -1167,7 +1167,8 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_return_to(struct sljit_compiler *c #define SLJIT_OP0_BASE 0 /* Flags: - (does not modify flags) - Note: breakpoint instruction is not supported by all architectures (e.g. ppc) + Triggers a trap that could be intercepted by a debugger + Note: might not be supported by all architectures, It falls back to SLJIT_NOP in those cases. */ #define SLJIT_BREAKPOINT (SLJIT_OP0_BASE + 0) /* Flags: - (does not modify flags) @@ -1761,7 +1762,10 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_label* sljit_emit_aligned_label(struct slj #define SLJIT_SET_OVERFLOW SLJIT_SET(SLJIT_OVERFLOW) #define SLJIT_NOT_OVERFLOW 11 -/* Unlike other flags, sljit_emit_jump may destroy the carry flag. */ +/* Unlike other comparison types, sljit_emit_jump may destroy zero flag + when carry flag is specified (powerpc limitation). Furthermore, + SLJIT_CARRY represents that the first operand is unsigned less than + the second operand after an SLJIT_SUB / SLJIT_SUBC operation. */ #define SLJIT_CARRY 12 #define SLJIT_SET_CARRY SLJIT_SET(SLJIT_CARRY) #define SLJIT_NOT_CARRY 13 @@ -2023,11 +2027,11 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fselect(struct sljit_compiler *com /* The following flags are used by sljit_emit_mem() and sljit_emit_fmem(). */ -/* Load or stora data from an unaligned (byte aligned) address. */ +/* Load or store data from an unaligned (byte aligned) address. */ #define SLJIT_MEM_UNALIGNED 0x000400 -/* Load or stora data from a 16 bit aligned address. */ +/* Load or store data from a 16 bit aligned address. */ #define SLJIT_MEM_ALIGNED_16 0x000800 -/* Load or stora data from a 32 bit aligned address. */ +/* Load or store data from a 32 bit aligned address. */ #define SLJIT_MEM_ALIGNED_32 0x001000 /* The following flags are used by sljit_emit_mem_update(), @@ -2732,8 +2736,8 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_u8 *SLJIT_FUNC sljit_stack_resize(struct sljit_st /* All JIT related code should be placed in the same context (library, binary, etc.). */ /* Get the entry address of a given function (signed, unsigned result). */ -#define SLJIT_FUNC_ADDR(func_name) (*(sljit_sw*)(void*)func_name) -#define SLJIT_FUNC_UADDR(func_name) (*(sljit_uw*)(void*)func_name) +#define SLJIT_FUNC_ADDR(func_name) (*(sljit_sw*)(sljit_uw)func_name) +#define SLJIT_FUNC_UADDR(func_name) (*(sljit_uw*)(sljit_uw)func_name) /* For powerpc64, the function pointers point to a context descriptor. */ struct sljit_function_context { @@ -2745,7 +2749,7 @@ struct sljit_function_context { /* Fill the context arguments using the addr and the function. If func_ptr is NULL, it will not be set to the address of context If addr is NULL, the function address also comes from the func pointer. */ -SLJIT_API_FUNC_ATTRIBUTE void sljit_set_function_context(void** func_ptr, struct sljit_function_context* context, sljit_uw addr, void* func); +SLJIT_API_FUNC_ATTRIBUTE void sljit_set_function_context(void** func_ptr, struct sljit_function_context* context, sljit_uw addr, void (*func)(void)); #endif /* !(defined SLJIT_INDIRECT_CALL && SLJIT_INDIRECT_CALL) */ diff --git a/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeARM_32.c b/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeARM_32.c index 16ef39940c..ef2762f398 100644 --- a/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeARM_32.c +++ b/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeARM_32.c @@ -2650,7 +2650,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2_shift(struct sljit_compiler *c shift_arg &= 0x1f; if (src2 == SLJIT_IMM) { - src2w = src2w << shift_arg; + src2w = (sljit_sw)((sljit_uw)src2w << shift_arg); shift_arg = 0; } diff --git a/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeARM_64.c b/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeARM_64.c index dabbd3b079..06d94a96aa 100644 --- a/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeARM_64.c +++ b/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeARM_64.c @@ -70,7 +70,7 @@ static const sljit_u8 freg_map[SLJIT_NUMBER_OF_FLOAT_REGISTERS + 3] = { #define VM(vm) ((sljit_ins)freg_map[vm] << 16) /* --------------------------------------------------------------------- */ -/* Instruction forms */ +/* Instruction forms */ /* --------------------------------------------------------------------- */ #define ADC 0x9a000000 @@ -157,7 +157,7 @@ static const sljit_u8 freg_map[SLJIT_NUMBER_OF_FLOAT_REGISTERS + 3] = { #define SDIV 0x9ac00c00 #define SMADDL 0x9b200000 #define SMOV 0x0e002c00 -#define SMULH 0x9b403c00 +#define SMULH 0x9b407c00 #define SSHLL 0x0f00a400 #define ST1 0x0c007000 #define ST1_s 0x0d000000 @@ -173,7 +173,7 @@ static const sljit_u8 freg_map[SLJIT_NUMBER_OF_FLOAT_REGISTERS + 3] = { #define STUR_FI 0x3c000000 #define STURBI 0x38000000 #define STXR 0xc8007c00 -#define STXRB 0x8007c00 +#define STXRB 0x08007c00 #define STXRH 0x48007c00 #define SUB 0xcb000000 #define SUBI 0xd1000000 @@ -184,7 +184,7 @@ static const sljit_u8 freg_map[SLJIT_NUMBER_OF_FLOAT_REGISTERS + 3] = { #define UCVTF 0x9e630000 #define UDIV 0x9ac00800 #define UMOV 0x0e003c00 -#define UMULH 0x9bc03c00 +#define UMULH 0x9bc07c00 #define USHLL 0x2f00a400 #define USHR 0x2f000400 #define USRA 0x2f001400 @@ -1893,7 +1893,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2_shift(struct sljit_compiler *c shift_arg &= 0x3f; if (src2 == SLJIT_IMM) { - src2w = src2w << shift_arg; + src2w = (sljit_sw)((sljit_uw)src2w << shift_arg); shift_arg = 0; } diff --git a/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeARM_T2_32.c b/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeARM_T2_32.c index eab9ec1ff0..66084571c6 100644 --- a/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeARM_T2_32.c +++ b/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeARM_T2_32.c @@ -2217,7 +2217,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2_shift(struct sljit_compiler *c shift_arg &= 0x1f; if (src2 == SLJIT_IMM) { - src2w = src2w << shift_arg; + src2w = (sljit_sw)((sljit_uw)src2w << shift_arg); shift_arg = 0; } diff --git a/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeLOONGARCH_64.c b/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeLOONGARCH_64.c index 13319669a5..83e6e297c2 100644 --- a/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeLOONGARCH_64.c +++ b/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeLOONGARCH_64.c @@ -70,9 +70,9 @@ LoongArch instructions are 32 bits wide, belonging to 9 basic instruction format | 1RI21 | Opcode + I21L + Rj + I21H | | I26 | Opcode + I26L + I26H | -Rd is the destination register operand, while Rj, Rk and Ra (“a” stands for “additional”) are the source register operands. +Rd is the destination register operand, while Rj, Rk and Ra ("a" stands for "additional") are the source register operands. I8/I12/I14/I16/I21/I26 are immediate operands of respective width. The longer I21 and I26 are stored in separate higher and -lower parts in the instruction word, denoted by the “L” and “H” suffixes. */ +lower parts in the instruction word, denoted by the "L" and "H" suffixes. */ #define RD(rd) ((sljit_ins)reg_map[rd]) #define RJ(rj) ((sljit_ins)reg_map[rj] << 5) @@ -2191,7 +2191,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2_shift(struct sljit_compiler *c shift_arg &= (sljit_sw)((sizeof(sljit_sw) * 8) - 1); if (src2 == SLJIT_IMM) { - src2w = src2w << shift_arg; + src2w = (sljit_sw)((sljit_uw)src2w << shift_arg); shift_arg = 0; } diff --git a/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeMIPS_common.c b/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeMIPS_common.c index 771abfec24..96fa342f94 100644 --- a/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeMIPS_common.c +++ b/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeMIPS_common.c @@ -2811,7 +2811,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2_shift(struct sljit_compiler *c shift_arg &= (sljit_sw)((sizeof(sljit_sw) * 8) - 1); if (src2 == SLJIT_IMM) { - src2w = src2w << shift_arg; + src2w = (sljit_sw)((sljit_uw)src2w << shift_arg); shift_arg = 0; } diff --git a/scintilla/pcre2/deps/sljit/sljit_src/sljitNativePPC_common.c b/scintilla/pcre2/deps/sljit/sljit_src/sljitNativePPC_common.c index 07df86f315..ea0597b719 100644 --- a/scintilla/pcre2/deps/sljit/sljit_src/sljitNativePPC_common.c +++ b/scintilla/pcre2/deps/sljit/sljit_src/sljitNativePPC_common.c @@ -292,14 +292,14 @@ static const sljit_u8 freg_map[SLJIT_NUMBER_OF_FLOAT_REGISTERS + 3] = { #endif /* SLJIT_LITTLE_ENDIAN */ #if (defined SLJIT_INDIRECT_CALL && SLJIT_INDIRECT_CALL) -SLJIT_API_FUNC_ATTRIBUTE void sljit_set_function_context(void** func_ptr, struct sljit_function_context* context, sljit_uw addr, void* func) +SLJIT_API_FUNC_ATTRIBUTE void sljit_set_function_context(void** func_ptr, struct sljit_function_context* context, sljit_uw addr, void (*func)(void)) { sljit_uw* ptrs; if (func_ptr) *func_ptr = (void*)context; - ptrs = (sljit_uw*)func; + ptrs = (sljit_uw*)(sljit_uw)func; context->addr = addr ? addr : ptrs[0]; context->r2 = ptrs[1]; context->r11 = ptrs[2]; @@ -749,7 +749,7 @@ SLJIT_API_FUNC_ATTRIBUTE void* sljit_generate_code(struct sljit_compiler *compil if (((sljit_sw)code_ptr) & 0x4) code_ptr++; #endif /* SLJIT_CONFIG_PPC_64 */ - sljit_set_function_context(NULL, (struct sljit_function_context*)code_ptr, (sljit_uw)code, (void*)sljit_generate_code); + sljit_set_function_context(NULL, (struct sljit_function_context*)code_ptr, (sljit_uw)code, (void (*)(void))sljit_generate_code); } #endif /* SLJIT_INDIRECT_CALL */ @@ -1422,6 +1422,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op0(struct sljit_compiler *compile op = GET_OPCODE(op); switch (op) { case SLJIT_BREAKPOINT: + return push_inst(compiler, 0x7fe00008); case SLJIT_NOP: return push_inst(compiler, NOP); case SLJIT_LMUL_UW: @@ -1733,7 +1734,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op1(struct sljit_compiler *compile #define TEST_ADD_IMM(src, srcw) \ ((src) == SLJIT_IMM && (srcw) <= 0x7fff7fffl && (srcw) >= -0x80000000l) #define TEST_UI_IMM(src, srcw) \ - ((src) == SLJIT_IMM && !((srcw) & ~0xffffffff)) + ((src) == SLJIT_IMM && !((srcw) & ~(sljit_sw)0xffffffff)) #define TEST_ADD_FORM1(op) \ (GET_FLAG_TYPE(op) == SLJIT_OVERFLOW \ @@ -2141,7 +2142,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2_shift(struct sljit_compiler *c shift_arg &= (sljit_sw)((sizeof(sljit_sw) * 8) - 1); if (src2 == SLJIT_IMM) { - src2w = src2w << shift_arg; + src2w = (sljit_sw)((sljit_uw)src2w << shift_arg); shift_arg = 0; } @@ -2575,7 +2576,7 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_label* sljit_emit_aligned_label(struct slj static sljit_ins get_bo_bi_flags(struct sljit_compiler *compiler, sljit_s32 type) { switch (type) { - case SLJIT_NOT_CARRY: + case SLJIT_CARRY: if (compiler->status_flags_state & SLJIT_CURRENT_FLAGS_SUB) return (4 << 21) | (2 << 16); SLJIT_FALLTHROUGH @@ -2584,7 +2585,7 @@ static sljit_ins get_bo_bi_flags(struct sljit_compiler *compiler, sljit_s32 type case SLJIT_ATOMIC_STORED: return (12 << 21) | (2 << 16); - case SLJIT_CARRY: + case SLJIT_NOT_CARRY: if (compiler->status_flags_state & SLJIT_CURRENT_FLAGS_SUB) return (12 << 21) | (2 << 16); SLJIT_FALLTHROUGH @@ -2675,7 +2676,7 @@ SLJIT_API_FUNC_ATTRIBUTE struct sljit_jump* sljit_emit_jump(struct sljit_compile type &= 0xff; if ((type | 0x1) == SLJIT_NOT_CARRY) - PTR_FAIL_IF(push_inst(compiler, ADDE | RC(ALT_SET_FLAGS) | D(TMP_REG2) | A(TMP_ZERO) | B(TMP_ZERO))); + PTR_FAIL_IF(push_inst(compiler, ADDME | RC(ALT_SET_FLAGS) | D(TMP_REG2) | A(TMP_ZERO))); /* In PPC, we don't need to touch the arguments. */ if (type < SLJIT_JUMP) @@ -3033,7 +3034,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_select(struct sljit_compiler *comp } if ((type | 0x1) == SLJIT_NOT_CARRY) - FAIL_IF(push_inst(compiler, ADDE | RC(ALT_SET_FLAGS) | D(TMP_REG1) | A(TMP_ZERO) | B(TMP_ZERO))); + FAIL_IF(push_inst(compiler, ADDME | RC(ALT_SET_FLAGS) | D(TMP_REG1) | A(TMP_ZERO))); size = compiler->size; @@ -3075,7 +3076,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_fselect(struct sljit_compiler *com } if (((type & ~SLJIT_32) | 0x1) == SLJIT_NOT_CARRY) - FAIL_IF(push_inst(compiler, ADDE | RC(ALT_SET_FLAGS) | D(TMP_REG1) | A(TMP_ZERO) | B(TMP_ZERO))); + FAIL_IF(push_inst(compiler, ADDME | RC(ALT_SET_FLAGS) | D(TMP_REG1) | A(TMP_ZERO))); size = compiler->size; diff --git a/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeRISCV_64.c b/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeRISCV_64.c index 113d1f8870..0b8ccab3eb 100644 --- a/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeRISCV_64.c +++ b/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeRISCV_64.c @@ -76,6 +76,11 @@ static sljit_s32 load_immediate(struct sljit_compiler *compiler, sljit_s32 dst_r if (imm <= 0x7fffffffl && imm >= S32_MIN) return load_immediate32(compiler, dst_r, imm); + if (RISCV_HAS_BITMANIP_A(93) && (sljit_uw)imm <= 0xffffffff) { + FAIL_IF(load_immediate(compiler, dst_r, (sljit_s32)imm, tmp_r)); + return push_inst(compiler, ADD_UW | RD(dst_r) | RS1(dst_r) | RS2(TMP_ZERO)); + } + /* Shifted small immediates. */ high = imm; diff --git a/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeRISCV_common.c b/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeRISCV_common.c index dec12c9a67..1089bddb87 100644 --- a/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeRISCV_common.c +++ b/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeRISCV_common.c @@ -158,9 +158,9 @@ SLJIT_API_FUNC_ATTRIBUTE const char* sljit_get_platform_name(void) { /* The arch string is not entirely correct since 'g' contains 'a'. */ #if (defined SLJIT_CONFIG_RISCV_32 && SLJIT_CONFIG_RISCV_32) - return "RISC-V-32 (rv32g" RISCV_ATOMIC_INFO RISCV_COMPRESSED_INFO RISCV_VECTOR_INFO RISCV_BITMANIP_A_INFO RISCV_BITMANIP_B_INFO RISCV_ICOND_INFO ")" SLJIT_CPUINFO; + return "RISCV (rv32g" RISCV_ATOMIC_INFO RISCV_COMPRESSED_INFO RISCV_VECTOR_INFO RISCV_BITMANIP_A_INFO RISCV_BITMANIP_B_INFO RISCV_ICOND_INFO ")" SLJIT_CPUINFO; #else /* !SLJIT_CONFIG_RISCV_32 */ - return "RISC-V-64 (rv64g" RISCV_ATOMIC_INFO RISCV_COMPRESSED_INFO RISCV_VECTOR_INFO RISCV_BITMANIP_A_INFO RISCV_BITMANIP_B_INFO RISCV_ICOND_INFO ")" SLJIT_CPUINFO; + return "RISCV (rv64g" RISCV_ATOMIC_INFO RISCV_COMPRESSED_INFO RISCV_VECTOR_INFO RISCV_BITMANIP_A_INFO RISCV_BITMANIP_B_INFO RISCV_ICOND_INFO ")" SLJIT_CPUINFO; #endif /* SLJIT_CONFIG_RISCV_32 */ } @@ -248,6 +248,7 @@ static const sljit_u8 vreg_map[SLJIT_NUMBER_OF_VECTOR_REGISTERS + 3] = { #define ADD (F7(0x0) | F3(0x0) | OPC(0x33)) #define ADDI (F3(0x0) | OPC(0x13)) +#define ADD_UW (F7(0x4) | F3(0x0) | OPC(0x3b)) #define AND (F7(0x0) | F3(0x7) | OPC(0x33)) #define ANDI (F3(0x7) | OPC(0x13)) #define AUIPC (OPC(0x17)) @@ -1983,6 +1984,8 @@ static SLJIT_INLINE sljit_s32 emit_single_op(struct sljit_compiler *compiler, sl case SLJIT_MOV_U32: SLJIT_ASSERT(src1 == TMP_ZERO && !(flags & SRC2_IMM)); if ((flags & (REG_DEST | REG2_SOURCE)) == (REG_DEST | REG2_SOURCE)) { + if (RISCV_HAS_BITMANIP_A(93)) + return push_inst(compiler, ADD_UW | RD(dst) | RS1(src2) | RS2(TMP_ZERO)); FAIL_IF(push_inst(compiler, SLLI | RD(dst) | RS1(src2) | IMM_I(32))); return push_inst(compiler, SRLI | RD(dst) | RS1(dst) | IMM_I(32)); } @@ -2046,15 +2049,13 @@ static SLJIT_INLINE sljit_s32 emit_single_op(struct sljit_compiler *compiler, sl if (flags & SRC2_IMM) { if (is_overflow) { - if (src2 >= 0) { + if (dst == src1) { if (RISCV_HAS_COMPRESSED(200)) - FAIL_IF(push_inst16(compiler, C_MV | C_RD(EQUAL_FLAG) | C_RS2(src1))); + FAIL_IF(push_inst16(compiler, C_MV | C_RD(OTHER_FLAG) | C_RS2(src1))); else - FAIL_IF(push_inst(compiler, ADDI | RD(EQUAL_FLAG) | RS1(src1) | IMM_I(0))); - } else - FAIL_IF(push_inst(compiler, XORI | RD(EQUAL_FLAG) | RS1(src1) | IMM_I(-1))); - } - else if (op & SLJIT_SET_Z) + FAIL_IF(push_inst(compiler, ADDI | RD(OTHER_FLAG) | RS1(src1) | IMM_I(0))); + } + } else if (op & SLJIT_SET_Z) FAIL_IF(push_inst(compiler, ADDI | WORD | RD(EQUAL_FLAG) | RS1(src1) | IMM_I(src2))); /* Only the zero flag is needed. */ @@ -2088,7 +2089,7 @@ static SLJIT_INLINE sljit_s32 emit_single_op(struct sljit_compiler *compiler, sl } /* Carry is zero if a + b >= a or a + b >= b, otherwise it is 1. */ - if (is_overflow || carry_src_r != 0) { + if (carry_src_r != 0 || (is_overflow && !(flags & SRC2_IMM))) { if (flags & SRC2_IMM) FAIL_IF(push_inst(compiler, SLTUI | RD(OTHER_FLAG) | RS1(dst) | IMM_I(src2))); else @@ -2098,6 +2099,12 @@ static SLJIT_INLINE sljit_s32 emit_single_op(struct sljit_compiler *compiler, sl if (!is_overflow) return SLJIT_SUCCESS; + if (flags & SRC2_IMM) { + if (src2 >= 0) + return push_inst(compiler, SLT | RD(OTHER_FLAG) | RS1(dst) | RS2(dst == src1 ? OTHER_FLAG : src1)); + return push_inst(compiler, SLT | RD(OTHER_FLAG) | RS1(dst == src1 ? OTHER_FLAG : src1) | RS2(dst)); + } + FAIL_IF(push_inst(compiler, XOR | RD(TMP_REG1) | RS1(dst) | RS2(EQUAL_FLAG))); if (op & SLJIT_SET_Z) { if (RISCV_HAS_COMPRESSED(200)) @@ -2234,18 +2241,18 @@ static SLJIT_INLINE sljit_s32 emit_single_op(struct sljit_compiler *compiler, sl if (flags & SRC2_IMM) { if (is_overflow) { - if (src2 >= 0) { + if (dst == src1) { if (RISCV_HAS_COMPRESSED(200)) - FAIL_IF(push_inst16(compiler, C_MV | C_RD(EQUAL_FLAG) | C_RS2(src1))); + FAIL_IF(push_inst16(compiler, C_MV | C_RD(OTHER_FLAG) | C_RS2(src1))); else - FAIL_IF(push_inst(compiler, ADDI | RD(EQUAL_FLAG) | RS1(src1) | IMM_I(0))); - } else - FAIL_IF(push_inst(compiler, XORI | RD(EQUAL_FLAG) | RS1(src1) | IMM_I(-1))); - } else if (op & SLJIT_SET_Z) - FAIL_IF(push_inst(compiler, ADDI | WORD | RD(EQUAL_FLAG) | RS1(src1) | IMM_I(-src2))); - - if (is_overflow || is_carry) - FAIL_IF(push_inst(compiler, SLTUI | RD(OTHER_FLAG) | RS1(src1) | IMM_I(src2))); + FAIL_IF(push_inst(compiler, ADDI | RD(OTHER_FLAG) | RS1(src1) | IMM_I(0))); + } + } else { + if (op & SLJIT_SET_Z) + FAIL_IF(push_inst(compiler, ADDI | WORD | RD(EQUAL_FLAG) | RS1(src1) | IMM_I(-src2))); + if (is_carry) + FAIL_IF(push_inst(compiler, SLTUI | RD(OTHER_FLAG) | RS1(src1) | IMM_I(src2))); + } /* Only the zero flag is needed. */ if (!(flags & UNUSED_DEST) || (op & VARIABLE_FLAG_MASK)) { @@ -2276,6 +2283,12 @@ static SLJIT_INLINE sljit_s32 emit_single_op(struct sljit_compiler *compiler, sl if (!is_overflow) return SLJIT_SUCCESS; + if (flags & SRC2_IMM) { + if (src2 >= 0) + return push_inst(compiler, SLT | RD(OTHER_FLAG) | RS1(dst) | RS2(dst == src1 ? OTHER_FLAG : src1)); + return push_inst(compiler, SLT | RD(OTHER_FLAG) | RS1(dst == src1 ? OTHER_FLAG : src1) | RS2(dst)); + } + FAIL_IF(push_inst(compiler, XOR | RD(TMP_REG1) | RS1(dst) | RS2(EQUAL_FLAG))); if (op & SLJIT_SET_Z) { if (RISCV_HAS_COMPRESSED(200)) @@ -2901,7 +2914,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2_shift(struct sljit_compiler *c shift_arg &= (sljit_sw)((sizeof(sljit_sw) * 8) - 1); if (src2 == SLJIT_IMM) { - src2w = src2w << shift_arg; + src2w = (sljit_sw)((sljit_uw)src2w << shift_arg); shift_arg = 0; } diff --git a/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeS390X.c b/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeS390X.c index 98f671e102..1032ec0ba9 100644 --- a/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeS390X.c +++ b/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeS390X.c @@ -3163,7 +3163,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2_shift(struct sljit_compiler *c shift_arg &= 0x3f; if (src2 == SLJIT_IMM) { - src2w = src2w << shift_arg; + src2w = (sljit_sw)((sljit_uw)src2w << shift_arg); shift_arg = 0; } diff --git a/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeX86_common.c b/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeX86_common.c index 25085a8f9f..840443fd8e 100644 --- a/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeX86_common.c +++ b/scintilla/pcre2/deps/sljit/sljit_src/sljitNativeX86_common.c @@ -681,6 +681,9 @@ static sljit_u8* detect_near_jump_type(struct sljit_jump *jump, sljit_u8 *code_p sljit_s32 short_jump; sljit_uw label_addr; sljit_uw jump_addr; +#if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) + sljit_uw rel_size; +#endif /* SLJIT_CONFIG_X86_64 */ jump_addr = (sljit_uw)code_ptr; if (!(jump->flags & JUMP_ADDR)) { @@ -692,7 +695,8 @@ static sljit_u8* detect_near_jump_type(struct sljit_jump *jump, sljit_u8 *code_p label_addr = jump->u.target - (sljit_uw)executable_offset; #if (defined SLJIT_CONFIG_X86_64 && SLJIT_CONFIG_X86_64) - if ((sljit_sw)(label_addr - (jump_addr + 6)) > HALFWORD_MAX || (sljit_sw)(label_addr - (jump_addr + 5)) < HALFWORD_MIN) + rel_size = (type < SLJIT_JUMP) ? 6 : 5; + if ((sljit_sw)(label_addr - (jump_addr + rel_size)) > HALFWORD_MAX || (sljit_sw)(label_addr - (jump_addr + rel_size)) < HALFWORD_MIN) return detect_far_jump_type(jump, code_ptr); #endif /* SLJIT_CONFIG_X86_64 */ @@ -1067,7 +1071,14 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_has_cpu_feature(sljit_s32 feature_type) case SLJIT_HAS_COPY_F32: case SLJIT_HAS_COPY_F64: case SLJIT_HAS_ATOMIC: + return 1; + case SLJIT_HAS_MEMORY_BARRIER: +#if (defined SLJIT_DETECT_SSE2 && SLJIT_DETECT_SSE2) + if (cpu_feature_list == 0) + get_cpu_features(); + return (cpu_feature_list & CPU_FEATURE_SSE2) != 0; +#endif return 1; #if !(defined SLJIT_IS_FPU_AVAILABLE) || SLJIT_IS_FPU_AVAILABLE @@ -3036,7 +3047,7 @@ SLJIT_API_FUNC_ATTRIBUTE sljit_s32 sljit_emit_op2_shift(struct sljit_compiler *c shift_arg &= (sljit_sw)((sizeof(sljit_sw) * 8) - 1); if (src2 == SLJIT_IMM) { - src2w = src2w << shift_arg; + src2w = (sljit_sw)((sljit_uw)src2w << shift_arg); shift_arg = 0; } diff --git a/scintilla/pcre2/src/config.h.generic b/scintilla/pcre2/src/config.h.generic index 48da31e1b2..9d7971f681 100644 --- a/scintilla/pcre2/src/config.h.generic +++ b/scintilla/pcre2/src/config.h.generic @@ -119,6 +119,9 @@ surrounded by #ifndef/#endif lines so that the value can be overridden by -D. */ /* Define to 1 if you have the `secure_getenv' function. */ /* #undef HAVE_SECURE_GETENV */ +/* Define to 1 if you have the `setrlimit' function. */ +/* #undef HAVE_SETRLIMIT */ + /* Define to 1 if you have the header file. */ /* #undef HAVE_STDINT_H */ @@ -247,7 +250,7 @@ surrounded by #ifndef/#endif lines so that the value can be overridden by -D. */ #define PACKAGE_NAME "PCRE2" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "PCRE2 10.47" +#define PACKAGE_STRING "PCRE2 10.49" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "pcre2" @@ -256,7 +259,7 @@ surrounded by #ifndef/#endif lines so that the value can be overridden by -D. */ #define PACKAGE_URL "" /* Define to the version of this package. */ -#define PACKAGE_VERSION "10.47" +#define PACKAGE_VERSION "10.49" /* The value of PARENS_NEST_LIMIT specifies the maximum depth of nested parentheses (of any kind) in a pattern. This limits the amount of system @@ -475,7 +478,7 @@ surrounded by #ifndef/#endif lines so that the value can be overridden by -D. */ #endif /* Version number of package */ -#define VERSION "10.47" +#define VERSION "10.49" /* Number of bits in a file offset, on hosts where this is settable. */ /* #undef _FILE_OFFSET_BITS */ diff --git a/scintilla/pcre2/src/pcre2.h b/scintilla/pcre2/src/pcre2.h index 4034e5a91d..6adecbfd8c 100644 --- a/scintilla/pcre2/src/pcre2.h +++ b/scintilla/pcre2/src/pcre2.h @@ -42,9 +42,9 @@ POSSIBILITY OF SUCH DAMAGE. /* The current PCRE version information. */ #define PCRE2_MAJOR 10 -#define PCRE2_MINOR 47 +#define PCRE2_MINOR 49 #define PCRE2_PRERELEASE -#define PCRE2_DATE 2025-10-21 +#define PCRE2_DATE 2026-09-28 /* When an application links to a PCRE2 DLL in Windows, the symbols that are imported have to be identified as such. When building PCRE2, the appropriate @@ -438,6 +438,7 @@ released, the numbers must not be changed. */ #define PCRE2_ERROR_DIFFSUBSOFFSET (-73) #define PCRE2_ERROR_DIFFSUBSOPTIONS (-74) #define PCRE2_ERROR_BAD_BACKSLASH_K (-75) +#define PCRE2_ERROR_PARTIALSUBS (-76) /* Request types for pcre2_pattern_info() */ diff --git a/scintilla/pcre2/src/pcre2.h.generic b/scintilla/pcre2/src/pcre2.h.generic index 4034e5a91d..6adecbfd8c 100644 --- a/scintilla/pcre2/src/pcre2.h.generic +++ b/scintilla/pcre2/src/pcre2.h.generic @@ -42,9 +42,9 @@ POSSIBILITY OF SUCH DAMAGE. /* The current PCRE version information. */ #define PCRE2_MAJOR 10 -#define PCRE2_MINOR 47 +#define PCRE2_MINOR 49 #define PCRE2_PRERELEASE -#define PCRE2_DATE 2025-10-21 +#define PCRE2_DATE 2026-09-28 /* When an application links to a PCRE2 DLL in Windows, the symbols that are imported have to be identified as such. When building PCRE2, the appropriate @@ -438,6 +438,7 @@ released, the numbers must not be changed. */ #define PCRE2_ERROR_DIFFSUBSOFFSET (-73) #define PCRE2_ERROR_DIFFSUBSOPTIONS (-74) #define PCRE2_ERROR_BAD_BACKSLASH_K (-75) +#define PCRE2_ERROR_PARTIALSUBS (-76) /* Request types for pcre2_pattern_info() */ diff --git a/scintilla/pcre2/src/pcre2_compile.c b/scintilla/pcre2/src/pcre2_compile.c index f126e41b7b..32cb32f654 100644 --- a/scintilla/pcre2/src/pcre2_compile.c +++ b/scintilla/pcre2/src/pcre2_compile.c @@ -2020,7 +2020,7 @@ else else { *errorcodeptr = ERR64; - goto ESCAPE_FAILED_FORWARD; + if (ptr < ptrend) goto ESCAPE_FAILED_FORWARD; } break; @@ -2107,7 +2107,7 @@ else else { *errorcodeptr = ERR67; - goto ESCAPE_FAILED_FORWARD; + if (ptr < ptrend) goto ESCAPE_FAILED_FORWARD; } } /* End of \x{} processing */ @@ -6195,7 +6195,8 @@ for (;; pptr++) if (meta < META_ASTERISK || meta > META_MINMAX_QUERY) { - if (OFLOW_MAX - *lengthptr < (PCRE2_SIZE)(code - orig_code)) + if (*lengthptr > OFLOW_MAX || + OFLOW_MAX - *lengthptr < (PCRE2_SIZE)(code - orig_code)) { *errorcodeptr = ERR20; /* Integer overflow */ cb->erroroffset = 0; @@ -8066,6 +8067,13 @@ for (;; pptr++) tempcode += GET(tempcode, 1); break; #endif + + case OP_REF: + case OP_REFI: + case OP_DNREF: + case OP_DNREFI: + tempcode += PRIV(OP_lengths)[*tempcode]; + break; } /* If tempcode is equal to code (which points to the end of the repeated @@ -8795,7 +8803,8 @@ for (;;) *reqcuflagsptr = reqcuflags; if (lengthptr != NULL) { - if (OFLOW_MAX - *lengthptr < length) + if (*lengthptr > MAX_PATTERN_SIZE || + MAX_PATTERN_SIZE - *lengthptr < length) { *errorcodeptr = ERR20; return 0; @@ -8818,6 +8827,19 @@ for (;;) { code = *codeptr + 1 + LINK_SIZE + skipunits; length += 1 + LINK_SIZE; + + /* Move the accumulated length into *lengthptr, providing the next call to + compile_branch with as much space in &length and &code as the first did. */ + + if (*lengthptr > MAX_PATTERN_SIZE || + MAX_PATTERN_SIZE - *lengthptr < length) + { + *errorcodeptr = ERR20; + cb->erroroffset = 0; + return 0; + } + *lengthptr += length; + length = 0; } else { @@ -9363,10 +9385,10 @@ return c; /* This function is called to skip parts of the parsed pattern when finding the length of a lookbehind branch. It is called after (*ACCEPT) and (*FAIL) to find -the end of the branch, it is called to skip over an internal lookaround or -(DEFINE) group, and it is also called to skip to the end of a class, during -which it will never encounter nested groups (but there's no need to have -special code for that). +the end of the branch; it is called to skip over an internal lookaround or +(DEFINE) group; and it is also called to skip to the end of a class, during +which it will never encounter nested groups (however extended classes can +themselves be nested, with their own class-nesting level). When called to find the end of a branch or group, pptr must point to the first meta code inside the branch, not the branch-starting code. In other cases it @@ -9387,6 +9409,7 @@ static uint32_t * parsed_skip(uint32_t *pptr, uint32_t skiptype) { uint32_t nestlevel = 0; +uint32_t class_nestlevel = 0; for (;; pptr++) { @@ -9426,12 +9449,19 @@ for (;; pptr++) pptr += pptr[1]; break; - /* These are the "active" items in this loop. */ + /* These are the active items for tracking class nesting. */ + + case META_CLASS: + case META_CLASS_NOT: + if (skiptype == PSKIP_CLASS) class_nestlevel++; + break; case META_CLASS_END: - if (skiptype == PSKIP_CLASS) return pptr; + if (skiptype == PSKIP_CLASS && --class_nestlevel == 0) return pptr; break; + /* These are the "active" items for tracking ALT/KET nesting. */ + case META_ATOMIC: case META_CAPTURE: case META_COND_ASSERT: @@ -10160,6 +10190,11 @@ for (; *pptr != META_END; pptr++) case META_COMMIT: case META_DOLLAR: case META_DOT: + case META_ECLASS_AND: + case META_ECLASS_NOT: + case META_ECLASS_OR: + case META_ECLASS_SUB: + case META_ECLASS_XOR: case META_FAIL: case META_PLUS: case META_PLUS_PLUS: @@ -10831,7 +10866,8 @@ if (errorcode != 0) goto HAD_CB_ERROR; /* Offset is in cb.erroroffset */ #if defined SUPPORT_WIDE_CHARS PCRE2_ASSERT((cb.char_lists_size & 0x3) == 0); if (length > MAX_PATTERN_SIZE || - MAX_PATTERN_SIZE - length < (cb.char_lists_size / sizeof(PCRE2_UCHAR))) + BYTES2CU(cb.char_lists_size) > MAX_PATTERN_SIZE || + MAX_PATTERN_SIZE - length < BYTES2CU(cb.char_lists_size)) #else if (length > MAX_PATTERN_SIZE) #endif @@ -10856,11 +10892,36 @@ if (cb.char_lists_size != 0) /* Align to 32 bit first. This ensures the allocated area will also be 32 bit aligned. */ re_blocksize = (PCRE2_SIZE)CLIST_ALIGN_TO(re_blocksize, sizeof(uint32_t)); +#else + /* Already 32 bit aligned. */ #endif + + /* We have bounded the length and BYTES2CU(char_lists_size) to + MAX_PATTERN_SIZE units, however (with 32-bit code units) char_lists_size + in bytes could still be extremely close to (or greater than) SIZE_MAX, so + we require another overflow check. */ + + if (cb.char_lists_size > PCRE2_SIZE_MAX - re_blocksize) + { + errorcode = ERR20; + cb.erroroffset = 0; + goto HAD_CB_ERROR; + } + re_blocksize += cb.char_lists_size; } #endif +if (length > BYTES2CU(PCRE2_SIZE_MAX - re_blocksize)) + { + /* Given the current value of 2^30 for MAX_PATTERN_SIZE, this block is only + reachable when both PCRE2_CODE_UNIT_WIDTH >= 16 and sizeof(size_t) is + 32 bits. */ + errorcode = ERR20; + cb.erroroffset = 0; + goto HAD_CB_ERROR; + } + re_blocksize += CU2BYTES(length); if (re_blocksize > ccontext->max_pattern_compiled_length) @@ -10870,7 +10931,15 @@ if (re_blocksize > ccontext->max_pattern_compiled_length) goto HAD_CB_ERROR; } +if (sizeof(pcre2_real_code) > PCRE2_SIZE_MAX - re_blocksize) + { + errorcode = ERR20; + cb.erroroffset = 0; + goto HAD_CB_ERROR; + } + re_blocksize += sizeof(pcre2_real_code); + re = (pcre2_real_code *) ccontext->memctl.malloc(re_blocksize, ccontext->memctl.memory_data); if (re == NULL) diff --git a/scintilla/pcre2/src/pcre2_compile_class.c b/scintilla/pcre2/src/pcre2_compile_class.c index 9a1fc022ff..c06066436c 100644 --- a/scintilla/pcre2/src/pcre2_compile_class.c +++ b/scintilla/pcre2/src/pcre2_compile_class.c @@ -498,7 +498,7 @@ static const uint32_t char_list_starts[] = { static class_ranges * compile_optimize_class(uint32_t *start_ptr, uint32_t options, - uint32_t xoptions, compile_block *cb) + uint32_t xoptions, int *errorcodeptr, compile_block *cb) { class_ranges* cranges; uint32_t *ptr; @@ -538,12 +538,23 @@ PCRE2_ASSERT((range_list_size & 0x1) == 0); total_size = range_list_size + ((range_list_size >= 2) ? CHAR_LIST_EXTRA_SIZE : 0); +if (total_size > (PCRE2_SIZE_MAX - sizeof(class_ranges)) / sizeof(uint32_t)) + { + *errorcodeptr = ERR20; + cb->erroroffset = 0; + return NULL; + } cranges = cb->cx->memctl.malloc( sizeof(class_ranges) + total_size * sizeof(uint32_t), cb->cx->memctl.memory_data); -if (cranges == NULL) return NULL; +if (cranges == NULL) + { + *errorcodeptr = ERR21; + cb->erroroffset = 0; + return NULL; + } cranges->header.next = NULL; #ifdef PCRE2_DEBUG @@ -721,9 +732,13 @@ while (TRUE) else cranges->char_lists_types |= tmp1 << tmp2; - if (range_start < XCL_CHAR_LIST_LOW_16_START) break; + if (range_end < XCL_CHAR_LIST_LOW_16_START || tmp2 == 0) + { + PCRE2_ASSERT(range_start < XCL_CHAR_LIST_LOW_16_START); + break; + } - PCRE2_ASSERT(tmp2 >= XCL_TYPE_BIT_LEN); + PCRE2_ASSERT((tmp2 % XCL_TYPE_BIT_LEN) == 0); char_list_end = char_list_start - 1; char_list_start = *char_list_next++; tmp1 = 0; @@ -1116,13 +1131,10 @@ if (utf) { if (lengthptr != NULL) { - cranges = compile_optimize_class(pptr, options, xoptions, cb); + cranges = compile_optimize_class(pptr, options, xoptions, errorcodeptr, cb); if (cranges == NULL) - { - *errorcodeptr = ERR21; return NULL; - } /* Caching the pre-processed character ranges. */ if (cb->last_data != NULL) @@ -1755,18 +1767,17 @@ if ((xclass_props & XCLASS_REQUIRED) != 0) *lengthptr += 1 + LINK_SIZE; #endif - cb->char_lists_size += char_lists_size; + PCRE2_ASSERT(BYTES2CU(cb->char_lists_size) <= MAX_PATTERN_SIZE); - char_lists_size /= sizeof(PCRE2_UCHAR); - - /* Storage space for character lists is included - in the maximum pattern size. */ - if (*lengthptr > MAX_PATTERN_SIZE || - MAX_PATTERN_SIZE - *lengthptr < char_lists_size) + if (char_lists_size > PCRE2_SIZE_MAX - cb->char_lists_size || + BYTES2CU(char_lists_size) > MAX_PATTERN_SIZE || + BYTES2CU(cb->char_lists_size) > MAX_PATTERN_SIZE - BYTES2CU(char_lists_size)) { *errorcodeptr = ERR20; /* Pattern is too large */ return NULL; } + + cb->char_lists_size += char_lists_size; } else { @@ -1789,6 +1800,8 @@ if ((xclass_props & XCLASS_REQUIRED) != 0) Each list is aligned to 32 bit with an optional unused 16 bit value at the beginning of the character list. */ + PCRE2_ASSERT(char_lists_size <= PCRE2_SIZE_MAX - cb->char_lists_size); + cb->char_lists_size += char_lists_size; data = (uint8_t*)cb->start_code - cb->char_lists_size; @@ -1802,17 +1815,14 @@ if ((xclass_props & XCLASS_REQUIRED) != 0) PUT(code, 0, (uint32_t)(char_lists_size >> 1)); code += LINK_SIZE; -#if defined PCRE2_DEBUG || defined SUPPORT_VALGRIND + /* If we added padding to align the list, initialize the bytes to + defined values, so the library is valgrind-clean. It could also + be a security concern for clients calling into PCRE2 via bindings + from a memory-safe language, if pcre2_serialize_encode() exposes + uninitialized memory that may contain sensitive information. */ + if ((char_lists_size & 0x2) != 0) - { - /* In debug the unused 16 bit value is set - to a fixed value and marked unused. */ - ((uint16_t*)data)[-1] = 0x5555; -#ifdef SUPPORT_VALGRIND - VALGRIND_MAKE_MEM_NOACCESS(data - 2, 2); -#endif - } -#endif + ((uint16_t*)data)[-1] = 0xdead; cb->char_lists_size = CLIST_ALIGN_TO(char_lists_size, sizeof(uint32_t)); diff --git a/scintilla/pcre2/src/pcre2_convert.c b/scintilla/pcre2/src/pcre2_convert.c index ad7312ab7b..8a2b293d5f 100644 --- a/scintilla/pcre2/src/pcre2_convert.c +++ b/scintilla/pcre2/src/pcre2_convert.c @@ -1215,9 +1215,11 @@ for (int i = 0; i < 2; i++) /* Allocate memory for the buffer, with hidden space for an allocator at the start. The next time round the loop runs the conversion for real. */ - allocated = PRIV(memctl_malloc)(sizeof(pcre2_memctl) + - (*bufflenptr + 1)*PCRE2_CODE_UNIT_WIDTH, (pcre2_memctl *)ccontext); - if (allocated == NULL) + if (*bufflenptr > ((PCRE2_SIZE_MAX - sizeof(pcre2_memctl)) / + CU2BYTES(1)) - 1 || + (allocated = PRIV(memctl_malloc)(sizeof(pcre2_memctl) + + CU2BYTES(*bufflenptr + 1), + (pcre2_memctl *)ccontext)) == NULL) { *bufflenptr = 0; /* Error offset */ return PCRE2_ERROR_NOMEMORY; diff --git a/scintilla/pcre2/src/pcre2_dfa_match.c b/scintilla/pcre2/src/pcre2_dfa_match.c index f507acf8d5..267d9eb552 100644 --- a/scintilla/pcre2/src/pcre2_dfa_match.c +++ b/scintilla/pcre2/src/pcre2_dfa_match.c @@ -405,8 +405,8 @@ return (mb->callout)(cb, mb->callout_data); /* This function is called when internal_dfa_match() is about to be called recursively and there is insufficient working space left in the current -workspace block. If there's an existing next block, use it; otherwise get a new -block unless the heap limit is reached. +workspace block. If there's a sufficiently large next block, use it; get a new +block unless the heap limit is (or has been) reached. Arguments: rwsptr pointer to block pointer (updated) @@ -422,9 +422,18 @@ more_workspace(RWS_anchor **rwsptr, unsigned int ovecsize, dfa_match_block *mb) { RWS_anchor *rws = *rwsptr; RWS_anchor *new; +uint32_t requested; + +PCRE2_ASSERT(ovecsize <= UINT32_MAX - RWS_RSIZE - RWS_ANCHOR_SIZE); +requested = RWS_RSIZE + ovecsize + RWS_ANCHOR_SIZE; if (rws->next != NULL) { + /* Although the initial block is large, and subsequent ones try to double, the + heap limit may cause the last one to be smaller; in this case, we have already + hit the heap limit and allocating a larger block will not be possible. */ + if (rws->next->size < requested) + return PCRE2_ERROR_HEAPLIMIT; new = rws->next; } @@ -434,14 +443,30 @@ overflow. */ else { - uint32_t newsize = (rws->size >= UINT32_MAX/(sizeof(int)*2))? UINT32_MAX/sizeof(int) : rws->size * 2; + uint32_t newsize = (rws->size >= (UINT32_MAX/sizeof(int))/2)? + UINT32_MAX/sizeof(int) : rws->size * 2; uint32_t newsizeK = newsize/(1024/sizeof(int)); - if (newsizeK + mb->heap_used > mb->heap_limit) - newsizeK = (uint32_t)(mb->heap_limit - mb->heap_used); - newsize = newsizeK*(1024/sizeof(int)); + /* Clamp the allocation to the remaining heap allowance with care for overflows */ + + if (mb->heap_used >= mb->heap_limit) + { + newsize = 0; + newsizeK = 0; + } + else + { + PCRE2_SIZE availableK = mb->heap_limit - mb->heap_used; + /* newsize always capped at UINT32_MAX/sizeof(int), so newsizeK also capped; + and - if availableK is smaller - then multiplication to form newsize is safe */ + if (newsizeK > availableK) + { + newsize = (uint32_t)(availableK*(1024/sizeof(int))); + newsizeK = (uint32_t)availableK; + } + } - if (newsize < RWS_RSIZE + ovecsize + RWS_ANCHOR_SIZE) + if (newsize < requested) return PCRE2_ERROR_HEAPLIMIT; new = mb->memctl.malloc(newsize*sizeof(int), mb->memctl.memory_data); if (new == NULL) return PCRE2_ERROR_NOMEMORY; @@ -1601,7 +1626,7 @@ for (;;) goto ANYNL01; case CHAR_CR: - if (ptr + 1 < end_subject && UCHAR21TEST(ptr + 1) == CHAR_LF) ncount = 1; + if (ptr + 1 < end_subject && ptr[1] == CHAR_LF) ncount = 1; /* Fall through */ ANYNL01: @@ -1879,7 +1904,7 @@ for (;;) goto ANYNL02; case CHAR_CR: - if (ptr + 1 < end_subject && UCHAR21TEST(ptr + 1) == CHAR_LF) ncount = 1; + if (ptr + 1 < end_subject && ptr[1] == CHAR_LF) ncount = 1; /* Fall through */ ANYNL02: @@ -2160,7 +2185,7 @@ for (;;) goto ANYNL03; case CHAR_CR: - if (ptr + 1 < end_subject && UCHAR21TEST(ptr + 1) == CHAR_LF) ncount = 1; + if (ptr + 1 < end_subject && ptr[1] == CHAR_LF) ncount = 1; /* Fall through */ ANYNL03: @@ -2341,7 +2366,7 @@ for (;;) if ((mb->moptions & PCRE2_PARTIAL_HARD) != 0) reset_could_continue = TRUE; } - else if (UCHAR21TEST(ptr + 1) == CHAR_LF) + else if (ptr[1] == CHAR_LF) { ADD_NEW_DATA(-(state_offset + 1), 0, 1); } @@ -2801,6 +2826,7 @@ for (;;) local_offsets = (PCRE2_SIZE *)(RWS + rws->size - rws->free); local_workspace = ((int *)local_offsets) + RWS_OVEC_OSIZE; + PCRE2_ASSERT(rws->free >= RWS_RSIZE + RWS_OVEC_OSIZE); rws->free -= RWS_RSIZE + RWS_OVEC_OSIZE; while (*endasscode == OP_ALT) endasscode += GET(endasscode, 1); @@ -2900,6 +2926,7 @@ for (;;) local_offsets = (PCRE2_SIZE *)(RWS + rws->size - rws->free); local_workspace = ((int *)local_offsets) + RWS_OVEC_OSIZE; + PCRE2_ASSERT(rws->free >= RWS_RSIZE + RWS_OVEC_OSIZE); rws->free -= RWS_RSIZE + RWS_OVEC_OSIZE; while (*endasscode == OP_ALT) endasscode += GET(endasscode, 1); @@ -2951,6 +2978,7 @@ for (;;) local_offsets = (PCRE2_SIZE *)(RWS + rws->size - rws->free); local_workspace = ((int *)local_offsets) + RWS_OVEC_RSIZE; + PCRE2_ASSERT(rws->free >= RWS_RSIZE + RWS_OVEC_RSIZE); rws->free -= RWS_RSIZE + RWS_OVEC_RSIZE; /* Check for repeating a recursion without advancing the subject @@ -3050,6 +3078,7 @@ for (;;) local_offsets = (PCRE2_SIZE *)(RWS + rws->size - rws->free); local_workspace = ((int *)local_offsets) + RWS_OVEC_OSIZE; + PCRE2_ASSERT(rws->free >= RWS_RSIZE + RWS_OVEC_OSIZE); rws->free -= RWS_RSIZE + RWS_OVEC_OSIZE; if (codevalue == OP_BRAPOSZERO) @@ -3149,6 +3178,7 @@ for (;;) local_offsets = (PCRE2_SIZE *)(RWS + rws->size - rws->free); local_workspace = ((int *)local_offsets) + RWS_OVEC_OSIZE; + PCRE2_ASSERT(rws->free >= RWS_RSIZE + RWS_OVEC_OSIZE); rws->free -= RWS_RSIZE + RWS_OVEC_OSIZE; rc = internal_dfa_match( @@ -3745,7 +3775,7 @@ for (;;) BOOL ok = start_match < end_subject; if (ok) { - PCRE2_UCHAR c = UCHAR21TEST(start_match); + PCRE2_UCHAR c = *start_match; ok = has_first_cu && (c == first_cu || c == first_cu2); if (!ok && start_bits != NULL) { @@ -3773,7 +3803,7 @@ for (;;) #if PCRE2_CODE_UNIT_WIDTH != 8 PCRE2_UCHAR smc; while (start_match < end_subject && - (smc = UCHAR21TEST(start_match)) != first_cu && + (smc = *start_match) != first_cu && smc != first_cu2) start_match++; #else @@ -3833,7 +3863,7 @@ for (;;) else { #if PCRE2_CODE_UNIT_WIDTH != 8 - while (start_match < end_subject && UCHAR21TEST(start_match) != + while (start_match < end_subject && *start_match != first_cu) start_match++; #else /* 8-bit code units */ @@ -3885,7 +3915,7 @@ for (;;) if (start_match[-1] == CHAR_CR && (mb->nltype == NLTYPE_ANY || mb->nltype == NLTYPE_ANYCRLF) && start_match < end_subject && - UCHAR21TEST(start_match) == CHAR_NL) + *start_match == CHAR_NL) start_match++; } } @@ -3899,7 +3929,7 @@ for (;;) { while (start_match < end_subject) { - uint32_t c = UCHAR21TEST(start_match); + uint32_t c = *start_match; #if PCRE2_CODE_UNIT_WIDTH != 8 if (c > 255) c = 255; #endif @@ -3967,7 +3997,7 @@ for (;;) #if PCRE2_CODE_UNIT_WIDTH != 8 while (p < end_subject) { - uint32_t pp = UCHAR21INCTEST(p); + uint32_t pp = *p++; if (pp == req_cu || pp == req_cu2) { p--; break; } } #else /* 8-bit code units */ @@ -3988,7 +4018,7 @@ for (;;) #if PCRE2_CODE_UNIT_WIDTH != 8 while (p < end_subject) { - if (UCHAR21INCTEST(p) == req_cu) { p--; break; } + if (*p++ == req_cu) { p--; break; } } #else /* 8-bit code units */ @@ -4096,9 +4126,9 @@ for (;;) not contain any explicit matches for \r or \n, and the newline option is CRLF or ANY or ANYCRLF, advance the match position by one more character. */ - if (UCHAR21TEST(start_match - 1) == CHAR_CR && + if (start_match[-1] == CHAR_CR && start_match < end_subject && - UCHAR21TEST(start_match) == CHAR_NL && + *start_match == CHAR_NL && (re->flags & PCRE2_HASCRORLF) == 0 && (mb->nltype == NLTYPE_ANY || mb->nltype == NLTYPE_ANYCRLF || diff --git a/scintilla/pcre2/src/pcre2_error.c b/scintilla/pcre2/src/pcre2_error.c index df26add2be..46753f079b 100644 --- a/scintilla/pcre2/src/pcre2_error.c +++ b/scintilla/pcre2/src/pcre2_error.c @@ -305,7 +305,9 @@ static const unsigned char match_error_texts[] = "substitute subject differs from prior match call\0" "substitute start offset differs from prior match call\0" "substitute options differ from prior match call\0" + /* 75 */ "disallowed use of \\K in lookaround\0" + "replacement $' or $_ not supported with partial match\0" ; diff --git a/scintilla/pcre2/src/pcre2_extuni.c b/scintilla/pcre2/src/pcre2_extuni.c index 1b7f04b4b2..fea098a763 100644 --- a/scintilla/pcre2/src/pcre2_extuni.c +++ b/scintilla/pcre2/src/pcre2_extuni.c @@ -54,12 +54,12 @@ support, because some compilers do not like functionless source files. */ #ifndef SUPPORT_UNICODE PCRE2_SPTR -PRIV(extuni)(uint32_t c, PCRE2_SPTR eptr, PCRE2_SPTR start_subject, +PRIV(extuni)(uint32_t c, PCRE2_SPTR eptr, PCRE2_SPTR check_subject, PCRE2_SPTR end_subject, BOOL utf, int *xcount) { (void)c; (void)eptr; -(void)start_subject; +(void)check_subject; (void)end_subject; (void)utf; (void)xcount; @@ -80,7 +80,7 @@ same behaviour. Arguments: c the first character eptr pointer to next character - start_subject pointer to start of subject + check_subject pointer to start of validated subject end_subject pointer to end of subject utf TRUE if in UTF mode xcount pointer to count of additional characters, @@ -90,7 +90,7 @@ Returns: pointer after the end of the sequence */ PCRE2_SPTR -PRIV(extuni)(uint32_t c, PCRE2_SPTR eptr, PCRE2_SPTR start_subject, +PRIV(extuni)(uint32_t c, PCRE2_SPTR eptr, PCRE2_SPTR check_subject, PCRE2_SPTR end_subject, BOOL utf, int *xcount) { BOOL was_ep_ZWJ = FALSE; @@ -121,7 +121,7 @@ while (eptr < end_subject) /* bptr is pointing to the left-hand character */ - while (bptr > start_subject) + while (bptr > check_subject) { bptr--; if (utf) diff --git a/scintilla/pcre2/src/pcre2_internal.h b/scintilla/pcre2/src/pcre2_internal.h index aa79409572..930c745b40 100644 --- a/scintilla/pcre2/src/pcre2_internal.h +++ b/scintilla/pcre2/src/pcre2_internal.h @@ -477,8 +477,8 @@ start/end of string field names are. */ &(NLBLOCK->nllen), utf)) \ : \ ((p) <= NLBLOCK->PSEND - NLBLOCK->nllen && \ - UCHAR21TEST(p) == NLBLOCK->nl[0] && \ - (NLBLOCK->nllen == 1 || UCHAR21TEST(p+1) == NLBLOCK->nl[1]) \ + *p == NLBLOCK->nl[0] && \ + (NLBLOCK->nllen == 1 || p[1] == NLBLOCK->nl[1]) \ ) \ ) @@ -491,8 +491,8 @@ start/end of string field names are. */ &(NLBLOCK->nllen), utf)) \ : \ ((p) >= NLBLOCK->PSSTART + NLBLOCK->nllen && \ - UCHAR21TEST(p - NLBLOCK->nllen) == NLBLOCK->nl[0] && \ - (NLBLOCK->nllen == 1 || UCHAR21TEST(p - NLBLOCK->nllen + 1) == NLBLOCK->nl[1]) \ + *(p - NLBLOCK->nllen) == NLBLOCK->nl[0] && \ + (NLBLOCK->nllen == 1 || *(p - NLBLOCK->nllen + 1) == NLBLOCK->nl[1]) \ ) \ ) @@ -1518,7 +1518,7 @@ High16 and High32: the highest bit is always one The items are ordered in increasing order, so binary search can be used to find the lower bound of an input character. The lower bound is the highest item, which value is less or equal than the input -character. If the lower bit of the item is cleard, or the character +character. If the lower bit of the item is cleared, or the character stored in the item equals to the input character, the input character is in the character list. */ @@ -1539,14 +1539,19 @@ character is in the character list. */ #define XCL_CHAR_LIST_HIGH_32_END 0xffffffff #define XCL_CHAR_LIST_HIGH_32_ADD 0x80000000 -/* Mask for getting the descriptors of character list ranges. -Each descriptor has XCL_TYPE_BIT_LEN bits, and can be processed -by XCL_BEGIN_WITH_RANGE and XCL_ITEM_COUNT_MASK macros. */ +/* Mask and length values for getting the descriptors of +all character list ranges. The bit length of each descriptor +is XCL_TYPE_BIT_LEN so the total size is 4*XCL_TYPE_BIT_LEN +(currently 12 bit). This data is stored for all four character +lists, even if no characters are present in a list. */ #define XCL_TYPE_MASK 0xfff #define XCL_TYPE_BIT_LEN 3 -/* If this bit is set, the first item of the character list is the -end of a range, which started before the starting character of the -character list. */ +/* If this bit is set for a character class, the first item of the +character list is the end of a range, which started before the +starting character of the character list. If this bit is set, and +no characters are present in the list, the whole character class +is part of a range. E.g: [\x{500}-\x{12000}] covers the entire +0x8000-0xffff range. */ #define XCL_BEGIN_WITH_RANGE 0x4 /* Number of items in the character list: 0, 1, or 2. The value 3 represents that the item count is stored at the begining of the @@ -2296,6 +2301,7 @@ is available. */ #define _pcre2_is_newline PCRE2_SUFFIX(_pcre2_is_newline_) #define _pcre2_jit_free_rodata PCRE2_SUFFIX(_pcre2_jit_free_rodata_) #define _pcre2_jit_free PCRE2_SUFFIX(_pcre2_jit_free_) +#define _pcre2_jit_check_exec PCRE2_SUFFIX(_pcre2_jit_check_exec_) #define _pcre2_jit_get_size PCRE2_SUFFIX(_pcre2_jit_get_size_) #define _pcre2_jit_get_target PCRE2_SUFFIX(_pcre2_jit_get_target_) #define _pcre2_memctl_malloc PCRE2_SUFFIX(_pcre2_memctl_malloc_) @@ -2325,6 +2331,7 @@ extern BOOL _pcre2_is_newline(PCRE2_SPTR, uint32_t, PCRE2_SPTR, uint32_t *, BOOL); extern void _pcre2_jit_free_rodata(void *, void *); extern void _pcre2_jit_free(void *, pcre2_memctl *); +extern BOOL _pcre2_jit_check_exec(void *, uint32_t); extern size_t _pcre2_jit_get_size(void *); const char * _pcre2_jit_get_target(void); extern void * _pcre2_memctl_malloc(size_t, pcre2_memctl *); diff --git a/scintilla/pcre2/src/pcre2_intmodedep.h b/scintilla/pcre2/src/pcre2_intmodedep.h index 6cefb61d37..269c418fe0 100644 --- a/scintilla/pcre2/src/pcre2_intmodedep.h +++ b/scintilla/pcre2/src/pcre2_intmodedep.h @@ -250,21 +250,6 @@ check is needed before accessing these tables. */ /* ----------------- Character-handling macros ----------------- */ -/* There is a proposed future special "UTF-21" mode, in which only the lowest -21 bits of a 32-bit character are interpreted as UTF, with the remaining 11 -high-order bits available to the application for other uses. In preparation for -the future implementation of this mode, there are macros that load a data item -and, if in this special mode, mask it to 21 bits. These macros all have names -starting with UCHAR21. In all other modes, including the normal 32-bit -library, the macros all have the same simple definitions. When the new mode is -implemented, it is expected that these definitions will be varied appropriately -using #ifdef when compiling the library that supports the special mode. */ - -#define UCHAR21(eptr) (*(eptr)) -#define UCHAR21TEST(eptr) (*(eptr)) -#define UCHAR21INC(eptr) (*(eptr)++) -#define UCHAR21INCTEST(eptr) (*(eptr)++) - /* When UTF encoding is being used, a character is no longer just a single byte in 8-bit mode or a single short in 16-bit mode. The macros for character handling generate simple sequences when used in the basic mode, and more @@ -891,38 +876,125 @@ we don't generate any code when all is well. */ typedef struct heapframe { /* The first set of fields are variables that have to be preserved over calls - to RRMATCH(), but which do not need to be copied to new frames. */ + to RMATCH(), but which do not need to be copied to new frames. */ PCRE2_SPTR ecode; /* The current position in the pattern */ - PCRE2_SPTR temp_sptr[2]; /* Used for short-term PCRE2_SPTR values */ - PCRE2_SIZE length; /* Used for character, string, or code lengths */ PCRE2_SIZE back_frame; /* Amount to subtract on RRETURN */ - PCRE2_SIZE temp_size; /* Used for short-term PCRE2_SIZE values */ uint32_t rdepth; /* Function "recursion" depth within pcre2_match() */ uint32_t group_frame_type; /* Type information for group frames */ - uint32_t temp_32[4]; /* Used for short-term 32-bit or BOOL values */ uint8_t return_id; /* Where to go on in internal "return" */ uint8_t op; /* Processing opcode */ + uint8_t byte1; /* A temporary byte to store anything */ + uint8_t byte2; /* A temporary byte to store anything */ - /* At this point, the structure is 16-bit aligned. On most architectures + /* At this point, the structure is 32-bit aligned. On most architectures the alignment requirement for a pointer will ensure that the eptr field below is 32-bit or 64-bit aligned. However, on m68k it is fine to have a pointer - that is 16-bit aligned. We must therefore ensure that what comes between here - and eptr is an odd multiple of 16 bits so as to get back into 32-bit - alignment. This happens naturally when PCRE2_UCHAR is 8 bits wide, but needs - fudges in the other cases. In the 32-bit case the padding comes first so that - the occu field itself is 32-bit aligned. Without the padding, this structure - is no longer a multiple of PCRE2_SIZE on m68k, and the check below fails. */ - + that is 16-bit aligned, so all uint8_t members above are required for a 32 + bit alignment. */ + + union { + /* Fields for storing localized data, which + is preserved by RMATCH() calls. */ + + struct { + PCRE2_SPTR start_eptr; + PCRE2_SPTR charptr; + uint32_t min; + uint32_t max; + uint32_t c; + union { + uint32_t oc; + /* Buffer for other case code units. The size of + the buffer is enough to store the longest character. */ #if PCRE2_CODE_UNIT_WIDTH == 8 - PCRE2_UCHAR occu[6]; /* Used for other case code units */ + PCRE2_UCHAR occu[4]; #elif PCRE2_CODE_UNIT_WIDTH == 16 - PCRE2_UCHAR occu[2]; /* Used for other case code units */ - uint8_t unused[2]; /* Ensure 32-bit alignment (see above) */ + PCRE2_UCHAR occu[2]; #else - uint8_t unused[2]; /* Ensure 32-bit alignment (see above) */ - PCRE2_UCHAR occu[1]; /* Used for other case code units */ + PCRE2_UCHAR occu[1]; #endif + } oc; + } char_repeat; + + struct { + PCRE2_SPTR start_eptr; + uint32_t min; + uint32_t max; + uint32_t c; + uint32_t oc; + } charnot_repeat; + + struct { + PCRE2_SPTR start_eptr; + PCRE2_SPTR byte_map_address; + uint32_t min; + uint32_t max; + } class_repeat; + + struct { + PCRE2_SPTR start_eptr; + PCRE2_SPTR xclass_data; + uint32_t min; + uint32_t max; + } xclass_repeat; + + struct { + PCRE2_SPTR start_eptr; + PCRE2_SPTR eclass_data; + PCRE2_SIZE eclass_len; + uint32_t min; + uint32_t max; + } eclass_repeat; + + struct { + PCRE2_SPTR start_eptr; + uint32_t min; + uint32_t max; + uint32_t ctype; + uint32_t propvalue; + } type_repeat; + + struct { + PCRE2_SPTR start; + PCRE2_SIZE offset; + PCRE2_SIZE length; + uint32_t min; + uint32_t max; + } ref_repeat; + + struct { + uint32_t frame_type; /* Set for all that use GROUPLOOP */ + } op_bra; + + struct { + PCRE2_SPTR start_eptr; + PCRE2_SPTR start_group; + uint32_t frame_type; + } op_brapos; + + struct { + PCRE2_SPTR start_branch; + uint32_t frame_type; + } op_recurse; + + struct { + PCRE2_SPTR saved_end_subject; + PCRE2_SPTR saved_eptr; + PCRE2_SIZE true_end_extra; + uint32_t saved_moptions; + } op_assert_scs; + + struct { + PCRE2_SPTR start_branch; + PCRE2_SIZE length; + } op_cond; + + struct { + uint32_t min; + uint32_t max; + } op_vreverse; + } fields; /* The rest have to be copied from the previous frame whenever a new frame becomes current. The final field is specified as a large vector so that diff --git a/scintilla/pcre2/src/pcre2_jit_compile.c b/scintilla/pcre2/src/pcre2_jit_compile.c index 3ab4592c3a..c5da883ca1 100644 --- a/scintilla/pcre2/src/pcre2_jit_compile.c +++ b/scintilla/pcre2/src/pcre2_jit_compile.c @@ -99,7 +99,7 @@ Fast, but limited size. */ /* Growth rate for stack allocated by the OS. Should be the multiply of page size. */ -#define STACK_GROWTH_RATE 8192 +#define STACK_GROWTH_RATE (sljit_sw)8192 /* Enable to check that the allocation could destroy temporaries. */ #if defined SLJIT_DEBUG && SLJIT_DEBUG @@ -321,6 +321,7 @@ typedef struct ref_iterator_backtrack { backtrack_common common; /* Next iteration. */ struct sljit_label *matchingpath; + BOOL possessive_or_exact; } ref_iterator_backtrack; typedef struct recurse_entry { @@ -472,6 +473,8 @@ typedef struct compiler_common { BOOL local_quit_available; /* Currently in a positive assertion. */ BOOL in_positive_assertion; + /* More than STACK_GROWTH_RATE / 2 stack memory is allocated. */ + BOOL large_stack_allocation; /* Newline control. */ int nltype; sljit_u32 nlmax; @@ -1142,7 +1145,11 @@ cc += PRIV(OP_lengths)[*cc]; /* Although do_casefulcmp() uses only one local, the allocate_stack() calls during the repeat destroys LOCAL1 variables. */ if (*cc >= OP_CRSTAR && *cc <= OP_CRPOSRANGE) + { locals_size += 2 * SSIZE_OF(sw); + if (*cc >= OP_CRPOSRANGE && GET2(cc, 1 + IMM2_SIZE + 1) != GET2(cc, 1 + IMM2_SIZE + 1 + IMM2_SIZE)) + locals_size += SSIZE_OF(sw); + } return (current_locals_size >= locals_size) ? current_locals_size : locals_size; } @@ -3523,6 +3530,8 @@ static SLJIT_INLINE void allocate_stack(compiler_common *common, sljit_s32 size) DEFINE_COMPILER; SLJIT_ASSERT(size > 0); +if (size > (STACK_GROWTH_RATE / (SSIZE_OF(sw) * 2))) + common->large_stack_allocation = TRUE; OP2(SLJIT_SUB, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, size * SSIZE_OF(sw)); #ifdef DESTROY_REGISTERS OP1(SLJIT_MOV, TMP1, 0, SLJIT_IMM, 12345); @@ -5413,15 +5422,15 @@ OP_SRC(SLJIT_FAST_RETURN, RETURN_ADDR, 0); static void do_utfreadchar_invalid(compiler_common *common) { /* Slow decoding a UTF-16 character. TMP1 contains the first half -of the character (>= 0xd800). Return char value in TMP1. STR_PTR is -undefined for invalid characters. */ +of the character (>= 0xd800). TMP2 contains TMP1 - 0xd800. Return +char value in TMP1. STR_PTR is unchanged for invalid characters. */ DEFINE_COMPILER; struct sljit_jump *exit_invalid[3]; sljit_emit_op_dst(compiler, SLJIT_FAST_ENTER, RETURN_ADDR, 0); /* TMP2 contains the high surrogate. */ -exit_invalid[0] = CMP(SLJIT_GREATER_EQUAL, TMP1, 0, SLJIT_IMM, 0xdc00); +exit_invalid[0] = CMP(SLJIT_GREATER_EQUAL, TMP2, 0, SLJIT_IMM, 0x400); exit_invalid[1] = CMP(SLJIT_GREATER_EQUAL, STR_PTR, 0, STR_END, 0); OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), IN_UCHARS(0)); @@ -5435,9 +5444,10 @@ exit_invalid[2] = CMP(SLJIT_GREATER_EQUAL, TMP1, 0, SLJIT_IMM, 0x400); OP2(SLJIT_ADD, TMP1, 0, TMP1, 0, TMP2, 0); OP_SRC(SLJIT_FAST_RETURN, RETURN_ADDR, 0); +JUMPHERE(exit_invalid[2]); +OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1)); JUMPHERE(exit_invalid[0]); JUMPHERE(exit_invalid[1]); -JUMPHERE(exit_invalid[2]); OP1(SLJIT_MOV, TMP1, 0, SLJIT_IMM, INVALID_UTF_CHAR); OP_SRC(SLJIT_FAST_RETURN, RETURN_ADDR, 0); } @@ -5635,7 +5645,6 @@ struct sljit_jump *start; struct sljit_jump *end = NULL; struct sljit_jump *end2 = NULL; #if defined SUPPORT_UNICODE && PCRE2_CODE_UNIT_WIDTH != 32 -struct sljit_label *loop; struct sljit_jump *jump; #endif /* SUPPORT_UNICODE && PCRE2_CODE_UNIT_WIDTH != 32 */ jump_list *newline = NULL; @@ -5741,7 +5750,7 @@ mainloop = LABEL(); /* Increasing the STR_PTR here requires one less jump in the most common case. */ #if defined SUPPORT_UNICODE && PCRE2_CODE_UNIT_WIDTH != 32 -if (common->utf && !common->invalid_utf) readuchar = TRUE; +if (common->utf) readuchar = TRUE; #endif /* SUPPORT_UNICODE && PCRE2_CODE_UNIT_WIDTH != 32 */ if (newlinecheck) readuchar = TRUE; @@ -5757,13 +5766,11 @@ OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1)); if (common->invalid_utf) { /* Skip continuation code units. */ - loop = LABEL(); - jump = CMP(SLJIT_GREATER_EQUAL, STR_PTR, 0, STR_END, 0); - OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), 0); - OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1)); - OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, 0x80); - CMPTO(SLJIT_LESS, TMP1, 0, SLJIT_IMM, 0x40, loop); - OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1)); + jump = CMP(SLJIT_LESS, TMP1, 0, SLJIT_IMM, 0xc0); + OP1(SLJIT_MOV, TMP3, 0, STR_PTR, 0); + add_jump(compiler, &common->utfreadchar_invalid, JUMP(SLJIT_FAST_CALL)); + OP2U(SLJIT_SUB | SLJIT_SET_Z, TMP1, 0, SLJIT_IMM, INVALID_UTF_CHAR); + SELECT(SLJIT_EQUAL, STR_PTR, TMP3, 0, STR_PTR); JUMPHERE(jump); } else if (common->utf) @@ -5777,13 +5784,9 @@ else if (common->utf) if (common->invalid_utf) { /* Skip continuation code units. */ - loop = LABEL(); - jump = CMP(SLJIT_GREATER_EQUAL, STR_PTR, 0, STR_END, 0); - OP1(MOV_UCHAR, TMP1, 0, SLJIT_MEM1(STR_PTR), 0); - OP2(SLJIT_ADD, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1)); - OP2(SLJIT_SUB, TMP1, 0, TMP1, 0, SLJIT_IMM, 0xdc00); - CMPTO(SLJIT_LESS, TMP1, 0, SLJIT_IMM, 0x400, loop); - OP2(SLJIT_SUB, STR_PTR, 0, STR_PTR, 0, SLJIT_IMM, IN_UCHARS(1)); + OP2(SLJIT_SUB, TMP2, 0, TMP1, 0, SLJIT_IMM, 0xd800); + jump = CMP(SLJIT_GREATER_EQUAL, TMP2, 0, SLJIT_IMM, 0xe000 - 0xd800); + add_jump(compiler, &common->utfreadchar_invalid, JUMP(SLJIT_FAST_CALL)); JUMPHERE(jump); } else if (common->utf) @@ -6244,6 +6247,7 @@ while (TRUE) repeat = GET2(cc, 1); if (repeat <= 0) { + repeat = 1; chars_end = chars; continue; } @@ -8390,9 +8394,10 @@ int offset = 0; struct sljit_label *label; struct sljit_jump *zerolength; struct sljit_jump *jump = NULL; +jump_list *match_failed = NULL; PCRE2_SPTR ccbegin = cc; int min = 0, max = 0; -BOOL minimize; +BOOL minimize, exact; PUSH_BACKTRACK(sizeof(ref_iterator_backtrack), cc, NULL); @@ -8415,31 +8420,50 @@ type = cc[1 + IMM2_SIZE]; SLJIT_COMPILE_ASSERT((OP_CRSTAR & 0x1) == 0, crstar_opcode_must_be_even); /* Update ref_update_local_size() when this changes. */ SLJIT_ASSERT(local_start + 2 * SSIZE_OF(sw) <= (int)LOCAL0 + common->locals_size); -minimize = (type & 0x1) != 0; +minimize = FALSE; +exact = FALSE; switch(type) { - case OP_CRSTAR: case OP_CRMINSTAR: + minimize = TRUE; + PCRE2_FALLTHROUGH /* Fall through */ + case OP_CRSTAR: + case OP_CRPOSSTAR: min = 0; max = 0; cc += 1 + IMM2_SIZE + 1; break; - case OP_CRPLUS: + case OP_CRMINPLUS: + minimize = TRUE; + PCRE2_FALLTHROUGH /* Fall through */ + case OP_CRPLUS: + case OP_CRPOSPLUS: min = 1; max = 0; cc += 1 + IMM2_SIZE + 1; break; - case OP_CRQUERY: + case OP_CRMINQUERY: + minimize = TRUE; + PCRE2_FALLTHROUGH /* Fall through */ + case OP_CRQUERY: + case OP_CRPOSQUERY: min = 0; max = 1; cc += 1 + IMM2_SIZE + 1; break; - case OP_CRRANGE: + case OP_CRMINRANGE: + minimize = TRUE; + PCRE2_FALLTHROUGH /* Fall through */ + case OP_CRRANGE: + case OP_CRPOSRANGE: min = GET2(cc, 1 + IMM2_SIZE + 1); max = GET2(cc, 1 + IMM2_SIZE + 1 + IMM2_SIZE); + SLJIT_ASSERT(min > 1 || max > 1); + if (min == max) + exact = TRUE; cc += 1 + IMM2_SIZE + 1 + 2 * IMM2_SIZE; break; default: @@ -8447,6 +8471,86 @@ switch(type) break; } +if (type >= OP_CRPOSSTAR || exact) + { + BACKTRACK_AS(ref_iterator_backtrack)->possessive_or_exact = TRUE; + if (ref) + { + OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset)); + if (min > 0 && !common->unset_backref) + add_jump(compiler, &backtrack->own_backtracks, CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(1))); + zerolength = CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset + 1)); + } + else + { + compile_dnref_search(common, ccbegin, min > 0 ? &backtrack->own_backtracks : NULL); + OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(TMP2), 0); + OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), local_start + SSIZE_OF(sw), TMP2, 0); + zerolength = CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_MEM1(TMP2), sizeof(sljit_sw)); + } + + if (exact) + OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), local_start, SLJIT_IMM, min); + else if (type != OP_CRPOSSTAR) + { + /* STR_PTR is NULL before reaching min. */ + OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), local_start, min > 0 ? SLJIT_IMM : STR_PTR, 0); + if (type == OP_CRPOSRANGE) + { + SLJIT_ASSERT(local_start + 3 * SSIZE_OF(sw) <= (int)LOCAL0 + common->locals_size); + OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), local_start + 2 * SSIZE_OF(sw), SLJIT_IMM, 0); + } + } + + label = LABEL(); + if (!ref) + OP1(SLJIT_MOV, TMP2, 0, SLJIT_MEM1(SLJIT_SP), local_start + SSIZE_OF(sw)); + + if (type == OP_CRPOSSTAR) + OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), local_start, STR_PTR, 0); + + compile_ref_matchingpath(common, ccbegin, exact ? &backtrack->own_backtracks : &match_failed, FALSE, FALSE); + + if (type == OP_CRPOSSTAR) + JUMPTO(SLJIT_JUMP, label); + else if (type == OP_CRPOSPLUS || type == OP_CRPOSQUERY) + { + OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), local_start, STR_PTR, 0); + if (type == OP_CRPOSPLUS) + JUMPTO(SLJIT_JUMP, label); + } + else if (exact) + { + OP2(SLJIT_SUB | SLJIT_SET_Z, SLJIT_MEM1(SLJIT_SP), local_start, SLJIT_MEM1(SLJIT_SP), local_start, SLJIT_IMM, 1); + JUMPTO(SLJIT_NOT_ZERO, label); + } + else + { + OP2(SLJIT_ADD, TMP1, 0, SLJIT_MEM1(SLJIT_SP), local_start + 2 * SSIZE_OF(sw), SLJIT_IMM, 1); + OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), local_start + 2 * SSIZE_OF(sw), TMP1, 0); + if (min > 0) + CMPTO(SLJIT_LESS, TMP1, 0, SLJIT_IMM, min, label); + OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), local_start, STR_PTR, 0); + if (max == 0) + JUMPTO(SLJIT_JUMP, label); + else + CMPTO(SLJIT_LESS, TMP1, 0, SLJIT_IMM, max, label); + } + + if (!exact) + { + set_jumps(match_failed, LABEL()); + OP1(SLJIT_MOV, STR_PTR, 0, SLJIT_MEM1(SLJIT_SP), local_start); + + if (type != OP_CRPOSSTAR) + add_jump(compiler, &backtrack->own_backtracks, CMP(SLJIT_EQUAL, STR_PTR, 0, SLJIT_IMM, 0)); + } + + JUMPHERE(zerolength); + count_match(common); + return cc; + } + if (!minimize) { if (min == 0) @@ -8458,6 +8562,7 @@ if (!minimize) OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(1), SLJIT_IMM, 0); /* Temporary release of STR_PTR. */ OP2(SLJIT_ADD, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, sizeof(sljit_sw)); + /* Handles both invalid and empty cases. Since the minimum repeat, is zero the invalid case is basically the same as an empty case. */ if (ref) @@ -8469,6 +8574,7 @@ if (!minimize) OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), local_start + SSIZE_OF(sw), TMP2, 0); zerolength = CMP(SLJIT_EQUAL, TMP1, 0, SLJIT_MEM1(TMP2), sizeof(sljit_sw)); } + /* Restore if not zero length. */ OP2(SLJIT_SUB, STACK_TOP, 0, STACK_TOP, 0, SLJIT_IMM, sizeof(sljit_sw)); } @@ -8477,6 +8583,7 @@ if (!minimize) allocate_stack(common, 1); if (ref) OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), OVECTOR(offset)); + OP1(SLJIT_MOV, SLJIT_MEM1(STACK_TOP), STACK(0), SLJIT_IMM, 0); if (ref) @@ -8504,11 +8611,11 @@ if (!minimize) if (min > 1 || max > 1) { - OP1(SLJIT_MOV, TMP1, 0, SLJIT_MEM1(SLJIT_SP), local_start); - OP2(SLJIT_ADD, TMP1, 0, TMP1, 0, SLJIT_IMM, 1); + OP2(SLJIT_ADD, TMP1, 0, SLJIT_MEM1(SLJIT_SP), local_start, SLJIT_IMM, 1); OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), local_start, TMP1, 0); if (min > 1) CMPTO(SLJIT_LESS, TMP1, 0, SLJIT_IMM, min, label); + if (max > 1) { jump = CMP(SLJIT_GREATER_EQUAL, TMP1, 0, SLJIT_IMM, max); @@ -12139,6 +12246,12 @@ PCRE2_UCHAR type; type = cc[PRIV(OP_lengths)[*cc]]; +if (CURRENT_AS(ref_iterator_backtrack)->possessive_or_exact) + { + set_jumps(current->own_backtracks, LABEL()); + return; + } + if ((type & 0x1) == 0) { /* Maximize case. */ @@ -12405,6 +12518,8 @@ else if (SLJIT_UNLIKELY(opcode == OP_ASSERT_SCS)) if (common->restore_end_ptr == 0) common->restore_end_ptr = private_data_ptr + sizeof(sljit_sw); } +else if (SLJIT_UNLIKELY(opcode == OP_ASSERTBACK_NA) && PRIVATE_DATA(ccbegin + 1)) + OP1(SLJIT_MOV, STR_END, 0, SLJIT_MEM1(SLJIT_SP), private_data_ptr); if (SLJIT_UNLIKELY(opcode == OP_ONCE)) { @@ -13974,7 +14089,20 @@ SLJIT_ASSERT(TMP1 == SLJIT_R0 && STR_PTR == SLJIT_R1); OP1(SLJIT_MOV, SLJIT_MEM1(SLJIT_SP), LOCAL1, STR_PTR, 0); OP1(SLJIT_MOV, SLJIT_R0, 0, ARGUMENTS, 0); -OP2(SLJIT_SUB, SLJIT_R1, 0, STACK_LIMIT, 0, SLJIT_IMM, STACK_GROWTH_RATE); +if (common->large_stack_allocation) + { + SLJIT_COMPILE_ASSERT((STACK_GROWTH_RATE & (STACK_GROWTH_RATE - 1)) == 0, stack_growth_must_be_power_of_2); + // Negative difference. The positive difference would also use the same amount + // of operations, but the last subtraction emits several instructions on x86. + OP2(SLJIT_SUB, SLJIT_R1, 0, STACK_TOP, 0, STACK_LIMIT, 0); + // Minimum extra space after allocation. + OP2(SLJIT_SUB, SLJIT_R1, 0, SLJIT_R1, 0, SLJIT_IMM, (STACK_GROWTH_RATE / 2)); + // Rounds down negative numbers. + OP2(SLJIT_AND, SLJIT_R1, 0, SLJIT_R1, 0, SLJIT_IMM, ~(STACK_GROWTH_RATE - 1)); + OP2(SLJIT_ADD, SLJIT_R1, 0, SLJIT_R1, 0, STACK_LIMIT, 0); + } +else + OP2(SLJIT_SUB, SLJIT_R1, 0, STACK_LIMIT, 0, SLJIT_IMM, STACK_GROWTH_RATE); OP1(SLJIT_MOV, SLJIT_R0, 0, SLJIT_MEM1(SLJIT_R0), SLJIT_OFFSETOF(jit_arguments, stack)); OP1(SLJIT_MOV, STACK_LIMIT, 0, TMP2, 0); diff --git a/scintilla/pcre2/src/pcre2_jit_match_inc.h b/scintilla/pcre2/src/pcre2_jit_match_inc.h index 32d4c8a5e1..ba210007e3 100644 --- a/scintilla/pcre2/src/pcre2_jit_match_inc.h +++ b/scintilla/pcre2/src/pcre2_jit_match_inc.h @@ -117,6 +117,7 @@ jit_arguments arguments; int rc; int index = 0; +/* The same check is performed by jit_check_exec(). */ if ((options & PCRE2_PARTIAL_HARD) != 0) index = 2; else if ((options & PCRE2_PARTIAL_SOFT) != 0) @@ -125,6 +126,16 @@ else if ((options & PCRE2_PARTIAL_SOFT) != 0) if (functions == NULL || functions->executable_funcs[index] == NULL) return match_data->rc = PCRE2_ERROR_JIT_BADOPTION; +/* If the match data block was previously used with PCRE2_COPY_MATCHED_SUBJECT, +free the memory that was obtained. */ + +if ((match_data->flags & PCRE2_MD_COPIED_SUBJECT) != 0) + { + match_data->memctl.free((void *)match_data->subject, + match_data->memctl.memory_data); + match_data->flags &= ~PCRE2_MD_COPIED_SUBJECT; + } + /* Sanity checks should be handled by pcre2_match. */ arguments.str = subject + start_offset; arguments.begin = subject; diff --git a/scintilla/pcre2/src/pcre2_jit_misc_inc.h b/scintilla/pcre2/src/pcre2_jit_misc_inc.h index 0225fc6baf..16c230e9b0 100644 --- a/scintilla/pcre2/src/pcre2_jit_misc_inc.h +++ b/scintilla/pcre2/src/pcre2_jit_misc_inc.h @@ -200,17 +200,28 @@ if (jit_stack != NULL) /************************************************* -* Get target CPU type * +* Checks function compilation * *************************************************/ -const char* -PRIV(jit_get_target)(void) +BOOL +PRIV(jit_check_exec)(void *executable_jit, uint32_t options) { #ifndef SUPPORT_JIT -return "JIT is not supported"; +(void)executable_jit; +(void)options; +return FALSE; #else /* SUPPORT_JIT */ -return sljit_get_platform_name(); -#endif /* SUPPORT_JIT */ +/* The same check is performed at the beginning of pcre2_jit_match(). */ +executable_functions *functions = (executable_functions *)executable_jit; +int index = 0; + +if ((options & PCRE2_PARTIAL_HARD) != 0) + index = 2; +else if ((options & PCRE2_PARTIAL_SOFT) != 0) + index = 1; + +return functions->executable_funcs[index] != NULL; +#endif } @@ -231,4 +242,19 @@ return executable_sizes[0] + executable_sizes[1] + executable_sizes[2]; #endif } +/************************************************* +* Get target CPU type * +*************************************************/ + +const char* +PRIV(jit_get_target)(void) +{ +#ifndef SUPPORT_JIT +return "JIT is not supported"; +#else /* SUPPORT_JIT */ +return sljit_get_platform_name(); +#endif /* SUPPORT_JIT */ +} + + /* End of pcre2_jit_misc_inc.h */ diff --git a/scintilla/pcre2/src/pcre2_match.c b/scintilla/pcre2/src/pcre2_match.c index d5574d721a..966576e191 100644 --- a/scintilla/pcre2/src/pcre2_match.c +++ b/scintilla/pcre2/src/pcre2_match.c @@ -169,9 +169,9 @@ enum { RM200=200, RM201, RM202, RM203, RM204, RM205, RM206, RM207, /* Define short names for general fields in the current backtrack frame, which is always pointed to by the F variable. Occasional references to fields in other frames are written out explicitly. There are also some fields in the -current frame whose names start with "temp" that are used for short-term, -localised backtracking memory. These are #defined with Lxxx names at the point -of use and undefined afterwards. */ +current frame that are used for short-term, localised backtracking memory. +These are members of the fields union and #defined with Lxxx names at the +point of use and undefined afterwards. */ #define Fback_frame F->back_frame #define Fcapture_last F->capture_last @@ -180,12 +180,10 @@ of use and undefined afterwards. */ #define Feptr F->eptr #define Fgroup_frame_type F->group_frame_type #define Flast_group_offset F->last_group_offset -#define Flength F->length #define Fmark F->mark #define Frdepth F->rdepth #define Fstart_match F->start_match #define Foffset_top F->offset_top -#define Foccu F->occu #define Fop F->op #define Fovector F->ovector #define Freturn_id F->return_id @@ -457,8 +455,8 @@ if (caseless) { uint32_t cc, cp; if (eptr >= mb->end_subject) return 1; /* Partial match */ - cc = UCHAR21TEST(eptr); - cp = UCHAR21TEST(p); + cc = *eptr; + cp = *p; if (TABLE_GET(cp, mb->lcc, cp) != TABLE_GET(cc, mb->lcc, cc)) return -1; /* No match */ p++; @@ -478,7 +476,7 @@ else for (; length > 0; length--) { if (eptr >= mb->end_subject) return 1; /* Partial match */ - if (UCHAR21INCTEST(p) != UCHAR21INCTEST(eptr)) return -1; /* No match */ + if (*p++ != *eptr++) return -1; /* No match */ } } @@ -697,7 +695,7 @@ heapframe *frames_top; /* End of frames vector */ heapframe *assert_accept_frame = NULL; /* For passing back a frame with captures */ PCRE2_SIZE frame_copy_size; /* Amount to copy when creating a new frame */ -/* Local variables that do not need to be preserved over calls to RRMATCH(). */ +/* Local variables that do not need to be preserved over calls to RMATCH(). */ PCRE2_SPTR branch_end = NULL; PCRE2_SPTR branch_start; @@ -816,11 +814,11 @@ if (group_frame_type != 0) break; case GF_NOCAPTURE: - fprintf(stderr, "nocapture op=%d", GF_DATAMASK(group_frame_type)); + fprintf(stderr, "nocapture op=%d", Fop); break; case GF_CONDASSERT: - fprintf(stderr, "condassert op=%d", GF_DATAMASK(group_frame_type)); + fprintf(stderr, "condassert op=%d", Fop); break; case GF_RECURSE: @@ -1066,7 +1064,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, Feptr == mb->end_subject - 1 && NLBLOCK->nltype == NLTYPE_FIXED && NLBLOCK->nllen == 2 && - UCHAR21TEST(Feptr) == NLBLOCK->nl[0]) + *Feptr == NLBLOCK->nl[0]) { mb->hitend = TRUE; if (mb->partial > 1) return PCRE2_ERROR_PARTIAL; @@ -1112,17 +1110,17 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, #ifdef SUPPORT_UNICODE if (utf) { - Flength = 1; + length = 1; Fecode++; - GETCHARLEN(fc, Fecode, Flength); - if (Flength > (PCRE2_SIZE)(mb->end_subject - Feptr)) + GETCHARLEN(fc, Fecode, length); + if (length > (PCRE2_SIZE)(mb->end_subject - Feptr)) { CHECK_PARTIAL(); /* Not SCHECK_PARTIAL() */ RRETURN(MATCH_NOMATCH); } - for (; Flength > 0; Flength--) + for (; length > 0; length--) { - if (*Fecode++ != UCHAR21INC(Feptr)) RRETURN(MATCH_NOMATCH); + if (*Fecode++ != *Feptr++) RRETURN(MATCH_NOMATCH); } } else @@ -1157,9 +1155,9 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, #ifdef SUPPORT_UNICODE if (utf) { - Flength = 1; + length = 1; Fecode++; - GETCHARLEN(fc, Fecode, Flength); + GETCHARLEN(fc, Fecode, length); /* If the pattern character's value is < 128, we know that its other case (if any) is also < 128 (and therefore only one code unit long in all @@ -1168,7 +1166,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, if (fc < 128) { - uint32_t cc = UCHAR21(Feptr); + uint32_t cc = *Feptr; if (mb->lcc[fc] != TABLE_GET(cc, mb->lcc, cc)) RRETURN(MATCH_NOMATCH); Fecode++; Feptr++; @@ -1176,14 +1174,14 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, /* Otherwise we must pick up the subject character and use Unicode property support to test its other case. Note that we cannot use the - value of "Flength" to check for sufficient bytes left, because the other + value of "length" to check for sufficient bytes left, because the other case of the character may have more or fewer code units. */ else { uint32_t dc; GETCHARINC(dc, Feptr); - Fecode += Flength; + Fecode += length; if (dc != fc && dc != UCD_OTHERCASE(fc)) RRETURN(MATCH_NOMATCH); } } @@ -1193,7 +1191,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, else if (ucp) { - uint32_t cc = UCHAR21(Feptr); + uint32_t cc = *Feptr; fc = Fecode[1]; if (fc < 128) { @@ -1257,7 +1255,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, else if (ucp) { uint32_t ch; - fc = UCHAR21INC(Feptr); + fc = *Feptr++; ch = Fecode[1]; Fecode += 2; @@ -1282,7 +1280,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, { uint32_t ch = Fecode[1]; - fc = UCHAR21INC(Feptr); + fc = *Feptr++; if (ch == fc || (Fop == OP_NOTI && TABLE_GET(ch, mb->fcc, ch) == fc)) RRETURN(MATCH_NOMATCH); Fecode += 2; @@ -1293,13 +1291,15 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, /* ===================================================================== */ /* Match a single character repeatedly. */ -#define Loclength F->temp_size -#define Lstart_eptr F->temp_sptr[0] -#define Lcharptr F->temp_sptr[1] -#define Lmin F->temp_32[0] -#define Lmax F->temp_32[1] -#define Lc F->temp_32[2] -#define Loc F->temp_32[3] +#define Llength F->byte1 +#define Loclength F->byte2 +#define Lstart_eptr F->fields.char_repeat.start_eptr +#define Lcharptr F->fields.char_repeat.charptr +#define Lmin F->fields.char_repeat.min +#define Lmax F->fields.char_repeat.max +#define Lc F->fields.char_repeat.c +#define Loc F->fields.char_repeat.oc.oc +#define Loccu F->fields.char_repeat.oc.occu case OP_EXACT: case OP_EXACTI: @@ -1393,29 +1393,30 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, #ifdef SUPPORT_UNICODE if (utf) { - Flength = 1; + length = 1; Lcharptr = Fecode; - GETCHARLEN(fc, Fecode, Flength); - Fecode += Flength; + GETCHARLEN(fc, Fecode, length); + Fecode += length; + Llength = (uint8_t)length; /* Handle multi-code-unit character matching, caseful and caseless. */ - if (Flength > 1) + if (length > 1) { uint32_t othercase; if (Fop >= OP_STARI && /* Caseless */ (othercase = UCD_OTHERCASE(fc)) != fc) - Loclength = PRIV(ord2utf)(othercase, Foccu); + Loclength = (uint8_t)PRIV(ord2utf)(othercase, Loccu); else Loclength = 0; for (i = 1; i <= Lmin; i++) { - if (Feptr <= mb->end_subject - Flength && - memcmp(Feptr, Lcharptr, CU2BYTES(Flength)) == 0) Feptr += Flength; + if (Feptr <= mb->end_subject - length && + memcmp(Feptr, Lcharptr, CU2BYTES(length)) == 0) Feptr += length; else if (Loclength > 0 && Feptr <= mb->end_subject - Loclength && - memcmp(Feptr, Foccu, CU2BYTES(Loclength)) == 0) + memcmp(Feptr, Loccu, CU2BYTES(Loclength)) == 0) Feptr += Loclength; else { @@ -1433,11 +1434,11 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, RMATCH(Fecode, RM202); if (rrc != MATCH_NOMATCH) RRETURN(rrc); if (Lmin++ >= Lmax) RRETURN(MATCH_NOMATCH); - if (Feptr <= mb->end_subject - Flength && - memcmp(Feptr, Lcharptr, CU2BYTES(Flength)) == 0) Feptr += Flength; + if (Feptr <= mb->end_subject - Llength && + memcmp(Feptr, Lcharptr, CU2BYTES(Llength)) == 0) Feptr += Llength; else if (Loclength > 0 && Feptr <= mb->end_subject - Loclength && - memcmp(Feptr, Foccu, CU2BYTES(Loclength)) == 0) + memcmp(Feptr, Loccu, CU2BYTES(Loclength)) == 0) Feptr += Loclength; else { @@ -1447,18 +1448,17 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, } PCRE2_UNREACHABLE(); /* Control never reaches here */ } - else /* Maximize */ { Lstart_eptr = Feptr; for (i = Lmin; i < Lmax; i++) { - if (Feptr <= mb->end_subject - Flength && - memcmp(Feptr, Lcharptr, CU2BYTES(Flength)) == 0) - Feptr += Flength; + if (Feptr <= mb->end_subject - Llength && + memcmp(Feptr, Lcharptr, CU2BYTES(Llength)) == 0) + Feptr += Llength; else if (Loclength > 0 && Feptr <= mb->end_subject - Loclength && - memcmp(Feptr, Foccu, CU2BYTES(Loclength)) == 0) + memcmp(Feptr, Loccu, CU2BYTES(Loclength)) == 0) Feptr += Loclength; else { @@ -1523,7 +1523,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, SCHECK_PARTIAL(); RRETURN(MATCH_NOMATCH); } - cc = UCHAR21TEST(Feptr); + cc = *Feptr; if (Lc != cc && Loc != cc) RRETURN(MATCH_NOMATCH); Feptr++; } @@ -1542,7 +1542,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, SCHECK_PARTIAL(); RRETURN(MATCH_NOMATCH); } - cc = UCHAR21TEST(Feptr); + cc = *Feptr; if (Lc != cc && Loc != cc) RRETURN(MATCH_NOMATCH); Feptr++; } @@ -1560,7 +1560,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, SCHECK_PARTIAL(); break; } - cc = UCHAR21TEST(Feptr); + cc = *Feptr; if (Lc != cc && Loc != cc) break; Feptr++; } @@ -1585,7 +1585,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, SCHECK_PARTIAL(); RRETURN(MATCH_NOMATCH); } - if (Lc != UCHAR21INCTEST(Feptr)) RRETURN(MATCH_NOMATCH); + if (Lc != *Feptr++) RRETURN(MATCH_NOMATCH); } if (Lmin == Lmax) continue; @@ -1602,7 +1602,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, SCHECK_PARTIAL(); RRETURN(MATCH_NOMATCH); } - if (Lc != UCHAR21INCTEST(Feptr)) RRETURN(MATCH_NOMATCH); + if (Lc != *Feptr++) RRETURN(MATCH_NOMATCH); } PCRE2_UNREACHABLE(); /* Control never reaches here */ } @@ -1617,7 +1617,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, break; } - if (Lc != UCHAR21TEST(Feptr)) break; + if (Lc != *Feptr) break; Feptr++; } @@ -1632,6 +1632,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, } break; +#undef Llength #undef Loclength #undef Lstart_eptr #undef Lcharptr @@ -1639,6 +1640,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, #undef Lmax #undef Lc #undef Loc +#undef Loccu /* ===================================================================== */ @@ -1649,11 +1651,11 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, very much to the time taken, but character matching *is* what this is all about... */ -#define Lstart_eptr F->temp_sptr[0] -#define Lmin F->temp_32[0] -#define Lmax F->temp_32[1] -#define Lc F->temp_32[2] -#define Loc F->temp_32[3] +#define Lstart_eptr F->fields.charnot_repeat.start_eptr +#define Lmin F->fields.charnot_repeat.min +#define Lmax F->fields.charnot_repeat.max +#define Lc F->fields.charnot_repeat.c +#define Loc F->fields.charnot_repeat.oc case OP_NOTEXACT: case OP_NOTEXACTI: @@ -2040,11 +2042,11 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, OP_CLASS and OP_NCLASS occurs when a data character outside the range is encountered. */ -#define Lmin F->temp_32[0] -#define Lmax F->temp_32[1] -#define Lstart_eptr F->temp_sptr[0] -#define Lbyte_map_address F->temp_sptr[1] +#define Lbyte_map_address F->fields.class_repeat.byte_map_address #define Lbyte_map ((const unsigned char *)Lbyte_map_address) +#define Lstart_eptr F->fields.class_repeat.start_eptr +#define Lmin F->fields.class_repeat.min +#define Lmax F->fields.class_repeat.max case OP_NCLASS: case OP_CLASS: @@ -2283,10 +2285,10 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, 32-bit libraries, codepoints greater than 255 may be encountered even when UTF is not supported. */ -#define Lstart_eptr F->temp_sptr[0] -#define Lxclass_data F->temp_sptr[1] -#define Lmin F->temp_32[0] -#define Lmax F->temp_32[1] +#define Lstart_eptr F->fields.xclass_repeat.start_eptr +#define Lxclass_data F->fields.xclass_repeat.xclass_data +#define Lmin F->fields.xclass_repeat.min +#define Lmax F->fields.xclass_repeat.max #ifdef SUPPORT_WIDE_CHARS case OP_XCLASS: @@ -2424,11 +2426,11 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, there is complex nesting or logical operations within the character class. */ -#define Lstart_eptr F->temp_sptr[0] -#define Leclass_data F->temp_sptr[1] -#define Leclass_len F->temp_size -#define Lmin F->temp_32[0] -#define Lmax F->temp_32[1] +#define Lstart_eptr F->fields.eclass_repeat.start_eptr +#define Leclass_data F->fields.eclass_repeat.eclass_data +#define Leclass_len F->fields.eclass_repeat.eclass_len +#define Lmin F->fields.eclass_repeat.min +#define Lmax F->fields.eclass_repeat.max #ifdef SUPPORT_WIDE_CHARS case OP_ECLASS: @@ -2657,7 +2659,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, { SCHECK_PARTIAL(); } - else if (UCHAR21TEST(Feptr) == CHAR_LF) Feptr++; + else if (*Feptr == CHAR_LF) Feptr++; break; case CHAR_LF: @@ -2893,7 +2895,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, else { GETCHARINCTEST(fc, Feptr); - Feptr = PRIV(extuni)(fc, Feptr, mb->start_subject, mb->end_subject, utf, + Feptr = PRIV(extuni)(fc, Feptr, mb->check_subject, mb->end_subject, utf, NULL); } CHECK_PARTIAL(); @@ -2908,11 +2910,11 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, does not need to be in a stack frame as it is not used within an RMATCH() loop. */ -#define Lstart_eptr F->temp_sptr[0] -#define Lmin F->temp_32[0] -#define Lmax F->temp_32[1] -#define Lctype F->temp_32[2] -#define Lpropvalue F->temp_32[3] +#define Lstart_eptr F->fields.type_repeat.start_eptr +#define Lmin F->fields.type_repeat.min +#define Lmax F->fields.type_repeat.max +#define Lctype F->fields.type_repeat.ctype +#define Lpropvalue F->fields.type_repeat.propvalue case OP_TYPEEXACT: Lmin = Lmax = GET2(Fecode, 1); @@ -3244,7 +3246,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, else { GETCHARINCTEST(fc, Feptr); - Feptr = PRIV(extuni)(fc, Feptr, mb->start_subject, + Feptr = PRIV(extuni)(fc, Feptr, mb->check_subject, mb->end_subject, utf, NULL); } CHECK_PARTIAL(); @@ -3271,7 +3273,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, Feptr + 1 >= mb->end_subject && NLBLOCK->nltype == NLTYPE_FIXED && NLBLOCK->nllen == 2 && - UCHAR21(Feptr) == NLBLOCK->nl[0]) + *Feptr == NLBLOCK->nl[0]) { mb->hitend = TRUE; if (mb->partial > 1) return PCRE2_ERROR_PARTIAL; @@ -3313,7 +3315,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, default: RRETURN(MATCH_NOMATCH); case CHAR_CR: - if (Feptr < mb->end_subject && UCHAR21(Feptr) == CHAR_LF) Feptr++; + if (Feptr < mb->end_subject && *Feptr == CHAR_LF) Feptr++; break; case CHAR_LF: @@ -3423,7 +3425,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, SCHECK_PARTIAL(); RRETURN(MATCH_NOMATCH); } - cc = UCHAR21(Feptr); + cc = *Feptr; if (cc >= 128 || (mb->ctypes[cc] & ctype_digit) == 0) RRETURN(MATCH_NOMATCH); Feptr++; @@ -3440,7 +3442,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, SCHECK_PARTIAL(); RRETURN(MATCH_NOMATCH); } - cc = UCHAR21(Feptr); + cc = *Feptr; if (cc < 128 && (mb->ctypes[cc] & ctype_space) != 0) RRETURN(MATCH_NOMATCH); Feptr++; @@ -3457,7 +3459,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, SCHECK_PARTIAL(); RRETURN(MATCH_NOMATCH); } - cc = UCHAR21(Feptr); + cc = *Feptr; if (cc >= 128 || (mb->ctypes[cc] & ctype_space) == 0) RRETURN(MATCH_NOMATCH); Feptr++; @@ -3474,7 +3476,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, SCHECK_PARTIAL(); RRETURN(MATCH_NOMATCH); } - cc = UCHAR21(Feptr); + cc = *Feptr; if (cc < 128 && (mb->ctypes[cc] & ctype_word) != 0) RRETURN(MATCH_NOMATCH); Feptr++; @@ -3491,7 +3493,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, SCHECK_PARTIAL(); RRETURN(MATCH_NOMATCH); } - cc = UCHAR21(Feptr); + cc = *Feptr; if (cc >= 128 || (mb->ctypes[cc] & ctype_word) == 0) RRETURN(MATCH_NOMATCH); Feptr++; @@ -4069,7 +4071,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, else { GETCHARINCTEST(fc, Feptr); - Feptr = PRIV(extuni)(fc, Feptr, mb->start_subject, mb->end_subject, + Feptr = PRIV(extuni)(fc, Feptr, mb->check_subject, mb->end_subject, utf, NULL); } CHECK_PARTIAL(); @@ -4119,7 +4121,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, default: RRETURN(MATCH_NOMATCH); case CHAR_CR: - if (Feptr < mb->end_subject && UCHAR21(Feptr) == CHAR_LF) Feptr++; + if (Feptr < mb->end_subject && *Feptr == CHAR_LF) Feptr++; break; case CHAR_LF: @@ -4658,7 +4660,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, else { GETCHARINCTEST(fc, Feptr); - Feptr = PRIV(extuni)(fc, Feptr, mb->start_subject, mb->end_subject, + Feptr = PRIV(extuni)(fc, Feptr, mb->check_subject, mb->end_subject, utf, NULL); } CHECK_PARTIAL(); @@ -4732,7 +4734,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, Feptr + 1 >= mb->end_subject && NLBLOCK->nltype == NLTYPE_FIXED && NLBLOCK->nllen == 2 && - UCHAR21(Feptr) == NLBLOCK->nl[0]) + *Feptr == NLBLOCK->nl[0]) { mb->hitend = TRUE; if (mb->partial > 1) return PCRE2_ERROR_PARTIAL; @@ -4788,7 +4790,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, if (fc == CHAR_CR) { if (++Feptr >= mb->end_subject) break; - if (UCHAR21(Feptr) == CHAR_LF) Feptr++; + if (*Feptr == CHAR_LF) Feptr++; } else { @@ -4960,7 +4962,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, Feptr--; BACKCHAR(Feptr); if (Lctype == OP_ANYNL && Feptr > Lstart_eptr && - UCHAR21(Feptr) == CHAR_NL && UCHAR21(Feptr - 1) == CHAR_CR) + *Feptr == CHAR_NL && Feptr[-1] == CHAR_CR) Feptr--; } } @@ -5236,17 +5238,18 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, OP_DNREFI are used. In this case we must scan the list of groups to which the name refers, and use the first one that is set. */ -#define Lmin F->temp_32[0] -#define Lmax F->temp_32[1] -#define Lcaseless F->temp_32[2] -#define Lcaseopts F->temp_32[3] -#define Lstart F->temp_sptr[0] -#define Loffset F->temp_size +#define Lstart F->fields.ref_repeat.start +#define Loffset F->fields.ref_repeat.offset +#define Llength F->fields.ref_repeat.length +#define Lmin F->fields.ref_repeat.min +#define Lmax F->fields.ref_repeat.max +#define Lcaseless F->byte1 +#define Lcaseopts F->byte2 case OP_DNREF: case OP_DNREFI: - Lcaseless = (Fop == OP_DNREFI); - Lcaseopts = (Fop == OP_DNREFI)? Fecode[1 + 2*IMM2_SIZE] : 0; + Lcaseless = (uint8_t)(Fop == OP_DNREFI); + Lcaseopts = (uint8_t)((Fop == OP_DNREFI)? Fecode[1 + 2*IMM2_SIZE] : 0); { int count = GET2(Fecode, 1+IMM2_SIZE); PCRE2_SPTR slot = mb->name_table + GET2(Fecode, 1) * mb->name_entry_size; @@ -5281,6 +5284,9 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, case OP_CRMINPLUS: case OP_CRQUERY: case OP_CRMINQUERY: + case OP_CRPOSSTAR: + case OP_CRPOSPLUS: + case OP_CRPOSQUERY: fc = *Fecode++ - OP_CRSTAR; Lmin = rep_min[fc]; Lmax = rep_max[fc]; @@ -5289,6 +5295,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, case OP_CRRANGE: case OP_CRMINRANGE: + case OP_CRPOSRANGE: Lmin = GET2(Fecode, 1); Lmax = GET2(Fecode, 1 + IMM2_SIZE); reptype = rep_typ[*Fecode - OP_CRSTAR]; @@ -5376,7 +5383,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, { BOOL samelengths = TRUE; Lstart = Feptr; /* Starting position */ - Flength = Fovector[Loffset+1] - Fovector[Loffset]; + Llength = Fovector[Loffset+1] - Fovector[Loffset]; for (i = Lmin; i < Lmax; i++) { @@ -5396,10 +5403,13 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, break; } - if (slength != Flength) samelengths = FALSE; + if (slength != Llength) samelengths = FALSE; Feptr += slength; } + /* No recursion if the repeat type is possessive. */ + if (reptype == REPTYPE_POS) break; + /* If the length matched for each repetition is the same as the length of the captured group, we can easily work backwards. This is the normal case. However, in caseless UTF-8 mode there are pairs of case-equivalent @@ -5412,7 +5422,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, { RMATCH(Fecode, RM21); if (rrc != MATCH_NOMATCH) RRETURN(rrc); - Feptr -= Flength; + Feptr -= Llength; } } @@ -5443,12 +5453,13 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, PCRE2_DEBUG_UNREACHABLE(); /* Control should never reach here */ -#undef Lcaseless -#undef Lmin -#undef Lmax #undef Lstart #undef Loffset - +#undef Llength +#undef Lmin +#undef Lmax +#undef Lcaseless +#undef Lcaseopts /* ========================================================================= */ @@ -5475,30 +5486,37 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, number of copies, with the optional ones preceded by BRAZERO or BRAMINZERO. Possessive groups with possible zero repeats are preceded by BRAPOSZERO. */ -#define Lnext_ecode F->temp_sptr[0] - case OP_BRAZERO: - Lnext_ecode = Fecode + 1; - RMATCH(Lnext_ecode, RM9); - if (rrc != MATCH_NOMATCH) RRETURN(rrc); - do Lnext_ecode += GET(Lnext_ecode, 1); while (*Lnext_ecode == OP_ALT); - Fecode = Lnext_ecode + 1 + LINK_SIZE; + { + PCRE2_SPTR next_ecode; + + Fecode++; + RMATCH(Fecode, RM9); + if (rrc != MATCH_NOMATCH) RRETURN(rrc); + next_ecode = Fecode; + do next_ecode += GET(next_ecode, 1); while (*next_ecode == OP_ALT); + Fecode = next_ecode + 1 + LINK_SIZE; + } break; case OP_BRAMINZERO: - Lnext_ecode = Fecode + 1; - do Lnext_ecode += GET(Lnext_ecode, 1); while (*Lnext_ecode == OP_ALT); - RMATCH(Lnext_ecode + 1 + LINK_SIZE, RM10); - if (rrc != MATCH_NOMATCH) RRETURN(rrc); - Fecode++; - break; + { + PCRE2_SPTR next_ecode; -#undef Lnext_ecode + Fecode++; + next_ecode = Fecode; + do next_ecode += GET(next_ecode, 1); while (*next_ecode == OP_ALT); + RMATCH(next_ecode + 1 + LINK_SIZE, RM10); + if (rrc != MATCH_NOMATCH) RRETURN(rrc); + } + break; case OP_SKIPZERO: - Fecode++; - do Fecode += GET(Fecode,1); while (*Fecode == OP_ALT); - Fecode += 1 + LINK_SIZE; + { + PCRE2_SPTR next_ecode = Fecode + 1; + do next_ecode += GET(next_ecode, 1); while (*next_ecode == OP_ALT); + Fecode = next_ecode + 1 + LINK_SIZE; + } break; @@ -5507,11 +5525,11 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, brackets will always be OP_KETRPOS, which returns MATCH_KETRPOS without going further in the pattern. */ -#define Lframe_type F->temp_32[0] -#define Lmatched_once F->temp_32[1] -#define Lzero_allowed F->temp_32[2] -#define Lstart_eptr F->temp_sptr[0] -#define Lstart_group F->temp_sptr[1] +#define Lstart_eptr F->fields.op_brapos.start_eptr +#define Lstart_group F->fields.op_brapos.start_group +#define Lframe_type F->fields.op_brapos.frame_type +#define Lmatched_once F->byte1 +#define Lzero_allowed F->byte2 case OP_BRAPOSZERO: Lzero_allowed = TRUE; /* Zero repeat is allowed */ @@ -5583,11 +5601,11 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, RRETURN(MATCH_NOMATCH); -#undef Lmatched_once -#undef Lzero_allowed -#undef Lframe_type #undef Lstart_eptr #undef Lstart_group +#undef Lframe_type +#undef Lmatched_once +#undef Lzero_allowed /* ===================================================================== */ @@ -5599,8 +5617,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, however, because that would make handling assertions and once-only brackets messier when there is nothing to go back to. */ -#define Lframe_type F->temp_32[0] /* Set for all that use GROUPLOOP */ -#define Lnext_branch F->temp_sptr[0] /* Used only in OP_BRA handling */ +#define Lframe_type F->fields.op_bra.frame_type case OP_BRA: if (mb->hasthen || Frdepth == 0) @@ -5611,24 +5628,31 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, for (;;) { - Lnext_branch = Fecode + GET(Fecode, 1); - if (*Lnext_branch != OP_ALT) break; + PCRE2_SPTR current_branch = Fecode; + PCRE2_SPTR next_branch = current_branch + GET(current_branch, 1); + + if (*next_branch != OP_ALT) break; /* This is never the final branch. We do not need to test for MATCH_THEN here because this code is not used when there is a THEN in the pattern. */ - RMATCH(Fecode + PRIV(OP_lengths)[*Fecode], RM1); + Fecode = next_branch; + PCRE2_ASSERT((*current_branch == OP_BRA || *current_branch == OP_ALT) && + PRIV(OP_lengths)[OP_BRA] == 1 + LINK_SIZE && + PRIV(OP_lengths)[OP_ALT] == 1 + LINK_SIZE); + + RMATCH(current_branch + 1 + LINK_SIZE, RM1); if (rrc != MATCH_NOMATCH) RRETURN(rrc); - Fecode = Lnext_branch; } /* Hit the start of the final branch. Continue at this level. */ - Fecode += PRIV(OP_lengths)[*Fecode]; + PCRE2_ASSERT((*Fecode == OP_BRA || *Fecode == OP_ALT) && + PRIV(OP_lengths)[OP_BRA] == 1 + LINK_SIZE && + PRIV(OP_lengths)[OP_ALT] == 1 + LINK_SIZE); + Fecode += 1 + LINK_SIZE; break; -#undef Lnext_branch - /* ===================================================================== */ /* Handle a capturing bracket, other than those that are possessive with an @@ -5647,7 +5671,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, case OP_ONCE: case OP_SCRIPT_RUN: case OP_SBRA: - Lframe_type = GF_NOCAPTURE | Fop; + Lframe_type = GF_NOCAPTURE; GROUPLOOP: for (;;) @@ -5677,8 +5701,8 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, subpatterns. For a whole-pattern recursion, we have to infer the number zero. */ -#define Lframe_type F->temp_32[0] -#define Lstart_branch F->temp_sptr[0] +#define Lstart_branch F->fields.op_recurse.start_branch +#define Lframe_type F->fields.op_recurse.frame_type case OP_RECURSE: bracode = mb->start_code + GET(Fecode, 1); @@ -5752,8 +5776,8 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, } PCRE2_UNREACHABLE(); /* Control never reaches here */ -#undef Lframe_type #undef Lstart_branch +#undef Lframe_type /* ===================================================================== */ @@ -5762,16 +5786,13 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, treated as NOMATCH. (*ACCEPT) is treated as successful assertion, with its captures and mark retained. Any other return is an error. */ -#define Lframe_type F->temp_32[0] - case OP_ASSERT: case OP_ASSERTBACK: case OP_ASSERT_NA: case OP_ASSERTBACK_NA: - Lframe_type = GF_NOCAPTURE | Fop; for (;;) { - group_frame_type = Lframe_type; + group_frame_type = GF_NOCAPTURE; RMATCH(Fecode + PRIV(OP_lengths)[*Fecode], RM3); if (rrc == MATCH_ACCEPT) { @@ -5791,22 +5812,16 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, Fecode += 1 + LINK_SIZE; break; -#undef Lframe_type - /* ===================================================================== */ /* Handle negative assertions. Loop for each non-matching branch as for positive assertions. */ -#define Lframe_type F->temp_32[0] - case OP_ASSERT_NOT: case OP_ASSERTBACK_NOT: - Lframe_type = GF_NOCAPTURE | Fop; - for (;;) { - group_frame_type = Lframe_type; + group_frame_type = GF_NOCAPTURE; RMATCH(Fecode + PRIV(OP_lengths)[*Fecode], RM4); switch(rrc) { @@ -5839,22 +5854,20 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, Fecode += 1 + LINK_SIZE; break; -#undef Lframe_type /* ===================================================================== */ /* Handle scan substring operation. */ -#define Lframe_type F->temp_32[0] -#define Lextra_size F->temp_32[1] -#define Lsaved_moptions F->temp_32[2] -#define Lsaved_end_subject F->temp_sptr[0] -#define Lsaved_eptr F->temp_sptr[1] -#define Ltrue_end_extra F->temp_size +#define Lsaved_end_subject F->fields.op_assert_scs.saved_end_subject +#define Lsaved_eptr F->fields.op_assert_scs.saved_eptr +#define Ltrue_end_extra F->fields.op_assert_scs.true_end_extra +#define Lextra_size F->fields.op_assert_scs.extra_size +#define Lsaved_moptions F->fields.op_assert_scs.saved_moptions case OP_ASSERT_SCS: + length = 0; { PCRE2_SPTR ecode = Fecode + 1 + LINK_SIZE; - uint32_t extra_size = 0; int count; PCRE2_SPTR slot; @@ -5866,7 +5879,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, { if (*ecode == OP_CREF) { - extra_size += 1+IMM2_SIZE; + length += 1+IMM2_SIZE; offset = (GET2(ecode, 1) << 1) - 2; ecode += 1+IMM2_SIZE; if (offset < Foffset_top && Fovector[offset] != PCRE2_UNSET) @@ -5878,7 +5891,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, count = GET2(ecode, 1 + IMM2_SIZE); slot = mb->name_table + GET2(ecode, 1) * mb->name_entry_size; - extra_size += 1+2*IMM2_SIZE; + length += 1+2*IMM2_SIZE; ecode += 1+2*IMM2_SIZE; while (count > 0) @@ -5898,18 +5911,16 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, { if (*ecode == OP_CREF) { - extra_size += 1+IMM2_SIZE; + length += 1+IMM2_SIZE; ecode += 1+IMM2_SIZE; } else if (*ecode == OP_DNCREF) { - extra_size += 1+2*IMM2_SIZE; + length += 1+2*IMM2_SIZE; ecode += 1+2*IMM2_SIZE; } else break; } - - Lextra_size = extra_size; } Lsaved_end_subject = mb->end_subject; @@ -5922,11 +5933,10 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, mb->start_subject + Fovector[offset + 1]; mb->moptions &= ~PCRE2_NOTEOL; - Lframe_type = GF_NOCAPTURE | Fop; for (;;) { - group_frame_type = Lframe_type; - RMATCH(Fecode + 1 + LINK_SIZE + Lextra_size, RM38); + group_frame_type = GF_NOCAPTURE; + RMATCH(Fecode + 1 + LINK_SIZE + length, RM38); if (rrc == MATCH_ACCEPT) { memcpy(Fovector, @@ -5956,7 +5966,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, mb->moptions = Lsaved_moptions; RRETURN(MATCH_NOMATCH); } - Lextra_size = 0; + length = 0; } do Fecode += GET(Fecode, 1); while (*Fecode == OP_ALT); @@ -5964,13 +5974,13 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, Feptr = Lsaved_eptr; break; -#undef Lframe_type -#undef Lextra_size #undef Lsaved_end_subject #undef Lsaved_eptr #undef Ltrue_end_extra +#undef Lextra_size #undef Lsave_moptions + /* ===================================================================== */ /* The callout item calls an external function, if one is provided, passing details of the match so far. This is mainly for debugging, though the @@ -5991,18 +6001,22 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, past the end of the item if there is only one branch, but that's exactly what we want. */ +#define Lstart_branch F->fields.op_cond.start_branch +#define Llength F->fields.op_cond.length +#define Lpositive F->byte1 + case OP_COND: case OP_SCOND: - /* The variable Flength will be added to Fecode when the condition is + /* The variable Llength will be added to Fecode when the condition is false, to get to the second branch. Setting it to the offset to the ALT or KET, then incrementing Fecode achieves this effect. However, if the second branch is non-existent, we must point to the KET so that the end of the group is correctly processed. We now have Fecode pointing to the condition or callout. */ - Flength = GET(Fecode, 1); /* Offset to the second branch */ - if (Fecode[Flength] != OP_ALT) Flength -= 1 + LINK_SIZE; + Llength = GET(Fecode, 1); /* Offset to the second branch */ + if (Fecode[Llength] != OP_ALT) Llength -= 1 + LINK_SIZE; Fecode += 1 + LINK_SIZE; /* From this opcode */ /* Because of the way auto-callout works during compile, a callout item is @@ -6016,10 +6030,10 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, if (rrc < 0) RRETURN(rrc); /* Advance Fecode past the callout, so it now points to the condition. We - must adjust Flength so that the value of Fecode+Flength is unchanged. */ + must adjust Llength so that the value of Fecode+Llength is unchanged. */ Fecode += length; - Flength -= length; + Llength -= length; } /* Test the various possible conditions */ @@ -6080,16 +6094,14 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, /* The condition is an assertion. Run code similar to the assertion code above. */ -#define Lpositive F->temp_32[0] -#define Lstart_branch F->temp_sptr[0] default: - Lpositive = (*Fecode == OP_ASSERT || *Fecode == OP_ASSERTBACK); + Lpositive = (uint8_t)(*Fecode == OP_ASSERT || *Fecode == OP_ASSERTBACK); Lstart_branch = Fecode; for (;;) { - group_frame_type = GF_CONDASSERT | *Fecode; + group_frame_type = GF_CONDASSERT; RMATCH(Lstart_branch + PRIV(OP_lengths)[*Lstart_branch], RM5); switch(rrc) @@ -6142,12 +6154,9 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, break; /* End of assertion condition */ } -#undef Lpositive -#undef Lstart_branch - /* Choose branch according to the condition. */ - Fecode += condition? PRIV(OP_lengths)[*Fecode] : Flength; + Fecode += condition? PRIV(OP_lengths)[*Fecode] : Llength; /* If the opcode is OP_SCOND it means we are at a repeated conditional group that might match an empty string. We must therefore descend a level @@ -6156,12 +6165,15 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, if (Fop == OP_SCOND) { - group_frame_type = GF_NOCAPTURE | Fop; + group_frame_type = GF_NOCAPTURE; RMATCH(Fecode, RM35); RRETURN(rrc); } break; +#undef Lstart_branch +#undef Llength +#undef Lpositive /* ========================================================================= */ @@ -6215,14 +6227,12 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, the start to move back even the minimum amount, fail. When working with UTF-8 we move back a number of characters, not bytes. */ -#define Lmin F->temp_32[0] -#define Lmax F->temp_32[1] -#define Leptr F->temp_sptr[0] +#define Lmin F->fields.op_vreverse.min +#define Lmax F->fields.op_vreverse.max case OP_VREVERSE: Lmin = GET2(Fecode, 1); Lmax = GET2(Fecode, 1 + IMM2_SIZE); - Leptr = Feptr; /* Move back by the maximum branch length and then work forwards. This ensures that items such as \d{3,5} get the maximum length, which is @@ -6233,7 +6243,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, { for (i = 0; i < Lmax; i++) { - if (Feptr == mb->start_subject) + if (Feptr <= mb->check_subject) { if (i < Lmin) RRETURN(MATCH_NOMATCH); Lmax = i; @@ -6273,7 +6283,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, #undef Lmin #undef Lmax -#undef Leptr + /* ===================================================================== */ /* An alternation is the end of a branch; scan along to find the end of the @@ -6328,7 +6338,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, N so that they are set on return. Doing this for all assertions, both positive and negative, seems to match what Perl does. */ - if (GF_IDMASK(N->group_frame_type) == GF_CONDASSERT) + if (N->group_frame_type == GF_CONDASSERT) { if ((*bracode == OP_ASSERTBACK || *bracode == OP_ASSERTBACK_NOT) && branch_start[1 + LINK_SIZE] == OP_VREVERSE && Feptr != P->eptr) @@ -6451,14 +6461,14 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, pattern. */ case OP_ASSERT_SCS: - F->temp_sptr[0] = mb->end_subject; - mb->end_subject = P->temp_sptr[0]; - mb->true_end_subject = mb->end_subject + P->temp_size; - Feptr = P->temp_sptr[1]; + F->fields.op_assert_scs.saved_end_subject = mb->end_subject; + mb->end_subject = P->fields.op_assert_scs.saved_end_subject; + mb->true_end_subject = mb->end_subject + P->fields.op_assert_scs.true_end_extra; + Feptr = P->fields.op_assert_scs.saved_eptr; RMATCH(Fecode + 1 + LINK_SIZE, RM39); - mb->end_subject = F->temp_sptr[0]; + mb->end_subject = F->fields.op_assert_scs.saved_end_subject; mb->true_end_subject = mb->end_subject; RRETURN(rrc); break; @@ -6599,7 +6609,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, Feptr + 1 >= mb->end_subject && NLBLOCK->nltype == NLTYPE_FIXED && NLBLOCK->nllen == 2 && - UCHAR21TEST(Feptr) == NLBLOCK->nl[0]) + *Feptr == NLBLOCK->nl[0]) { mb->hitend = TRUE; if (mb->partial > 1) return PCRE2_ERROR_PARTIAL; @@ -6647,7 +6657,7 @@ fprintf(stderr, "++ %2ld op=%3d %s\n", Fecode - mb->start_code, *Fecode, Feptr + 1 >= mb->end_subject && NLBLOCK->nltype == NLTYPE_FIXED && NLBLOCK->nllen == 2 && - UCHAR21TEST(Feptr) == NLBLOCK->nl[0]) + *Feptr == NLBLOCK->nl[0]) { mb->hitend = TRUE; if (mb->partial > 1) return PCRE2_ERROR_PARTIAL; @@ -6995,10 +7005,6 @@ PCRE2_SPTR req_cu_ptr; PCRE2_SPTR start_partial; PCRE2_SPTR match_partial; -#ifdef SUPPORT_JIT -BOOL use_jit; -#endif - /* This flag is needed even when Unicode is not supported for convenience (it is used by the IS_NEWLINE macro). */ @@ -7008,9 +7014,6 @@ BOOL utf = FALSE; BOOL ucp = FALSE; BOOL allow_invalid; uint32_t fragment_options = 0; -#ifdef SUPPORT_JIT -BOOL jit_checked_utf = FALSE; -#endif #endif /* SUPPORT_UNICODE */ PCRE2_SIZE frame_size; @@ -7073,15 +7076,6 @@ options |= (re->flags & FF) / ((FF & (~FF+1)) / (OO & (~OO+1))); #undef FF #undef OO -/* If the pattern was successfully studied with JIT support, we will run the -JIT executable instead of the rest of this function. Most options must be set -at compile time for the JIT code to be usable. */ - -#ifdef SUPPORT_JIT -use_jit = (re->executable_jit != NULL && - (options & ~PUBLIC_JIT_MATCH_OPTIONS) == 0); -#endif - /* Initialize UTF/UCP parameters. */ #ifdef SUPPORT_UNICODE @@ -7128,20 +7122,25 @@ match_data->startchar = 0; /* ============================= JIT matching ============================== */ -/* Prepare for JIT matching. Check a UTF string for validity unless no check is -requested or invalid UTF can be handled. We check only the portion of the -subject that might be be inspected during matching - from the offset minus the -maximum lookbehind to the given length. This saves time when a small part of a -large subject is being matched by the use of a starting offset. Note that the -maximum lookbehind is a number of characters, not code units. */ +/* If the pattern was successfully studied with JIT support, we will run the +JIT executable instead of the rest of this function. Most options must be set +at compile time for the JIT code to be usable. */ #ifdef SUPPORT_JIT -if (use_jit) +if (re->executable_jit != NULL && + (options & ~PUBLIC_JIT_MATCH_OPTIONS) == 0 && + PRIV(jit_check_exec)(re->executable_jit, options)) { + /* Prepare for JIT matching. Check a UTF string for validity unless no check + is requested or invalid UTF can be handled. We check only the portion of the + subject that might be be inspected during matching - from the offset minus + the maximum lookbehind to the given length. This saves time when a small part + of a large subject is being matched by the use of a starting offset. Note that + the maximum lookbehind is a number of characters, not code units. */ + #ifdef SUPPORT_UNICODE if (utf && (options & PCRE2_NO_UTF_CHECK) == 0 && !allow_invalid) { - /* For 8-bit and 16-bit UTF, check that the first code unit is a valid character start. */ @@ -7194,40 +7193,36 @@ if (use_jit) match_data->startchar += start_match - subject; return match_data->rc = rc; } - jit_checked_utf = TRUE; } #endif /* SUPPORT_UNICODE */ - /* If JIT returns BADOPTION, which means that the selected complete or - partial matching mode was not compiled, fall through to the interpreter. */ - rc = pcre2_jit_match(code, subject, length, start_offset, options, match_data, mcontext); - if (rc != PCRE2_ERROR_JIT_BADOPTION) + /* JIT must be able to perform the match. */ + PCRE2_ASSERT(rc != PCRE2_ERROR_JIT_BADOPTION); + + match_data->options = original_options; + if (rc >= 0 && (options & PCRE2_COPY_MATCHED_SUBJECT) != 0) { - match_data->options = original_options; - if (rc >= 0 && (options & PCRE2_COPY_MATCHED_SUBJECT) != 0) + if (length != 0) { - if (length != 0) - { - match_data->subject = match_data->memctl.malloc(CU2BYTES(length), - match_data->memctl.memory_data); - if (match_data->subject == NULL) - return match_data->rc = PCRE2_ERROR_NOMEMORY; - memcpy((void *)match_data->subject, subject, CU2BYTES(length)); - } - else - match_data->subject = NULL; - match_data->flags |= PCRE2_MD_COPIED_SUBJECT; + match_data->subject = match_data->memctl.malloc(CU2BYTES(length), + match_data->memctl.memory_data); + if (match_data->subject == NULL) + return match_data->rc = PCRE2_ERROR_NOMEMORY; + memcpy((void *)match_data->subject, subject, CU2BYTES(length)); } else - { - /* When pcre2_jit_match sets the subject, it doesn't know what the - original passed-in pointer was. */ - if (match_data->subject != NULL) match_data->subject = original_subject; - } - return rc; + match_data->subject = NULL; + match_data->flags |= PCRE2_MD_COPIED_SUBJECT; + } + else + { + /* When pcre2_jit_match sets the subject, it doesn't know what the + original passed-in pointer was. */ + if (match_data->subject != NULL) match_data->subject = original_subject; } + return rc; } #endif /* SUPPORT_JIT */ @@ -7240,12 +7235,8 @@ this. */ mb->check_subject = subject; -/* If a UTF subject string was not checked for validity in the JIT code above, -check it here, and handle support for invalid UTF strings. The check above -happens only when invalid UTF is not supported and PCRE2_NO_CHECK_UTF is unset. -If we get here in those circumstances, it means the subject string is valid, -but for some reason JIT matching was not successful. There is no need to check -the subject again. +/* Check the validity of UTF subject strings. The check happens only when +PCRE2_NO_CHECK_UTF is unset. We check only the portion of the subject that might be be inspected during matching - from the offset minus the maximum lookbehind to the given length. @@ -7257,11 +7248,7 @@ Note also that support for invalid UTF forces a check, overriding the setting of PCRE2_NO_CHECK_UTF. */ #ifdef SUPPORT_UNICODE -if (utf && -#ifdef SUPPORT_JIT - !jit_checked_utf && -#endif - ((options & PCRE2_NO_UTF_CHECK) == 0 || allow_invalid)) +if (utf && ((options & PCRE2_NO_UTF_CHECK) == 0 || allow_invalid)) { #if PCRE2_CODE_UNIT_WIDTH != 32 BOOL skipped_bad_start = FALSE; @@ -7649,7 +7636,7 @@ for(;;) BOOL ok = start_match < end_subject; if (ok) { - PCRE2_UCHAR c = UCHAR21TEST(start_match); + PCRE2_UCHAR c = *start_match; ok = has_first_cu && (c == first_cu || c == first_cu2); if (!ok && start_bits != NULL) { @@ -7681,7 +7668,7 @@ for(;;) #if PCRE2_CODE_UNIT_WIDTH != 8 PCRE2_UCHAR smc; while (start_match < end_subject && - (smc = UCHAR21TEST(start_match)) != first_cu && + (smc = *start_match) != first_cu && smc != first_cu2) start_match++; #else @@ -7741,7 +7728,7 @@ for(;;) else { #if PCRE2_CODE_UNIT_WIDTH != 8 - while (start_match < end_subject && UCHAR21TEST(start_match) != + while (start_match < end_subject && *start_match != first_cu) start_match++; #else @@ -7796,7 +7783,7 @@ for(;;) if (start_match[-1] == CHAR_CR && (mb->nltype == NLTYPE_ANY || mb->nltype == NLTYPE_ANYCRLF) && start_match < end_subject && - UCHAR21TEST(start_match) == CHAR_NL) + *start_match == CHAR_NL) start_match++; } } @@ -7810,7 +7797,7 @@ for(;;) { while (start_match < end_subject) { - uint32_t c = UCHAR21TEST(start_match); + uint32_t c = *start_match; #if PCRE2_CODE_UNIT_WIDTH != 8 if (c > 255) c = 255; #endif @@ -7884,7 +7871,7 @@ for(;;) #if PCRE2_CODE_UNIT_WIDTH != 8 while (p < end_subject) { - uint32_t pp = UCHAR21INCTEST(p); + uint32_t pp = *p++; if (pp == req_cu || pp == req_cu2) { p--; break; } } #else /* 8-bit code units */ @@ -7905,7 +7892,7 @@ for(;;) #if PCRE2_CODE_UNIT_WIDTH != 8 while (p < end_subject) { - if (UCHAR21INCTEST(p) == req_cu) { p--; break; } + if (*p++ == req_cu) { p--; break; } } #else /* 8-bit code units */ diff --git a/scintilla/pcre2/src/pcre2_serialize.c b/scintilla/pcre2/src/pcre2_serialize.c index f10a3fa0dd..725b54099b 100644 --- a/scintilla/pcre2/src/pcre2_serialize.c +++ b/scintilla/pcre2/src/pcre2_serialize.c @@ -166,9 +166,10 @@ const pcre2_memctl *memctl = (gcontext != NULL) ? &gcontext->memctl : &PRIV(default_compile_context).memctl; const uint8_t *src_bytes; -pcre2_real_code *dst_re; +pcre2_real_code *dst_re = NULL; uint8_t *tables; int32_t i, j; +int32_t error; /* Sanity checks. */ @@ -206,7 +207,10 @@ for (i = 0; i < number_of_codes; i++) memcpy(&blocksize, src_bytes + offsetof(pcre2_real_code, blocksize), sizeof(CODE_BLOCKSIZE_TYPE)); if (blocksize <= sizeof(pcre2_real_code)) - return PCRE2_ERROR_BADSERIALIZEDDATA; + { + error = PCRE2_ERROR_BADSERIALIZEDDATA; + goto cleanup; + } /* The allocator provided by gcontext replaces the original one. */ @@ -214,13 +218,8 @@ for (i = 0; i < number_of_codes; i++) (pcre2_memctl *)gcontext); if (dst_re == NULL) { - memctl->free(tables, memctl->memory_data); - for (j = 0; j < i; j++) - { - memctl->free(codes[j], memctl->memory_data); - codes[j] = NULL; - } - return PCRE2_ERROR_NOMEMORY; + error = PCRE2_ERROR_NOMEMORY; + goto cleanup; } /* The new allocator must be preserved. */ @@ -230,10 +229,10 @@ for (i = 0; i < number_of_codes; i++) if (dst_re->magic_number != MAGIC_NUMBER || dst_re->name_entry_size > MAX_NAME_SIZE + IMM2_SIZE + 1 || dst_re->name_count > MAX_NAME_COUNT) - { - memctl->free(dst_re, memctl->memory_data); - return PCRE2_ERROR_BADSERIALIZEDDATA; - } + { + error = PCRE2_ERROR_BADSERIALIZEDDATA; + goto cleanup; + } /* At the moment only one table is supported. */ @@ -242,10 +241,22 @@ for (i = 0; i < number_of_codes; i++) dst_re->flags |= PCRE2_DEREF_TABLES; codes[i] = dst_re; + dst_re = NULL; src_bytes += blocksize; } return number_of_codes; + +cleanup: +if (dst_re != NULL) + memctl->free(dst_re, memctl->memory_data); +memctl->free(tables, memctl->memory_data); +for (j = 0; j < i; j++) + { + memctl->free(codes[j], memctl->memory_data); + codes[j] = NULL; + } +return error; } diff --git a/scintilla/pcre2/src/pcre2_substitute.c b/scintilla/pcre2/src/pcre2_substitute.c index 5cb84748e0..d512f69b68 100644 --- a/scintilla/pcre2/src/pcre2_substitute.c +++ b/scintilla/pcre2/src/pcre2_substitute.c @@ -115,6 +115,7 @@ for (; ptr < ptrend; ptr++) int erc; int errorcode; uint32_t ch; + PCRE2_SPTR esc_end_ptr; if (ptr < ptrend - 1) switch (ptr[1]) { @@ -137,6 +138,9 @@ for (; ptr < ptrend; ptr++) goto EXIT; } + esc_end_ptr = ptr; + ptr -= 1; /* Rewind by one, because the for-loop will increment it */ + switch(erc) { case 0: /* Data character */ @@ -160,7 +164,8 @@ for (; ptr < ptrend; ptr++) default: if (erc < 0) - break; /* capture group reference */ + break; /* capture group reference */ + ptr = esc_end_ptr; rc = PCRE2_ERROR_BADREPESCAPE; goto EXIT; } @@ -751,6 +756,7 @@ BOOL overflowed = FALSE; BOOL use_existing_match; BOOL replacement_only; BOOL utf = (code->overall_options & PCRE2_UTF) != 0; +BOOL partial = (options & (PCRE2_PARTIAL_HARD|PCRE2_PARTIAL_SOFT)) != 0; PCRE2_UCHAR temp[6]; PCRE2_UCHAR null_str[1] = { 0xcd }; PCRE2_SPTR original_subject = subject; @@ -778,10 +784,16 @@ if (mcontext != NULL) substitute_case_callout_data = mcontext->substitute_case_callout_data; } -/* Partial matching is not valid. This must come after setting *blength to -PCRE2_UNSET, so as not to imply an offset in the replacement. */ +/* Partial matching is supported, with limitations. We allow matching in partial +mode, however, if a partial match is found, the substitution will fail with a +PCRE2_ERROR_PARTIAL error. Additionally, outputting the after-match text is not +allowed (PCRE2_ERROR_BADOPTION), and certain replacement items such as $' and $_ +are not supported (PCRE2_ERROR_PARTIALSUBS). + +This must come after setting *blength to PCRE2_UNSET, so as not to imply an +offset in the replacement. */ -if ((options & (PCRE2_PARTIAL_HARD|PCRE2_PARTIAL_SOFT)) != 0) +if (partial && (options & PCRE2_SUBSTITUTE_REPLACEMENT_ONLY) == 0) return PCRE2_ERROR_BADOPTION; /* Validate length and find the end of the replacement. A NULL replacement of @@ -854,7 +866,8 @@ if (use_existing_match) if (start_offset != match_data->start_offset) return PCRE2_ERROR_DIFFSUBSOFFSET; - if ((options & ~SUBSTITUTE_OPTIONS) != match_data->options) + if ((options & ~(SUBSTITUTE_OPTIONS|PCRE2_NO_UTF_CHECK)) != + (match_data->options & ~PCRE2_NO_UTF_CHECK)) return PCRE2_ERROR_DIFFSUBSOPTIONS; } @@ -1119,8 +1132,16 @@ for (;;) if (next == CHAR_GRAVE_ACCENT || next == CHAR_APOSTROPHE) { ++ptr; + + /* (Sanity-check ovector before reading from it.) */ rc = pcre2_substring_length_bynumber(match_data, 0, &sublength); - if (rc < 0) goto PTREXIT; /* (Sanity-check ovector before reading from it.) */ + /* LCOV_EXCL_START */ + if (rc < 0) + { + PCRE2_DEBUG_UNREACHABLE(); + goto PTREXIT; + } + /* LCOV_EXCL_STOP */ if (next == CHAR_GRAVE_ACCENT) { @@ -1129,6 +1150,12 @@ for (;;) } else { + if (partial) + { + rc = PCRE2_ERROR_PARTIALSUBS; + goto PTREXIT; + } + subptr = subject + ovector[1]; subptrend = subject + length; } @@ -1139,12 +1166,19 @@ for (;;) { /* Java, .NET support $_ for "entire input string". */ ++ptr; + + if (partial) + { + rc = PCRE2_ERROR_PARTIALSUBS; + goto PTREXIT; + } + subptr = subject; subptrend = subject + length; goto SUBPTR_SUBSTITUTE; } - else if (next == CHAR_PLUS && - !(ptr+1 < repend && ptr[1] == CHAR_LEFT_CURLY_BRACKET)) + if (next == CHAR_PLUS && + !(ptr+1 < repend && ptr[1] == CHAR_LEFT_CURLY_BRACKET)) { /* Perl supports $+ for "highest captured group" (not the same as $^N which is mainly only useful inside Perl's match callbacks). We also diff --git a/scintilla/pcre2/src/pcre2_substring.c b/scintilla/pcre2/src/pcre2_substring.c index f68b464e05..a6f5277a34 100644 --- a/scintilla/pcre2/src/pcre2_substring.c +++ b/scintilla/pcre2/src/pcre2_substring.c @@ -210,9 +210,10 @@ PCRE2_SIZE size; PCRE2_UCHAR *yield; rc = pcre2_substring_length_bynumber(match_data, stringnumber, &size); if (rc < 0) return rc; -yield = PRIV(memctl_malloc)(sizeof(pcre2_memctl) + - (size + 1)*PCRE2_CODE_UNIT_WIDTH, (pcre2_memctl *)match_data); -if (yield == NULL) return PCRE2_ERROR_NOMEMORY; +if (size > ((PCRE2_SIZE_MAX - sizeof(pcre2_memctl)) / CU2BYTES(1)) - 1 || + (yield = PRIV(memctl_malloc)(sizeof(pcre2_memctl) + + CU2BYTES(size + 1), (pcre2_memctl *)match_data)) == NULL) + return PCRE2_ERROR_NOMEMORY; yield = (PCRE2_UCHAR *)(((char *)yield) + sizeof(pcre2_memctl)); if (size != 0) memcpy(yield, match_data->subject + match_data->ovector[stringnumber*2], CU2BYTES(size)); diff --git a/scintilla/pcre2/src/pcre2_ucd.c b/scintilla/pcre2/src/pcre2_ucd.c index 1cbff3afec..7b294a8581 100644 --- a/scintilla/pcre2/src/pcre2_ucd.c +++ b/scintilla/pcre2/src/pcre2_ucd.c @@ -77,9 +77,9 @@ const uint32_t PRIV(ucd_nocase_ranges)[] = {0}; const uint32_t PRIV(ucd_nocase_ranges_size) = 0; #else -/* Total size: 116564 bytes, block size: 128. */ +/* Total size: 116548 bytes, block size: 128. */ -const char *PRIV(unicode_version) = "16.0.0"; +const char *PRIV(unicode_version) = "17.0.0"; /* When recompiling tables with a new Unicode version, please check the types in this structure definition with those in pcre2_internal.h (the actual field @@ -200,20 +200,21 @@ const uint32_t PRIV(ucd_nocase_ranges)[] = { 0x10d65, 0x10d70, /* 10 */ 0x10d85, 0x118a0, /* 2842 */ 0x118df, 0x16e40, /* 21856 */ - 0x16e7f, 0x1e900, /* 31360 */ + 0x16e7f, 0x16ea0, /* 32 */ + 0x16ed3, 0x1e900, /* 31276 */ 0x1e943, 0x110000, /* 988860 */ 0xffffffff, 0xffffffff /* terminator */ }; -/* Total: 1110933 characters. */ -const uint32_t PRIV(ucd_nocase_ranges_size) = 80; +/* Total: 1110881 characters. */ +const uint32_t PRIV(ucd_nocase_ranges_size) = 82; /* This table lists the code points for the '9' characters in each set of decimal digits. It is used to ensure that all the digits in a script run come from the same set. */ const uint32_t PRIV(ucd_digit_sets)[] = { - 76, /* Number of subsequent values */ + 77, /* Number of subsequent values */ 0x00039, 0x00669, 0x006f9, 0x007c9, 0x0096f, 0x009ef, 0x00a6f, 0x00aef, 0x00b6f, 0x00bef, 0x00c6f, 0x00cef, 0x00d6f, 0x00def, 0x00e59, 0x00ed9, 0x00f29, 0x01049, 0x01099, 0x017e9, 0x01819, 0x0194f, 0x019d9, 0x01a89, @@ -221,9 +222,9 @@ const uint32_t PRIV(ucd_digit_sets)[] = { 0x0a9d9, 0x0a9f9, 0x0aa59, 0x0abf9, 0x0ff19, 0x104a9, 0x10d39, 0x10d49, 0x1106f, 0x110f9, 0x1113f, 0x111d9, 0x112f9, 0x11459, 0x114d9, 0x11659, 0x116c9, 0x116d9, 0x116e3, 0x11739, 0x118e9, 0x11959, 0x11bf9, 0x11c59, - 0x11d59, 0x11da9, 0x11f59, 0x16139, 0x16a69, 0x16ac9, 0x16b59, 0x16d79, - 0x1ccf9, 0x1d7d7, 0x1d7e1, 0x1d7eb, 0x1d7f5, 0x1d7ff, 0x1e149, 0x1e2f9, - 0x1e4f9, 0x1e5fa, 0x1e959, 0x1fbf9, + 0x11d59, 0x11da9, 0x11de9, 0x11f59, 0x16139, 0x16a69, 0x16ac9, 0x16b59, + 0x16d79, 0x1ccf9, 0x1d7d7, 0x1d7e1, 0x1d7eb, 0x1d7f5, 0x1d7ff, 0x1e149, + 0x1e2f9, 0x1e4f9, 0x1e5fa, 0x1e959, 0x1fbf9, }; /* This vector is a list of script bitsets for the Script Extension property. @@ -232,60 +233,60 @@ ucd_script_sets_item_size. */ const uint32_t PRIV(ucd_script_sets)[] = { 0x00000000u, 0x00000000u, 0x00000000u, 0x00000000u, - 0x40200003u, 0x00381901u, 0x00100246u, 0x00000000u, - 0x00040305u, 0x00800000u, 0x08000000u, 0x00000000u, + 0x40200003u, 0x00381901u, 0x00200246u, 0x00000000u, + 0x00040305u, 0x00800000u, 0x10000000u, 0x00000000u, 0x20000001u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000001u, 0x00800000u, 0x00000000u, 0x00000000u, 0x00040001u, 0x00000000u, 0x00000000u, 0x00000000u, - 0x01000007u, 0x00000840u, 0x80000200u, 0x00000000u, - 0x01000007u, 0x00000040u, 0x80010000u, 0x00000001u, + 0x01000007u, 0x00000840u, 0x00000200u, 0x00000001u, + 0x01000007u, 0x00000040u, 0x00020000u, 0x00000003u, 0x01000005u, 0x00002000u, 0x00000000u, 0x00000000u, - 0x00040041u, 0x00001000u, 0x80000000u, 0x00000000u, - 0x01000047u, 0x00002801u, 0x00010001u, 0x00000001u, + 0x00040041u, 0x00001000u, 0x00000000u, 0x00000001u, + 0x01000047u, 0x00002801u, 0x00020001u, 0x00000002u, 0x10000001u, 0x00001801u, 0x00000004u, 0x00000000u, - 0x00000007u, 0x00000000u, 0x00000200u, 0x00000000u, - 0x00000051u, 0x00002840u, 0x00000202u, 0x00000001u, - 0x0000005fu, 0x00000041u, 0x00000202u, 0x00000000u, + 0x00000007u, 0x00002000u, 0x00000200u, 0x00000000u, + 0x00000051u, 0x00002840u, 0x00000202u, 0x00000002u, + 0x0000005fu, 0x00002041u, 0x00000202u, 0x00000000u, 0x00000001u, 0x00002000u, 0x00000000u, 0x00000000u, 0x00000041u, 0x00000000u, 0x00000002u, 0x00000000u, - 0x01000005u, 0x00000000u, 0x00010000u, 0x00000000u, + 0x01000005u, 0x00000000u, 0x00020000u, 0x00000000u, 0x01000001u, 0x00000040u, 0x00000000u, 0x00000000u, - 0x00000001u, 0x00000000u, 0x80000000u, 0x00000000u, + 0x00000001u, 0x00000000u, 0x00000000u, 0x00000001u, 0x00800001u, 0x00000000u, 0x00000000u, 0x00000000u, - 0x00000005u, 0x00000000u, 0x00000000u, 0x00000001u, - 0x00000003u, 0x00000000u, 0x00000200u, 0x00000001u, - 0x00000041u, 0x00000000u, 0x00000000u, 0x00000000u, - 0x11000041u, 0x00000000u, 0x00000002u, 0x00000000u, + 0x00000005u, 0x00000000u, 0x00000000u, 0x00000002u, + 0x00000003u, 0x00000000u, 0x00000200u, 0x00000002u, + 0x11000041u, 0x00002000u, 0x00000002u, 0x00000000u, 0x01000041u, 0x00000000u, 0x00000002u, 0x00000000u, - 0x00000041u, 0x00000000u, 0x80000000u, 0x00000000u, + 0x00000041u, 0x00000000u, 0x00000000u, 0x00000000u, + 0x00000041u, 0x00000000u, 0x00000000u, 0x00000001u, 0x01000041u, 0x00000000u, 0x00000000u, 0x00000000u, - 0x01040001u, 0x00000001u, 0x80000001u, 0x00000000u, + 0x01040041u, 0x00000001u, 0x00000001u, 0x00000001u, 0x00000002u, 0x00000000u, 0x00000000u, 0x00000000u, - 0x00000001u, 0x00000000u, 0x00010000u, 0x00000000u, - 0x00000001u, 0x00000000u, 0x00000001u, 0x00000001u, + 0x00000001u, 0x00000000u, 0x00020000u, 0x00000000u, + 0x00000001u, 0x00000000u, 0x00000001u, 0x00000002u, 0x00000001u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000002u, 0x00000800u, 0x00000000u, 0x00000000u, 0x00000004u, 0x00000000u, 0x00000200u, 0x00000000u, 0x00000004u, 0x00001000u, 0x00000000u, 0x00000000u, 0x00000005u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00200008u, 0x00001000u, 0x00000000u, 0x00000000u, - 0x000000e0u, 0x00010000u, 0x11200000u, 0x00000000u, + 0x000000e0u, 0x00010000u, 0x22400000u, 0x00000000u, 0x000000e0u, 0x00000000u, 0x00000000u, 0x00000000u, - 0x000000e0u, 0x00010000u, 0x11208000u, 0x00000000u, - 0x00000060u, 0x08000000u, 0x04608480u, 0x00000000u, + 0x000000e0u, 0x00010000u, 0x22408000u, 0x00000000u, + 0x00000060u, 0x08000000u, 0x08c08480u, 0x00000000u, 0x00000060u, 0x00000000u, 0x00000000u, 0x00000000u, - 0x000000a0u, 0x00000000u, 0x01000000u, 0x00000000u, - 0x00000020u, 0x00000000u, 0x00200000u, 0x00000000u, - 0x0001ff01u, 0x40000000u, 0x00001008u, 0x00000000u, - 0x0001ff01u, 0x00000000u, 0x00001008u, 0x00000000u, - 0x0003ff00u, 0x80004000u, 0x409c1848u, 0x00000000u, - 0x0003ff00u, 0x80004020u, 0x609c1848u, 0x00000000u, - 0x00000100u, 0x04000000u, 0x00080040u, 0x00000000u, + 0x000000a0u, 0x00000000u, 0x02000000u, 0x00000000u, + 0x00000020u, 0x00000000u, 0x00400000u, 0x00000000u, + 0x0001ff01u, 0x40000000u, 0x01011008u, 0x00000000u, + 0x0001ff01u, 0x00000000u, 0x00011008u, 0x00000000u, + 0x0003ff00u, 0x80004000u, 0x81381848u, 0x00000000u, + 0x0003ff00u, 0x80004020u, 0xc1381848u, 0x00000000u, + 0x00000100u, 0x04000000u, 0x00100040u, 0x00000000u, 0x00000200u, 0x10004000u, 0x00000000u, 0x00000000u, 0x00000400u, 0x00000000u, 0x00002000u, 0x00000000u, 0x00000800u, 0x00000000u, 0x00000010u, 0x00000000u, 0x00002000u, 0x00000000u, 0x00000008u, 0x00000000u, - 0x00008000u, 0x00000000u, 0x00800000u, 0x00000002u, + 0x00008000u, 0x00000000u, 0x01000000u, 0x00000004u, 0x00100000u, 0x10000040u, 0x00000000u, 0x00000000u, 0x00200001u, 0x00001000u, 0x00000000u, 0x00000000u, 0x02000000u, 0x00000000u, 0x00000000u, 0x00000000u, @@ -294,15 +295,23 @@ const uint32_t PRIV(ucd_script_sets)[] = { 0x00008300u, 0x00000000u, 0x00000008u, 0x00000000u, 0x00000100u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00008100u, 0x00000000u, 0x00000008u, 0x00000000u, - 0x00000300u, 0x00000000u, 0x00000000u, 0x00000000u, + 0x00004300u, 0x00000000u, 0x00011000u, 0x00000000u, + 0x00004300u, 0x00000000u, 0x00000000u, 0x00000000u, + 0x00000100u, 0x40000000u, 0x00010000u, 0x00000000u, + 0x00004300u, 0x00000000u, 0x00010000u, 0x00000000u, 0x00000100u, 0x40000000u, 0x00000000u, 0x00000000u, 0x0001f100u, 0x00000000u, 0x00000000u, 0x00000000u, - 0x00000100u, 0x00000000u, 0x00800000u, 0x00000000u, - 0x0003d300u, 0x00000000u, 0x00801008u, 0x00000002u, + 0x00000300u, 0x00000000u, 0x00000000u, 0x00000000u, + 0x00000100u, 0x00000000u, 0x00011000u, 0x00000000u, + 0x00000100u, 0x00000000u, 0x01010000u, 0x00000000u, + 0x00000300u, 0x40000000u, 0x00000000u, 0x00000000u, + 0x00000100u, 0x00000000u, 0x00010000u, 0x00000000u, + 0x00000300u, 0x40000000u, 0x00010000u, 0x00000000u, + 0x0003d300u, 0x00000000u, 0x01001008u, 0x00000004u, 0x00000100u, 0x00000000u, 0x00000008u, 0x00000000u, - 0x00008100u, 0x00000000u, 0x00000008u, 0x00000002u, + 0x00008100u, 0x00000000u, 0x00000008u, 0x00000004u, 0x00000200u, 0x00000000u, 0x00000000u, 0x00000000u, - 0x00000000u, 0x00000000u, 0x00800000u, 0x00000000u, + 0x00000000u, 0x00000000u, 0x01000000u, 0x00000000u, 0x00000045u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000040u, 0x00000000u, 0x00000000u, 0x00000000u, 0x04000001u, 0x00008000u, 0x00000000u, 0x00000000u, @@ -315,7 +324,7 @@ const uint32_t PRIV(ucd_script_sets)[] = { 0x00200000u, 0x04780000u, 0x00004000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000002u, 0x00000000u, 0x00000020u, 0x00000000u, 0x0000c000u, 0x00000000u, - 0x40000000u, 0x00000000u, 0x00020000u, 0x00000000u, + 0x40000000u, 0x00000000u, 0x00040000u, 0x00000000u, 0xfc400000u, 0x00000000u, 0x00000000u, 0x00000000u, 0xfc400000u, 0x00008000u, 0x00000000u, 0x00000000u, 0x78400000u, 0x00000000u, 0x00000000u, 0x00000000u, @@ -327,21 +336,21 @@ const uint32_t PRIV(ucd_script_sets)[] = { 0x18000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x58000000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x40000001u, 0x00000000u, 0x00000000u, 0x00000000u, - 0x00018d00u, 0xc4000000u, 0x00881950u, 0x00000002u, - 0x00008d00u, 0xc4000000u, 0x00881950u, 0x00000002u, - 0x00000d00u, 0x84000000u, 0x00081950u, 0x00000000u, - 0x00000d00u, 0xc4000000u, 0x00081950u, 0x00000000u, - 0x00000300u, 0x00000000u, 0x00000000u, 0x00000002u, + 0x00018d00u, 0xc4000000u, 0x01101950u, 0x00000004u, + 0x00008d00u, 0xc4000000u, 0x01101950u, 0x00000004u, + 0x00000d00u, 0x84000000u, 0x00101950u, 0x00000000u, + 0x00000d00u, 0xc4000000u, 0x00101950u, 0x00000000u, + 0x00000300u, 0x00000000u, 0x00000000u, 0x00000004u, 0x00002100u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00100001u, 0x00020000u, 0x00000000u, 0x00000000u, 0x00000000u, 0x01000400u, 0x00000000u, 0x00000000u, 0x00000020u, 0x00010000u, 0x00000000u, 0x00000000u, 0x000000a0u, 0x00000000u, 0x00000000u, 0x00000000u, - 0x00000000u, 0x00000280u, 0x02000000u, 0x00000000u, + 0x00000000u, 0x00000280u, 0x04000000u, 0x00000000u, 0x00000000u, 0x00000280u, 0x00000000u, 0x00000000u, 0x00000000u, 0x00000280u, 0x00000020u, 0x00000000u, 0x00000020u, 0x00000800u, 0x00000000u, 0x00000000u, - 0x00000000u, 0x00000000u, 0x04000080u, 0x00000000u, + 0x00000000u, 0x00000000u, 0x08000080u, 0x00000000u, }; /* This vector is a list of bitsets for Boolean properties. The number of @@ -444,6 +453,7 @@ const uint32_t PRIV(ucd_boolprop_sets)[] = { 0x00802004u, 0x01800003u, 0x00800344u, 0x01900003u, 0x03008000u, 0x00800009u, + 0x00804004u, 0x0180000bu, 0x00c00000u, 0x00000000u, 0x01002020u, 0x00a00009u, 0x01000024u, 0x0180000bu, @@ -451,7 +461,6 @@ const uint32_t PRIV(ucd_boolprop_sets)[] = { 0x01408024u, 0x00800009u, 0x00808000u, 0x00000000u, 0x00800044u, 0x01820043u, - 0x00800064u, 0x01820043u, 0x01002020u, 0x00800011u, 0x00022020u, 0x00800019u, 0x00002028u, 0x00000800u, @@ -467,6 +476,7 @@ const uint32_t PRIV(ucd_boolprop_sets)[] = { 0x00002020u, 0x00000080u, 0x00002000u, 0x00000000u, 0x00006020u, 0x00000000u, + 0x00800064u, 0x01820043u, 0x40800000u, 0x00000080u, 0x40801000u, 0x00000080u, 0x40800010u, 0x00000080u, @@ -485,13 +495,11 @@ const uint32_t PRIV(ucd_boolprop_sets)[] = { 0x00801000u, 0x00000480u, 0x00b10000u, 0x00000400u, 0x00804010u, 0x00000400u, - 0x00a00000u, 0x00000400u, 0x00000000u, 0x00000400u, 0x008003c4u, 0x00100000u, 0x00a103c4u, 0x00100000u, 0x00800d44u, 0x00000040u, 0x00b10000u, 0x00000480u, - 0x00a00000u, 0x00000480u, 0x00a90000u, 0x00000400u, 0x00b90000u, 0x00000400u, 0x03000020u, 0x00800009u, @@ -528,9 +536,9 @@ const uint32_t PRIV(ucd_boolprop_sets)[] = { 0x01400020u, 0x00800009u, 0x01000020u, 0x0080000du, 0x01008004u, 0x00800009u, + 0x00c00024u, 0x01800007u, 0x01000000u, 0x00800009u, 0xc0800000u, 0x00000080u, - 0x00a00000u, 0x00000000u, 0x00b10000u, 0x00000000u, 0x00200000u, 0x00000000u, 0x00800044u, 0x00100000u, @@ -549,66 +557,66 @@ offset to multichar other cases or zero (8 bits), offset to other case or zero (32 bits, signed), bidi class (5 bits) and script extension (11 bits) packed into a 16-bit field, and offset in binary properties table (16 bits). */ -const ucd_record PRIV(ucd_records)[] = { /* 18516 bytes, record size 12 */ - { 99, 0, 2, 0, 0, 6144, 2, }, /* 0 */ - { 99, 0, 2, 0, 0, 43008, 4, }, /* 1 */ - { 99, 0, 1, 0, 0, 4096, 4, }, /* 2 */ - { 99, 0, 2, 0, 0, 45056, 4, }, /* 3 */ - { 99, 0, 0, 0, 0, 4096, 4, }, /* 4 */ - { 99, 0, 2, 0, 0, 4096, 2, }, /* 5 */ - { 99, 0, 2, 0, 0, 43008, 2, }, /* 6 */ - { 99, 29, 12, 0, 0, 45056, 6, }, /* 7 */ - { 99, 21, 12, 0, 0, 28672, 8, }, /* 8 */ - { 99, 21, 12, 0, 0, 28672, 10, }, /* 9 */ - { 99, 21, 12, 0, 0, 14336, 12, }, /* 10 */ - { 99, 23, 12, 0, 0, 14336, 14, }, /* 11 */ - { 99, 21, 12, 0, 0, 14336, 14, }, /* 12 */ - { 99, 21, 12, 0, 0, 28672, 14, }, /* 13 */ - { 99, 21, 12, 0, 0, 28672, 16, }, /* 14 */ - { 99, 22, 12, 0, 0, 28672, 18, }, /* 15 */ - { 99, 18, 12, 0, 0, 28672, 18, }, /* 16 */ - { 99, 21, 12, 0, 0, 28672, 12, }, /* 17 */ - { 99, 25, 12, 0, 0, 12288, 20, }, /* 18 */ - { 99, 21, 12, 0, 0, 8192, 22, }, /* 19 */ - { 99, 17, 12, 0, 0, 12288, 24, }, /* 20 */ - { 99, 21, 12, 0, 0, 8192, 26, }, /* 21 */ - { 99, 21, 12, 0, 0, 8192, 14, }, /* 22 */ - { 99, 13, 12, 0, 0, 10240, 28, }, /* 23 */ - { 99, 21, 12, 0, 0, 8192, 30, }, /* 24 */ - { 99, 21, 12, 0, 0, 28672, 22, }, /* 25 */ - { 99, 25, 12, 0, 0, 28672, 32, }, /* 26 */ - { 99, 25, 12, 0, 0, 28672, 20, }, /* 27 */ +const ucd_record PRIV(ucd_records)[] = { /* 18756 bytes, record size 12 */ + { 100, 0, 2, 0, 0, 6144, 2, }, /* 0 */ + { 100, 0, 2, 0, 0, 43008, 4, }, /* 1 */ + { 100, 0, 1, 0, 0, 4096, 4, }, /* 2 */ + { 100, 0, 2, 0, 0, 45056, 4, }, /* 3 */ + { 100, 0, 0, 0, 0, 4096, 4, }, /* 4 */ + { 100, 0, 2, 0, 0, 4096, 2, }, /* 5 */ + { 100, 0, 2, 0, 0, 43008, 2, }, /* 6 */ + { 100, 29, 12, 0, 0, 45056, 6, }, /* 7 */ + { 100, 21, 12, 0, 0, 28672, 8, }, /* 8 */ + { 100, 21, 12, 0, 0, 28672, 10, }, /* 9 */ + { 100, 21, 12, 0, 0, 14336, 12, }, /* 10 */ + { 100, 23, 12, 0, 0, 14336, 14, }, /* 11 */ + { 100, 21, 12, 0, 0, 14336, 14, }, /* 12 */ + { 100, 21, 12, 0, 0, 28672, 14, }, /* 13 */ + { 100, 21, 12, 0, 0, 28672, 16, }, /* 14 */ + { 100, 22, 12, 0, 0, 28672, 18, }, /* 15 */ + { 100, 18, 12, 0, 0, 28672, 18, }, /* 16 */ + { 100, 21, 12, 0, 0, 28672, 12, }, /* 17 */ + { 100, 25, 12, 0, 0, 12288, 20, }, /* 18 */ + { 100, 21, 12, 0, 0, 8192, 22, }, /* 19 */ + { 100, 17, 12, 0, 0, 12288, 24, }, /* 20 */ + { 100, 21, 12, 0, 0, 8192, 26, }, /* 21 */ + { 100, 21, 12, 0, 0, 8192, 14, }, /* 22 */ + { 100, 13, 12, 0, 0, 10240, 28, }, /* 23 */ + { 100, 21, 12, 0, 0, 8192, 30, }, /* 24 */ + { 100, 21, 12, 0, 0, 28672, 22, }, /* 25 */ + { 100, 25, 12, 0, 0, 28672, 32, }, /* 26 */ + { 100, 25, 12, 0, 0, 28672, 20, }, /* 27 */ { 0, 9, 12, 0, 32, 18432, 34, }, /* 28 */ { 0, 9, 12, 0, 32, 18432, 36, }, /* 29 */ { 0, 9, 12, 100, 32, 18432, 36, }, /* 30 */ { 0, 9, 12, 1, 32, 18432, 36, }, /* 31 */ - { 99, 24, 12, 0, 0, 28672, 38, }, /* 32 */ - { 99, 16, 12, 0, 0, 28672, 40, }, /* 33 */ - { 99, 24, 12, 0, 0, 28672, 42, }, /* 34 */ + { 100, 24, 12, 0, 0, 28672, 38, }, /* 32 */ + { 100, 16, 12, 0, 0, 28672, 40, }, /* 33 */ + { 100, 24, 12, 0, 0, 28672, 42, }, /* 34 */ { 0, 5, 12, 0, -32, 18432, 44, }, /* 35 */ { 0, 5, 12, 0, -32, 18432, 46, }, /* 36 */ { 0, 5, 12, 0, -32, 18432, 48, }, /* 37 */ { 0, 5, 12, 100, -32, 18432, 46, }, /* 38 */ { 0, 5, 12, 1, -32, 18432, 46, }, /* 39 */ - { 99, 0, 2, 0, 0, 6144, 0, }, /* 40 */ - { 99, 0, 2, 0, 0, 4096, 50, }, /* 41 */ - { 99, 29, 12, 0, 0, 8192, 52, }, /* 42 */ - { 99, 21, 12, 0, 0, 28672, 54, }, /* 43 */ - { 99, 23, 12, 0, 0, 14336, 54, }, /* 44 */ - { 99, 26, 12, 0, 0, 28672, 54, }, /* 45 */ - { 99, 24, 12, 0, 0, 28672, 56, }, /* 46 */ - { 99, 26, 14, 0, 0, 28672, 58, }, /* 47 */ + { 100, 0, 2, 0, 0, 6144, 0, }, /* 40 */ + { 100, 0, 2, 0, 0, 4096, 50, }, /* 41 */ + { 100, 29, 12, 0, 0, 8192, 52, }, /* 42 */ + { 100, 21, 12, 0, 0, 28672, 54, }, /* 43 */ + { 100, 23, 12, 0, 0, 14336, 54, }, /* 44 */ + { 100, 26, 12, 0, 0, 28672, 54, }, /* 45 */ + { 100, 24, 12, 0, 0, 28672, 56, }, /* 46 */ + { 100, 26, 14, 0, 0, 28672, 58, }, /* 47 */ { 0, 7, 12, 0, 0, 18432, 60, }, /* 48 */ - { 99, 20, 12, 0, 0, 28672, 62, }, /* 49 */ - { 99, 25, 12, 0, 0, 28672, 64, }, /* 50 */ - { 99, 1, 2, 0, 0, 6144, 66, }, /* 51 */ - { 99, 26, 12, 0, 0, 14336, 54, }, /* 52 */ - { 99, 25, 12, 0, 0, 14336, 64, }, /* 53 */ - { 99, 15, 12, 0, 0, 10240, 68, }, /* 54 */ - { 99, 5, 12, 26, 775, 18432, 70, }, /* 55 */ - { 99, 21, 12, 0, 0, 28676, 72, }, /* 56 */ - { 99, 19, 12, 0, 0, 28672, 62, }, /* 57 */ - { 99, 15, 12, 0, 0, 28672, 74, }, /* 58 */ + { 100, 20, 12, 0, 0, 28672, 62, }, /* 49 */ + { 100, 25, 12, 0, 0, 28672, 64, }, /* 50 */ + { 100, 1, 2, 0, 0, 6144, 66, }, /* 51 */ + { 100, 26, 12, 0, 0, 14336, 54, }, /* 52 */ + { 100, 25, 12, 0, 0, 14336, 64, }, /* 53 */ + { 100, 15, 12, 0, 0, 10240, 68, }, /* 54 */ + { 100, 5, 12, 26, 775, 18432, 70, }, /* 55 */ + { 100, 21, 12, 0, 0, 28676, 72, }, /* 56 */ + { 100, 19, 12, 0, 0, 28672, 62, }, /* 57 */ + { 100, 15, 12, 0, 0, 28672, 74, }, /* 58 */ { 0, 9, 12, 0, 32, 18432, 76, }, /* 59 */ { 0, 9, 12, 104, 32, 18432, 76, }, /* 60 */ { 0, 5, 12, 0, 7615, 18432, 70, }, /* 61 */ @@ -701,59 +709,59 @@ const ucd_record PRIV(ucd_records)[] = { /* 18516 bytes, record size 12 */ { 0, 5, 12, 0, 42258, 18432, 78, }, /* 148 */ { 0, 6, 12, 0, 0, 18432, 90, }, /* 149 */ { 0, 6, 12, 0, 0, 18432, 92, }, /* 150 */ - { 99, 6, 12, 0, 0, 28672, 94, }, /* 151 */ - { 99, 6, 12, 0, 0, 18432, 94, }, /* 152 */ - { 99, 6, 12, 0, 0, 18440, 94, }, /* 153 */ - { 99, 6, 12, 0, 0, 18432, 90, }, /* 154 */ - { 99, 6, 12, 0, 0, 28684, 94, }, /* 155 */ - { 99, 6, 12, 0, 0, 28688, 94, }, /* 156 */ - { 99, 6, 12, 0, 0, 18432, 96, }, /* 157 */ - { 99, 24, 12, 0, 0, 28692, 56, }, /* 158 */ - { 99, 24, 12, 0, 0, 28684, 56, }, /* 159 */ + { 100, 6, 12, 0, 0, 28672, 94, }, /* 151 */ + { 100, 6, 12, 0, 0, 18432, 94, }, /* 152 */ + { 100, 6, 12, 0, 0, 18440, 94, }, /* 153 */ + { 100, 6, 12, 0, 0, 18432, 90, }, /* 154 */ + { 100, 6, 12, 0, 0, 28684, 94, }, /* 155 */ + { 100, 6, 12, 0, 0, 28688, 94, }, /* 156 */ + { 100, 6, 12, 0, 0, 18432, 96, }, /* 157 */ + { 100, 24, 12, 0, 0, 28692, 56, }, /* 158 */ + { 100, 24, 12, 0, 0, 28684, 56, }, /* 159 */ { 29, 24, 12, 0, 0, 28672, 56, }, /* 160 */ - { 106, 12, 3, 0, 0, 26648, 98, }, /* 161 */ - { 106, 12, 3, 0, 0, 26652, 98, }, /* 162 */ - { 106, 12, 3, 0, 0, 26656, 98, }, /* 163 */ - { 106, 12, 3, 0, 0, 26660, 98, }, /* 164 */ - { 106, 12, 3, 0, 0, 26664, 98, }, /* 165 */ - { 106, 12, 3, 0, 0, 26668, 98, }, /* 166 */ - { 106, 12, 3, 0, 0, 26672, 98, }, /* 167 */ - { 106, 12, 3, 0, 0, 26676, 98, }, /* 168 */ - { 106, 12, 3, 0, 0, 26680, 98, }, /* 169 */ - { 106, 12, 3, 0, 0, 26684, 98, }, /* 170 */ - { 106, 12, 3, 0, 0, 26688, 98, }, /* 171 */ - { 106, 12, 3, 0, 0, 26692, 98, }, /* 172 */ - { 106, 12, 3, 0, 0, 26696, 98, }, /* 173 */ - { 106, 12, 3, 0, 0, 26700, 98, }, /* 174 */ - { 106, 12, 3, 0, 0, 26704, 98, }, /* 175 */ - { 106, 12, 3, 0, 0, 26624, 98, }, /* 176 */ - { 106, 12, 3, 0, 0, 26708, 98, }, /* 177 */ - { 106, 12, 3, 0, 0, 26712, 98, }, /* 178 */ - { 106, 12, 3, 0, 0, 26716, 98, }, /* 179 */ - { 106, 12, 3, 0, 0, 26720, 98, }, /* 180 */ - { 106, 12, 3, 0, 0, 26724, 98, }, /* 181 */ - { 106, 12, 3, 0, 0, 26728, 98, }, /* 182 */ - { 106, 12, 3, 0, 0, 26732, 98, }, /* 183 */ - { 106, 12, 3, 0, 0, 26736, 98, }, /* 184 */ - { 106, 12, 3, 0, 0, 26740, 98, }, /* 185 */ - { 106, 12, 3, 21, 116, 26740, 100, }, /* 186 */ - { 106, 12, 3, 0, 0, 26624, 102, }, /* 187 */ - { 106, 12, 3, 0, 0, 26744, 104, }, /* 188 */ - { 106, 12, 3, 0, 0, 26624, 104, }, /* 189 */ - { 106, 12, 3, 0, 0, 26748, 98, }, /* 190 */ - { 106, 12, 3, 0, 0, 26752, 106, }, /* 191 */ + { 107, 12, 3, 0, 0, 26648, 98, }, /* 161 */ + { 107, 12, 3, 0, 0, 26652, 98, }, /* 162 */ + { 107, 12, 3, 0, 0, 26656, 98, }, /* 163 */ + { 107, 12, 3, 0, 0, 26660, 98, }, /* 164 */ + { 107, 12, 3, 0, 0, 26664, 98, }, /* 165 */ + { 107, 12, 3, 0, 0, 26668, 98, }, /* 166 */ + { 107, 12, 3, 0, 0, 26672, 98, }, /* 167 */ + { 107, 12, 3, 0, 0, 26676, 98, }, /* 168 */ + { 107, 12, 3, 0, 0, 26680, 98, }, /* 169 */ + { 107, 12, 3, 0, 0, 26684, 98, }, /* 170 */ + { 107, 12, 3, 0, 0, 26688, 98, }, /* 171 */ + { 107, 12, 3, 0, 0, 26692, 98, }, /* 172 */ + { 107, 12, 3, 0, 0, 26696, 98, }, /* 173 */ + { 107, 12, 3, 0, 0, 26700, 98, }, /* 174 */ + { 107, 12, 3, 0, 0, 26704, 98, }, /* 175 */ + { 107, 12, 3, 0, 0, 26624, 98, }, /* 176 */ + { 107, 12, 3, 0, 0, 26708, 98, }, /* 177 */ + { 107, 12, 3, 0, 0, 26712, 98, }, /* 178 */ + { 107, 12, 3, 0, 0, 26716, 98, }, /* 179 */ + { 107, 12, 3, 0, 0, 26720, 98, }, /* 180 */ + { 107, 12, 3, 0, 0, 26724, 98, }, /* 181 */ + { 107, 12, 3, 0, 0, 26728, 98, }, /* 182 */ + { 107, 12, 3, 0, 0, 26732, 98, }, /* 183 */ + { 107, 12, 3, 0, 0, 26736, 98, }, /* 184 */ + { 107, 12, 3, 0, 0, 26740, 98, }, /* 185 */ + { 107, 12, 3, 21, 116, 26740, 100, }, /* 186 */ + { 107, 12, 3, 0, 0, 26624, 102, }, /* 187 */ + { 107, 12, 3, 0, 0, 26744, 104, }, /* 188 */ + { 107, 12, 3, 0, 0, 26624, 104, }, /* 189 */ + { 107, 12, 3, 0, 0, 26748, 98, }, /* 190 */ + { 107, 12, 3, 0, 0, 26752, 106, }, /* 191 */ { 1, 9, 12, 0, 1, 18432, 76, }, /* 192 */ { 1, 5, 12, 0, -1, 18432, 78, }, /* 193 */ - { 99, 6, 12, 0, 0, 28804, 94, }, /* 194 */ + { 100, 6, 12, 0, 0, 28804, 94, }, /* 194 */ { 1, 24, 12, 0, 0, 28804, 56, }, /* 195 */ - { 98, 2, 12, 0, 0, 18432, 0, }, /* 196 */ + { 99, 2, 12, 0, 0, 18432, 0, }, /* 196 */ { 1, 6, 12, 0, 0, 18432, 108, }, /* 197 */ { 1, 5, 12, 0, 130, 18432, 78, }, /* 198 */ - { 99, 21, 12, 0, 0, 28672, 110, }, /* 199 */ + { 100, 21, 12, 0, 0, 28672, 110, }, /* 199 */ { 1, 9, 12, 0, 116, 18432, 76, }, /* 200 */ { 1, 24, 12, 0, 0, 28672, 56, }, /* 201 */ { 1, 9, 12, 0, 38, 18432, 76, }, /* 202 */ - { 99, 21, 12, 0, 0, 28672, 112, }, /* 203 */ + { 100, 21, 12, 0, 0, 28672, 112, }, /* 203 */ { 1, 9, 12, 0, 37, 18432, 76, }, /* 204 */ { 1, 9, 12, 0, 64, 18432, 76, }, /* 205 */ { 1, 9, 12, 0, 63, 18432, 76, }, /* 206 */ @@ -832,7 +840,7 @@ const ucd_record PRIV(ucd_records)[] = { /* 18516 bytes, record size 12 */ { 2, 26, 12, 0, 0, 18432, 74, }, /* 279 */ { 2, 12, 3, 0, 0, 26760, 98, }, /* 280 */ { 2, 12, 3, 0, 0, 26764, 98, }, /* 281 */ - { 106, 12, 3, 0, 0, 26768, 98, }, /* 282 */ + { 107, 12, 3, 0, 0, 26768, 98, }, /* 282 */ { 2, 11, 3, 0, 0, 26624, 124, }, /* 283 */ { 2, 9, 12, 0, 15, 18432, 76, }, /* 284 */ { 2, 5, 12, 0, -15, 18432, 78, }, /* 285 */ @@ -847,1252 +855,1272 @@ const ucd_record PRIV(ucd_records)[] = { /* 18516 bytes, record size 12 */ { 3, 17, 12, 0, 0, 28672, 130, }, /* 294 */ { 3, 26, 12, 0, 0, 28672, 74, }, /* 295 */ { 3, 23, 12, 0, 0, 14336, 74, }, /* 296 */ - { 98, 2, 12, 0, 0, 34816, 0, }, /* 297 */ + { 99, 2, 12, 0, 0, 34816, 0, }, /* 297 */ { 4, 12, 3, 0, 0, 26624, 98, }, /* 298 */ - { 4, 12, 3, 0, 0, 26624, 104, }, /* 299 */ - { 4, 12, 3, 0, 0, 26624, 132, }, /* 300 */ - { 4, 17, 12, 0, 0, 34816, 130, }, /* 301 */ - { 4, 21, 12, 0, 0, 34816, 74, }, /* 302 */ - { 4, 21, 12, 0, 0, 34816, 110, }, /* 303 */ - { 4, 12, 3, 0, 0, 26624, 106, }, /* 304 */ - { 4, 7, 12, 0, 0, 34816, 84, }, /* 305 */ - { 4, 21, 12, 0, 0, 34816, 126, }, /* 306 */ - { 5, 1, 4, 0, 0, 2048, 134, }, /* 307 */ - { 99, 1, 4, 0, 0, 2048, 134, }, /* 308 */ - { 5, 25, 12, 0, 0, 28672, 122, }, /* 309 */ - { 5, 25, 12, 0, 0, 0, 122, }, /* 310 */ - { 5, 21, 12, 0, 0, 14336, 74, }, /* 311 */ - { 5, 23, 12, 0, 0, 0, 74, }, /* 312 */ - { 99, 21, 12, 0, 0, 8344, 110, }, /* 313 */ - { 5, 21, 12, 0, 0, 0, 74, }, /* 314 */ - { 5, 26, 12, 0, 0, 28672, 74, }, /* 315 */ - { 5, 12, 3, 0, 0, 26624, 106, }, /* 316 */ - { 99, 21, 12, 0, 0, 152, 110, }, /* 317 */ - { 5, 1, 2, 0, 0, 156, 136, }, /* 318 */ - { 5, 21, 12, 0, 0, 0, 128, }, /* 319 */ - { 99, 21, 12, 0, 0, 160, 128, }, /* 320 */ - { 5, 7, 12, 0, 0, 0, 84, }, /* 321 */ - { 99, 6, 12, 0, 0, 164, 138, }, /* 322 */ - { 106, 12, 3, 0, 0, 26792, 132, }, /* 323 */ - { 106, 12, 3, 0, 0, 26792, 106, }, /* 324 */ - { 106, 12, 3, 0, 0, 26792, 140, }, /* 325 */ - { 5, 12, 3, 0, 0, 26624, 132, }, /* 326 */ - { 5, 12, 3, 0, 0, 26624, 142, }, /* 327 */ - { 5, 13, 12, 0, 0, 2220, 144, }, /* 328 */ - { 5, 21, 12, 0, 0, 2048, 74, }, /* 329 */ - { 5, 7, 12, 0, 0, 0, 146, }, /* 330 */ - { 5, 21, 12, 0, 0, 176, 128, }, /* 331 */ - { 5, 12, 3, 0, 0, 26624, 140, }, /* 332 */ - { 5, 12, 3, 0, 0, 26624, 98, }, /* 333 */ - { 5, 6, 12, 0, 0, 0, 94, }, /* 334 */ - { 5, 13, 12, 0, 0, 10240, 144, }, /* 335 */ - { 5, 26, 12, 0, 0, 0, 74, }, /* 336 */ - { 6, 21, 12, 0, 0, 0, 128, }, /* 337 */ - { 6, 21, 12, 0, 0, 0, 110, }, /* 338 */ - { 6, 21, 12, 0, 0, 0, 74, }, /* 339 */ - { 98, 2, 12, 0, 0, 0, 0, }, /* 340 */ - { 6, 1, 4, 0, 0, 0, 134, }, /* 341 */ - { 6, 7, 12, 0, 0, 0, 84, }, /* 342 */ - { 6, 12, 3, 0, 0, 26624, 106, }, /* 343 */ - { 6, 12, 3, 0, 0, 26624, 132, }, /* 344 */ - { 6, 12, 3, 0, 0, 26624, 98, }, /* 345 */ - { 7, 7, 12, 0, 0, 0, 84, }, /* 346 */ - { 7, 12, 3, 0, 0, 26624, 132, }, /* 347 */ - { 48, 13, 12, 0, 0, 34816, 144, }, /* 348 */ - { 48, 7, 12, 0, 0, 34816, 84, }, /* 349 */ - { 48, 12, 3, 0, 0, 26624, 98, }, /* 350 */ - { 48, 6, 12, 0, 0, 34816, 94, }, /* 351 */ - { 48, 26, 12, 0, 0, 28672, 74, }, /* 352 */ - { 48, 21, 12, 0, 0, 28672, 74, }, /* 353 */ - { 48, 21, 12, 0, 0, 28672, 110, }, /* 354 */ - { 48, 21, 12, 0, 0, 28672, 128, }, /* 355 */ - { 48, 6, 12, 0, 0, 34816, 138, }, /* 356 */ - { 48, 12, 3, 0, 0, 26624, 104, }, /* 357 */ - { 48, 23, 12, 0, 0, 34816, 74, }, /* 358 */ - { 54, 7, 12, 0, 0, 34816, 84, }, /* 359 */ - { 54, 12, 3, 0, 0, 26624, 106, }, /* 360 */ - { 54, 12, 3, 0, 0, 26624, 98, }, /* 361 */ - { 54, 6, 12, 0, 0, 34816, 148, }, /* 362 */ - { 54, 12, 3, 0, 0, 26624, 104, }, /* 363 */ - { 54, 21, 12, 0, 0, 34816, 110, }, /* 364 */ - { 54, 21, 12, 0, 0, 34816, 74, }, /* 365 */ - { 54, 21, 12, 0, 0, 34816, 128, }, /* 366 */ - { 59, 7, 12, 0, 0, 34816, 84, }, /* 367 */ - { 59, 12, 3, 0, 0, 26624, 104, }, /* 368 */ - { 59, 21, 12, 0, 0, 34816, 110, }, /* 369 */ - { 5, 24, 12, 0, 0, 0, 126, }, /* 370 */ - { 5, 12, 3, 0, 0, 26624, 150, }, /* 371 */ - { 5, 12, 3, 0, 0, 26624, 104, }, /* 372 */ - { 5, 12, 3, 0, 0, 26624, 152, }, /* 373 */ - { 8, 12, 3, 0, 0, 26624, 106, }, /* 374 */ - { 8, 10, 5, 0, 0, 18432, 154, }, /* 375 */ - { 8, 7, 12, 0, 0, 18432, 84, }, /* 376 */ - { 8, 7, 12, 0, 0, 18432, 156, }, /* 377 */ - { 8, 12, 3, 0, 0, 26624, 98, }, /* 378 */ - { 8, 12, 3, 0, 0, 26624, 158, }, /* 379 */ - { 106, 12, 3, 0, 0, 26804, 98, }, /* 380 */ - { 106, 12, 3, 0, 0, 26808, 98, }, /* 381 */ - { 99, 21, 12, 0, 0, 18620, 128, }, /* 382 */ - { 99, 21, 12, 0, 0, 18624, 128, }, /* 383 */ - { 8, 13, 12, 0, 0, 18628, 144, }, /* 384 */ - { 8, 21, 12, 0, 0, 18432, 74, }, /* 385 */ - { 8, 6, 12, 0, 0, 18432, 94, }, /* 386 */ - { 9, 7, 12, 0, 0, 18432, 84, }, /* 387 */ - { 9, 12, 3, 0, 0, 26624, 106, }, /* 388 */ - { 9, 10, 5, 0, 0, 18432, 154, }, /* 389 */ - { 9, 7, 12, 0, 0, 18432, 156, }, /* 390 */ - { 9, 12, 3, 0, 0, 26624, 98, }, /* 391 */ - { 9, 10, 3, 0, 0, 18432, 160, }, /* 392 */ - { 9, 12, 3, 0, 0, 26624, 158, }, /* 393 */ - { 9, 13, 12, 0, 0, 18632, 144, }, /* 394 */ - { 9, 23, 12, 0, 0, 14336, 74, }, /* 395 */ - { 9, 15, 12, 0, 0, 18432, 74, }, /* 396 */ - { 9, 26, 12, 0, 0, 18432, 74, }, /* 397 */ - { 9, 21, 12, 0, 0, 18432, 74, }, /* 398 */ - { 9, 12, 3, 0, 0, 26624, 104, }, /* 399 */ - { 10, 12, 3, 0, 0, 26624, 106, }, /* 400 */ - { 10, 10, 5, 0, 0, 18432, 154, }, /* 401 */ - { 10, 7, 12, 0, 0, 18432, 84, }, /* 402 */ - { 10, 12, 3, 0, 0, 26624, 98, }, /* 403 */ - { 10, 12, 3, 0, 0, 26624, 158, }, /* 404 */ - { 10, 13, 12, 0, 0, 18636, 144, }, /* 405 */ - { 10, 12, 3, 0, 0, 26624, 162, }, /* 406 */ - { 10, 21, 12, 0, 0, 18432, 74, }, /* 407 */ - { 11, 12, 3, 0, 0, 26624, 106, }, /* 408 */ - { 11, 10, 5, 0, 0, 18432, 154, }, /* 409 */ - { 11, 7, 12, 0, 0, 18432, 84, }, /* 410 */ - { 11, 7, 12, 0, 0, 18432, 156, }, /* 411 */ - { 11, 12, 3, 0, 0, 26624, 98, }, /* 412 */ - { 11, 12, 3, 0, 0, 26624, 158, }, /* 413 */ - { 11, 13, 12, 0, 0, 18640, 144, }, /* 414 */ - { 11, 21, 12, 0, 0, 18432, 74, }, /* 415 */ - { 11, 23, 12, 0, 0, 14336, 74, }, /* 416 */ - { 11, 12, 3, 0, 0, 26624, 162, }, /* 417 */ - { 12, 12, 3, 0, 0, 26624, 106, }, /* 418 */ - { 12, 10, 5, 0, 0, 18432, 154, }, /* 419 */ - { 12, 7, 12, 0, 0, 18432, 84, }, /* 420 */ - { 12, 7, 12, 0, 0, 18432, 156, }, /* 421 */ - { 12, 12, 3, 0, 0, 26624, 98, }, /* 422 */ - { 12, 10, 3, 0, 0, 18432, 160, }, /* 423 */ - { 12, 12, 3, 0, 0, 26624, 158, }, /* 424 */ - { 12, 12, 3, 0, 0, 26624, 164, }, /* 425 */ - { 12, 13, 12, 0, 0, 18432, 144, }, /* 426 */ - { 12, 26, 12, 0, 0, 18432, 74, }, /* 427 */ - { 12, 15, 12, 0, 0, 18432, 74, }, /* 428 */ - { 13, 12, 3, 0, 0, 26624, 106, }, /* 429 */ - { 13, 7, 12, 0, 0, 18432, 84, }, /* 430 */ - { 13, 10, 3, 0, 0, 18432, 160, }, /* 431 */ - { 13, 10, 5, 0, 0, 18432, 154, }, /* 432 */ - { 13, 12, 3, 0, 0, 26624, 158, }, /* 433 */ - { 13, 13, 12, 0, 0, 18644, 144, }, /* 434 */ - { 13, 15, 12, 0, 0, 18644, 74, }, /* 435 */ - { 13, 26, 12, 0, 0, 28884, 74, }, /* 436 */ - { 13, 26, 12, 0, 0, 28672, 74, }, /* 437 */ - { 13, 23, 12, 0, 0, 14336, 74, }, /* 438 */ - { 14, 12, 3, 0, 0, 26624, 106, }, /* 439 */ - { 14, 10, 5, 0, 0, 18432, 154, }, /* 440 */ - { 14, 7, 12, 0, 0, 18432, 84, }, /* 441 */ - { 14, 7, 12, 0, 0, 18432, 156, }, /* 442 */ - { 14, 12, 3, 0, 0, 26624, 98, }, /* 443 */ - { 14, 12, 3, 0, 0, 26624, 158, }, /* 444 */ - { 14, 13, 12, 0, 0, 18432, 144, }, /* 445 */ - { 14, 21, 12, 0, 0, 18432, 74, }, /* 446 */ - { 14, 15, 12, 0, 0, 28672, 74, }, /* 447 */ - { 14, 26, 12, 0, 0, 18432, 74, }, /* 448 */ - { 15, 7, 12, 0, 0, 18432, 84, }, /* 449 */ - { 15, 12, 3, 0, 0, 26624, 106, }, /* 450 */ - { 15, 10, 5, 0, 0, 18432, 154, }, /* 451 */ - { 15, 21, 12, 0, 0, 18432, 74, }, /* 452 */ - { 15, 12, 3, 0, 0, 26624, 98, }, /* 453 */ - { 15, 12, 3, 0, 0, 18432, 106, }, /* 454 */ - { 15, 10, 3, 0, 0, 18432, 160, }, /* 455 */ - { 15, 12, 3, 0, 0, 26624, 158, }, /* 456 */ - { 15, 13, 12, 0, 0, 18648, 144, }, /* 457 */ - { 16, 12, 3, 0, 0, 26624, 106, }, /* 458 */ - { 16, 10, 5, 0, 0, 18432, 154, }, /* 459 */ - { 16, 7, 12, 0, 0, 18432, 84, }, /* 460 */ - { 16, 7, 12, 0, 0, 18432, 156, }, /* 461 */ - { 16, 12, 3, 0, 0, 26624, 158, }, /* 462 */ - { 16, 10, 3, 0, 0, 18432, 160, }, /* 463 */ - { 16, 7, 4, 0, 0, 18432, 84, }, /* 464 */ - { 16, 26, 12, 0, 0, 18432, 74, }, /* 465 */ - { 16, 15, 12, 0, 0, 18432, 74, }, /* 466 */ - { 16, 13, 12, 0, 0, 18432, 144, }, /* 467 */ - { 17, 12, 3, 0, 0, 26624, 106, }, /* 468 */ - { 17, 10, 5, 0, 0, 18432, 154, }, /* 469 */ - { 17, 7, 12, 0, 0, 18432, 84, }, /* 470 */ - { 17, 12, 3, 0, 0, 26624, 158, }, /* 471 */ - { 17, 10, 3, 0, 0, 18432, 160, }, /* 472 */ - { 17, 13, 12, 0, 0, 18432, 144, }, /* 473 */ - { 17, 21, 12, 0, 0, 18432, 74, }, /* 474 */ - { 18, 7, 12, 0, 0, 18432, 84, }, /* 475 */ - { 18, 12, 3, 0, 0, 26624, 106, }, /* 476 */ - { 18, 7, 5, 0, 0, 18432, 166, }, /* 477 */ - { 18, 12, 3, 0, 0, 26624, 168, }, /* 478 */ - { 99, 23, 12, 0, 0, 14336, 74, }, /* 479 */ - { 18, 7, 12, 0, 0, 18432, 170, }, /* 480 */ - { 18, 6, 12, 0, 0, 18432, 138, }, /* 481 */ - { 18, 12, 3, 0, 0, 26624, 98, }, /* 482 */ - { 18, 21, 12, 0, 0, 18432, 74, }, /* 483 */ - { 18, 13, 12, 0, 0, 18432, 144, }, /* 484 */ - { 18, 21, 12, 0, 0, 18432, 110, }, /* 485 */ - { 100, 7, 12, 0, 0, 18432, 84, }, /* 486 */ - { 100, 12, 3, 0, 0, 26624, 106, }, /* 487 */ - { 100, 7, 5, 0, 0, 18432, 166, }, /* 488 */ - { 100, 12, 3, 0, 0, 26624, 158, }, /* 489 */ - { 100, 7, 12, 0, 0, 18432, 170, }, /* 490 */ - { 100, 6, 12, 0, 0, 18432, 138, }, /* 491 */ - { 100, 12, 3, 0, 0, 26624, 98, }, /* 492 */ - { 100, 12, 3, 0, 0, 26624, 104, }, /* 493 */ - { 100, 13, 12, 0, 0, 18432, 144, }, /* 494 */ - { 19, 7, 12, 0, 0, 18432, 84, }, /* 495 */ - { 19, 26, 12, 0, 0, 18432, 74, }, /* 496 */ - { 19, 21, 12, 0, 0, 18432, 74, }, /* 497 */ - { 19, 21, 12, 0, 0, 18432, 110, }, /* 498 */ - { 19, 12, 3, 0, 0, 26624, 98, }, /* 499 */ - { 19, 13, 12, 0, 0, 18432, 144, }, /* 500 */ - { 19, 15, 12, 0, 0, 18432, 74, }, /* 501 */ - { 19, 22, 12, 0, 0, 28672, 172, }, /* 502 */ - { 19, 18, 12, 0, 0, 28672, 172, }, /* 503 */ - { 19, 10, 5, 0, 0, 18432, 174, }, /* 504 */ - { 19, 12, 3, 0, 0, 26624, 106, }, /* 505 */ - { 19, 12, 3, 0, 0, 26624, 176, }, /* 506 */ - { 19, 10, 5, 0, 0, 18432, 154, }, /* 507 */ - { 19, 12, 3, 0, 0, 26624, 132, }, /* 508 */ - { 19, 12, 3, 0, 0, 26624, 158, }, /* 509 */ - { 99, 26, 12, 0, 0, 18432, 74, }, /* 510 */ - { 20, 7, 12, 0, 0, 18432, 84, }, /* 511 */ - { 20, 10, 12, 0, 0, 18432, 154, }, /* 512 */ - { 20, 12, 3, 0, 0, 26624, 106, }, /* 513 */ - { 20, 10, 5, 0, 0, 18432, 154, }, /* 514 */ - { 20, 12, 3, 0, 0, 26624, 98, }, /* 515 */ - { 20, 12, 3, 0, 0, 26624, 158, }, /* 516 */ - { 20, 13, 12, 0, 0, 18652, 144, }, /* 517 */ - { 20, 21, 12, 0, 0, 18432, 128, }, /* 518 */ - { 20, 21, 12, 0, 0, 18432, 74, }, /* 519 */ - { 20, 10, 12, 0, 0, 18432, 178, }, /* 520 */ - { 20, 12, 3, 0, 0, 26624, 132, }, /* 521 */ - { 20, 13, 12, 0, 0, 18432, 144, }, /* 522 */ - { 20, 26, 12, 0, 0, 18432, 74, }, /* 523 */ - { 21, 9, 12, 0, 7264, 18432, 76, }, /* 524 */ - { 21, 5, 12, 0, 3008, 18432, 180, }, /* 525 */ - { 99, 21, 12, 0, 0, 18656, 74, }, /* 526 */ - { 21, 6, 12, 0, 0, 18432, 182, }, /* 527 */ - { 22, 7, 6, 0, 0, 18432, 84, }, /* 528 */ - { 22, 7, 6, 0, 0, 18432, 184, }, /* 529 */ - { 22, 7, 7, 0, 0, 18432, 184, }, /* 530 */ - { 22, 7, 7, 0, 0, 18432, 84, }, /* 531 */ - { 22, 7, 8, 0, 0, 18432, 84, }, /* 532 */ - { 23, 7, 12, 0, 0, 18432, 84, }, /* 533 */ - { 23, 12, 3, 0, 0, 26624, 98, }, /* 534 */ - { 23, 21, 12, 0, 0, 18432, 74, }, /* 535 */ - { 23, 21, 12, 0, 0, 18432, 110, }, /* 536 */ - { 23, 21, 12, 0, 0, 18432, 128, }, /* 537 */ - { 23, 15, 12, 0, 0, 18432, 144, }, /* 538 */ - { 23, 15, 12, 0, 0, 18432, 74, }, /* 539 */ - { 23, 26, 12, 0, 0, 28672, 74, }, /* 540 */ - { 24, 9, 12, 0, 38864, 18432, 186, }, /* 541 */ - { 24, 9, 12, 0, 8, 18432, 186, }, /* 542 */ - { 24, 5, 12, 0, -8, 18432, 70, }, /* 543 */ - { 101, 17, 12, 0, 0, 28672, 130, }, /* 544 */ - { 101, 7, 12, 0, 0, 18432, 84, }, /* 545 */ - { 101, 26, 12, 0, 0, 18432, 74, }, /* 546 */ - { 101, 21, 12, 0, 0, 18432, 128, }, /* 547 */ - { 102, 29, 12, 0, 0, 45056, 52, }, /* 548 */ - { 102, 7, 12, 0, 0, 18432, 84, }, /* 549 */ - { 102, 22, 12, 0, 0, 28672, 172, }, /* 550 */ - { 102, 18, 12, 0, 0, 28672, 172, }, /* 551 */ - { 25, 7, 12, 0, 0, 18432, 84, }, /* 552 */ - { 99, 21, 12, 0, 0, 18660, 110, }, /* 553 */ - { 25, 14, 12, 0, 0, 18432, 84, }, /* 554 */ - { 33, 7, 12, 0, 0, 18432, 84, }, /* 555 */ - { 33, 12, 3, 0, 0, 26624, 106, }, /* 556 */ - { 33, 12, 3, 0, 0, 26624, 158, }, /* 557 */ - { 33, 10, 3, 0, 0, 18432, 188, }, /* 558 */ - { 34, 7, 12, 0, 0, 18432, 84, }, /* 559 */ - { 34, 12, 3, 0, 0, 26624, 106, }, /* 560 */ - { 34, 10, 3, 0, 0, 18432, 188, }, /* 561 */ - { 99, 21, 12, 0, 0, 18664, 128, }, /* 562 */ - { 35, 7, 12, 0, 0, 18432, 84, }, /* 563 */ - { 35, 12, 3, 0, 0, 26624, 106, }, /* 564 */ - { 36, 7, 12, 0, 0, 18432, 84, }, /* 565 */ - { 36, 12, 3, 0, 0, 26624, 106, }, /* 566 */ - { 103, 7, 12, 0, 0, 18432, 84, }, /* 567 */ - { 103, 7, 12, 0, 0, 18432, 146, }, /* 568 */ - { 103, 12, 3, 0, 0, 26624, 102, }, /* 569 */ - { 103, 10, 5, 0, 0, 18432, 154, }, /* 570 */ - { 103, 12, 3, 0, 0, 26624, 106, }, /* 571 */ - { 103, 12, 3, 0, 0, 26624, 98, }, /* 572 */ - { 103, 12, 3, 0, 0, 26624, 158, }, /* 573 */ - { 103, 21, 12, 0, 0, 18432, 128, }, /* 574 */ - { 103, 21, 12, 0, 0, 18432, 110, }, /* 575 */ - { 103, 6, 12, 0, 0, 18432, 148, }, /* 576 */ - { 103, 21, 12, 0, 0, 18432, 74, }, /* 577 */ - { 103, 23, 12, 0, 0, 14336, 74, }, /* 578 */ - { 103, 13, 12, 0, 0, 18432, 144, }, /* 579 */ - { 103, 15, 12, 0, 0, 28672, 74, }, /* 580 */ - { 26, 21, 12, 0, 0, 28672, 74, }, /* 581 */ - { 99, 21, 12, 0, 0, 28908, 110, }, /* 582 */ - { 99, 21, 12, 0, 0, 28908, 128, }, /* 583 */ - { 26, 21, 12, 0, 0, 28672, 110, }, /* 584 */ - { 26, 17, 12, 0, 0, 28672, 130, }, /* 585 */ - { 26, 21, 12, 0, 0, 28672, 128, }, /* 586 */ - { 26, 21, 12, 0, 0, 28672, 190, }, /* 587 */ - { 26, 12, 3, 0, 0, 26624, 192, }, /* 588 */ - { 26, 1, 2, 0, 0, 6144, 66, }, /* 589 */ - { 26, 13, 12, 0, 0, 18432, 144, }, /* 590 */ - { 26, 7, 12, 0, 0, 18432, 84, }, /* 591 */ - { 26, 6, 12, 0, 0, 18432, 138, }, /* 592 */ - { 26, 12, 3, 0, 0, 26624, 194, }, /* 593 */ - { 26, 12, 3, 0, 0, 26624, 106, }, /* 594 */ - { 37, 7, 12, 0, 0, 18432, 84, }, /* 595 */ - { 37, 12, 3, 0, 0, 26624, 106, }, /* 596 */ - { 37, 10, 5, 0, 0, 18432, 154, }, /* 597 */ - { 37, 12, 3, 0, 0, 26624, 98, }, /* 598 */ - { 37, 26, 12, 0, 0, 28672, 74, }, /* 599 */ - { 37, 21, 12, 0, 0, 28672, 128, }, /* 600 */ - { 37, 13, 12, 0, 0, 18432, 144, }, /* 601 */ - { 38, 7, 12, 0, 0, 18432, 84, }, /* 602 */ - { 110, 7, 12, 0, 0, 18432, 84, }, /* 603 */ - { 110, 7, 12, 0, 0, 18432, 170, }, /* 604 */ - { 110, 13, 12, 0, 0, 18432, 144, }, /* 605 */ - { 110, 15, 12, 0, 0, 18432, 144, }, /* 606 */ - { 110, 26, 12, 0, 0, 28672, 74, }, /* 607 */ - { 103, 26, 12, 0, 0, 28672, 74, }, /* 608 */ - { 42, 7, 12, 0, 0, 18432, 84, }, /* 609 */ - { 42, 12, 3, 0, 0, 26624, 106, }, /* 610 */ - { 42, 10, 5, 0, 0, 18432, 154, }, /* 611 */ - { 42, 21, 12, 0, 0, 18432, 74, }, /* 612 */ - { 123, 7, 12, 0, 0, 18432, 84, }, /* 613 */ - { 123, 10, 5, 0, 0, 18432, 154, }, /* 614 */ - { 123, 12, 3, 0, 0, 26624, 106, }, /* 615 */ - { 123, 12, 3, 0, 0, 26624, 158, }, /* 616 */ - { 123, 10, 12, 0, 0, 18432, 154, }, /* 617 */ - { 123, 12, 3, 0, 0, 26624, 98, }, /* 618 */ - { 123, 13, 12, 0, 0, 18432, 144, }, /* 619 */ - { 123, 21, 12, 0, 0, 18432, 74, }, /* 620 */ - { 123, 6, 12, 0, 0, 18432, 138, }, /* 621 */ - { 123, 21, 12, 0, 0, 18432, 128, }, /* 622 */ - { 106, 11, 3, 0, 0, 26624, 196, }, /* 623 */ - { 106, 12, 3, 0, 0, 26624, 106, }, /* 624 */ - { 113, 12, 3, 0, 0, 26624, 106, }, /* 625 */ - { 113, 10, 5, 0, 0, 18432, 154, }, /* 626 */ - { 113, 7, 12, 0, 0, 18432, 84, }, /* 627 */ - { 113, 12, 3, 0, 0, 26624, 98, }, /* 628 */ - { 113, 10, 3, 0, 0, 18432, 160, }, /* 629 */ - { 113, 10, 3, 0, 0, 18432, 188, }, /* 630 */ - { 113, 21, 12, 0, 0, 18432, 128, }, /* 631 */ - { 113, 13, 12, 0, 0, 18432, 144, }, /* 632 */ - { 113, 21, 12, 0, 0, 18432, 74, }, /* 633 */ - { 113, 21, 12, 0, 0, 18432, 110, }, /* 634 */ - { 113, 26, 12, 0, 0, 18432, 74, }, /* 635 */ - { 116, 12, 3, 0, 0, 26624, 106, }, /* 636 */ - { 116, 10, 5, 0, 0, 18432, 154, }, /* 637 */ - { 116, 7, 12, 0, 0, 18432, 84, }, /* 638 */ - { 116, 10, 3, 0, 0, 18432, 188, }, /* 639 */ - { 116, 12, 3, 0, 0, 26624, 158, }, /* 640 */ - { 116, 13, 12, 0, 0, 18432, 144, }, /* 641 */ - { 132, 7, 12, 0, 0, 18432, 84, }, /* 642 */ - { 132, 12, 3, 0, 0, 26624, 98, }, /* 643 */ - { 132, 10, 5, 0, 0, 18432, 154, }, /* 644 */ - { 132, 12, 3, 0, 0, 26624, 106, }, /* 645 */ - { 132, 10, 3, 0, 0, 18432, 188, }, /* 646 */ - { 132, 21, 12, 0, 0, 18432, 74, }, /* 647 */ - { 117, 7, 12, 0, 0, 18432, 84, }, /* 648 */ - { 117, 10, 5, 0, 0, 18432, 154, }, /* 649 */ - { 117, 12, 3, 0, 0, 26624, 106, }, /* 650 */ - { 117, 12, 3, 0, 0, 26624, 198, }, /* 651 */ - { 117, 12, 3, 0, 0, 26624, 98, }, /* 652 */ - { 117, 21, 12, 0, 0, 18432, 128, }, /* 653 */ - { 117, 21, 12, 0, 0, 18432, 110, }, /* 654 */ - { 117, 13, 12, 0, 0, 18432, 144, }, /* 655 */ + { 4, 12, 3, 0, 0, 26624, 132, }, /* 299 */ + { 4, 17, 12, 0, 0, 34816, 130, }, /* 300 */ + { 4, 21, 12, 0, 0, 34816, 74, }, /* 301 */ + { 4, 21, 12, 0, 0, 34816, 110, }, /* 302 */ + { 4, 7, 12, 0, 0, 34816, 84, }, /* 303 */ + { 4, 21, 12, 0, 0, 34816, 126, }, /* 304 */ + { 5, 1, 4, 0, 0, 2048, 134, }, /* 305 */ + { 100, 1, 4, 0, 0, 2048, 134, }, /* 306 */ + { 5, 25, 12, 0, 0, 28672, 122, }, /* 307 */ + { 5, 25, 12, 0, 0, 0, 122, }, /* 308 */ + { 5, 21, 12, 0, 0, 14336, 74, }, /* 309 */ + { 5, 23, 12, 0, 0, 0, 74, }, /* 310 */ + { 100, 21, 12, 0, 0, 8344, 110, }, /* 311 */ + { 5, 21, 12, 0, 0, 0, 74, }, /* 312 */ + { 5, 26, 12, 0, 0, 28672, 74, }, /* 313 */ + { 5, 12, 3, 0, 0, 26624, 106, }, /* 314 */ + { 100, 21, 12, 0, 0, 152, 110, }, /* 315 */ + { 5, 1, 2, 0, 0, 156, 136, }, /* 316 */ + { 5, 21, 12, 0, 0, 0, 128, }, /* 317 */ + { 100, 21, 12, 0, 0, 160, 128, }, /* 318 */ + { 5, 7, 12, 0, 0, 0, 84, }, /* 319 */ + { 100, 6, 12, 0, 0, 164, 138, }, /* 320 */ + { 107, 12, 3, 0, 0, 26792, 132, }, /* 321 */ + { 107, 12, 3, 0, 0, 26792, 106, }, /* 322 */ + { 107, 12, 3, 0, 0, 26792, 140, }, /* 323 */ + { 5, 12, 3, 0, 0, 26624, 132, }, /* 324 */ + { 5, 12, 3, 0, 0, 26624, 142, }, /* 325 */ + { 5, 13, 12, 0, 0, 2220, 144, }, /* 326 */ + { 5, 21, 12, 0, 0, 2048, 74, }, /* 327 */ + { 5, 7, 12, 0, 0, 0, 146, }, /* 328 */ + { 5, 21, 12, 0, 0, 176, 128, }, /* 329 */ + { 5, 12, 3, 0, 0, 26624, 140, }, /* 330 */ + { 5, 12, 3, 0, 0, 26624, 98, }, /* 331 */ + { 5, 6, 12, 0, 0, 0, 94, }, /* 332 */ + { 5, 13, 12, 0, 0, 10240, 144, }, /* 333 */ + { 5, 26, 12, 0, 0, 0, 74, }, /* 334 */ + { 6, 21, 12, 0, 0, 0, 128, }, /* 335 */ + { 6, 21, 12, 0, 0, 0, 110, }, /* 336 */ + { 6, 21, 12, 0, 0, 0, 74, }, /* 337 */ + { 99, 2, 12, 0, 0, 0, 0, }, /* 338 */ + { 6, 1, 4, 0, 0, 0, 134, }, /* 339 */ + { 6, 7, 12, 0, 0, 0, 84, }, /* 340 */ + { 6, 12, 3, 0, 0, 26624, 106, }, /* 341 */ + { 6, 12, 3, 0, 0, 26624, 132, }, /* 342 */ + { 6, 12, 3, 0, 0, 26624, 98, }, /* 343 */ + { 7, 7, 12, 0, 0, 0, 84, }, /* 344 */ + { 7, 12, 3, 0, 0, 26624, 132, }, /* 345 */ + { 48, 13, 12, 0, 0, 34816, 144, }, /* 346 */ + { 48, 7, 12, 0, 0, 34816, 84, }, /* 347 */ + { 48, 12, 3, 0, 0, 26624, 98, }, /* 348 */ + { 48, 6, 12, 0, 0, 34816, 94, }, /* 349 */ + { 48, 26, 12, 0, 0, 28672, 74, }, /* 350 */ + { 48, 21, 12, 0, 0, 28672, 74, }, /* 351 */ + { 48, 21, 12, 0, 0, 28672, 110, }, /* 352 */ + { 48, 21, 12, 0, 0, 28672, 128, }, /* 353 */ + { 48, 6, 12, 0, 0, 34816, 138, }, /* 354 */ + { 48, 12, 3, 0, 0, 26624, 104, }, /* 355 */ + { 48, 23, 12, 0, 0, 34816, 74, }, /* 356 */ + { 54, 7, 12, 0, 0, 34816, 84, }, /* 357 */ + { 54, 12, 3, 0, 0, 26624, 106, }, /* 358 */ + { 54, 12, 3, 0, 0, 26624, 98, }, /* 359 */ + { 54, 6, 12, 0, 0, 34816, 148, }, /* 360 */ + { 54, 12, 3, 0, 0, 26624, 104, }, /* 361 */ + { 54, 21, 12, 0, 0, 34816, 110, }, /* 362 */ + { 54, 21, 12, 0, 0, 34816, 74, }, /* 363 */ + { 54, 21, 12, 0, 0, 34816, 128, }, /* 364 */ + { 59, 7, 12, 0, 0, 34816, 84, }, /* 365 */ + { 59, 12, 3, 0, 0, 26624, 104, }, /* 366 */ + { 59, 21, 12, 0, 0, 34816, 110, }, /* 367 */ + { 5, 24, 12, 0, 0, 0, 126, }, /* 368 */ + { 5, 12, 3, 0, 0, 26624, 150, }, /* 369 */ + { 5, 12, 3, 0, 0, 26624, 104, }, /* 370 */ + { 5, 12, 3, 0, 0, 26624, 152, }, /* 371 */ + { 8, 12, 3, 0, 0, 26624, 106, }, /* 372 */ + { 8, 10, 5, 0, 0, 18432, 154, }, /* 373 */ + { 8, 7, 12, 0, 0, 18432, 84, }, /* 374 */ + { 8, 7, 12, 0, 0, 18432, 156, }, /* 375 */ + { 8, 12, 3, 0, 0, 26624, 98, }, /* 376 */ + { 8, 12, 3, 0, 0, 26624, 158, }, /* 377 */ + { 107, 12, 3, 0, 0, 26804, 98, }, /* 378 */ + { 107, 12, 3, 0, 0, 26808, 98, }, /* 379 */ + { 100, 21, 12, 0, 0, 18620, 128, }, /* 380 */ + { 100, 21, 12, 0, 0, 18624, 128, }, /* 381 */ + { 8, 13, 12, 0, 0, 18628, 144, }, /* 382 */ + { 8, 21, 12, 0, 0, 18432, 74, }, /* 383 */ + { 8, 6, 12, 0, 0, 18432, 94, }, /* 384 */ + { 9, 7, 12, 0, 0, 18432, 84, }, /* 385 */ + { 9, 12, 3, 0, 0, 26624, 106, }, /* 386 */ + { 9, 10, 5, 0, 0, 18432, 154, }, /* 387 */ + { 9, 7, 12, 0, 0, 18432, 156, }, /* 388 */ + { 9, 12, 3, 0, 0, 26624, 98, }, /* 389 */ + { 9, 10, 3, 0, 0, 18432, 160, }, /* 390 */ + { 9, 12, 3, 0, 0, 26624, 158, }, /* 391 */ + { 9, 13, 12, 0, 0, 18632, 144, }, /* 392 */ + { 9, 23, 12, 0, 0, 14336, 74, }, /* 393 */ + { 9, 15, 12, 0, 0, 18432, 74, }, /* 394 */ + { 9, 26, 12, 0, 0, 18432, 74, }, /* 395 */ + { 9, 21, 12, 0, 0, 18432, 74, }, /* 396 */ + { 9, 12, 3, 0, 0, 26624, 104, }, /* 397 */ + { 10, 12, 3, 0, 0, 26624, 106, }, /* 398 */ + { 10, 10, 5, 0, 0, 18432, 154, }, /* 399 */ + { 10, 7, 12, 0, 0, 18432, 84, }, /* 400 */ + { 10, 12, 3, 0, 0, 26624, 98, }, /* 401 */ + { 10, 12, 3, 0, 0, 26624, 158, }, /* 402 */ + { 10, 13, 12, 0, 0, 18636, 144, }, /* 403 */ + { 10, 12, 3, 0, 0, 26624, 162, }, /* 404 */ + { 10, 21, 12, 0, 0, 18432, 74, }, /* 405 */ + { 11, 12, 3, 0, 0, 26624, 106, }, /* 406 */ + { 11, 10, 5, 0, 0, 18432, 154, }, /* 407 */ + { 11, 7, 12, 0, 0, 18432, 84, }, /* 408 */ + { 11, 7, 12, 0, 0, 18432, 156, }, /* 409 */ + { 11, 12, 3, 0, 0, 26624, 98, }, /* 410 */ + { 11, 12, 3, 0, 0, 26624, 158, }, /* 411 */ + { 11, 13, 12, 0, 0, 18640, 144, }, /* 412 */ + { 11, 21, 12, 0, 0, 18432, 74, }, /* 413 */ + { 11, 23, 12, 0, 0, 14336, 74, }, /* 414 */ + { 11, 12, 3, 0, 0, 26624, 162, }, /* 415 */ + { 12, 12, 3, 0, 0, 26624, 106, }, /* 416 */ + { 12, 10, 5, 0, 0, 18432, 154, }, /* 417 */ + { 12, 7, 12, 0, 0, 18432, 84, }, /* 418 */ + { 12, 7, 12, 0, 0, 18432, 156, }, /* 419 */ + { 12, 12, 3, 0, 0, 26624, 98, }, /* 420 */ + { 12, 10, 3, 0, 0, 18432, 160, }, /* 421 */ + { 12, 12, 3, 0, 0, 26624, 158, }, /* 422 */ + { 12, 12, 3, 0, 0, 26624, 164, }, /* 423 */ + { 12, 13, 12, 0, 0, 18432, 144, }, /* 424 */ + { 12, 26, 12, 0, 0, 18432, 74, }, /* 425 */ + { 12, 15, 12, 0, 0, 18432, 74, }, /* 426 */ + { 13, 12, 3, 0, 0, 26624, 106, }, /* 427 */ + { 13, 7, 12, 0, 0, 18432, 84, }, /* 428 */ + { 13, 10, 3, 0, 0, 18432, 160, }, /* 429 */ + { 13, 10, 5, 0, 0, 18432, 154, }, /* 430 */ + { 13, 12, 3, 0, 0, 26624, 158, }, /* 431 */ + { 13, 13, 12, 0, 0, 18644, 144, }, /* 432 */ + { 13, 15, 12, 0, 0, 18644, 74, }, /* 433 */ + { 13, 26, 12, 0, 0, 28884, 74, }, /* 434 */ + { 13, 26, 12, 0, 0, 28672, 74, }, /* 435 */ + { 13, 23, 12, 0, 0, 14336, 74, }, /* 436 */ + { 14, 12, 3, 0, 0, 26624, 106, }, /* 437 */ + { 14, 10, 5, 0, 0, 18432, 154, }, /* 438 */ + { 14, 7, 12, 0, 0, 18432, 84, }, /* 439 */ + { 14, 7, 12, 0, 0, 18432, 156, }, /* 440 */ + { 14, 12, 3, 0, 0, 26624, 98, }, /* 441 */ + { 14, 12, 3, 0, 0, 26624, 158, }, /* 442 */ + { 14, 13, 12, 0, 0, 18432, 144, }, /* 443 */ + { 14, 21, 12, 0, 0, 18432, 74, }, /* 444 */ + { 14, 15, 12, 0, 0, 28672, 74, }, /* 445 */ + { 14, 26, 12, 0, 0, 18432, 74, }, /* 446 */ + { 15, 7, 12, 0, 0, 18432, 84, }, /* 447 */ + { 15, 12, 3, 0, 0, 26624, 106, }, /* 448 */ + { 15, 10, 5, 0, 0, 18432, 154, }, /* 449 */ + { 15, 21, 12, 0, 0, 18432, 74, }, /* 450 */ + { 15, 12, 3, 0, 0, 26624, 98, }, /* 451 */ + { 15, 12, 3, 0, 0, 18432, 106, }, /* 452 */ + { 15, 10, 3, 0, 0, 18432, 160, }, /* 453 */ + { 15, 12, 3, 0, 0, 26624, 158, }, /* 454 */ + { 15, 13, 12, 0, 0, 18648, 144, }, /* 455 */ + { 16, 12, 3, 0, 0, 26624, 106, }, /* 456 */ + { 16, 10, 5, 0, 0, 18432, 154, }, /* 457 */ + { 16, 7, 12, 0, 0, 18432, 84, }, /* 458 */ + { 16, 7, 12, 0, 0, 18432, 156, }, /* 459 */ + { 16, 12, 3, 0, 0, 26624, 158, }, /* 460 */ + { 16, 10, 3, 0, 0, 18432, 160, }, /* 461 */ + { 16, 7, 4, 0, 0, 18432, 84, }, /* 462 */ + { 16, 26, 12, 0, 0, 18432, 74, }, /* 463 */ + { 16, 15, 12, 0, 0, 18432, 74, }, /* 464 */ + { 16, 13, 12, 0, 0, 18432, 144, }, /* 465 */ + { 17, 12, 3, 0, 0, 26624, 106, }, /* 466 */ + { 17, 10, 5, 0, 0, 18432, 154, }, /* 467 */ + { 17, 7, 12, 0, 0, 18432, 84, }, /* 468 */ + { 17, 12, 3, 0, 0, 26624, 158, }, /* 469 */ + { 17, 10, 3, 0, 0, 18432, 160, }, /* 470 */ + { 17, 13, 12, 0, 0, 18432, 144, }, /* 471 */ + { 17, 21, 12, 0, 0, 18432, 74, }, /* 472 */ + { 18, 7, 12, 0, 0, 18432, 84, }, /* 473 */ + { 18, 12, 3, 0, 0, 26624, 106, }, /* 474 */ + { 18, 7, 5, 0, 0, 18432, 166, }, /* 475 */ + { 18, 12, 3, 0, 0, 26624, 168, }, /* 476 */ + { 100, 23, 12, 0, 0, 14336, 74, }, /* 477 */ + { 18, 7, 12, 0, 0, 18432, 170, }, /* 478 */ + { 18, 6, 12, 0, 0, 18432, 138, }, /* 479 */ + { 18, 12, 3, 0, 0, 26624, 98, }, /* 480 */ + { 18, 21, 12, 0, 0, 18432, 74, }, /* 481 */ + { 18, 13, 12, 0, 0, 18432, 144, }, /* 482 */ + { 18, 21, 12, 0, 0, 18432, 110, }, /* 483 */ + { 101, 7, 12, 0, 0, 18432, 84, }, /* 484 */ + { 101, 12, 3, 0, 0, 26624, 106, }, /* 485 */ + { 101, 7, 5, 0, 0, 18432, 166, }, /* 486 */ + { 101, 12, 3, 0, 0, 26624, 158, }, /* 487 */ + { 101, 7, 12, 0, 0, 18432, 170, }, /* 488 */ + { 101, 6, 12, 0, 0, 18432, 138, }, /* 489 */ + { 101, 12, 3, 0, 0, 26624, 98, }, /* 490 */ + { 101, 12, 3, 0, 0, 26624, 104, }, /* 491 */ + { 101, 13, 12, 0, 0, 18432, 144, }, /* 492 */ + { 19, 7, 12, 0, 0, 18432, 84, }, /* 493 */ + { 19, 26, 12, 0, 0, 18432, 74, }, /* 494 */ + { 19, 21, 12, 0, 0, 18432, 74, }, /* 495 */ + { 19, 21, 12, 0, 0, 18432, 110, }, /* 496 */ + { 19, 12, 3, 0, 0, 26624, 98, }, /* 497 */ + { 19, 13, 12, 0, 0, 18432, 144, }, /* 498 */ + { 19, 15, 12, 0, 0, 18432, 74, }, /* 499 */ + { 19, 22, 12, 0, 0, 28672, 172, }, /* 500 */ + { 19, 18, 12, 0, 0, 28672, 172, }, /* 501 */ + { 19, 10, 5, 0, 0, 18432, 174, }, /* 502 */ + { 19, 12, 3, 0, 0, 26624, 106, }, /* 503 */ + { 19, 12, 3, 0, 0, 26624, 176, }, /* 504 */ + { 19, 10, 5, 0, 0, 18432, 154, }, /* 505 */ + { 19, 12, 3, 0, 0, 26624, 132, }, /* 506 */ + { 19, 12, 3, 0, 0, 26624, 158, }, /* 507 */ + { 100, 26, 12, 0, 0, 18432, 74, }, /* 508 */ + { 20, 7, 12, 0, 0, 18432, 156, }, /* 509 */ + { 20, 10, 12, 0, 0, 18432, 154, }, /* 510 */ + { 20, 12, 3, 0, 0, 26624, 106, }, /* 511 */ + { 20, 10, 5, 0, 0, 18432, 154, }, /* 512 */ + { 20, 12, 3, 0, 0, 26624, 98, }, /* 513 */ + { 20, 12, 3, 0, 0, 26624, 158, }, /* 514 */ + { 20, 13, 12, 0, 0, 18652, 144, }, /* 515 */ + { 20, 21, 12, 0, 0, 18432, 128, }, /* 516 */ + { 20, 21, 12, 0, 0, 18432, 74, }, /* 517 */ + { 20, 10, 12, 0, 0, 18432, 178, }, /* 518 */ + { 20, 12, 3, 0, 0, 26624, 132, }, /* 519 */ + { 20, 13, 12, 0, 0, 18432, 144, }, /* 520 */ + { 20, 26, 12, 0, 0, 18432, 74, }, /* 521 */ + { 21, 9, 12, 0, 7264, 18432, 76, }, /* 522 */ + { 21, 5, 12, 0, 3008, 18432, 180, }, /* 523 */ + { 100, 21, 12, 0, 0, 18656, 74, }, /* 524 */ + { 21, 6, 12, 0, 0, 18432, 182, }, /* 525 */ + { 22, 7, 6, 0, 0, 18432, 84, }, /* 526 */ + { 22, 7, 6, 0, 0, 18432, 184, }, /* 527 */ + { 22, 7, 7, 0, 0, 18432, 184, }, /* 528 */ + { 22, 7, 7, 0, 0, 18432, 84, }, /* 529 */ + { 22, 7, 8, 0, 0, 18432, 84, }, /* 530 */ + { 23, 7, 12, 0, 0, 18432, 84, }, /* 531 */ + { 23, 12, 3, 0, 0, 26624, 98, }, /* 532 */ + { 23, 21, 12, 0, 0, 18432, 74, }, /* 533 */ + { 23, 21, 12, 0, 0, 18432, 110, }, /* 534 */ + { 23, 21, 12, 0, 0, 18432, 128, }, /* 535 */ + { 23, 15, 12, 0, 0, 18432, 144, }, /* 536 */ + { 23, 15, 12, 0, 0, 18432, 74, }, /* 537 */ + { 23, 26, 12, 0, 0, 28672, 74, }, /* 538 */ + { 24, 9, 12, 0, 38864, 18432, 186, }, /* 539 */ + { 24, 9, 12, 0, 8, 18432, 186, }, /* 540 */ + { 24, 5, 12, 0, -8, 18432, 70, }, /* 541 */ + { 102, 17, 12, 0, 0, 28672, 130, }, /* 542 */ + { 102, 7, 12, 0, 0, 18432, 84, }, /* 543 */ + { 102, 26, 12, 0, 0, 18432, 74, }, /* 544 */ + { 102, 21, 12, 0, 0, 18432, 128, }, /* 545 */ + { 103, 29, 12, 0, 0, 45056, 52, }, /* 546 */ + { 103, 7, 12, 0, 0, 18432, 84, }, /* 547 */ + { 103, 22, 12, 0, 0, 28672, 172, }, /* 548 */ + { 103, 18, 12, 0, 0, 28672, 172, }, /* 549 */ + { 25, 7, 12, 0, 0, 18432, 84, }, /* 550 */ + { 100, 21, 12, 0, 0, 18660, 110, }, /* 551 */ + { 25, 14, 12, 0, 0, 18432, 84, }, /* 552 */ + { 33, 7, 12, 0, 0, 18432, 84, }, /* 553 */ + { 33, 12, 3, 0, 0, 26624, 106, }, /* 554 */ + { 33, 12, 3, 0, 0, 26624, 158, }, /* 555 */ + { 33, 10, 3, 0, 0, 18432, 188, }, /* 556 */ + { 34, 7, 12, 0, 0, 18432, 84, }, /* 557 */ + { 34, 12, 3, 0, 0, 26624, 106, }, /* 558 */ + { 34, 10, 3, 0, 0, 18432, 188, }, /* 559 */ + { 100, 21, 12, 0, 0, 18664, 128, }, /* 560 */ + { 35, 7, 12, 0, 0, 18432, 84, }, /* 561 */ + { 35, 12, 3, 0, 0, 26624, 106, }, /* 562 */ + { 36, 7, 12, 0, 0, 18432, 84, }, /* 563 */ + { 36, 12, 3, 0, 0, 26624, 106, }, /* 564 */ + { 104, 7, 12, 0, 0, 18432, 156, }, /* 565 */ + { 104, 7, 12, 0, 0, 18432, 190, }, /* 566 */ + { 104, 12, 3, 0, 0, 26624, 102, }, /* 567 */ + { 104, 10, 5, 0, 0, 18432, 154, }, /* 568 */ + { 104, 12, 3, 0, 0, 26624, 106, }, /* 569 */ + { 104, 12, 3, 0, 0, 26624, 98, }, /* 570 */ + { 104, 12, 3, 0, 0, 26624, 158, }, /* 571 */ + { 104, 21, 12, 0, 0, 18432, 128, }, /* 572 */ + { 104, 21, 12, 0, 0, 18432, 110, }, /* 573 */ + { 104, 6, 12, 0, 0, 18432, 148, }, /* 574 */ + { 104, 21, 12, 0, 0, 18432, 74, }, /* 575 */ + { 104, 23, 12, 0, 0, 14336, 74, }, /* 576 */ + { 104, 7, 12, 0, 0, 18432, 84, }, /* 577 */ + { 104, 13, 12, 0, 0, 18432, 144, }, /* 578 */ + { 104, 15, 12, 0, 0, 28672, 74, }, /* 579 */ + { 26, 21, 12, 0, 0, 28672, 74, }, /* 580 */ + { 100, 21, 12, 0, 0, 28908, 110, }, /* 581 */ + { 100, 21, 12, 0, 0, 28908, 128, }, /* 582 */ + { 26, 21, 12, 0, 0, 28672, 110, }, /* 583 */ + { 26, 17, 12, 0, 0, 28672, 130, }, /* 584 */ + { 26, 21, 12, 0, 0, 28672, 128, }, /* 585 */ + { 26, 21, 12, 0, 0, 28672, 192, }, /* 586 */ + { 26, 12, 3, 0, 0, 26624, 194, }, /* 587 */ + { 26, 1, 2, 0, 0, 6144, 66, }, /* 588 */ + { 26, 13, 12, 0, 0, 18432, 144, }, /* 589 */ + { 26, 7, 12, 0, 0, 18432, 84, }, /* 590 */ + { 26, 6, 12, 0, 0, 18432, 138, }, /* 591 */ + { 26, 12, 3, 0, 0, 26624, 196, }, /* 592 */ + { 26, 12, 3, 0, 0, 26624, 106, }, /* 593 */ + { 37, 7, 12, 0, 0, 18432, 84, }, /* 594 */ + { 37, 12, 3, 0, 0, 26624, 106, }, /* 595 */ + { 37, 10, 5, 0, 0, 18432, 154, }, /* 596 */ + { 37, 12, 3, 0, 0, 26624, 98, }, /* 597 */ + { 37, 26, 12, 0, 0, 28672, 74, }, /* 598 */ + { 37, 21, 12, 0, 0, 28672, 128, }, /* 599 */ + { 37, 13, 12, 0, 0, 18432, 144, }, /* 600 */ + { 38, 7, 12, 0, 0, 18432, 84, }, /* 601 */ + { 111, 7, 12, 0, 0, 18432, 84, }, /* 602 */ + { 111, 7, 12, 0, 0, 18432, 170, }, /* 603 */ + { 111, 13, 12, 0, 0, 18432, 144, }, /* 604 */ + { 111, 15, 12, 0, 0, 18432, 144, }, /* 605 */ + { 111, 26, 12, 0, 0, 28672, 74, }, /* 606 */ + { 104, 26, 12, 0, 0, 28672, 74, }, /* 607 */ + { 42, 7, 12, 0, 0, 18432, 84, }, /* 608 */ + { 42, 12, 3, 0, 0, 26624, 106, }, /* 609 */ + { 42, 10, 5, 0, 0, 18432, 154, }, /* 610 */ + { 42, 21, 12, 0, 0, 18432, 74, }, /* 611 */ + { 124, 7, 12, 0, 0, 18432, 156, }, /* 612 */ + { 124, 10, 5, 0, 0, 18432, 154, }, /* 613 */ + { 124, 12, 3, 0, 0, 26624, 106, }, /* 614 */ + { 124, 12, 3, 0, 0, 26624, 158, }, /* 615 */ + { 124, 10, 12, 0, 0, 18432, 154, }, /* 616 */ + { 124, 12, 3, 0, 0, 26624, 98, }, /* 617 */ + { 124, 13, 12, 0, 0, 18432, 144, }, /* 618 */ + { 124, 21, 12, 0, 0, 18432, 74, }, /* 619 */ + { 124, 6, 12, 0, 0, 18432, 138, }, /* 620 */ + { 124, 21, 12, 0, 0, 18432, 128, }, /* 621 */ + { 107, 11, 3, 0, 0, 26624, 198, }, /* 622 */ + { 107, 12, 3, 0, 0, 26624, 106, }, /* 623 */ + { 114, 12, 3, 0, 0, 26624, 106, }, /* 624 */ + { 114, 10, 5, 0, 0, 18432, 154, }, /* 625 */ + { 114, 7, 12, 0, 0, 18432, 84, }, /* 626 */ + { 114, 7, 12, 0, 0, 18432, 156, }, /* 627 */ + { 114, 12, 3, 0, 0, 26624, 98, }, /* 628 */ + { 114, 10, 3, 0, 0, 18432, 160, }, /* 629 */ + { 114, 10, 3, 0, 0, 18432, 188, }, /* 630 */ + { 114, 21, 12, 0, 0, 18432, 128, }, /* 631 */ + { 114, 13, 12, 0, 0, 18432, 144, }, /* 632 */ + { 114, 21, 12, 0, 0, 18432, 74, }, /* 633 */ + { 114, 21, 12, 0, 0, 18432, 110, }, /* 634 */ + { 114, 26, 12, 0, 0, 18432, 74, }, /* 635 */ + { 117, 12, 3, 0, 0, 26624, 106, }, /* 636 */ + { 117, 10, 5, 0, 0, 18432, 154, }, /* 637 */ + { 117, 7, 12, 0, 0, 18432, 156, }, /* 638 */ + { 117, 10, 3, 0, 0, 18432, 188, }, /* 639 */ + { 117, 12, 3, 0, 0, 26624, 158, }, /* 640 */ + { 117, 13, 12, 0, 0, 18432, 144, }, /* 641 */ + { 117, 7, 12, 0, 0, 18432, 84, }, /* 642 */ + { 133, 7, 12, 0, 0, 18432, 84, }, /* 643 */ + { 133, 12, 3, 0, 0, 26624, 98, }, /* 644 */ + { 133, 10, 5, 0, 0, 18432, 154, }, /* 645 */ + { 133, 12, 3, 0, 0, 26624, 106, }, /* 646 */ + { 133, 10, 3, 0, 0, 18432, 188, }, /* 647 */ + { 133, 21, 12, 0, 0, 18432, 74, }, /* 648 */ + { 118, 7, 12, 0, 0, 18432, 84, }, /* 649 */ + { 118, 10, 5, 0, 0, 18432, 154, }, /* 650 */ + { 118, 12, 3, 0, 0, 26624, 106, }, /* 651 */ + { 118, 12, 3, 0, 0, 26624, 200, }, /* 652 */ + { 118, 12, 3, 0, 0, 26624, 98, }, /* 653 */ + { 118, 21, 12, 0, 0, 18432, 128, }, /* 654 */ + { 118, 21, 12, 0, 0, 18432, 110, }, /* 655 */ { 118, 13, 12, 0, 0, 18432, 144, }, /* 656 */ - { 118, 7, 12, 0, 0, 18432, 84, }, /* 657 */ - { 118, 6, 12, 0, 0, 18432, 94, }, /* 658 */ - { 118, 6, 12, 0, 0, 18432, 96, }, /* 659 */ - { 118, 21, 12, 0, 0, 18432, 128, }, /* 660 */ - { 2, 5, 12, 63, -6222, 18432, 70, }, /* 661 */ - { 2, 5, 12, 67, -6221, 18432, 70, }, /* 662 */ - { 2, 5, 12, 71, -6212, 18432, 70, }, /* 663 */ - { 2, 5, 12, 75, -6210, 18432, 70, }, /* 664 */ - { 2, 5, 12, 79, -6210, 18432, 70, }, /* 665 */ - { 2, 5, 12, 79, -6211, 18432, 70, }, /* 666 */ - { 2, 5, 12, 84, -6204, 18432, 70, }, /* 667 */ - { 2, 5, 12, 88, -6180, 18432, 70, }, /* 668 */ - { 2, 5, 12, 108, 35267, 18432, 70, }, /* 669 */ - { 21, 9, 12, 0, -3008, 18432, 76, }, /* 670 */ - { 116, 21, 12, 0, 0, 18432, 74, }, /* 671 */ - { 106, 12, 3, 0, 0, 26864, 98, }, /* 672 */ - { 106, 12, 3, 0, 0, 26868, 98, }, /* 673 */ - { 99, 21, 12, 0, 0, 18680, 200, }, /* 674 */ - { 106, 12, 3, 0, 0, 26876, 98, }, /* 675 */ - { 106, 12, 3, 0, 0, 26880, 98, }, /* 676 */ - { 106, 12, 3, 0, 0, 26884, 98, }, /* 677 */ - { 99, 10, 5, 0, 0, 18684, 174, }, /* 678 */ - { 99, 7, 12, 0, 0, 18696, 84, }, /* 679 */ - { 99, 7, 12, 0, 0, 18684, 84, }, /* 680 */ - { 99, 7, 12, 0, 0, 18676, 84, }, /* 681 */ - { 99, 7, 12, 0, 0, 18700, 84, }, /* 682 */ - { 99, 7, 12, 0, 0, 18704, 84, }, /* 683 */ - { 106, 12, 3, 0, 0, 26900, 98, }, /* 684 */ - { 99, 10, 5, 0, 0, 18712, 174, }, /* 685 */ - { 106, 12, 3, 0, 0, 26896, 98, }, /* 686 */ - { 99, 7, 12, 0, 0, 18716, 84, }, /* 687 */ - { 2, 5, 12, 0, 0, 18432, 60, }, /* 688 */ - { 1, 6, 12, 0, 0, 18432, 90, }, /* 689 */ - { 2, 6, 12, 0, 0, 18432, 182, }, /* 690 */ - { 0, 5, 12, 0, 35332, 18432, 78, }, /* 691 */ - { 0, 5, 12, 0, 3814, 18432, 78, }, /* 692 */ - { 0, 5, 12, 0, 35384, 18432, 78, }, /* 693 */ - { 0, 5, 12, 0, 0, 18432, 202, }, /* 694 */ - { 0, 6, 12, 0, 0, 18432, 182, }, /* 695 */ - { 0, 6, 12, 0, 0, 18432, 204, }, /* 696 */ - { 1, 6, 12, 0, 0, 18432, 182, }, /* 697 */ - { 106, 12, 3, 0, 0, 26740, 104, }, /* 698 */ - { 106, 12, 3, 0, 0, 26912, 98, }, /* 699 */ - { 106, 12, 3, 0, 0, 26916, 98, }, /* 700 */ - { 0, 9, 12, 92, 1, 18432, 76, }, /* 701 */ - { 0, 5, 12, 92, -1, 18432, 78, }, /* 702 */ - { 0, 5, 12, 0, 0, 18432, 70, }, /* 703 */ - { 0, 5, 12, 92, -58, 18432, 70, }, /* 704 */ - { 0, 9, 12, 0, -7615, 18432, 76, }, /* 705 */ - { 1, 5, 12, 0, 8, 18432, 78, }, /* 706 */ - { 1, 9, 12, 0, -8, 18432, 76, }, /* 707 */ - { 1, 5, 12, 0, 0, 18432, 78, }, /* 708 */ - { 1, 5, 12, 0, 74, 18432, 78, }, /* 709 */ - { 1, 5, 12, 0, 86, 18432, 78, }, /* 710 */ - { 1, 5, 12, 0, 100, 18432, 78, }, /* 711 */ - { 1, 5, 12, 0, 128, 18432, 78, }, /* 712 */ - { 1, 5, 12, 0, 112, 18432, 78, }, /* 713 */ - { 1, 5, 12, 0, 126, 18432, 78, }, /* 714 */ - { 1, 5, 12, 0, 8, 18432, 70, }, /* 715 */ - { 1, 8, 12, 0, -8, 18432, 88, }, /* 716 */ - { 1, 5, 12, 0, 0, 18432, 70, }, /* 717 */ - { 1, 5, 12, 0, 9, 18432, 70, }, /* 718 */ - { 1, 9, 12, 0, -74, 18432, 76, }, /* 719 */ - { 1, 8, 12, 0, -9, 18432, 88, }, /* 720 */ - { 1, 5, 12, 21, -7173, 18432, 78, }, /* 721 */ - { 1, 9, 12, 0, -86, 18432, 76, }, /* 722 */ - { 1, 5, 12, 0, -7235, 18432, 78, }, /* 723 */ - { 1, 9, 12, 0, -100, 18432, 76, }, /* 724 */ - { 1, 5, 12, 0, -7219, 18432, 78, }, /* 725 */ - { 1, 9, 12, 0, -112, 18432, 76, }, /* 726 */ - { 1, 9, 12, 0, -128, 18432, 76, }, /* 727 */ - { 1, 9, 12, 0, -126, 18432, 76, }, /* 728 */ - { 99, 29, 12, 0, 0, 45056, 52, }, /* 729 */ - { 106, 1, 3, 0, 0, 6144, 206, }, /* 730 */ - { 106, 1, 13, 0, 0, 6144, 208, }, /* 731 */ - { 99, 1, 2, 0, 0, 18432, 210, }, /* 732 */ - { 99, 1, 2, 0, 0, 34816, 210, }, /* 733 */ - { 99, 17, 12, 0, 0, 28672, 212, }, /* 734 */ - { 99, 21, 12, 0, 0, 28672, 64, }, /* 735 */ - { 99, 20, 12, 0, 0, 28672, 214, }, /* 736 */ - { 99, 19, 12, 0, 0, 28672, 214, }, /* 737 */ - { 99, 22, 12, 0, 0, 28672, 216, }, /* 738 */ - { 99, 20, 12, 0, 0, 28672, 216, }, /* 739 */ - { 99, 19, 12, 0, 0, 28672, 216, }, /* 740 */ - { 99, 21, 12, 0, 0, 28672, 218, }, /* 741 */ - { 99, 21, 12, 0, 0, 28672, 220, }, /* 742 */ - { 99, 27, 2, 0, 0, 45056, 50, }, /* 743 */ - { 99, 28, 2, 0, 0, 4096, 50, }, /* 744 */ - { 99, 1, 2, 0, 0, 20480, 136, }, /* 745 */ - { 99, 1, 2, 0, 0, 36864, 136, }, /* 746 */ - { 99, 1, 2, 0, 0, 30720, 136, }, /* 747 */ - { 99, 1, 2, 0, 0, 24576, 136, }, /* 748 */ - { 99, 1, 2, 0, 0, 40960, 136, }, /* 749 */ - { 99, 29, 12, 0, 0, 8488, 52, }, /* 750 */ - { 99, 21, 12, 0, 0, 14336, 54, }, /* 751 */ - { 99, 21, 12, 0, 0, 14336, 64, }, /* 752 */ - { 99, 21, 14, 0, 0, 28672, 222, }, /* 753 */ - { 99, 21, 12, 0, 0, 28672, 224, }, /* 754 */ - { 99, 16, 12, 0, 0, 28672, 144, }, /* 755 */ - { 99, 16, 12, 0, 0, 28672, 226, }, /* 756 */ - { 99, 25, 12, 0, 0, 8192, 64, }, /* 757 */ - { 99, 22, 12, 0, 0, 28672, 228, }, /* 758 */ - { 99, 18, 12, 0, 0, 28672, 228, }, /* 759 */ - { 99, 21, 12, 0, 0, 28972, 54, }, /* 760 */ - { 99, 21, 12, 0, 0, 28672, 212, }, /* 761 */ - { 99, 21, 12, 0, 0, 28976, 54, }, /* 762 */ - { 99, 21, 12, 0, 0, 28980, 54, }, /* 763 */ - { 99, 1, 2, 0, 0, 6144, 230, }, /* 764 */ - { 98, 2, 2, 0, 0, 6144, 232, }, /* 765 */ - { 99, 1, 2, 0, 0, 22528, 136, }, /* 766 */ - { 99, 1, 2, 0, 0, 38912, 136, }, /* 767 */ - { 99, 1, 2, 0, 0, 16384, 136, }, /* 768 */ - { 99, 1, 2, 0, 0, 32768, 136, }, /* 769 */ - { 99, 1, 2, 0, 0, 6144, 234, }, /* 770 */ - { 99, 25, 12, 0, 0, 12288, 236, }, /* 771 */ - { 99, 25, 12, 0, 0, 12288, 238, }, /* 772 */ - { 99, 25, 12, 0, 0, 28672, 236, }, /* 773 */ - { 99, 22, 12, 0, 0, 28672, 240, }, /* 774 */ - { 99, 18, 12, 0, 0, 28672, 240, }, /* 775 */ - { 98, 2, 12, 0, 0, 14336, 0, }, /* 776 */ - { 106, 12, 3, 0, 0, 26624, 242, }, /* 777 */ - { 106, 11, 3, 0, 0, 26624, 124, }, /* 778 */ - { 106, 11, 3, 0, 0, 26624, 244, }, /* 779 */ - { 106, 12, 3, 0, 0, 26936, 104, }, /* 780 */ - { 99, 26, 12, 0, 0, 28672, 74, }, /* 781 */ - { 99, 9, 12, 0, 0, 18432, 116, }, /* 782 */ - { 99, 5, 12, 0, 0, 18432, 246, }, /* 783 */ - { 99, 25, 12, 0, 0, 28672, 248, }, /* 784 */ - { 99, 26, 14, 0, 0, 28672, 250, }, /* 785 */ - { 1, 9, 12, 96, -7517, 18432, 76, }, /* 786 */ - { 99, 26, 12, 0, 0, 28672, 122, }, /* 787 */ - { 0, 9, 12, 100, 0, 18432, 76, }, /* 788 */ - { 0, 9, 12, 104, -8262, 18432, 76, }, /* 789 */ - { 99, 26, 12, 0, 0, 14336, 252, }, /* 790 */ - { 0, 9, 12, 0, 28, 18432, 76, }, /* 791 */ - { 99, 7, 12, 0, 0, 18432, 254, }, /* 792 */ - { 99, 5, 14, 0, 0, 18432, 256, }, /* 793 */ - { 99, 25, 12, 0, 0, 28672, 122, }, /* 794 */ - { 99, 5, 12, 0, 0, 18432, 258, }, /* 795 */ - { 0, 5, 12, 0, -28, 18432, 78, }, /* 796 */ - { 0, 14, 12, 0, 16, 18432, 76, }, /* 797 */ - { 0, 14, 12, 0, -16, 18432, 78, }, /* 798 */ - { 0, 14, 12, 0, 0, 18432, 84, }, /* 799 */ - { 99, 25, 14, 0, 0, 28672, 260, }, /* 800 */ - { 99, 26, 14, 0, 0, 28672, 260, }, /* 801 */ - { 99, 26, 12, 0, 0, 28672, 64, }, /* 802 */ - { 99, 25, 12, 0, 0, 28672, 262, }, /* 803 */ - { 99, 25, 12, 0, 0, 28672, 264, }, /* 804 */ - { 99, 25, 12, 0, 0, 12288, 266, }, /* 805 */ - { 99, 22, 12, 0, 0, 28672, 264, }, /* 806 */ - { 99, 18, 12, 0, 0, 28672, 264, }, /* 807 */ - { 99, 26, 14, 0, 0, 28672, 268, }, /* 808 */ - { 99, 22, 12, 0, 0, 28672, 270, }, /* 809 */ - { 99, 18, 12, 0, 0, 28672, 270, }, /* 810 */ - { 99, 26, 12, 0, 0, 18432, 54, }, /* 811 */ - { 99, 26, 14, 0, 0, 28672, 272, }, /* 812 */ - { 98, 2, 12, 0, 0, 18432, 274, }, /* 813 */ - { 99, 15, 12, 0, 0, 10240, 74, }, /* 814 */ - { 99, 26, 12, 0, 26, 18432, 276, }, /* 815 */ - { 99, 26, 14, 0, 26, 18432, 278, }, /* 816 */ - { 99, 26, 12, 0, -26, 18432, 280, }, /* 817 */ - { 99, 25, 14, 0, 0, 28672, 282, }, /* 818 */ - { 99, 26, 14, 0, 0, 28672, 284, }, /* 819 */ - { 99, 26, 14, 0, 0, 28672, 286, }, /* 820 */ - { 99, 25, 14, 0, 0, 28672, 284, }, /* 821 */ - { 99, 26, 14, 0, 0, 18432, 272, }, /* 822 */ - { 99, 26, 14, 0, 0, 28672, 288, }, /* 823 */ - { 109, 26, 12, 0, 0, 18432, 54, }, /* 824 */ - { 99, 26, 12, 0, 0, 28672, 228, }, /* 825 */ - { 44, 9, 12, 0, 48, 18432, 76, }, /* 826 */ - { 44, 5, 12, 0, -48, 18432, 78, }, /* 827 */ - { 0, 9, 12, 0, -10743, 18432, 76, }, /* 828 */ - { 0, 9, 12, 0, -3814, 18432, 76, }, /* 829 */ - { 0, 9, 12, 0, -10727, 18432, 76, }, /* 830 */ - { 0, 5, 12, 0, -10795, 18432, 78, }, /* 831 */ - { 0, 5, 12, 0, -10792, 18432, 78, }, /* 832 */ - { 0, 9, 12, 0, -10780, 18432, 76, }, /* 833 */ - { 0, 9, 12, 0, -10749, 18432, 76, }, /* 834 */ - { 0, 9, 12, 0, -10783, 18432, 76, }, /* 835 */ - { 0, 9, 12, 0, -10782, 18432, 76, }, /* 836 */ - { 0, 9, 12, 0, -10815, 18432, 76, }, /* 837 */ - { 43, 5, 12, 0, 0, 18432, 60, }, /* 838 */ - { 43, 26, 12, 0, 0, 28672, 74, }, /* 839 */ - { 43, 12, 3, 0, 0, 26624, 98, }, /* 840 */ - { 43, 21, 12, 0, 0, 28672, 128, }, /* 841 */ - { 43, 21, 12, 0, 0, 28672, 74, }, /* 842 */ - { 43, 15, 12, 0, 0, 28672, 74, }, /* 843 */ - { 21, 5, 12, 0, -7264, 18432, 78, }, /* 844 */ - { 45, 7, 12, 0, 0, 18432, 84, }, /* 845 */ - { 45, 6, 12, 0, 0, 18432, 148, }, /* 846 */ - { 45, 21, 12, 0, 0, 18432, 74, }, /* 847 */ - { 45, 12, 3, 0, 0, 26624, 290, }, /* 848 */ - { 2, 12, 3, 0, 0, 26624, 106, }, /* 849 */ - { 99, 20, 12, 0, 0, 28672, 228, }, /* 850 */ - { 99, 19, 12, 0, 0, 28672, 228, }, /* 851 */ - { 99, 17, 12, 0, 0, 28988, 212, }, /* 852 */ - { 99, 6, 12, 0, 0, 28672, 292, }, /* 853 */ - { 99, 21, 12, 0, 0, 28992, 54, }, /* 854 */ - { 99, 21, 12, 0, 0, 28996, 54, }, /* 855 */ - { 99, 21, 12, 0, 0, 29000, 224, }, /* 856 */ - { 99, 21, 12, 0, 0, 29004, 294, }, /* 857 */ - { 99, 21, 12, 0, 0, 28812, 54, }, /* 858 */ - { 99, 21, 12, 0, 0, 28672, 294, }, /* 859 */ - { 30, 26, 12, 0, 0, 28672, 296, }, /* 860 */ - { 99, 26, 12, 0, 0, 29008, 298, }, /* 861 */ - { 99, 26, 12, 0, 0, 29008, 300, }, /* 862 */ - { 99, 26, 12, 0, 0, 29008, 302, }, /* 863 */ - { 99, 21, 12, 0, 0, 29012, 294, }, /* 864 */ - { 99, 21, 12, 0, 0, 29016, 224, }, /* 865 */ - { 99, 21, 12, 0, 0, 29020, 54, }, /* 866 */ - { 30, 6, 12, 0, 0, 18432, 138, }, /* 867 */ - { 99, 7, 12, 0, 0, 18784, 304, }, /* 868 */ - { 30, 14, 12, 0, 0, 18432, 304, }, /* 869 */ - { 99, 22, 12, 0, 0, 29028, 228, }, /* 870 */ - { 99, 18, 12, 0, 0, 29028, 228, }, /* 871 */ - { 99, 22, 12, 0, 0, 29032, 228, }, /* 872 */ - { 99, 18, 12, 0, 0, 29032, 228, }, /* 873 */ - { 99, 22, 12, 0, 0, 29036, 62, }, /* 874 */ - { 99, 18, 12, 0, 0, 29036, 62, }, /* 875 */ - { 99, 22, 12, 0, 0, 29036, 228, }, /* 876 */ - { 99, 18, 12, 0, 0, 29036, 228, }, /* 877 */ - { 99, 26, 12, 0, 0, 29020, 54, }, /* 878 */ - { 99, 17, 12, 0, 0, 29020, 212, }, /* 879 */ - { 99, 22, 12, 0, 0, 29020, 216, }, /* 880 */ - { 99, 18, 12, 0, 0, 29020, 216, }, /* 881 */ - { 106, 12, 3, 0, 0, 26992, 98, }, /* 882 */ - { 22, 10, 3, 0, 0, 18432, 306, }, /* 883 */ - { 99, 17, 14, 0, 0, 29020, 308, }, /* 884 */ - { 99, 6, 12, 0, 0, 18804, 138, }, /* 885 */ - { 99, 26, 12, 0, 0, 29020, 74, }, /* 886 */ - { 30, 6, 12, 0, 0, 18432, 148, }, /* 887 */ - { 99, 7, 12, 0, 0, 18808, 84, }, /* 888 */ - { 99, 21, 14, 0, 0, 29048, 250, }, /* 889 */ - { 99, 26, 12, 0, 0, 29024, 74, }, /* 890 */ - { 27, 7, 12, 0, 0, 18432, 84, }, /* 891 */ - { 106, 12, 3, 0, 0, 26996, 98, }, /* 892 */ - { 99, 24, 12, 0, 0, 29044, 310, }, /* 893 */ - { 27, 6, 12, 0, 0, 18432, 138, }, /* 894 */ - { 99, 17, 12, 0, 0, 29044, 130, }, /* 895 */ - { 28, 7, 12, 0, 0, 18432, 84, }, /* 896 */ - { 99, 21, 12, 0, 0, 29036, 144, }, /* 897 */ - { 99, 6, 12, 0, 0, 18804, 96, }, /* 898 */ - { 28, 6, 12, 0, 0, 18432, 138, }, /* 899 */ - { 29, 7, 12, 0, 0, 18432, 84, }, /* 900 */ - { 22, 7, 12, 0, 0, 18432, 84, }, /* 901 */ - { 22, 7, 12, 0, 0, 18432, 184, }, /* 902 */ - { 99, 26, 12, 0, 0, 18784, 74, }, /* 903 */ - { 99, 15, 12, 0, 0, 18784, 74, }, /* 904 */ - { 22, 26, 12, 0, 0, 18432, 74, }, /* 905 */ - { 22, 26, 12, 0, 0, 28672, 74, }, /* 906 */ - { 99, 15, 12, 0, 0, 18432, 74, }, /* 907 */ - { 99, 26, 14, 0, 0, 18784, 250, }, /* 908 */ - { 28, 26, 12, 0, 0, 18432, 74, }, /* 909 */ - { 30, 7, 12, 0, 0, 18432, 312, }, /* 910 */ - { 31, 7, 12, 0, 0, 18432, 84, }, /* 911 */ - { 31, 6, 12, 0, 0, 18432, 138, }, /* 912 */ - { 31, 26, 12, 0, 0, 28672, 74, }, /* 913 */ - { 55, 7, 12, 0, 0, 18432, 84, }, /* 914 */ - { 55, 6, 12, 0, 0, 18432, 148, }, /* 915 */ - { 55, 21, 12, 0, 0, 18432, 110, }, /* 916 */ - { 55, 21, 12, 0, 0, 18432, 128, }, /* 917 */ - { 119, 7, 12, 0, 0, 18432, 84, }, /* 918 */ - { 119, 6, 12, 0, 0, 18432, 138, }, /* 919 */ - { 119, 21, 12, 0, 0, 28672, 110, }, /* 920 */ - { 119, 21, 12, 0, 0, 28672, 128, }, /* 921 */ - { 119, 13, 12, 0, 0, 18432, 144, }, /* 922 */ - { 2, 9, 12, 108, 1, 18432, 76, }, /* 923 */ - { 2, 5, 12, 108, -35267, 18432, 78, }, /* 924 */ - { 2, 7, 12, 0, 0, 18432, 84, }, /* 925 */ - { 2, 21, 12, 0, 0, 28672, 74, }, /* 926 */ - { 2, 12, 3, 0, 0, 26624, 98, }, /* 927 */ - { 2, 6, 12, 0, 0, 28672, 94, }, /* 928 */ - { 2, 6, 12, 0, 0, 18432, 90, }, /* 929 */ - { 126, 7, 12, 0, 0, 18432, 84, }, /* 930 */ - { 126, 14, 12, 0, 0, 18432, 84, }, /* 931 */ - { 126, 12, 3, 0, 0, 26624, 98, }, /* 932 */ - { 126, 21, 12, 0, 0, 18432, 74, }, /* 933 */ - { 126, 21, 12, 0, 0, 18432, 128, }, /* 934 */ - { 126, 21, 12, 0, 0, 18432, 110, }, /* 935 */ - { 99, 24, 12, 0, 0, 29052, 56, }, /* 936 */ - { 0, 9, 12, 0, -35332, 18432, 76, }, /* 937 */ - { 99, 24, 12, 0, 0, 18432, 56, }, /* 938 */ - { 0, 9, 12, 0, -42280, 18432, 76, }, /* 939 */ - { 0, 5, 12, 0, 48, 18432, 78, }, /* 940 */ - { 0, 9, 12, 0, -42308, 18432, 76, }, /* 941 */ - { 0, 9, 12, 0, -42319, 18432, 76, }, /* 942 */ - { 0, 9, 12, 0, -42315, 18432, 76, }, /* 943 */ - { 0, 9, 12, 0, -42305, 18432, 76, }, /* 944 */ - { 0, 9, 12, 0, -42258, 18432, 76, }, /* 945 */ - { 0, 9, 12, 0, -42282, 18432, 76, }, /* 946 */ - { 0, 9, 12, 0, -42261, 18432, 76, }, /* 947 */ - { 0, 9, 12, 0, 928, 18432, 76, }, /* 948 */ - { 0, 9, 12, 0, -48, 18432, 76, }, /* 949 */ - { 0, 9, 12, 0, -42307, 18432, 76, }, /* 950 */ - { 0, 9, 12, 0, -35384, 18432, 76, }, /* 951 */ - { 0, 9, 12, 0, -42343, 18432, 76, }, /* 952 */ - { 0, 9, 12, 0, -42561, 18432, 76, }, /* 953 */ - { 46, 7, 12, 0, 0, 18432, 84, }, /* 954 */ - { 46, 12, 3, 0, 0, 26624, 106, }, /* 955 */ - { 46, 12, 3, 0, 0, 26624, 158, }, /* 956 */ - { 46, 10, 5, 0, 0, 18432, 154, }, /* 957 */ - { 46, 26, 12, 0, 0, 28672, 74, }, /* 958 */ - { 99, 15, 12, 0, 0, 18816, 74, }, /* 959 */ - { 99, 15, 12, 0, 0, 18820, 74, }, /* 960 */ - { 99, 26, 12, 0, 0, 18824, 74, }, /* 961 */ - { 99, 23, 12, 0, 0, 14732, 74, }, /* 962 */ - { 99, 26, 12, 0, 0, 14728, 74, }, /* 963 */ - { 47, 7, 12, 0, 0, 18432, 84, }, /* 964 */ - { 47, 21, 12, 0, 0, 28672, 74, }, /* 965 */ - { 47, 21, 12, 0, 0, 28672, 128, }, /* 966 */ - { 120, 10, 5, 0, 0, 18432, 154, }, /* 967 */ - { 120, 7, 12, 0, 0, 18432, 84, }, /* 968 */ - { 120, 12, 3, 0, 0, 26624, 158, }, /* 969 */ - { 120, 12, 3, 0, 0, 26624, 106, }, /* 970 */ - { 120, 21, 12, 0, 0, 18432, 128, }, /* 971 */ - { 120, 13, 12, 0, 0, 18432, 144, }, /* 972 */ - { 8, 12, 3, 0, 0, 27024, 98, }, /* 973 */ - { 8, 7, 12, 0, 0, 18836, 84, }, /* 974 */ - { 49, 13, 12, 0, 0, 18432, 144, }, /* 975 */ - { 49, 7, 12, 0, 0, 18432, 84, }, /* 976 */ - { 49, 12, 3, 0, 0, 26624, 106, }, /* 977 */ - { 49, 12, 3, 0, 0, 26624, 98, }, /* 978 */ - { 99, 21, 12, 0, 0, 18840, 200, }, /* 979 */ - { 49, 21, 12, 0, 0, 18432, 128, }, /* 980 */ - { 121, 7, 12, 0, 0, 18432, 84, }, /* 981 */ - { 121, 12, 3, 0, 0, 26624, 106, }, /* 982 */ - { 121, 10, 5, 0, 0, 18432, 154, }, /* 983 */ - { 121, 10, 3, 0, 0, 18432, 188, }, /* 984 */ - { 121, 21, 12, 0, 0, 18432, 74, }, /* 985 */ - { 56, 12, 3, 0, 0, 26624, 106, }, /* 986 */ - { 56, 10, 5, 0, 0, 18432, 154, }, /* 987 */ - { 56, 7, 12, 0, 0, 18432, 84, }, /* 988 */ - { 56, 12, 3, 0, 0, 26624, 98, }, /* 989 */ - { 56, 10, 3, 0, 0, 18432, 188, }, /* 990 */ - { 56, 21, 12, 0, 0, 18432, 74, }, /* 991 */ - { 56, 21, 12, 0, 0, 18432, 110, }, /* 992 */ - { 56, 21, 12, 0, 0, 18432, 128, }, /* 993 */ - { 99, 6, 12, 0, 0, 18844, 138, }, /* 994 */ - { 56, 13, 12, 0, 0, 18432, 144, }, /* 995 */ - { 20, 6, 12, 0, 0, 18432, 138, }, /* 996 */ - { 122, 7, 12, 0, 0, 18432, 84, }, /* 997 */ - { 122, 12, 3, 0, 0, 26624, 106, }, /* 998 */ - { 122, 10, 5, 0, 0, 18432, 154, }, /* 999 */ - { 122, 13, 12, 0, 0, 18432, 144, }, /* 1000 */ - { 122, 21, 12, 0, 0, 18432, 74, }, /* 1001 */ - { 122, 21, 12, 0, 0, 18432, 128, }, /* 1002 */ - { 124, 7, 12, 0, 0, 18432, 84, }, /* 1003 */ - { 124, 12, 3, 0, 0, 26624, 106, }, /* 1004 */ - { 124, 7, 12, 0, 0, 18432, 170, }, /* 1005 */ - { 124, 12, 3, 0, 0, 26624, 98, }, /* 1006 */ - { 124, 7, 12, 0, 0, 18432, 314, }, /* 1007 */ - { 124, 6, 12, 0, 0, 18432, 138, }, /* 1008 */ - { 124, 21, 12, 0, 0, 18432, 74, }, /* 1009 */ - { 124, 21, 12, 0, 0, 18432, 110, }, /* 1010 */ - { 127, 7, 12, 0, 0, 18432, 84, }, /* 1011 */ - { 127, 10, 5, 0, 0, 18432, 154, }, /* 1012 */ - { 127, 12, 3, 0, 0, 26624, 106, }, /* 1013 */ - { 127, 21, 12, 0, 0, 18432, 128, }, /* 1014 */ - { 127, 6, 12, 0, 0, 18432, 138, }, /* 1015 */ - { 127, 12, 3, 0, 0, 26624, 158, }, /* 1016 */ - { 0, 5, 12, 0, -928, 18432, 78, }, /* 1017 */ - { 24, 5, 12, 0, -38864, 18432, 70, }, /* 1018 */ - { 127, 10, 5, 0, 0, 18432, 174, }, /* 1019 */ - { 127, 13, 12, 0, 0, 18432, 144, }, /* 1020 */ - { 22, 7, 9, 0, 0, 18432, 84, }, /* 1021 */ - { 22, 7, 10, 0, 0, 18432, 84, }, /* 1022 */ - { 98, 4, 12, 0, 0, 18432, 0, }, /* 1023 */ - { 98, 3, 12, 0, 0, 18432, 0, }, /* 1024 */ - { 30, 7, 12, 0, 0, 18432, 304, }, /* 1025 */ - { 0, 5, 12, 0, 1, 18432, 70, }, /* 1026 */ - { 0, 5, 12, 0, -1, 18432, 70, }, /* 1027 */ - { 4, 25, 12, 0, 0, 12288, 122, }, /* 1028 */ - { 5, 7, 12, 0, 0, 0, 316, }, /* 1029 */ - { 99, 18, 12, 0, 0, 29088, 54, }, /* 1030 */ - { 99, 22, 12, 0, 0, 29088, 54, }, /* 1031 */ - { 98, 2, 12, 0, 0, 6144, 318, }, /* 1032 */ - { 5, 7, 12, 0, 0, 420, 84, }, /* 1033 */ - { 5, 26, 12, 0, 0, 29092, 74, }, /* 1034 */ - { 106, 12, 3, 0, 0, 26624, 192, }, /* 1035 */ - { 106, 12, 3, 0, 0, 26624, 320, }, /* 1036 */ - { 99, 21, 12, 0, 0, 28672, 74, }, /* 1037 */ - { 99, 21, 12, 0, 0, 28672, 128, }, /* 1038 */ - { 99, 21, 12, 0, 0, 28672, 126, }, /* 1039 */ - { 99, 22, 12, 0, 0, 28672, 74, }, /* 1040 */ - { 99, 18, 12, 0, 0, 28672, 74, }, /* 1041 */ - { 99, 17, 12, 0, 0, 28672, 130, }, /* 1042 */ - { 99, 22, 12, 0, 0, 28672, 322, }, /* 1043 */ - { 99, 18, 12, 0, 0, 28672, 322, }, /* 1044 */ - { 99, 21, 12, 0, 0, 8192, 110, }, /* 1045 */ - { 99, 21, 12, 0, 0, 8192, 324, }, /* 1046 */ - { 99, 21, 12, 0, 0, 8192, 326, }, /* 1047 */ - { 99, 22, 12, 0, 0, 28672, 172, }, /* 1048 */ - { 99, 18, 12, 0, 0, 28672, 172, }, /* 1049 */ - { 99, 21, 12, 0, 0, 14336, 74, }, /* 1050 */ - { 99, 21, 12, 0, 0, 28672, 122, }, /* 1051 */ - { 99, 25, 12, 0, 0, 12288, 122, }, /* 1052 */ - { 99, 17, 12, 0, 0, 12288, 328, }, /* 1053 */ - { 99, 25, 12, 0, 0, 28672, 330, }, /* 1054 */ - { 99, 21, 12, 0, 0, 28672, 322, }, /* 1055 */ - { 99, 21, 12, 0, 0, 28672, 332, }, /* 1056 */ - { 99, 17, 12, 0, 0, 12288, 130, }, /* 1057 */ - { 99, 21, 12, 0, 0, 8192, 74, }, /* 1058 */ - { 99, 13, 12, 0, 0, 10240, 334, }, /* 1059 */ - { 0, 9, 12, 0, 32, 18432, 336, }, /* 1060 */ - { 99, 24, 12, 0, 0, 28672, 338, }, /* 1061 */ - { 0, 5, 12, 0, -32, 18432, 340, }, /* 1062 */ - { 99, 21, 12, 0, 0, 29036, 128, }, /* 1063 */ - { 99, 22, 12, 0, 0, 29036, 342, }, /* 1064 */ - { 99, 18, 12, 0, 0, 29036, 342, }, /* 1065 */ - { 99, 21, 12, 0, 0, 29036, 110, }, /* 1066 */ - { 99, 6, 3, 0, 0, 18804, 344, }, /* 1067 */ - { 99, 1, 2, 0, 0, 28672, 346, }, /* 1068 */ - { 39, 7, 12, 0, 0, 18432, 84, }, /* 1069 */ - { 99, 21, 12, 0, 0, 18856, 74, }, /* 1070 */ - { 99, 21, 12, 0, 0, 29096, 74, }, /* 1071 */ - { 99, 21, 12, 0, 0, 18860, 74, }, /* 1072 */ - { 99, 15, 12, 0, 0, 18864, 74, }, /* 1073 */ - { 99, 26, 12, 0, 0, 18860, 74, }, /* 1074 */ - { 1, 14, 12, 0, 0, 28672, 84, }, /* 1075 */ - { 1, 15, 12, 0, 0, 28672, 74, }, /* 1076 */ - { 1, 26, 12, 0, 0, 28672, 74, }, /* 1077 */ - { 1, 26, 12, 0, 0, 18432, 74, }, /* 1078 */ - { 50, 7, 12, 0, 0, 18432, 84, }, /* 1079 */ - { 51, 7, 12, 0, 0, 18432, 84, }, /* 1080 */ - { 106, 12, 3, 0, 0, 27060, 98, }, /* 1081 */ - { 99, 15, 12, 0, 0, 10676, 74, }, /* 1082 */ - { 104, 7, 12, 0, 0, 18432, 84, }, /* 1083 */ - { 104, 15, 12, 0, 0, 18432, 74, }, /* 1084 */ - { 32, 7, 12, 0, 0, 18432, 84, }, /* 1085 */ - { 32, 14, 12, 0, 0, 18432, 84, }, /* 1086 */ - { 73, 7, 12, 0, 0, 18432, 84, }, /* 1087 */ - { 73, 12, 3, 0, 0, 26624, 106, }, /* 1088 */ - { 107, 7, 12, 0, 0, 18432, 84, }, /* 1089 */ - { 107, 21, 12, 0, 0, 18432, 110, }, /* 1090 */ - { 111, 7, 12, 0, 0, 18432, 84, }, /* 1091 */ - { 111, 21, 12, 0, 0, 18432, 110, }, /* 1092 */ - { 111, 14, 12, 0, 0, 18432, 84, }, /* 1093 */ - { 105, 9, 12, 0, 40, 18432, 76, }, /* 1094 */ - { 105, 5, 12, 0, -40, 18432, 78, }, /* 1095 */ - { 40, 7, 12, 0, 0, 18432, 84, }, /* 1096 */ - { 108, 7, 12, 0, 0, 18432, 84, }, /* 1097 */ - { 108, 13, 12, 0, 0, 18432, 144, }, /* 1098 */ - { 80, 9, 12, 0, 40, 18432, 76, }, /* 1099 */ - { 80, 5, 12, 0, -40, 18432, 78, }, /* 1100 */ - { 66, 7, 12, 0, 0, 18432, 84, }, /* 1101 */ - { 64, 7, 12, 0, 0, 18432, 84, }, /* 1102 */ - { 64, 21, 12, 0, 0, 18432, 74, }, /* 1103 */ - { 167, 9, 12, 0, 39, 18432, 76, }, /* 1104 */ - { 167, 5, 12, 0, -39, 18432, 78, }, /* 1105 */ - { 96, 7, 12, 0, 0, 18432, 84, }, /* 1106 */ - { 69, 7, 12, 0, 0, 18432, 84, }, /* 1107 */ - { 0, 6, 12, 0, 0, 18432, 96, }, /* 1108 */ - { 41, 7, 12, 0, 0, 34816, 84, }, /* 1109 */ - { 128, 7, 12, 0, 0, 34816, 84, }, /* 1110 */ - { 128, 21, 12, 0, 0, 34816, 110, }, /* 1111 */ - { 128, 15, 12, 0, 0, 34816, 74, }, /* 1112 */ - { 143, 7, 12, 0, 0, 34816, 84, }, /* 1113 */ - { 143, 26, 12, 0, 0, 34816, 74, }, /* 1114 */ - { 143, 15, 12, 0, 0, 34816, 74, }, /* 1115 */ - { 142, 7, 12, 0, 0, 34816, 84, }, /* 1116 */ - { 142, 15, 12, 0, 0, 34816, 74, }, /* 1117 */ - { 149, 7, 12, 0, 0, 34816, 84, }, /* 1118 */ - { 149, 15, 12, 0, 0, 34816, 74, }, /* 1119 */ - { 115, 7, 12, 0, 0, 34816, 84, }, /* 1120 */ - { 115, 15, 12, 0, 0, 34816, 74, }, /* 1121 */ - { 115, 21, 12, 0, 0, 28672, 110, }, /* 1122 */ - { 52, 7, 12, 0, 0, 34816, 84, }, /* 1123 */ - { 52, 21, 12, 0, 0, 34816, 74, }, /* 1124 */ - { 61, 7, 12, 0, 0, 34816, 84, }, /* 1125 */ - { 134, 7, 12, 0, 0, 34816, 84, }, /* 1126 */ - { 134, 15, 12, 0, 0, 34816, 74, }, /* 1127 */ - { 112, 7, 12, 0, 0, 34816, 84, }, /* 1128 */ - { 112, 12, 3, 0, 0, 26624, 106, }, /* 1129 */ - { 112, 12, 3, 0, 0, 26624, 98, }, /* 1130 */ - { 112, 12, 3, 0, 0, 26624, 158, }, /* 1131 */ - { 112, 15, 12, 0, 0, 34816, 74, }, /* 1132 */ - { 112, 21, 12, 0, 0, 34816, 74, }, /* 1133 */ - { 112, 21, 12, 0, 0, 34816, 128, }, /* 1134 */ - { 129, 7, 12, 0, 0, 34816, 84, }, /* 1135 */ - { 129, 15, 12, 0, 0, 34816, 74, }, /* 1136 */ - { 129, 21, 12, 0, 0, 34816, 74, }, /* 1137 */ - { 141, 7, 12, 0, 0, 34816, 84, }, /* 1138 */ - { 141, 15, 12, 0, 0, 34816, 74, }, /* 1139 */ - { 71, 7, 12, 0, 0, 34816, 84, }, /* 1140 */ - { 71, 26, 12, 0, 0, 34816, 74, }, /* 1141 */ - { 71, 12, 3, 0, 0, 26624, 98, }, /* 1142 */ - { 71, 15, 12, 0, 0, 34816, 74, }, /* 1143 */ - { 71, 21, 12, 0, 0, 34816, 110, }, /* 1144 */ - { 71, 21, 12, 0, 0, 35256, 110, }, /* 1145 */ - { 71, 21, 12, 0, 0, 34816, 74, }, /* 1146 */ - { 53, 7, 12, 0, 0, 34816, 84, }, /* 1147 */ - { 53, 21, 12, 0, 0, 28672, 74, }, /* 1148 */ - { 53, 21, 12, 0, 0, 28672, 110, }, /* 1149 */ - { 130, 7, 12, 0, 0, 34816, 84, }, /* 1150 */ - { 130, 15, 12, 0, 0, 34816, 74, }, /* 1151 */ - { 131, 7, 12, 0, 0, 34816, 84, }, /* 1152 */ - { 131, 15, 12, 0, 0, 34816, 74, }, /* 1153 */ - { 74, 7, 12, 0, 0, 34816, 84, }, /* 1154 */ - { 74, 21, 12, 0, 0, 34816, 110, }, /* 1155 */ - { 74, 15, 12, 0, 0, 34816, 74, }, /* 1156 */ - { 57, 7, 12, 0, 0, 34816, 84, }, /* 1157 */ - { 78, 9, 12, 0, 64, 34816, 76, }, /* 1158 */ - { 78, 5, 12, 0, -64, 34816, 78, }, /* 1159 */ - { 78, 15, 12, 0, 0, 34816, 74, }, /* 1160 */ - { 85, 7, 12, 0, 0, 0, 84, }, /* 1161 */ - { 85, 7, 12, 0, 0, 0, 314, }, /* 1162 */ - { 85, 12, 3, 0, 0, 26624, 132, }, /* 1163 */ - { 85, 13, 12, 0, 0, 2048, 144, }, /* 1164 */ - { 92, 13, 12, 0, 0, 2048, 144, }, /* 1165 */ - { 92, 7, 12, 0, 0, 34816, 84, }, /* 1166 */ - { 92, 6, 12, 0, 0, 34816, 96, }, /* 1167 */ - { 92, 9, 12, 0, 32, 34816, 76, }, /* 1168 */ - { 92, 12, 3, 0, 0, 26624, 132, }, /* 1169 */ - { 92, 12, 3, 0, 0, 26624, 164, }, /* 1170 */ - { 92, 12, 3, 0, 0, 26624, 98, }, /* 1171 */ - { 92, 17, 12, 0, 0, 28672, 130, }, /* 1172 */ - { 92, 6, 12, 0, 0, 34816, 138, }, /* 1173 */ - { 92, 5, 12, 0, -32, 34816, 78, }, /* 1174 */ - { 92, 25, 12, 0, 0, 34816, 122, }, /* 1175 */ - { 5, 15, 12, 0, 0, 2048, 74, }, /* 1176 */ - { 88, 7, 12, 0, 0, 34816, 84, }, /* 1177 */ - { 88, 12, 3, 0, 0, 26624, 106, }, /* 1178 */ - { 88, 17, 12, 0, 0, 34816, 130, }, /* 1179 */ - { 159, 7, 12, 0, 0, 34816, 84, }, /* 1180 */ - { 159, 15, 12, 0, 0, 34816, 74, }, /* 1181 */ - { 86, 7, 12, 0, 0, 0, 84, }, /* 1182 */ - { 86, 12, 3, 0, 0, 26624, 98, }, /* 1183 */ - { 86, 15, 12, 0, 0, 0, 74, }, /* 1184 */ - { 86, 21, 12, 0, 0, 0, 128, }, /* 1185 */ - { 90, 7, 12, 0, 0, 34816, 84, }, /* 1186 */ - { 90, 12, 3, 0, 0, 26624, 98, }, /* 1187 */ - { 90, 21, 12, 0, 0, 34816, 128, }, /* 1188 */ - { 163, 7, 12, 0, 0, 34816, 84, }, /* 1189 */ - { 163, 15, 12, 0, 0, 34816, 74, }, /* 1190 */ - { 160, 7, 12, 0, 0, 34816, 84, }, /* 1191 */ - { 133, 10, 5, 0, 0, 18432, 154, }, /* 1192 */ - { 133, 12, 3, 0, 0, 26624, 106, }, /* 1193 */ - { 133, 7, 12, 0, 0, 18432, 84, }, /* 1194 */ - { 133, 12, 3, 0, 0, 26624, 158, }, /* 1195 */ - { 133, 21, 12, 0, 0, 18432, 128, }, /* 1196 */ - { 133, 21, 12, 0, 0, 18432, 110, }, /* 1197 */ - { 133, 15, 12, 0, 0, 28672, 74, }, /* 1198 */ - { 133, 13, 12, 0, 0, 18432, 144, }, /* 1199 */ - { 133, 12, 3, 0, 0, 26624, 290, }, /* 1200 */ - { 58, 12, 3, 0, 0, 26624, 106, }, /* 1201 */ - { 58, 10, 5, 0, 0, 18432, 154, }, /* 1202 */ - { 58, 7, 12, 0, 0, 18432, 84, }, /* 1203 */ - { 58, 12, 3, 0, 0, 26624, 158, }, /* 1204 */ - { 58, 12, 3, 0, 0, 26624, 98, }, /* 1205 */ - { 58, 21, 12, 0, 0, 18432, 74, }, /* 1206 */ - { 58, 1, 4, 0, 0, 18432, 134, }, /* 1207 */ - { 58, 21, 12, 0, 0, 18432, 128, }, /* 1208 */ - { 136, 7, 12, 0, 0, 18432, 84, }, /* 1209 */ - { 136, 13, 12, 0, 0, 18432, 144, }, /* 1210 */ - { 60, 12, 3, 0, 0, 26624, 106, }, /* 1211 */ - { 60, 7, 12, 0, 0, 18432, 84, }, /* 1212 */ - { 60, 10, 5, 0, 0, 18432, 154, }, /* 1213 */ - { 60, 12, 3, 0, 0, 26624, 158, }, /* 1214 */ - { 60, 13, 12, 0, 0, 18432, 144, }, /* 1215 */ - { 60, 21, 12, 0, 0, 18432, 74, }, /* 1216 */ - { 60, 21, 12, 0, 0, 18432, 128, }, /* 1217 */ - { 70, 7, 12, 0, 0, 18432, 84, }, /* 1218 */ - { 70, 12, 3, 0, 0, 26624, 98, }, /* 1219 */ - { 70, 21, 12, 0, 0, 18432, 74, }, /* 1220 */ - { 62, 12, 3, 0, 0, 26624, 106, }, /* 1221 */ - { 62, 10, 5, 0, 0, 18432, 154, }, /* 1222 */ - { 62, 7, 12, 0, 0, 18432, 84, }, /* 1223 */ - { 62, 10, 3, 0, 0, 18432, 188, }, /* 1224 */ - { 62, 7, 4, 0, 0, 18432, 84, }, /* 1225 */ - { 62, 21, 12, 0, 0, 18432, 128, }, /* 1226 */ - { 62, 21, 12, 0, 0, 18432, 74, }, /* 1227 */ - { 62, 12, 3, 0, 0, 26624, 104, }, /* 1228 */ - { 62, 12, 3, 0, 0, 26624, 98, }, /* 1229 */ - { 62, 13, 12, 0, 0, 18432, 144, }, /* 1230 */ - { 17, 15, 12, 0, 0, 18432, 74, }, /* 1231 */ - { 68, 7, 12, 0, 0, 18432, 84, }, /* 1232 */ - { 68, 10, 5, 0, 0, 18432, 154, }, /* 1233 */ - { 68, 12, 3, 0, 0, 26624, 106, }, /* 1234 */ - { 68, 10, 3, 0, 0, 18432, 188, }, /* 1235 */ - { 68, 12, 3, 0, 0, 26624, 98, }, /* 1236 */ - { 68, 12, 3, 0, 0, 26624, 162, }, /* 1237 */ - { 68, 21, 12, 0, 0, 18432, 128, }, /* 1238 */ - { 68, 21, 12, 0, 0, 18432, 110, }, /* 1239 */ - { 68, 21, 12, 0, 0, 18432, 74, }, /* 1240 */ - { 77, 7, 12, 0, 0, 18432, 84, }, /* 1241 */ - { 77, 21, 12, 0, 0, 18432, 128, }, /* 1242 */ - { 75, 7, 12, 0, 0, 18432, 84, }, /* 1243 */ - { 75, 12, 3, 0, 0, 26624, 106, }, /* 1244 */ - { 75, 10, 5, 0, 0, 18432, 154, }, /* 1245 */ - { 75, 12, 3, 0, 0, 26624, 98, }, /* 1246 */ - { 75, 12, 3, 0, 0, 26624, 158, }, /* 1247 */ - { 75, 13, 12, 0, 0, 18432, 144, }, /* 1248 */ - { 67, 12, 3, 0, 0, 26624, 106, }, /* 1249 */ - { 67, 12, 3, 0, 0, 26836, 106, }, /* 1250 */ - { 67, 10, 5, 0, 0, 18432, 154, }, /* 1251 */ - { 67, 10, 5, 0, 0, 18644, 154, }, /* 1252 */ - { 67, 7, 12, 0, 0, 18432, 84, }, /* 1253 */ - { 106, 12, 3, 0, 0, 26836, 98, }, /* 1254 */ - { 67, 12, 3, 0, 0, 26836, 98, }, /* 1255 */ - { 67, 10, 3, 0, 0, 18432, 160, }, /* 1256 */ - { 67, 10, 3, 0, 0, 18432, 188, }, /* 1257 */ - { 67, 7, 12, 0, 0, 18432, 348, }, /* 1258 */ - { 67, 12, 3, 0, 0, 26624, 98, }, /* 1259 */ - { 97, 7, 12, 0, 0, 18432, 84, }, /* 1260 */ - { 97, 10, 3, 0, 0, 18432, 160, }, /* 1261 */ - { 97, 10, 5, 0, 0, 18432, 154, }, /* 1262 */ - { 97, 12, 3, 0, 0, 26624, 106, }, /* 1263 */ - { 97, 12, 3, 0, 0, 26624, 158, }, /* 1264 */ - { 97, 10, 3, 0, 0, 18432, 188, }, /* 1265 */ - { 97, 7, 4, 0, 0, 18432, 84, }, /* 1266 */ - { 97, 12, 3, 0, 0, 26624, 164, }, /* 1267 */ - { 97, 7, 12, 0, 0, 18432, 350, }, /* 1268 */ - { 97, 21, 12, 0, 0, 18432, 128, }, /* 1269 */ - { 97, 21, 12, 0, 0, 18432, 74, }, /* 1270 */ - { 97, 12, 3, 0, 0, 26624, 98, }, /* 1271 */ - { 153, 7, 12, 0, 0, 18432, 84, }, /* 1272 */ - { 153, 10, 5, 0, 0, 18432, 154, }, /* 1273 */ - { 153, 12, 3, 0, 0, 26624, 106, }, /* 1274 */ - { 153, 12, 3, 0, 0, 26624, 158, }, /* 1275 */ - { 153, 12, 3, 0, 0, 26624, 98, }, /* 1276 */ - { 153, 21, 12, 0, 0, 18432, 128, }, /* 1277 */ - { 153, 21, 12, 0, 0, 18432, 110, }, /* 1278 */ - { 153, 21, 12, 0, 0, 18432, 74, }, /* 1279 */ - { 153, 13, 12, 0, 0, 18432, 144, }, /* 1280 */ - { 153, 12, 3, 0, 0, 26624, 104, }, /* 1281 */ - { 76, 7, 12, 0, 0, 18432, 84, }, /* 1282 */ - { 76, 10, 3, 0, 0, 18432, 160, }, /* 1283 */ - { 76, 10, 5, 0, 0, 18432, 154, }, /* 1284 */ - { 76, 12, 3, 0, 0, 26624, 106, }, /* 1285 */ - { 76, 12, 3, 0, 0, 26624, 158, }, /* 1286 */ - { 76, 12, 3, 0, 0, 26624, 98, }, /* 1287 */ - { 76, 21, 12, 0, 0, 18432, 74, }, /* 1288 */ - { 76, 13, 12, 0, 0, 18432, 144, }, /* 1289 */ - { 145, 7, 12, 0, 0, 18432, 84, }, /* 1290 */ - { 145, 10, 3, 0, 0, 18432, 160, }, /* 1291 */ - { 145, 10, 5, 0, 0, 18432, 154, }, /* 1292 */ - { 145, 12, 3, 0, 0, 26624, 106, }, /* 1293 */ - { 145, 12, 3, 0, 0, 26624, 158, }, /* 1294 */ - { 145, 12, 3, 0, 0, 26624, 98, }, /* 1295 */ - { 145, 21, 12, 0, 0, 18432, 74, }, /* 1296 */ - { 145, 21, 12, 0, 0, 18432, 128, }, /* 1297 */ - { 145, 21, 12, 0, 0, 18432, 110, }, /* 1298 */ - { 145, 21, 12, 0, 0, 18432, 190, }, /* 1299 */ - { 72, 7, 12, 0, 0, 18432, 84, }, /* 1300 */ - { 72, 10, 5, 0, 0, 18432, 154, }, /* 1301 */ - { 72, 12, 3, 0, 0, 26624, 106, }, /* 1302 */ - { 72, 12, 3, 0, 0, 26624, 158, }, /* 1303 */ - { 72, 21, 12, 0, 0, 18432, 128, }, /* 1304 */ - { 72, 21, 12, 0, 0, 18432, 74, }, /* 1305 */ - { 72, 13, 12, 0, 0, 18432, 144, }, /* 1306 */ - { 63, 7, 12, 0, 0, 18432, 84, }, /* 1307 */ - { 63, 12, 3, 0, 0, 26624, 106, }, /* 1308 */ - { 63, 10, 5, 0, 0, 18432, 154, }, /* 1309 */ - { 63, 10, 3, 0, 0, 18432, 188, }, /* 1310 */ - { 63, 12, 3, 0, 0, 26624, 98, }, /* 1311 */ - { 63, 21, 12, 0, 0, 18432, 74, }, /* 1312 */ - { 63, 13, 12, 0, 0, 18432, 144, }, /* 1313 */ - { 147, 7, 12, 0, 0, 18432, 84, }, /* 1314 */ - { 147, 12, 3, 0, 0, 26624, 106, }, /* 1315 */ - { 147, 10, 5, 0, 0, 18432, 154, }, /* 1316 */ - { 147, 10, 12, 0, 0, 18432, 154, }, /* 1317 */ - { 147, 12, 3, 0, 0, 26624, 158, }, /* 1318 */ - { 147, 13, 12, 0, 0, 18432, 144, }, /* 1319 */ - { 147, 15, 12, 0, 0, 18432, 74, }, /* 1320 */ - { 147, 21, 12, 0, 0, 18432, 128, }, /* 1321 */ - { 147, 26, 12, 0, 0, 18432, 74, }, /* 1322 */ - { 83, 7, 12, 0, 0, 18432, 84, }, /* 1323 */ - { 83, 10, 5, 0, 0, 18432, 154, }, /* 1324 */ - { 83, 12, 3, 0, 0, 26624, 106, }, /* 1325 */ - { 83, 12, 3, 0, 0, 26624, 158, }, /* 1326 */ - { 83, 12, 3, 0, 0, 26624, 98, }, /* 1327 */ - { 83, 21, 12, 0, 0, 18432, 74, }, /* 1328 */ - { 146, 9, 12, 0, 32, 18432, 76, }, /* 1329 */ - { 146, 5, 12, 0, -32, 18432, 78, }, /* 1330 */ - { 146, 13, 12, 0, 0, 18432, 144, }, /* 1331 */ - { 146, 15, 12, 0, 0, 18432, 74, }, /* 1332 */ - { 146, 7, 12, 0, 0, 18432, 84, }, /* 1333 */ - { 164, 7, 12, 0, 0, 18432, 84, }, /* 1334 */ - { 164, 10, 3, 0, 0, 18432, 160, }, /* 1335 */ - { 164, 10, 5, 0, 0, 18432, 154, }, /* 1336 */ - { 164, 12, 3, 0, 0, 26624, 106, }, /* 1337 */ - { 164, 10, 3, 0, 0, 18432, 188, }, /* 1338 */ - { 164, 12, 3, 0, 0, 26624, 158, }, /* 1339 */ - { 164, 7, 4, 0, 0, 18432, 84, }, /* 1340 */ - { 164, 12, 3, 0, 0, 26624, 98, }, /* 1341 */ - { 164, 21, 12, 0, 0, 18432, 128, }, /* 1342 */ - { 164, 21, 12, 0, 0, 18432, 74, }, /* 1343 */ - { 164, 13, 12, 0, 0, 18432, 144, }, /* 1344 */ - { 87, 7, 12, 0, 0, 18432, 84, }, /* 1345 */ - { 87, 10, 5, 0, 0, 18432, 154, }, /* 1346 */ - { 87, 12, 3, 0, 0, 26624, 106, }, /* 1347 */ - { 87, 12, 3, 0, 0, 26624, 158, }, /* 1348 */ - { 87, 21, 12, 0, 0, 18432, 74, }, /* 1349 */ - { 156, 7, 12, 0, 0, 18432, 84, }, /* 1350 */ - { 156, 12, 3, 0, 0, 26624, 106, }, /* 1351 */ - { 156, 12, 3, 0, 0, 18432, 106, }, /* 1352 */ - { 156, 12, 3, 0, 0, 26624, 104, }, /* 1353 */ - { 156, 12, 3, 0, 0, 26624, 158, }, /* 1354 */ - { 156, 10, 5, 0, 0, 18432, 154, }, /* 1355 */ - { 156, 7, 4, 0, 0, 18432, 84, }, /* 1356 */ - { 156, 21, 12, 0, 0, 18432, 74, }, /* 1357 */ - { 156, 21, 12, 0, 0, 18432, 128, }, /* 1358 */ - { 155, 7, 12, 0, 0, 18432, 84, }, /* 1359 */ - { 155, 12, 3, 0, 0, 26624, 106, }, /* 1360 */ - { 155, 10, 5, 0, 0, 18432, 154, }, /* 1361 */ - { 155, 7, 4, 0, 0, 18432, 84, }, /* 1362 */ - { 155, 12, 3, 0, 0, 26624, 352, }, /* 1363 */ - { 155, 12, 3, 0, 0, 26624, 158, }, /* 1364 */ - { 155, 21, 12, 0, 0, 18432, 74, }, /* 1365 */ - { 155, 21, 12, 0, 0, 18432, 128, }, /* 1366 */ - { 155, 21, 12, 0, 0, 18432, 110, }, /* 1367 */ - { 144, 7, 12, 0, 0, 18432, 84, }, /* 1368 */ - { 95, 7, 12, 0, 0, 18432, 84, }, /* 1369 */ - { 95, 21, 12, 0, 0, 18432, 74, }, /* 1370 */ - { 95, 13, 12, 0, 0, 18432, 144, }, /* 1371 */ - { 151, 7, 12, 0, 0, 18432, 84, }, /* 1372 */ - { 151, 10, 5, 0, 0, 18432, 154, }, /* 1373 */ - { 151, 12, 3, 0, 0, 26624, 106, }, /* 1374 */ - { 151, 12, 3, 0, 0, 18432, 158, }, /* 1375 */ - { 151, 21, 12, 0, 0, 18432, 128, }, /* 1376 */ - { 151, 21, 12, 0, 0, 18432, 110, }, /* 1377 */ - { 151, 21, 12, 0, 0, 18432, 74, }, /* 1378 */ - { 151, 13, 12, 0, 0, 18432, 144, }, /* 1379 */ - { 151, 15, 12, 0, 0, 18432, 74, }, /* 1380 */ - { 152, 21, 12, 0, 0, 18432, 74, }, /* 1381 */ - { 152, 21, 12, 0, 0, 18432, 110, }, /* 1382 */ - { 152, 7, 12, 0, 0, 18432, 84, }, /* 1383 */ - { 152, 12, 3, 0, 0, 26624, 106, }, /* 1384 */ + { 119, 13, 12, 0, 0, 18432, 144, }, /* 657 */ + { 119, 7, 12, 0, 0, 18432, 84, }, /* 658 */ + { 119, 6, 12, 0, 0, 18432, 94, }, /* 659 */ + { 119, 6, 12, 0, 0, 18432, 96, }, /* 660 */ + { 119, 21, 12, 0, 0, 18432, 128, }, /* 661 */ + { 2, 5, 12, 63, -6222, 18432, 70, }, /* 662 */ + { 2, 5, 12, 67, -6221, 18432, 70, }, /* 663 */ + { 2, 5, 12, 71, -6212, 18432, 70, }, /* 664 */ + { 2, 5, 12, 75, -6210, 18432, 70, }, /* 665 */ + { 2, 5, 12, 79, -6210, 18432, 70, }, /* 666 */ + { 2, 5, 12, 79, -6211, 18432, 70, }, /* 667 */ + { 2, 5, 12, 84, -6204, 18432, 70, }, /* 668 */ + { 2, 5, 12, 88, -6180, 18432, 70, }, /* 669 */ + { 2, 5, 12, 108, 35267, 18432, 70, }, /* 670 */ + { 21, 9, 12, 0, -3008, 18432, 76, }, /* 671 */ + { 117, 21, 12, 0, 0, 18432, 74, }, /* 672 */ + { 107, 12, 3, 0, 0, 26864, 98, }, /* 673 */ + { 107, 12, 3, 0, 0, 26868, 98, }, /* 674 */ + { 100, 21, 12, 0, 0, 18680, 202, }, /* 675 */ + { 107, 12, 3, 0, 0, 26876, 98, }, /* 676 */ + { 107, 12, 3, 0, 0, 26880, 98, }, /* 677 */ + { 107, 12, 3, 0, 0, 26884, 98, }, /* 678 */ + { 107, 12, 3, 0, 0, 26888, 98, }, /* 679 */ + { 107, 12, 3, 0, 0, 26892, 98, }, /* 680 */ + { 107, 12, 3, 0, 0, 26896, 98, }, /* 681 */ + { 100, 10, 5, 0, 0, 18708, 174, }, /* 682 */ + { 107, 12, 3, 0, 0, 26904, 98, }, /* 683 */ + { 100, 7, 12, 0, 0, 18716, 84, }, /* 684 */ + { 100, 7, 12, 0, 0, 18720, 84, }, /* 685 */ + { 100, 7, 12, 0, 0, 18724, 84, }, /* 686 */ + { 100, 7, 12, 0, 0, 18676, 84, }, /* 687 */ + { 107, 12, 3, 0, 0, 26920, 98, }, /* 688 */ + { 100, 7, 12, 0, 0, 18732, 84, }, /* 689 */ + { 100, 7, 12, 0, 0, 18736, 84, }, /* 690 */ + { 107, 12, 3, 0, 0, 26932, 98, }, /* 691 */ + { 100, 7, 12, 0, 0, 18708, 84, }, /* 692 */ + { 100, 10, 5, 0, 0, 18744, 174, }, /* 693 */ + { 107, 12, 3, 0, 0, 26928, 98, }, /* 694 */ + { 100, 7, 12, 0, 0, 18748, 84, }, /* 695 */ + { 2, 5, 12, 0, 0, 18432, 60, }, /* 696 */ + { 1, 6, 12, 0, 0, 18432, 90, }, /* 697 */ + { 2, 6, 12, 0, 0, 18432, 182, }, /* 698 */ + { 0, 5, 12, 0, 35332, 18432, 78, }, /* 699 */ + { 0, 5, 12, 0, 3814, 18432, 78, }, /* 700 */ + { 0, 5, 12, 0, 35384, 18432, 78, }, /* 701 */ + { 0, 5, 12, 0, 0, 18432, 204, }, /* 702 */ + { 1, 6, 12, 0, 0, 18432, 182, }, /* 703 */ + { 107, 12, 3, 0, 0, 26740, 104, }, /* 704 */ + { 107, 12, 3, 0, 0, 26944, 98, }, /* 705 */ + { 107, 12, 3, 0, 0, 26948, 98, }, /* 706 */ + { 0, 9, 12, 92, 1, 18432, 76, }, /* 707 */ + { 0, 5, 12, 92, -1, 18432, 78, }, /* 708 */ + { 0, 5, 12, 0, 0, 18432, 70, }, /* 709 */ + { 0, 5, 12, 92, -58, 18432, 70, }, /* 710 */ + { 0, 9, 12, 0, -7615, 18432, 76, }, /* 711 */ + { 1, 5, 12, 0, 8, 18432, 78, }, /* 712 */ + { 1, 9, 12, 0, -8, 18432, 76, }, /* 713 */ + { 1, 5, 12, 0, 0, 18432, 78, }, /* 714 */ + { 1, 5, 12, 0, 74, 18432, 78, }, /* 715 */ + { 1, 5, 12, 0, 86, 18432, 78, }, /* 716 */ + { 1, 5, 12, 0, 100, 18432, 78, }, /* 717 */ + { 1, 5, 12, 0, 128, 18432, 78, }, /* 718 */ + { 1, 5, 12, 0, 112, 18432, 78, }, /* 719 */ + { 1, 5, 12, 0, 126, 18432, 78, }, /* 720 */ + { 1, 5, 12, 0, 8, 18432, 70, }, /* 721 */ + { 1, 8, 12, 0, -8, 18432, 88, }, /* 722 */ + { 1, 5, 12, 0, 0, 18432, 70, }, /* 723 */ + { 1, 5, 12, 0, 9, 18432, 70, }, /* 724 */ + { 1, 9, 12, 0, -74, 18432, 76, }, /* 725 */ + { 1, 8, 12, 0, -9, 18432, 88, }, /* 726 */ + { 1, 5, 12, 21, -7173, 18432, 78, }, /* 727 */ + { 1, 9, 12, 0, -86, 18432, 76, }, /* 728 */ + { 1, 5, 12, 0, -7235, 18432, 78, }, /* 729 */ + { 1, 9, 12, 0, -100, 18432, 76, }, /* 730 */ + { 1, 5, 12, 0, -7219, 18432, 78, }, /* 731 */ + { 1, 9, 12, 0, -112, 18432, 76, }, /* 732 */ + { 1, 9, 12, 0, -128, 18432, 76, }, /* 733 */ + { 1, 9, 12, 0, -126, 18432, 76, }, /* 734 */ + { 100, 29, 12, 0, 0, 45056, 52, }, /* 735 */ + { 107, 1, 3, 0, 0, 6144, 206, }, /* 736 */ + { 107, 1, 13, 0, 0, 6144, 208, }, /* 737 */ + { 100, 1, 2, 0, 0, 18432, 210, }, /* 738 */ + { 100, 1, 2, 0, 0, 34816, 210, }, /* 739 */ + { 100, 17, 12, 0, 0, 28672, 212, }, /* 740 */ + { 100, 21, 12, 0, 0, 28672, 64, }, /* 741 */ + { 100, 20, 12, 0, 0, 28672, 214, }, /* 742 */ + { 100, 19, 12, 0, 0, 28672, 214, }, /* 743 */ + { 100, 22, 12, 0, 0, 28672, 216, }, /* 744 */ + { 100, 20, 12, 0, 0, 28672, 216, }, /* 745 */ + { 100, 19, 12, 0, 0, 28672, 216, }, /* 746 */ + { 100, 21, 12, 0, 0, 28672, 218, }, /* 747 */ + { 100, 21, 12, 0, 0, 28672, 220, }, /* 748 */ + { 100, 27, 2, 0, 0, 45056, 50, }, /* 749 */ + { 100, 28, 2, 0, 0, 4096, 50, }, /* 750 */ + { 100, 1, 2, 0, 0, 20480, 136, }, /* 751 */ + { 100, 1, 2, 0, 0, 36864, 136, }, /* 752 */ + { 100, 1, 2, 0, 0, 30720, 136, }, /* 753 */ + { 100, 1, 2, 0, 0, 24576, 136, }, /* 754 */ + { 100, 1, 2, 0, 0, 40960, 136, }, /* 755 */ + { 100, 29, 12, 0, 0, 8520, 52, }, /* 756 */ + { 100, 21, 12, 0, 0, 14336, 54, }, /* 757 */ + { 100, 21, 12, 0, 0, 14336, 64, }, /* 758 */ + { 100, 21, 14, 0, 0, 28672, 222, }, /* 759 */ + { 100, 21, 12, 0, 0, 28672, 224, }, /* 760 */ + { 100, 16, 12, 0, 0, 28672, 144, }, /* 761 */ + { 100, 16, 12, 0, 0, 28672, 226, }, /* 762 */ + { 100, 25, 12, 0, 0, 8192, 64, }, /* 763 */ + { 100, 22, 12, 0, 0, 28672, 228, }, /* 764 */ + { 100, 18, 12, 0, 0, 28672, 228, }, /* 765 */ + { 100, 21, 12, 0, 0, 29004, 54, }, /* 766 */ + { 100, 21, 12, 0, 0, 28672, 212, }, /* 767 */ + { 100, 21, 12, 0, 0, 29008, 54, }, /* 768 */ + { 100, 21, 12, 0, 0, 29012, 54, }, /* 769 */ + { 100, 1, 2, 0, 0, 6144, 230, }, /* 770 */ + { 99, 2, 2, 0, 0, 6144, 232, }, /* 771 */ + { 100, 1, 2, 0, 0, 22528, 136, }, /* 772 */ + { 100, 1, 2, 0, 0, 38912, 136, }, /* 773 */ + { 100, 1, 2, 0, 0, 16384, 136, }, /* 774 */ + { 100, 1, 2, 0, 0, 32768, 136, }, /* 775 */ + { 100, 1, 2, 0, 0, 6144, 234, }, /* 776 */ + { 0, 6, 12, 0, 0, 18432, 236, }, /* 777 */ + { 100, 25, 12, 0, 0, 12288, 238, }, /* 778 */ + { 100, 25, 12, 0, 0, 12288, 240, }, /* 779 */ + { 100, 25, 12, 0, 0, 28672, 238, }, /* 780 */ + { 100, 22, 12, 0, 0, 28672, 242, }, /* 781 */ + { 100, 18, 12, 0, 0, 28672, 242, }, /* 782 */ + { 0, 6, 12, 0, 0, 18432, 182, }, /* 783 */ + { 99, 2, 12, 0, 0, 14336, 0, }, /* 784 */ + { 107, 12, 3, 0, 0, 26624, 244, }, /* 785 */ + { 107, 11, 3, 0, 0, 26624, 124, }, /* 786 */ + { 107, 11, 3, 0, 0, 26624, 246, }, /* 787 */ + { 107, 12, 3, 0, 0, 26968, 104, }, /* 788 */ + { 100, 26, 12, 0, 0, 28672, 74, }, /* 789 */ + { 100, 9, 12, 0, 0, 18432, 116, }, /* 790 */ + { 100, 5, 12, 0, 0, 18432, 248, }, /* 791 */ + { 100, 25, 12, 0, 0, 28672, 250, }, /* 792 */ + { 100, 26, 14, 0, 0, 28672, 252, }, /* 793 */ + { 1, 9, 12, 96, -7517, 18432, 76, }, /* 794 */ + { 100, 26, 12, 0, 0, 28672, 122, }, /* 795 */ + { 0, 9, 12, 100, 0, 18432, 76, }, /* 796 */ + { 0, 9, 12, 104, -8262, 18432, 76, }, /* 797 */ + { 100, 26, 12, 0, 0, 14336, 254, }, /* 798 */ + { 0, 9, 12, 0, 28, 18432, 76, }, /* 799 */ + { 100, 7, 12, 0, 0, 18432, 256, }, /* 800 */ + { 100, 5, 14, 0, 0, 18432, 258, }, /* 801 */ + { 100, 25, 12, 0, 0, 28672, 122, }, /* 802 */ + { 100, 5, 12, 0, 0, 18432, 260, }, /* 803 */ + { 0, 5, 12, 0, -28, 18432, 78, }, /* 804 */ + { 0, 14, 12, 0, 16, 18432, 76, }, /* 805 */ + { 0, 14, 12, 0, -16, 18432, 78, }, /* 806 */ + { 0, 14, 12, 0, 0, 18432, 84, }, /* 807 */ + { 100, 25, 14, 0, 0, 28672, 262, }, /* 808 */ + { 100, 26, 14, 0, 0, 28672, 262, }, /* 809 */ + { 100, 26, 12, 0, 0, 28672, 64, }, /* 810 */ + { 100, 25, 12, 0, 0, 28672, 264, }, /* 811 */ + { 100, 25, 12, 0, 0, 28672, 266, }, /* 812 */ + { 100, 25, 12, 0, 0, 12288, 268, }, /* 813 */ + { 100, 22, 12, 0, 0, 28672, 266, }, /* 814 */ + { 100, 18, 12, 0, 0, 28672, 266, }, /* 815 */ + { 100, 26, 14, 0, 0, 28672, 270, }, /* 816 */ + { 100, 22, 12, 0, 0, 28672, 272, }, /* 817 */ + { 100, 18, 12, 0, 0, 28672, 272, }, /* 818 */ + { 100, 26, 12, 0, 0, 18432, 54, }, /* 819 */ + { 99, 2, 12, 0, 0, 18432, 274, }, /* 820 */ + { 100, 15, 12, 0, 0, 10240, 74, }, /* 821 */ + { 100, 26, 12, 0, 26, 18432, 276, }, /* 822 */ + { 100, 26, 14, 0, 26, 18432, 278, }, /* 823 */ + { 100, 26, 12, 0, -26, 18432, 280, }, /* 824 */ + { 100, 25, 14, 0, 0, 28672, 282, }, /* 825 */ + { 100, 26, 14, 0, 0, 28672, 284, }, /* 826 */ + { 100, 26, 14, 0, 0, 28672, 286, }, /* 827 */ + { 110, 26, 12, 0, 0, 18432, 54, }, /* 828 */ + { 100, 26, 12, 0, 0, 28672, 228, }, /* 829 */ + { 44, 9, 12, 0, 48, 18432, 76, }, /* 830 */ + { 44, 5, 12, 0, -48, 18432, 78, }, /* 831 */ + { 0, 9, 12, 0, -10743, 18432, 76, }, /* 832 */ + { 0, 9, 12, 0, -3814, 18432, 76, }, /* 833 */ + { 0, 9, 12, 0, -10727, 18432, 76, }, /* 834 */ + { 0, 5, 12, 0, -10795, 18432, 78, }, /* 835 */ + { 0, 5, 12, 0, -10792, 18432, 78, }, /* 836 */ + { 0, 9, 12, 0, -10780, 18432, 76, }, /* 837 */ + { 0, 9, 12, 0, -10749, 18432, 76, }, /* 838 */ + { 0, 9, 12, 0, -10783, 18432, 76, }, /* 839 */ + { 0, 9, 12, 0, -10782, 18432, 76, }, /* 840 */ + { 0, 9, 12, 0, -10815, 18432, 76, }, /* 841 */ + { 43, 5, 12, 0, 0, 18432, 60, }, /* 842 */ + { 43, 26, 12, 0, 0, 28672, 74, }, /* 843 */ + { 43, 12, 3, 0, 0, 26624, 98, }, /* 844 */ + { 43, 21, 12, 0, 0, 28672, 128, }, /* 845 */ + { 43, 21, 12, 0, 0, 28672, 74, }, /* 846 */ + { 43, 15, 12, 0, 0, 28672, 74, }, /* 847 */ + { 21, 5, 12, 0, -7264, 18432, 78, }, /* 848 */ + { 45, 7, 12, 0, 0, 18432, 84, }, /* 849 */ + { 45, 6, 12, 0, 0, 18432, 148, }, /* 850 */ + { 45, 21, 12, 0, 0, 18432, 74, }, /* 851 */ + { 45, 12, 3, 0, 0, 26624, 288, }, /* 852 */ + { 2, 12, 3, 0, 0, 26624, 106, }, /* 853 */ + { 100, 20, 12, 0, 0, 28672, 228, }, /* 854 */ + { 100, 19, 12, 0, 0, 28672, 228, }, /* 855 */ + { 100, 17, 12, 0, 0, 29020, 212, }, /* 856 */ + { 100, 6, 12, 0, 0, 28672, 290, }, /* 857 */ + { 100, 21, 12, 0, 0, 29024, 54, }, /* 858 */ + { 100, 21, 12, 0, 0, 29028, 54, }, /* 859 */ + { 100, 21, 12, 0, 0, 29032, 224, }, /* 860 */ + { 100, 21, 12, 0, 0, 29036, 292, }, /* 861 */ + { 100, 21, 12, 0, 0, 28812, 54, }, /* 862 */ + { 100, 21, 12, 0, 0, 28672, 292, }, /* 863 */ + { 30, 26, 12, 0, 0, 28672, 294, }, /* 864 */ + { 100, 26, 12, 0, 0, 29040, 296, }, /* 865 */ + { 100, 26, 12, 0, 0, 29040, 298, }, /* 866 */ + { 100, 26, 12, 0, 0, 29040, 300, }, /* 867 */ + { 100, 21, 12, 0, 0, 29044, 292, }, /* 868 */ + { 100, 21, 12, 0, 0, 29048, 224, }, /* 869 */ + { 100, 21, 12, 0, 0, 29052, 54, }, /* 870 */ + { 30, 6, 12, 0, 0, 18432, 138, }, /* 871 */ + { 100, 7, 12, 0, 0, 18816, 302, }, /* 872 */ + { 30, 14, 12, 0, 0, 18432, 302, }, /* 873 */ + { 100, 22, 12, 0, 0, 29060, 228, }, /* 874 */ + { 100, 18, 12, 0, 0, 29060, 228, }, /* 875 */ + { 100, 22, 12, 0, 0, 29064, 228, }, /* 876 */ + { 100, 18, 12, 0, 0, 29064, 228, }, /* 877 */ + { 100, 22, 12, 0, 0, 29068, 62, }, /* 878 */ + { 100, 18, 12, 0, 0, 29068, 62, }, /* 879 */ + { 100, 22, 12, 0, 0, 29068, 228, }, /* 880 */ + { 100, 18, 12, 0, 0, 29068, 228, }, /* 881 */ + { 100, 26, 12, 0, 0, 29052, 54, }, /* 882 */ + { 100, 17, 12, 0, 0, 29052, 212, }, /* 883 */ + { 100, 22, 12, 0, 0, 29052, 216, }, /* 884 */ + { 100, 18, 12, 0, 0, 29052, 216, }, /* 885 */ + { 107, 12, 3, 0, 0, 27024, 98, }, /* 886 */ + { 22, 10, 3, 0, 0, 18432, 304, }, /* 887 */ + { 100, 17, 14, 0, 0, 29052, 306, }, /* 888 */ + { 100, 6, 12, 0, 0, 18836, 138, }, /* 889 */ + { 100, 26, 12, 0, 0, 29052, 74, }, /* 890 */ + { 30, 6, 12, 0, 0, 18432, 148, }, /* 891 */ + { 100, 7, 12, 0, 0, 18840, 84, }, /* 892 */ + { 100, 21, 14, 0, 0, 29080, 252, }, /* 893 */ + { 100, 26, 12, 0, 0, 29056, 74, }, /* 894 */ + { 27, 7, 12, 0, 0, 18432, 84, }, /* 895 */ + { 107, 12, 3, 0, 0, 27028, 98, }, /* 896 */ + { 100, 24, 12, 0, 0, 29076, 308, }, /* 897 */ + { 27, 6, 12, 0, 0, 18432, 138, }, /* 898 */ + { 100, 17, 12, 0, 0, 29076, 130, }, /* 899 */ + { 28, 7, 12, 0, 0, 18432, 84, }, /* 900 */ + { 100, 21, 12, 0, 0, 29068, 144, }, /* 901 */ + { 100, 6, 12, 0, 0, 18836, 96, }, /* 902 */ + { 28, 6, 12, 0, 0, 18432, 138, }, /* 903 */ + { 29, 7, 12, 0, 0, 18432, 84, }, /* 904 */ + { 22, 7, 12, 0, 0, 18432, 84, }, /* 905 */ + { 22, 7, 12, 0, 0, 18432, 184, }, /* 906 */ + { 100, 26, 12, 0, 0, 18816, 74, }, /* 907 */ + { 100, 15, 12, 0, 0, 18816, 74, }, /* 908 */ + { 22, 26, 12, 0, 0, 18432, 74, }, /* 909 */ + { 22, 26, 12, 0, 0, 28672, 74, }, /* 910 */ + { 100, 15, 12, 0, 0, 18432, 74, }, /* 911 */ + { 100, 26, 14, 0, 0, 18816, 252, }, /* 912 */ + { 28, 26, 12, 0, 0, 18432, 74, }, /* 913 */ + { 30, 7, 12, 0, 0, 18432, 310, }, /* 914 */ + { 31, 7, 12, 0, 0, 18432, 84, }, /* 915 */ + { 31, 6, 12, 0, 0, 18432, 138, }, /* 916 */ + { 31, 26, 12, 0, 0, 28672, 74, }, /* 917 */ + { 55, 7, 12, 0, 0, 18432, 84, }, /* 918 */ + { 55, 6, 12, 0, 0, 18432, 148, }, /* 919 */ + { 55, 21, 12, 0, 0, 18432, 110, }, /* 920 */ + { 55, 21, 12, 0, 0, 18432, 128, }, /* 921 */ + { 120, 7, 12, 0, 0, 18432, 84, }, /* 922 */ + { 120, 6, 12, 0, 0, 18432, 138, }, /* 923 */ + { 120, 21, 12, 0, 0, 28672, 110, }, /* 924 */ + { 120, 21, 12, 0, 0, 28672, 128, }, /* 925 */ + { 120, 13, 12, 0, 0, 18432, 144, }, /* 926 */ + { 2, 9, 12, 108, 1, 18432, 76, }, /* 927 */ + { 2, 5, 12, 108, -35267, 18432, 78, }, /* 928 */ + { 2, 7, 12, 0, 0, 18432, 84, }, /* 929 */ + { 2, 21, 12, 0, 0, 28672, 74, }, /* 930 */ + { 2, 12, 3, 0, 0, 26624, 98, }, /* 931 */ + { 2, 6, 12, 0, 0, 28672, 94, }, /* 932 */ + { 2, 6, 12, 0, 0, 18432, 90, }, /* 933 */ + { 127, 7, 12, 0, 0, 18432, 84, }, /* 934 */ + { 127, 14, 12, 0, 0, 18432, 84, }, /* 935 */ + { 127, 12, 3, 0, 0, 26624, 98, }, /* 936 */ + { 127, 21, 12, 0, 0, 18432, 74, }, /* 937 */ + { 127, 21, 12, 0, 0, 18432, 128, }, /* 938 */ + { 127, 21, 12, 0, 0, 18432, 110, }, /* 939 */ + { 100, 24, 12, 0, 0, 29084, 56, }, /* 940 */ + { 0, 9, 12, 0, -35332, 18432, 76, }, /* 941 */ + { 100, 24, 12, 0, 0, 18432, 56, }, /* 942 */ + { 0, 9, 12, 0, -42280, 18432, 76, }, /* 943 */ + { 0, 5, 12, 0, 48, 18432, 78, }, /* 944 */ + { 0, 9, 12, 0, -42308, 18432, 76, }, /* 945 */ + { 0, 9, 12, 0, -42319, 18432, 76, }, /* 946 */ + { 0, 9, 12, 0, -42315, 18432, 76, }, /* 947 */ + { 0, 9, 12, 0, -42305, 18432, 76, }, /* 948 */ + { 0, 9, 12, 0, -42258, 18432, 76, }, /* 949 */ + { 0, 9, 12, 0, -42282, 18432, 76, }, /* 950 */ + { 0, 9, 12, 0, -42261, 18432, 76, }, /* 951 */ + { 0, 9, 12, 0, 928, 18432, 76, }, /* 952 */ + { 0, 9, 12, 0, -48, 18432, 76, }, /* 953 */ + { 0, 9, 12, 0, -42307, 18432, 76, }, /* 954 */ + { 0, 9, 12, 0, -35384, 18432, 76, }, /* 955 */ + { 0, 9, 12, 0, -42343, 18432, 76, }, /* 956 */ + { 0, 9, 12, 0, -42561, 18432, 76, }, /* 957 */ + { 46, 7, 12, 0, 0, 18432, 84, }, /* 958 */ + { 46, 12, 3, 0, 0, 26624, 106, }, /* 959 */ + { 46, 12, 3, 0, 0, 26624, 158, }, /* 960 */ + { 46, 10, 5, 0, 0, 18432, 154, }, /* 961 */ + { 46, 26, 12, 0, 0, 28672, 74, }, /* 962 */ + { 100, 15, 12, 0, 0, 18848, 74, }, /* 963 */ + { 100, 15, 12, 0, 0, 18852, 74, }, /* 964 */ + { 100, 26, 12, 0, 0, 18856, 74, }, /* 965 */ + { 100, 23, 12, 0, 0, 14764, 74, }, /* 966 */ + { 100, 26, 12, 0, 0, 14760, 74, }, /* 967 */ + { 47, 7, 12, 0, 0, 18432, 84, }, /* 968 */ + { 47, 21, 12, 0, 0, 28672, 74, }, /* 969 */ + { 47, 21, 12, 0, 0, 28672, 128, }, /* 970 */ + { 121, 10, 5, 0, 0, 18432, 154, }, /* 971 */ + { 121, 7, 12, 0, 0, 18432, 84, }, /* 972 */ + { 121, 12, 3, 0, 0, 26624, 158, }, /* 973 */ + { 121, 12, 3, 0, 0, 26624, 106, }, /* 974 */ + { 121, 21, 12, 0, 0, 18432, 128, }, /* 975 */ + { 121, 13, 12, 0, 0, 18432, 144, }, /* 976 */ + { 8, 12, 3, 0, 0, 27056, 98, }, /* 977 */ + { 8, 7, 12, 0, 0, 18868, 84, }, /* 978 */ + { 49, 13, 12, 0, 0, 18432, 144, }, /* 979 */ + { 49, 7, 12, 0, 0, 18432, 84, }, /* 980 */ + { 49, 12, 3, 0, 0, 26624, 106, }, /* 981 */ + { 49, 12, 3, 0, 0, 26624, 98, }, /* 982 */ + { 100, 21, 12, 0, 0, 18872, 202, }, /* 983 */ + { 49, 21, 12, 0, 0, 18432, 128, }, /* 984 */ + { 122, 7, 12, 0, 0, 18432, 84, }, /* 985 */ + { 122, 12, 3, 0, 0, 26624, 106, }, /* 986 */ + { 122, 10, 5, 0, 0, 18432, 154, }, /* 987 */ + { 122, 10, 3, 0, 0, 18432, 188, }, /* 988 */ + { 122, 21, 12, 0, 0, 18432, 74, }, /* 989 */ + { 56, 12, 3, 0, 0, 26624, 106, }, /* 990 */ + { 56, 10, 5, 0, 0, 18432, 154, }, /* 991 */ + { 56, 7, 12, 0, 0, 18432, 84, }, /* 992 */ + { 56, 7, 12, 0, 0, 18432, 156, }, /* 993 */ + { 56, 12, 3, 0, 0, 26624, 98, }, /* 994 */ + { 56, 10, 3, 0, 0, 18432, 188, }, /* 995 */ + { 56, 21, 12, 0, 0, 18432, 74, }, /* 996 */ + { 56, 21, 12, 0, 0, 18432, 110, }, /* 997 */ + { 56, 21, 12, 0, 0, 18432, 128, }, /* 998 */ + { 100, 6, 12, 0, 0, 18876, 138, }, /* 999 */ + { 56, 13, 12, 0, 0, 18432, 144, }, /* 1000 */ + { 20, 6, 12, 0, 0, 18432, 138, }, /* 1001 */ + { 123, 7, 12, 0, 0, 18432, 84, }, /* 1002 */ + { 123, 12, 3, 0, 0, 26624, 106, }, /* 1003 */ + { 123, 10, 5, 0, 0, 18432, 154, }, /* 1004 */ + { 123, 13, 12, 0, 0, 18432, 144, }, /* 1005 */ + { 123, 21, 12, 0, 0, 18432, 74, }, /* 1006 */ + { 123, 21, 12, 0, 0, 18432, 128, }, /* 1007 */ + { 20, 7, 12, 0, 0, 18432, 84, }, /* 1008 */ + { 125, 7, 12, 0, 0, 18432, 84, }, /* 1009 */ + { 125, 12, 3, 0, 0, 26624, 106, }, /* 1010 */ + { 125, 7, 12, 0, 0, 18432, 170, }, /* 1011 */ + { 125, 12, 3, 0, 0, 26624, 98, }, /* 1012 */ + { 125, 7, 12, 0, 0, 18432, 312, }, /* 1013 */ + { 125, 6, 12, 0, 0, 18432, 138, }, /* 1014 */ + { 125, 21, 12, 0, 0, 18432, 74, }, /* 1015 */ + { 125, 21, 12, 0, 0, 18432, 110, }, /* 1016 */ + { 128, 7, 12, 0, 0, 18432, 156, }, /* 1017 */ + { 128, 10, 5, 0, 0, 18432, 154, }, /* 1018 */ + { 128, 12, 3, 0, 0, 26624, 106, }, /* 1019 */ + { 128, 21, 12, 0, 0, 18432, 128, }, /* 1020 */ + { 128, 7, 12, 0, 0, 18432, 84, }, /* 1021 */ + { 128, 6, 12, 0, 0, 18432, 138, }, /* 1022 */ + { 128, 12, 3, 0, 0, 26624, 158, }, /* 1023 */ + { 0, 5, 12, 0, -928, 18432, 78, }, /* 1024 */ + { 24, 5, 12, 0, -38864, 18432, 70, }, /* 1025 */ + { 128, 10, 5, 0, 0, 18432, 174, }, /* 1026 */ + { 128, 13, 12, 0, 0, 18432, 144, }, /* 1027 */ + { 22, 7, 9, 0, 0, 18432, 84, }, /* 1028 */ + { 22, 7, 10, 0, 0, 18432, 84, }, /* 1029 */ + { 99, 4, 12, 0, 0, 18432, 0, }, /* 1030 */ + { 99, 3, 12, 0, 0, 18432, 0, }, /* 1031 */ + { 30, 7, 12, 0, 0, 18432, 302, }, /* 1032 */ + { 0, 5, 12, 0, 1, 18432, 70, }, /* 1033 */ + { 0, 5, 12, 0, -1, 18432, 70, }, /* 1034 */ + { 4, 25, 12, 0, 0, 12288, 122, }, /* 1035 */ + { 5, 7, 12, 0, 0, 0, 314, }, /* 1036 */ + { 100, 18, 12, 0, 0, 29120, 54, }, /* 1037 */ + { 100, 22, 12, 0, 0, 29120, 54, }, /* 1038 */ + { 99, 2, 12, 0, 0, 6144, 316, }, /* 1039 */ + { 5, 7, 12, 0, 0, 452, 84, }, /* 1040 */ + { 5, 26, 12, 0, 0, 29124, 74, }, /* 1041 */ + { 107, 12, 3, 0, 0, 26624, 194, }, /* 1042 */ + { 107, 12, 3, 0, 0, 26624, 318, }, /* 1043 */ + { 100, 21, 12, 0, 0, 28672, 74, }, /* 1044 */ + { 100, 21, 12, 0, 0, 28672, 128, }, /* 1045 */ + { 100, 21, 12, 0, 0, 28672, 126, }, /* 1046 */ + { 100, 22, 12, 0, 0, 28672, 74, }, /* 1047 */ + { 100, 18, 12, 0, 0, 28672, 74, }, /* 1048 */ + { 100, 17, 12, 0, 0, 28672, 130, }, /* 1049 */ + { 100, 22, 12, 0, 0, 28672, 320, }, /* 1050 */ + { 100, 18, 12, 0, 0, 28672, 320, }, /* 1051 */ + { 100, 21, 12, 0, 0, 8192, 110, }, /* 1052 */ + { 100, 21, 12, 0, 0, 8192, 322, }, /* 1053 */ + { 100, 21, 12, 0, 0, 8192, 324, }, /* 1054 */ + { 100, 22, 12, 0, 0, 28672, 172, }, /* 1055 */ + { 100, 18, 12, 0, 0, 28672, 172, }, /* 1056 */ + { 100, 21, 12, 0, 0, 14336, 74, }, /* 1057 */ + { 100, 21, 12, 0, 0, 28672, 122, }, /* 1058 */ + { 100, 25, 12, 0, 0, 12288, 122, }, /* 1059 */ + { 100, 17, 12, 0, 0, 12288, 326, }, /* 1060 */ + { 100, 25, 12, 0, 0, 28672, 328, }, /* 1061 */ + { 100, 21, 12, 0, 0, 28672, 320, }, /* 1062 */ + { 100, 21, 12, 0, 0, 28672, 330, }, /* 1063 */ + { 100, 17, 12, 0, 0, 12288, 130, }, /* 1064 */ + { 100, 21, 12, 0, 0, 8192, 74, }, /* 1065 */ + { 100, 13, 12, 0, 0, 10240, 332, }, /* 1066 */ + { 0, 9, 12, 0, 32, 18432, 334, }, /* 1067 */ + { 100, 24, 12, 0, 0, 28672, 336, }, /* 1068 */ + { 0, 5, 12, 0, -32, 18432, 338, }, /* 1069 */ + { 100, 21, 12, 0, 0, 29068, 128, }, /* 1070 */ + { 100, 22, 12, 0, 0, 29068, 340, }, /* 1071 */ + { 100, 18, 12, 0, 0, 29068, 340, }, /* 1072 */ + { 100, 21, 12, 0, 0, 29068, 110, }, /* 1073 */ + { 100, 6, 3, 0, 0, 18836, 342, }, /* 1074 */ + { 100, 1, 2, 0, 0, 28672, 344, }, /* 1075 */ + { 39, 7, 12, 0, 0, 18432, 84, }, /* 1076 */ + { 100, 21, 12, 0, 0, 18888, 74, }, /* 1077 */ + { 100, 21, 12, 0, 0, 29128, 74, }, /* 1078 */ + { 100, 21, 12, 0, 0, 18892, 74, }, /* 1079 */ + { 100, 15, 12, 0, 0, 18896, 74, }, /* 1080 */ + { 100, 26, 12, 0, 0, 18892, 74, }, /* 1081 */ + { 1, 14, 12, 0, 0, 28672, 84, }, /* 1082 */ + { 1, 15, 12, 0, 0, 28672, 74, }, /* 1083 */ + { 1, 26, 12, 0, 0, 28672, 74, }, /* 1084 */ + { 1, 26, 12, 0, 0, 18432, 74, }, /* 1085 */ + { 50, 7, 12, 0, 0, 18432, 84, }, /* 1086 */ + { 51, 7, 12, 0, 0, 18432, 84, }, /* 1087 */ + { 107, 12, 3, 0, 0, 27092, 98, }, /* 1088 */ + { 100, 15, 12, 0, 0, 10708, 74, }, /* 1089 */ + { 105, 7, 12, 0, 0, 18432, 84, }, /* 1090 */ + { 105, 15, 12, 0, 0, 18432, 74, }, /* 1091 */ + { 32, 7, 12, 0, 0, 18432, 84, }, /* 1092 */ + { 32, 14, 12, 0, 0, 18432, 84, }, /* 1093 */ + { 73, 7, 12, 0, 0, 18432, 84, }, /* 1094 */ + { 73, 12, 3, 0, 0, 26624, 106, }, /* 1095 */ + { 108, 7, 12, 0, 0, 18432, 84, }, /* 1096 */ + { 108, 21, 12, 0, 0, 18432, 110, }, /* 1097 */ + { 112, 7, 12, 0, 0, 18432, 84, }, /* 1098 */ + { 112, 21, 12, 0, 0, 18432, 110, }, /* 1099 */ + { 112, 14, 12, 0, 0, 18432, 84, }, /* 1100 */ + { 106, 9, 12, 0, 40, 18432, 76, }, /* 1101 */ + { 106, 5, 12, 0, -40, 18432, 78, }, /* 1102 */ + { 40, 7, 12, 0, 0, 18432, 84, }, /* 1103 */ + { 109, 7, 12, 0, 0, 18432, 84, }, /* 1104 */ + { 109, 13, 12, 0, 0, 18432, 144, }, /* 1105 */ + { 81, 9, 12, 0, 40, 18432, 76, }, /* 1106 */ + { 81, 5, 12, 0, -40, 18432, 78, }, /* 1107 */ + { 66, 7, 12, 0, 0, 18432, 84, }, /* 1108 */ + { 64, 7, 12, 0, 0, 18432, 84, }, /* 1109 */ + { 64, 21, 12, 0, 0, 18432, 74, }, /* 1110 */ + { 167, 9, 12, 0, 39, 18432, 76, }, /* 1111 */ + { 167, 5, 12, 0, -39, 18432, 78, }, /* 1112 */ + { 97, 7, 12, 0, 0, 18432, 84, }, /* 1113 */ + { 69, 7, 12, 0, 0, 18432, 84, }, /* 1114 */ + { 0, 6, 12, 0, 0, 18432, 96, }, /* 1115 */ + { 41, 7, 12, 0, 0, 34816, 84, }, /* 1116 */ + { 129, 7, 12, 0, 0, 34816, 84, }, /* 1117 */ + { 129, 21, 12, 0, 0, 34816, 110, }, /* 1118 */ + { 129, 15, 12, 0, 0, 34816, 74, }, /* 1119 */ + { 144, 7, 12, 0, 0, 34816, 84, }, /* 1120 */ + { 144, 26, 12, 0, 0, 34816, 74, }, /* 1121 */ + { 144, 15, 12, 0, 0, 34816, 74, }, /* 1122 */ + { 143, 7, 12, 0, 0, 34816, 84, }, /* 1123 */ + { 143, 15, 12, 0, 0, 34816, 74, }, /* 1124 */ + { 150, 7, 12, 0, 0, 34816, 84, }, /* 1125 */ + { 150, 15, 12, 0, 0, 34816, 74, }, /* 1126 */ + { 116, 7, 12, 0, 0, 34816, 84, }, /* 1127 */ + { 116, 15, 12, 0, 0, 34816, 74, }, /* 1128 */ + { 116, 21, 12, 0, 0, 28672, 110, }, /* 1129 */ + { 52, 7, 12, 0, 0, 34816, 84, }, /* 1130 */ + { 52, 21, 12, 0, 0, 34816, 74, }, /* 1131 */ + { 171, 7, 12, 0, 0, 34816, 84, }, /* 1132 */ + { 61, 7, 12, 0, 0, 34816, 84, }, /* 1133 */ + { 135, 7, 12, 0, 0, 34816, 84, }, /* 1134 */ + { 135, 15, 12, 0, 0, 34816, 74, }, /* 1135 */ + { 113, 7, 12, 0, 0, 34816, 156, }, /* 1136 */ + { 113, 12, 3, 0, 0, 26624, 106, }, /* 1137 */ + { 113, 12, 3, 0, 0, 26624, 98, }, /* 1138 */ + { 113, 12, 3, 0, 0, 26624, 158, }, /* 1139 */ + { 113, 15, 12, 0, 0, 34816, 74, }, /* 1140 */ + { 113, 21, 12, 0, 0, 34816, 74, }, /* 1141 */ + { 113, 21, 12, 0, 0, 34816, 128, }, /* 1142 */ + { 130, 7, 12, 0, 0, 34816, 84, }, /* 1143 */ + { 130, 15, 12, 0, 0, 34816, 74, }, /* 1144 */ + { 130, 21, 12, 0, 0, 34816, 74, }, /* 1145 */ + { 142, 7, 12, 0, 0, 34816, 84, }, /* 1146 */ + { 142, 15, 12, 0, 0, 34816, 74, }, /* 1147 */ + { 71, 7, 12, 0, 0, 34816, 84, }, /* 1148 */ + { 71, 26, 12, 0, 0, 34816, 74, }, /* 1149 */ + { 71, 12, 3, 0, 0, 26624, 98, }, /* 1150 */ + { 71, 15, 12, 0, 0, 34816, 74, }, /* 1151 */ + { 71, 21, 12, 0, 0, 34816, 110, }, /* 1152 */ + { 71, 21, 12, 0, 0, 35288, 110, }, /* 1153 */ + { 71, 21, 12, 0, 0, 34816, 74, }, /* 1154 */ + { 53, 7, 12, 0, 0, 34816, 84, }, /* 1155 */ + { 53, 21, 12, 0, 0, 28672, 74, }, /* 1156 */ + { 53, 21, 12, 0, 0, 28672, 110, }, /* 1157 */ + { 131, 7, 12, 0, 0, 34816, 84, }, /* 1158 */ + { 131, 15, 12, 0, 0, 34816, 74, }, /* 1159 */ + { 132, 7, 12, 0, 0, 34816, 84, }, /* 1160 */ + { 132, 15, 12, 0, 0, 34816, 74, }, /* 1161 */ + { 74, 7, 12, 0, 0, 34816, 84, }, /* 1162 */ + { 74, 21, 12, 0, 0, 34816, 110, }, /* 1163 */ + { 74, 15, 12, 0, 0, 34816, 74, }, /* 1164 */ + { 57, 7, 12, 0, 0, 34816, 84, }, /* 1165 */ + { 78, 9, 12, 0, 64, 34816, 76, }, /* 1166 */ + { 78, 5, 12, 0, -64, 34816, 78, }, /* 1167 */ + { 78, 15, 12, 0, 0, 34816, 74, }, /* 1168 */ + { 86, 7, 12, 0, 0, 0, 84, }, /* 1169 */ + { 86, 7, 12, 0, 0, 0, 312, }, /* 1170 */ + { 86, 12, 3, 0, 0, 26624, 132, }, /* 1171 */ + { 86, 13, 12, 0, 0, 2048, 144, }, /* 1172 */ + { 93, 13, 12, 0, 0, 2048, 144, }, /* 1173 */ + { 93, 7, 12, 0, 0, 34816, 84, }, /* 1174 */ + { 93, 6, 12, 0, 0, 34816, 96, }, /* 1175 */ + { 93, 9, 12, 0, 32, 34816, 76, }, /* 1176 */ + { 93, 12, 3, 0, 0, 26624, 132, }, /* 1177 */ + { 93, 12, 3, 0, 0, 26624, 164, }, /* 1178 */ + { 93, 12, 3, 0, 0, 26624, 98, }, /* 1179 */ + { 93, 17, 12, 0, 0, 28672, 130, }, /* 1180 */ + { 93, 6, 12, 0, 0, 34816, 138, }, /* 1181 */ + { 93, 5, 12, 0, -32, 34816, 78, }, /* 1182 */ + { 93, 25, 12, 0, 0, 34816, 122, }, /* 1183 */ + { 5, 15, 12, 0, 0, 2048, 74, }, /* 1184 */ + { 89, 7, 12, 0, 0, 34816, 84, }, /* 1185 */ + { 89, 12, 3, 0, 0, 26624, 106, }, /* 1186 */ + { 89, 17, 12, 0, 0, 34816, 130, }, /* 1187 */ + { 5, 6, 12, 0, 0, 0, 148, }, /* 1188 */ + { 5, 21, 12, 0, 0, 28672, 74, }, /* 1189 */ + { 159, 7, 12, 0, 0, 34816, 84, }, /* 1190 */ + { 159, 15, 12, 0, 0, 34816, 74, }, /* 1191 */ + { 87, 7, 12, 0, 0, 0, 84, }, /* 1192 */ + { 87, 12, 3, 0, 0, 26624, 98, }, /* 1193 */ + { 87, 15, 12, 0, 0, 0, 74, }, /* 1194 */ + { 87, 21, 12, 0, 0, 0, 128, }, /* 1195 */ + { 91, 7, 12, 0, 0, 34816, 84, }, /* 1196 */ + { 91, 12, 3, 0, 0, 26624, 98, }, /* 1197 */ + { 91, 21, 12, 0, 0, 34816, 128, }, /* 1198 */ + { 163, 7, 12, 0, 0, 34816, 84, }, /* 1199 */ + { 163, 15, 12, 0, 0, 34816, 74, }, /* 1200 */ + { 160, 7, 12, 0, 0, 34816, 84, }, /* 1201 */ + { 134, 10, 5, 0, 0, 18432, 154, }, /* 1202 */ + { 134, 12, 3, 0, 0, 26624, 106, }, /* 1203 */ + { 134, 7, 12, 0, 0, 18432, 84, }, /* 1204 */ + { 134, 12, 3, 0, 0, 26624, 158, }, /* 1205 */ + { 134, 21, 12, 0, 0, 18432, 128, }, /* 1206 */ + { 134, 21, 12, 0, 0, 18432, 110, }, /* 1207 */ + { 134, 15, 12, 0, 0, 28672, 74, }, /* 1208 */ + { 134, 13, 12, 0, 0, 18432, 144, }, /* 1209 */ + { 134, 12, 3, 0, 0, 26624, 288, }, /* 1210 */ + { 58, 12, 3, 0, 0, 26624, 106, }, /* 1211 */ + { 58, 10, 5, 0, 0, 18432, 154, }, /* 1212 */ + { 58, 7, 12, 0, 0, 18432, 84, }, /* 1213 */ + { 58, 12, 3, 0, 0, 26624, 158, }, /* 1214 */ + { 58, 12, 3, 0, 0, 26624, 98, }, /* 1215 */ + { 58, 21, 12, 0, 0, 18432, 74, }, /* 1216 */ + { 58, 1, 4, 0, 0, 18432, 134, }, /* 1217 */ + { 58, 21, 12, 0, 0, 18432, 128, }, /* 1218 */ + { 137, 7, 12, 0, 0, 18432, 84, }, /* 1219 */ + { 137, 13, 12, 0, 0, 18432, 144, }, /* 1220 */ + { 60, 12, 3, 0, 0, 26624, 106, }, /* 1221 */ + { 60, 7, 12, 0, 0, 18432, 156, }, /* 1222 */ + { 60, 10, 5, 0, 0, 18432, 154, }, /* 1223 */ + { 60, 12, 3, 0, 0, 26624, 158, }, /* 1224 */ + { 60, 13, 12, 0, 0, 18432, 144, }, /* 1225 */ + { 60, 21, 12, 0, 0, 18432, 74, }, /* 1226 */ + { 60, 21, 12, 0, 0, 18432, 128, }, /* 1227 */ + { 70, 7, 12, 0, 0, 18432, 84, }, /* 1228 */ + { 70, 12, 3, 0, 0, 26624, 98, }, /* 1229 */ + { 70, 21, 12, 0, 0, 18432, 74, }, /* 1230 */ + { 62, 12, 3, 0, 0, 26624, 106, }, /* 1231 */ + { 62, 10, 5, 0, 0, 18432, 154, }, /* 1232 */ + { 62, 7, 12, 0, 0, 18432, 84, }, /* 1233 */ + { 62, 10, 3, 0, 0, 18432, 188, }, /* 1234 */ + { 62, 7, 4, 0, 0, 18432, 84, }, /* 1235 */ + { 62, 21, 12, 0, 0, 18432, 128, }, /* 1236 */ + { 62, 21, 12, 0, 0, 18432, 74, }, /* 1237 */ + { 62, 12, 3, 0, 0, 26624, 104, }, /* 1238 */ + { 62, 12, 3, 0, 0, 26624, 98, }, /* 1239 */ + { 62, 13, 12, 0, 0, 18432, 144, }, /* 1240 */ + { 17, 15, 12, 0, 0, 18432, 74, }, /* 1241 */ + { 68, 7, 12, 0, 0, 18432, 84, }, /* 1242 */ + { 68, 10, 5, 0, 0, 18432, 154, }, /* 1243 */ + { 68, 12, 3, 0, 0, 26624, 106, }, /* 1244 */ + { 68, 10, 3, 0, 0, 18432, 188, }, /* 1245 */ + { 68, 12, 3, 0, 0, 26624, 98, }, /* 1246 */ + { 68, 12, 3, 0, 0, 26624, 162, }, /* 1247 */ + { 68, 21, 12, 0, 0, 18432, 128, }, /* 1248 */ + { 68, 21, 12, 0, 0, 18432, 110, }, /* 1249 */ + { 68, 21, 12, 0, 0, 18432, 74, }, /* 1250 */ + { 77, 7, 12, 0, 0, 18432, 84, }, /* 1251 */ + { 77, 21, 12, 0, 0, 18432, 128, }, /* 1252 */ + { 75, 7, 12, 0, 0, 18432, 84, }, /* 1253 */ + { 75, 12, 3, 0, 0, 26624, 106, }, /* 1254 */ + { 75, 10, 5, 0, 0, 18432, 154, }, /* 1255 */ + { 75, 12, 3, 0, 0, 26624, 98, }, /* 1256 */ + { 75, 12, 3, 0, 0, 26624, 158, }, /* 1257 */ + { 75, 13, 12, 0, 0, 18432, 144, }, /* 1258 */ + { 67, 12, 3, 0, 0, 26624, 106, }, /* 1259 */ + { 67, 12, 3, 0, 0, 26836, 106, }, /* 1260 */ + { 67, 10, 5, 0, 0, 18432, 154, }, /* 1261 */ + { 67, 10, 5, 0, 0, 18644, 154, }, /* 1262 */ + { 67, 7, 12, 0, 0, 18432, 84, }, /* 1263 */ + { 107, 12, 3, 0, 0, 26836, 98, }, /* 1264 */ + { 67, 12, 3, 0, 0, 26836, 98, }, /* 1265 */ + { 67, 10, 3, 0, 0, 18432, 160, }, /* 1266 */ + { 67, 10, 3, 0, 0, 18432, 188, }, /* 1267 */ + { 67, 7, 12, 0, 0, 18432, 346, }, /* 1268 */ + { 67, 12, 3, 0, 0, 26624, 98, }, /* 1269 */ + { 98, 7, 12, 0, 0, 18432, 156, }, /* 1270 */ + { 98, 7, 12, 0, 0, 18432, 84, }, /* 1271 */ + { 98, 10, 3, 0, 0, 18432, 160, }, /* 1272 */ + { 98, 10, 5, 0, 0, 18432, 154, }, /* 1273 */ + { 98, 12, 3, 0, 0, 26624, 106, }, /* 1274 */ + { 98, 12, 3, 0, 0, 26624, 158, }, /* 1275 */ + { 98, 10, 3, 0, 0, 18432, 188, }, /* 1276 */ + { 98, 7, 4, 0, 0, 18432, 84, }, /* 1277 */ + { 98, 12, 3, 0, 0, 26624, 164, }, /* 1278 */ + { 98, 7, 12, 0, 0, 18432, 348, }, /* 1279 */ + { 98, 21, 12, 0, 0, 18432, 128, }, /* 1280 */ + { 98, 21, 12, 0, 0, 18432, 74, }, /* 1281 */ + { 98, 12, 3, 0, 0, 26624, 98, }, /* 1282 */ + { 80, 7, 12, 0, 0, 18432, 84, }, /* 1283 */ + { 80, 10, 5, 0, 0, 18432, 154, }, /* 1284 */ + { 80, 12, 3, 0, 0, 26624, 106, }, /* 1285 */ + { 80, 12, 3, 0, 0, 26624, 158, }, /* 1286 */ + { 80, 12, 3, 0, 0, 26624, 98, }, /* 1287 */ + { 80, 21, 12, 0, 0, 18432, 128, }, /* 1288 */ + { 80, 21, 12, 0, 0, 18432, 110, }, /* 1289 */ + { 80, 21, 12, 0, 0, 18432, 74, }, /* 1290 */ + { 80, 13, 12, 0, 0, 18432, 144, }, /* 1291 */ + { 80, 12, 3, 0, 0, 26624, 104, }, /* 1292 */ + { 76, 7, 12, 0, 0, 18432, 84, }, /* 1293 */ + { 76, 10, 3, 0, 0, 18432, 160, }, /* 1294 */ + { 76, 10, 5, 0, 0, 18432, 154, }, /* 1295 */ + { 76, 12, 3, 0, 0, 26624, 106, }, /* 1296 */ + { 76, 12, 3, 0, 0, 26624, 158, }, /* 1297 */ + { 76, 12, 3, 0, 0, 26624, 98, }, /* 1298 */ + { 76, 21, 12, 0, 0, 18432, 74, }, /* 1299 */ + { 76, 13, 12, 0, 0, 18432, 144, }, /* 1300 */ + { 146, 7, 12, 0, 0, 18432, 84, }, /* 1301 */ + { 146, 10, 3, 0, 0, 18432, 160, }, /* 1302 */ + { 146, 10, 5, 0, 0, 18432, 154, }, /* 1303 */ + { 146, 12, 3, 0, 0, 26624, 106, }, /* 1304 */ + { 146, 12, 3, 0, 0, 26624, 158, }, /* 1305 */ + { 146, 12, 3, 0, 0, 26624, 98, }, /* 1306 */ + { 146, 21, 12, 0, 0, 18432, 74, }, /* 1307 */ + { 146, 21, 12, 0, 0, 18432, 128, }, /* 1308 */ + { 146, 21, 12, 0, 0, 18432, 110, }, /* 1309 */ + { 146, 21, 12, 0, 0, 18432, 192, }, /* 1310 */ + { 72, 7, 12, 0, 0, 18432, 84, }, /* 1311 */ + { 72, 10, 5, 0, 0, 18432, 154, }, /* 1312 */ + { 72, 12, 3, 0, 0, 26624, 106, }, /* 1313 */ + { 72, 12, 3, 0, 0, 26624, 158, }, /* 1314 */ + { 72, 21, 12, 0, 0, 18432, 128, }, /* 1315 */ + { 72, 21, 12, 0, 0, 18432, 74, }, /* 1316 */ + { 72, 13, 12, 0, 0, 18432, 144, }, /* 1317 */ + { 63, 7, 12, 0, 0, 18432, 84, }, /* 1318 */ + { 63, 12, 3, 0, 0, 26624, 106, }, /* 1319 */ + { 63, 10, 5, 0, 0, 18432, 154, }, /* 1320 */ + { 63, 10, 3, 0, 0, 18432, 188, }, /* 1321 */ + { 63, 12, 3, 0, 0, 26624, 98, }, /* 1322 */ + { 63, 21, 12, 0, 0, 18432, 74, }, /* 1323 */ + { 63, 13, 12, 0, 0, 18432, 144, }, /* 1324 */ + { 148, 7, 12, 0, 0, 18432, 84, }, /* 1325 */ + { 148, 12, 3, 0, 0, 26624, 106, }, /* 1326 */ + { 148, 10, 5, 0, 0, 18432, 154, }, /* 1327 */ + { 148, 10, 12, 0, 0, 18432, 154, }, /* 1328 */ + { 148, 12, 3, 0, 0, 26624, 158, }, /* 1329 */ + { 148, 13, 12, 0, 0, 18432, 144, }, /* 1330 */ + { 148, 15, 12, 0, 0, 18432, 74, }, /* 1331 */ + { 148, 21, 12, 0, 0, 18432, 128, }, /* 1332 */ + { 148, 26, 12, 0, 0, 18432, 74, }, /* 1333 */ + { 84, 7, 12, 0, 0, 18432, 84, }, /* 1334 */ + { 84, 10, 5, 0, 0, 18432, 154, }, /* 1335 */ + { 84, 12, 3, 0, 0, 26624, 106, }, /* 1336 */ + { 84, 12, 3, 0, 0, 26624, 158, }, /* 1337 */ + { 84, 12, 3, 0, 0, 26624, 98, }, /* 1338 */ + { 84, 21, 12, 0, 0, 18432, 74, }, /* 1339 */ + { 147, 9, 12, 0, 32, 18432, 76, }, /* 1340 */ + { 147, 5, 12, 0, -32, 18432, 78, }, /* 1341 */ + { 147, 13, 12, 0, 0, 18432, 144, }, /* 1342 */ + { 147, 15, 12, 0, 0, 18432, 74, }, /* 1343 */ + { 147, 7, 12, 0, 0, 18432, 84, }, /* 1344 */ + { 164, 7, 12, 0, 0, 18432, 156, }, /* 1345 */ + { 164, 10, 3, 0, 0, 18432, 160, }, /* 1346 */ + { 164, 10, 5, 0, 0, 18432, 154, }, /* 1347 */ + { 164, 12, 3, 0, 0, 26624, 106, }, /* 1348 */ + { 164, 10, 3, 0, 0, 18432, 188, }, /* 1349 */ + { 164, 12, 3, 0, 0, 26624, 158, }, /* 1350 */ + { 164, 7, 4, 0, 0, 18432, 84, }, /* 1351 */ + { 164, 12, 3, 0, 0, 26624, 98, }, /* 1352 */ + { 164, 21, 12, 0, 0, 18432, 128, }, /* 1353 */ + { 164, 21, 12, 0, 0, 18432, 74, }, /* 1354 */ + { 164, 13, 12, 0, 0, 18432, 144, }, /* 1355 */ + { 88, 7, 12, 0, 0, 18432, 84, }, /* 1356 */ + { 88, 10, 5, 0, 0, 18432, 154, }, /* 1357 */ + { 88, 12, 3, 0, 0, 26624, 106, }, /* 1358 */ + { 88, 12, 3, 0, 0, 26624, 158, }, /* 1359 */ + { 88, 21, 12, 0, 0, 18432, 74, }, /* 1360 */ + { 156, 7, 12, 0, 0, 18432, 156, }, /* 1361 */ + { 156, 12, 3, 0, 0, 26624, 106, }, /* 1362 */ + { 156, 12, 3, 0, 0, 18432, 106, }, /* 1363 */ + { 156, 12, 3, 0, 0, 26624, 104, }, /* 1364 */ + { 156, 12, 3, 0, 0, 26624, 158, }, /* 1365 */ + { 156, 10, 5, 0, 0, 18432, 154, }, /* 1366 */ + { 156, 7, 12, 0, 0, 18432, 84, }, /* 1367 */ + { 156, 21, 12, 0, 0, 18432, 74, }, /* 1368 */ + { 156, 21, 12, 0, 0, 18432, 128, }, /* 1369 */ + { 155, 7, 12, 0, 0, 18432, 156, }, /* 1370 */ + { 155, 12, 3, 0, 0, 26624, 106, }, /* 1371 */ + { 155, 10, 5, 0, 0, 18432, 154, }, /* 1372 */ + { 155, 7, 4, 0, 0, 18432, 84, }, /* 1373 */ + { 155, 12, 3, 0, 0, 26624, 350, }, /* 1374 */ + { 155, 12, 3, 0, 0, 26624, 158, }, /* 1375 */ + { 155, 21, 12, 0, 0, 18432, 74, }, /* 1376 */ + { 155, 21, 12, 0, 0, 18432, 128, }, /* 1377 */ + { 155, 7, 12, 0, 0, 18432, 84, }, /* 1378 */ + { 155, 21, 12, 0, 0, 18432, 110, }, /* 1379 */ + { 145, 7, 12, 0, 0, 18432, 84, }, /* 1380 */ + { 96, 7, 12, 0, 0, 18432, 84, }, /* 1381 */ + { 96, 21, 12, 0, 0, 18432, 74, }, /* 1382 */ + { 96, 13, 12, 0, 0, 18432, 144, }, /* 1383 */ + { 152, 7, 12, 0, 0, 18432, 84, }, /* 1384 */ { 152, 10, 5, 0, 0, 18432, 154, }, /* 1385 */ - { 82, 7, 12, 0, 0, 18432, 84, }, /* 1386 */ - { 82, 12, 3, 0, 0, 26624, 106, }, /* 1387 */ - { 82, 12, 3, 0, 0, 26624, 98, }, /* 1388 */ - { 82, 12, 3, 0, 0, 26624, 158, }, /* 1389 */ - { 82, 7, 4, 0, 0, 18432, 84, }, /* 1390 */ - { 82, 13, 12, 0, 0, 18432, 144, }, /* 1391 */ - { 84, 7, 12, 0, 0, 18432, 84, }, /* 1392 */ - { 84, 10, 5, 0, 0, 18432, 154, }, /* 1393 */ - { 84, 12, 3, 0, 0, 26624, 106, }, /* 1394 */ - { 84, 12, 3, 0, 0, 26624, 158, }, /* 1395 */ - { 84, 13, 12, 0, 0, 18432, 144, }, /* 1396 */ - { 157, 7, 12, 0, 0, 18432, 84, }, /* 1397 */ - { 157, 12, 3, 0, 0, 26624, 106, }, /* 1398 */ - { 157, 10, 5, 0, 0, 18432, 154, }, /* 1399 */ - { 157, 21, 12, 0, 0, 18432, 128, }, /* 1400 */ - { 168, 12, 3, 0, 0, 26624, 106, }, /* 1401 */ - { 168, 7, 4, 0, 0, 18432, 84, }, /* 1402 */ - { 168, 10, 5, 0, 0, 18432, 154, }, /* 1403 */ - { 168, 7, 12, 0, 0, 18432, 84, }, /* 1404 */ - { 168, 10, 3, 0, 0, 18432, 188, }, /* 1405 */ - { 168, 12, 3, 0, 0, 26624, 158, }, /* 1406 */ - { 168, 21, 12, 0, 0, 18432, 128, }, /* 1407 */ - { 168, 21, 12, 0, 0, 18432, 74, }, /* 1408 */ - { 168, 13, 12, 0, 0, 18432, 144, }, /* 1409 */ - { 168, 12, 3, 0, 0, 26624, 98, }, /* 1410 */ - { 13, 15, 12, 0, 0, 18432, 74, }, /* 1411 */ - { 13, 21, 12, 0, 0, 18432, 74, }, /* 1412 */ - { 114, 7, 12, 0, 0, 18432, 84, }, /* 1413 */ - { 114, 14, 12, 0, 0, 18432, 84, }, /* 1414 */ - { 114, 21, 12, 0, 0, 18432, 110, }, /* 1415 */ - { 89, 7, 12, 0, 0, 18432, 84, }, /* 1416 */ - { 89, 21, 12, 0, 0, 18432, 74, }, /* 1417 */ - { 125, 7, 12, 0, 0, 18432, 84, }, /* 1418 */ - { 125, 1, 2, 0, 0, 18432, 346, }, /* 1419 */ - { 125, 12, 3, 0, 0, 26624, 104, }, /* 1420 */ - { 125, 12, 3, 0, 0, 26624, 98, }, /* 1421 */ - { 148, 7, 12, 0, 0, 18432, 84, }, /* 1422 */ - { 93, 7, 12, 0, 0, 18432, 84, }, /* 1423 */ - { 93, 12, 3, 0, 0, 26624, 106, }, /* 1424 */ - { 93, 10, 5, 0, 0, 18432, 154, }, /* 1425 */ - { 93, 12, 3, 0, 0, 26624, 158, }, /* 1426 */ - { 93, 13, 12, 0, 0, 18432, 144, }, /* 1427 */ - { 140, 7, 12, 0, 0, 18432, 84, }, /* 1428 */ - { 140, 13, 12, 0, 0, 18432, 144, }, /* 1429 */ - { 140, 21, 12, 0, 0, 18432, 128, }, /* 1430 */ - { 166, 7, 12, 0, 0, 18432, 84, }, /* 1431 */ - { 166, 13, 12, 0, 0, 18432, 144, }, /* 1432 */ - { 137, 7, 12, 0, 0, 18432, 84, }, /* 1433 */ - { 137, 12, 3, 0, 0, 26624, 98, }, /* 1434 */ - { 137, 21, 12, 0, 0, 18432, 128, }, /* 1435 */ - { 138, 7, 12, 0, 0, 18432, 84, }, /* 1436 */ - { 138, 12, 3, 0, 0, 26624, 98, }, /* 1437 */ - { 138, 21, 12, 0, 0, 18432, 128, }, /* 1438 */ - { 138, 21, 12, 0, 0, 18432, 110, }, /* 1439 */ - { 138, 21, 12, 0, 0, 18432, 74, }, /* 1440 */ - { 138, 26, 12, 0, 0, 18432, 74, }, /* 1441 */ - { 138, 6, 12, 0, 0, 18432, 148, }, /* 1442 */ - { 138, 6, 12, 0, 0, 18432, 138, }, /* 1443 */ - { 138, 13, 12, 0, 0, 18432, 144, }, /* 1444 */ - { 138, 15, 12, 0, 0, 18432, 74, }, /* 1445 */ - { 170, 6, 12, 0, 0, 18432, 148, }, /* 1446 */ - { 170, 7, 12, 0, 0, 18432, 84, }, /* 1447 */ - { 170, 7, 7, 0, 0, 18432, 84, }, /* 1448 */ - { 170, 6, 12, 0, 0, 18432, 94, }, /* 1449 */ - { 170, 21, 12, 0, 0, 18432, 74, }, /* 1450 */ - { 170, 21, 12, 0, 0, 18432, 128, }, /* 1451 */ - { 170, 13, 12, 0, 0, 18432, 144, }, /* 1452 */ - { 158, 9, 12, 0, 32, 18432, 76, }, /* 1453 */ - { 158, 5, 12, 0, -32, 18432, 78, }, /* 1454 */ - { 158, 15, 12, 0, 0, 18432, 74, }, /* 1455 */ - { 158, 21, 12, 0, 0, 18432, 110, }, /* 1456 */ - { 158, 21, 12, 0, 0, 18432, 128, }, /* 1457 */ - { 158, 21, 12, 0, 0, 18432, 74, }, /* 1458 */ - { 135, 7, 12, 0, 0, 18432, 84, }, /* 1459 */ - { 135, 12, 3, 0, 0, 26624, 106, }, /* 1460 */ - { 135, 10, 5, 0, 0, 18432, 154, }, /* 1461 */ - { 135, 12, 3, 0, 0, 26624, 132, }, /* 1462 */ - { 135, 6, 12, 0, 0, 18432, 94, }, /* 1463 */ - { 81, 6, 12, 0, 0, 18432, 138, }, /* 1464 */ - { 154, 6, 12, 0, 0, 18432, 138, }, /* 1465 */ - { 30, 21, 12, 0, 0, 28672, 74, }, /* 1466 */ - { 165, 12, 3, 0, 0, 26624, 354, }, /* 1467 */ - { 30, 10, 3, 0, 0, 18432, 356, }, /* 1468 */ - { 81, 7, 12, 0, 0, 18432, 304, }, /* 1469 */ - { 165, 7, 12, 0, 0, 18432, 304, }, /* 1470 */ - { 28, 6, 12, 0, 0, 18432, 94, }, /* 1471 */ - { 154, 7, 12, 0, 0, 18432, 304, }, /* 1472 */ - { 65, 7, 12, 0, 0, 18432, 84, }, /* 1473 */ - { 65, 26, 12, 0, 0, 18432, 74, }, /* 1474 */ - { 65, 12, 3, 0, 0, 26624, 104, }, /* 1475 */ - { 65, 12, 3, 0, 0, 26624, 106, }, /* 1476 */ - { 65, 21, 12, 0, 0, 18432, 128, }, /* 1477 */ - { 99, 1, 2, 0, 0, 6472, 66, }, /* 1478 */ - { 99, 13, 12, 0, 0, 10240, 144, }, /* 1479 */ - { 99, 10, 3, 0, 0, 18432, 358, }, /* 1480 */ - { 99, 10, 3, 0, 0, 18432, 306, }, /* 1481 */ - { 1, 12, 3, 0, 0, 26624, 104, }, /* 1482 */ - { 99, 25, 12, 0, 0, 28672, 360, }, /* 1483 */ - { 99, 13, 12, 0, 0, 10240, 226, }, /* 1484 */ - { 150, 26, 12, 0, 0, 18432, 74, }, /* 1485 */ - { 150, 12, 3, 0, 0, 26624, 104, }, /* 1486 */ - { 150, 21, 12, 0, 0, 18432, 110, }, /* 1487 */ - { 150, 21, 12, 0, 0, 18432, 128, }, /* 1488 */ - { 150, 21, 12, 0, 0, 18432, 74, }, /* 1489 */ - { 44, 12, 3, 0, 0, 26624, 106, }, /* 1490 */ - { 2, 6, 12, 0, 0, 18432, 92, }, /* 1491 */ - { 161, 7, 12, 0, 0, 18432, 84, }, /* 1492 */ - { 161, 12, 3, 0, 0, 26624, 98, }, /* 1493 */ - { 161, 6, 12, 0, 0, 18432, 148, }, /* 1494 */ - { 161, 6, 12, 0, 0, 18432, 138, }, /* 1495 */ - { 161, 13, 12, 0, 0, 18432, 144, }, /* 1496 */ - { 161, 26, 12, 0, 0, 18432, 74, }, /* 1497 */ - { 91, 7, 12, 0, 0, 18432, 84, }, /* 1498 */ - { 91, 12, 3, 0, 0, 26624, 98, }, /* 1499 */ - { 162, 7, 12, 0, 0, 18432, 84, }, /* 1500 */ - { 162, 12, 3, 0, 0, 26624, 98, }, /* 1501 */ - { 162, 13, 12, 0, 0, 18432, 144, }, /* 1502 */ - { 162, 23, 12, 0, 0, 14336, 74, }, /* 1503 */ - { 169, 7, 12, 0, 0, 18432, 84, }, /* 1504 */ - { 169, 6, 12, 0, 0, 18432, 148, }, /* 1505 */ - { 169, 12, 3, 0, 0, 26624, 104, }, /* 1506 */ - { 169, 13, 12, 0, 0, 18432, 144, }, /* 1507 */ - { 94, 7, 12, 0, 0, 18432, 84, }, /* 1508 */ - { 94, 12, 3, 0, 0, 26624, 98, }, /* 1509 */ - { 94, 12, 3, 0, 0, 26624, 164, }, /* 1510 */ - { 94, 13, 12, 0, 0, 18432, 144, }, /* 1511 */ - { 94, 21, 12, 0, 0, 18432, 74, }, /* 1512 */ - { 139, 7, 12, 0, 0, 34816, 84, }, /* 1513 */ - { 139, 15, 12, 0, 0, 34816, 74, }, /* 1514 */ - { 139, 12, 3, 0, 0, 26624, 98, }, /* 1515 */ - { 79, 9, 12, 0, 34, 34816, 76, }, /* 1516 */ - { 79, 5, 12, 0, -34, 34816, 78, }, /* 1517 */ - { 79, 12, 3, 0, 0, 26624, 164, }, /* 1518 */ - { 79, 12, 3, 0, 0, 26624, 106, }, /* 1519 */ - { 79, 12, 3, 0, 0, 26624, 98, }, /* 1520 */ - { 79, 6, 12, 0, 0, 34816, 148, }, /* 1521 */ - { 79, 13, 12, 0, 0, 34816, 144, }, /* 1522 */ - { 79, 21, 12, 0, 0, 34816, 74, }, /* 1523 */ - { 99, 15, 12, 0, 0, 0, 74, }, /* 1524 */ - { 99, 26, 12, 0, 0, 0, 74, }, /* 1525 */ - { 99, 23, 12, 0, 0, 0, 74, }, /* 1526 */ - { 5, 7, 12, 0, 0, 0, 254, }, /* 1527 */ - { 99, 26, 14, 0, 0, 28672, 362, }, /* 1528 */ - { 99, 26, 14, 0, 0, 28672, 364, }, /* 1529 */ - { 98, 2, 14, 0, 0, 18432, 366, }, /* 1530 */ - { 99, 26, 12, 0, 0, 18432, 368, }, /* 1531 */ - { 99, 26, 14, 0, 0, 18432, 370, }, /* 1532 */ - { 99, 26, 14, 0, 0, 18432, 364, }, /* 1533 */ - { 99, 26, 11, 0, 0, 18432, 372, }, /* 1534 */ - { 27, 26, 12, 0, 0, 18432, 74, }, /* 1535 */ - { 99, 26, 14, 0, 0, 18432, 250, }, /* 1536 */ - { 99, 26, 14, 0, 0, 18784, 364, }, /* 1537 */ - { 99, 26, 14, 0, 0, 28672, 374, }, /* 1538 */ - { 99, 26, 14, 0, 0, 28672, 376, }, /* 1539 */ - { 99, 24, 3, 0, 0, 28672, 378, }, /* 1540 */ - { 99, 26, 14, 0, 0, 28672, 380, }, /* 1541 */ - { 99, 1, 3, 0, 0, 6144, 382, }, /* 1542 */ + { 152, 12, 3, 0, 0, 26624, 106, }, /* 1386 */ + { 152, 12, 3, 0, 0, 18432, 158, }, /* 1387 */ + { 152, 21, 12, 0, 0, 18432, 128, }, /* 1388 */ + { 152, 21, 12, 0, 0, 18432, 110, }, /* 1389 */ + { 152, 21, 12, 0, 0, 18432, 74, }, /* 1390 */ + { 152, 13, 12, 0, 0, 18432, 144, }, /* 1391 */ + { 152, 15, 12, 0, 0, 18432, 74, }, /* 1392 */ + { 153, 21, 12, 0, 0, 18432, 74, }, /* 1393 */ + { 153, 21, 12, 0, 0, 18432, 110, }, /* 1394 */ + { 153, 7, 12, 0, 0, 18432, 84, }, /* 1395 */ + { 153, 12, 3, 0, 0, 26624, 106, }, /* 1396 */ + { 153, 10, 5, 0, 0, 18432, 154, }, /* 1397 */ + { 83, 7, 12, 0, 0, 18432, 84, }, /* 1398 */ + { 83, 12, 3, 0, 0, 26624, 106, }, /* 1399 */ + { 83, 12, 3, 0, 0, 26624, 98, }, /* 1400 */ + { 83, 12, 3, 0, 0, 26624, 158, }, /* 1401 */ + { 83, 7, 4, 0, 0, 18432, 84, }, /* 1402 */ + { 83, 13, 12, 0, 0, 18432, 144, }, /* 1403 */ + { 85, 7, 12, 0, 0, 18432, 84, }, /* 1404 */ + { 85, 10, 5, 0, 0, 18432, 154, }, /* 1405 */ + { 85, 12, 3, 0, 0, 26624, 106, }, /* 1406 */ + { 85, 12, 3, 0, 0, 26624, 158, }, /* 1407 */ + { 85, 13, 12, 0, 0, 18432, 144, }, /* 1408 */ + { 173, 7, 12, 0, 0, 18432, 84, }, /* 1409 */ + { 173, 6, 12, 0, 0, 18432, 96, }, /* 1410 */ + { 173, 13, 12, 0, 0, 18432, 144, }, /* 1411 */ + { 157, 7, 12, 0, 0, 18432, 84, }, /* 1412 */ + { 157, 12, 3, 0, 0, 26624, 106, }, /* 1413 */ + { 157, 10, 5, 0, 0, 18432, 154, }, /* 1414 */ + { 157, 21, 12, 0, 0, 18432, 128, }, /* 1415 */ + { 168, 12, 3, 0, 0, 26624, 106, }, /* 1416 */ + { 168, 7, 4, 0, 0, 18432, 84, }, /* 1417 */ + { 168, 10, 5, 0, 0, 18432, 154, }, /* 1418 */ + { 168, 7, 12, 0, 0, 18432, 156, }, /* 1419 */ + { 168, 10, 3, 0, 0, 18432, 188, }, /* 1420 */ + { 168, 12, 3, 0, 0, 26624, 158, }, /* 1421 */ + { 168, 21, 12, 0, 0, 18432, 128, }, /* 1422 */ + { 168, 21, 12, 0, 0, 18432, 74, }, /* 1423 */ + { 168, 13, 12, 0, 0, 18432, 144, }, /* 1424 */ + { 168, 12, 3, 0, 0, 26624, 98, }, /* 1425 */ + { 13, 15, 12, 0, 0, 18432, 74, }, /* 1426 */ + { 13, 21, 12, 0, 0, 18432, 74, }, /* 1427 */ + { 115, 7, 12, 0, 0, 18432, 84, }, /* 1428 */ + { 115, 14, 12, 0, 0, 18432, 84, }, /* 1429 */ + { 115, 21, 12, 0, 0, 18432, 110, }, /* 1430 */ + { 90, 7, 12, 0, 0, 18432, 84, }, /* 1431 */ + { 90, 21, 12, 0, 0, 18432, 74, }, /* 1432 */ + { 126, 7, 12, 0, 0, 18432, 84, }, /* 1433 */ + { 126, 1, 2, 0, 0, 18432, 344, }, /* 1434 */ + { 126, 12, 3, 0, 0, 26624, 104, }, /* 1435 */ + { 126, 12, 3, 0, 0, 26624, 98, }, /* 1436 */ + { 149, 7, 12, 0, 0, 18432, 84, }, /* 1437 */ + { 94, 7, 12, 0, 0, 18432, 84, }, /* 1438 */ + { 94, 12, 3, 0, 0, 26624, 106, }, /* 1439 */ + { 94, 10, 5, 0, 0, 18432, 154, }, /* 1440 */ + { 94, 12, 3, 0, 0, 26624, 158, }, /* 1441 */ + { 94, 13, 12, 0, 0, 18432, 144, }, /* 1442 */ + { 141, 7, 12, 0, 0, 18432, 84, }, /* 1443 */ + { 141, 13, 12, 0, 0, 18432, 144, }, /* 1444 */ + { 141, 21, 12, 0, 0, 18432, 128, }, /* 1445 */ + { 166, 7, 12, 0, 0, 18432, 84, }, /* 1446 */ + { 166, 13, 12, 0, 0, 18432, 144, }, /* 1447 */ + { 138, 7, 12, 0, 0, 18432, 84, }, /* 1448 */ + { 138, 12, 3, 0, 0, 26624, 98, }, /* 1449 */ + { 138, 21, 12, 0, 0, 18432, 128, }, /* 1450 */ + { 139, 7, 12, 0, 0, 18432, 84, }, /* 1451 */ + { 139, 12, 3, 0, 0, 26624, 98, }, /* 1452 */ + { 139, 21, 12, 0, 0, 18432, 128, }, /* 1453 */ + { 139, 21, 12, 0, 0, 18432, 110, }, /* 1454 */ + { 139, 21, 12, 0, 0, 18432, 74, }, /* 1455 */ + { 139, 26, 12, 0, 0, 18432, 74, }, /* 1456 */ + { 139, 6, 12, 0, 0, 18432, 148, }, /* 1457 */ + { 139, 6, 12, 0, 0, 18432, 138, }, /* 1458 */ + { 139, 13, 12, 0, 0, 18432, 144, }, /* 1459 */ + { 139, 15, 12, 0, 0, 18432, 74, }, /* 1460 */ + { 170, 6, 12, 0, 0, 18432, 148, }, /* 1461 */ + { 170, 7, 12, 0, 0, 18432, 84, }, /* 1462 */ + { 170, 7, 7, 0, 0, 18432, 84, }, /* 1463 */ + { 170, 6, 12, 0, 0, 18432, 94, }, /* 1464 */ + { 170, 21, 12, 0, 0, 18432, 74, }, /* 1465 */ + { 170, 21, 12, 0, 0, 18432, 128, }, /* 1466 */ + { 170, 13, 12, 0, 0, 18432, 144, }, /* 1467 */ + { 158, 9, 12, 0, 32, 18432, 76, }, /* 1468 */ + { 158, 5, 12, 0, -32, 18432, 78, }, /* 1469 */ + { 158, 15, 12, 0, 0, 18432, 74, }, /* 1470 */ + { 158, 21, 12, 0, 0, 18432, 110, }, /* 1471 */ + { 158, 21, 12, 0, 0, 18432, 128, }, /* 1472 */ + { 158, 21, 12, 0, 0, 18432, 74, }, /* 1473 */ + { 174, 9, 12, 0, 27, 18432, 76, }, /* 1474 */ + { 174, 5, 12, 0, -27, 18432, 78, }, /* 1475 */ + { 136, 7, 12, 0, 0, 18432, 84, }, /* 1476 */ + { 136, 12, 3, 0, 0, 26624, 106, }, /* 1477 */ + { 136, 10, 5, 0, 0, 18432, 154, }, /* 1478 */ + { 136, 12, 3, 0, 0, 26624, 132, }, /* 1479 */ + { 136, 6, 12, 0, 0, 18432, 94, }, /* 1480 */ + { 82, 6, 12, 0, 0, 18432, 138, }, /* 1481 */ + { 154, 6, 12, 0, 0, 18432, 138, }, /* 1482 */ + { 30, 21, 12, 0, 0, 28672, 74, }, /* 1483 */ + { 165, 12, 3, 0, 0, 26624, 352, }, /* 1484 */ + { 30, 10, 3, 0, 0, 18432, 354, }, /* 1485 */ + { 30, 6, 12, 0, 0, 18432, 356, }, /* 1486 */ + { 82, 7, 12, 0, 0, 18432, 302, }, /* 1487 */ + { 165, 7, 12, 0, 0, 18432, 302, }, /* 1488 */ + { 28, 6, 12, 0, 0, 18432, 94, }, /* 1489 */ + { 154, 7, 12, 0, 0, 18432, 302, }, /* 1490 */ + { 65, 7, 12, 0, 0, 18432, 84, }, /* 1491 */ + { 65, 26, 12, 0, 0, 18432, 74, }, /* 1492 */ + { 65, 12, 3, 0, 0, 26624, 104, }, /* 1493 */ + { 65, 12, 3, 0, 0, 26624, 106, }, /* 1494 */ + { 65, 21, 12, 0, 0, 18432, 128, }, /* 1495 */ + { 100, 1, 2, 0, 0, 6504, 66, }, /* 1496 */ + { 100, 13, 12, 0, 0, 10240, 144, }, /* 1497 */ + { 100, 10, 3, 0, 0, 18432, 358, }, /* 1498 */ + { 100, 10, 3, 0, 0, 18432, 304, }, /* 1499 */ + { 1, 12, 3, 0, 0, 26624, 104, }, /* 1500 */ + { 100, 25, 12, 0, 0, 28672, 360, }, /* 1501 */ + { 100, 13, 12, 0, 0, 10240, 226, }, /* 1502 */ + { 151, 26, 12, 0, 0, 18432, 74, }, /* 1503 */ + { 151, 12, 3, 0, 0, 26624, 104, }, /* 1504 */ + { 151, 21, 12, 0, 0, 18432, 110, }, /* 1505 */ + { 151, 21, 12, 0, 0, 18432, 128, }, /* 1506 */ + { 151, 21, 12, 0, 0, 18432, 74, }, /* 1507 */ + { 44, 12, 3, 0, 0, 26624, 106, }, /* 1508 */ + { 2, 6, 12, 0, 0, 18432, 92, }, /* 1509 */ + { 161, 7, 12, 0, 0, 18432, 84, }, /* 1510 */ + { 161, 12, 3, 0, 0, 26624, 98, }, /* 1511 */ + { 161, 6, 12, 0, 0, 18432, 148, }, /* 1512 */ + { 161, 6, 12, 0, 0, 18432, 138, }, /* 1513 */ + { 161, 13, 12, 0, 0, 18432, 144, }, /* 1514 */ + { 161, 26, 12, 0, 0, 18432, 74, }, /* 1515 */ + { 92, 7, 12, 0, 0, 18432, 84, }, /* 1516 */ + { 92, 12, 3, 0, 0, 26624, 98, }, /* 1517 */ + { 162, 7, 12, 0, 0, 18432, 84, }, /* 1518 */ + { 162, 12, 3, 0, 0, 26624, 98, }, /* 1519 */ + { 162, 13, 12, 0, 0, 18432, 144, }, /* 1520 */ + { 162, 23, 12, 0, 0, 14336, 74, }, /* 1521 */ + { 169, 7, 12, 0, 0, 18432, 84, }, /* 1522 */ + { 169, 6, 12, 0, 0, 18432, 148, }, /* 1523 */ + { 169, 12, 3, 0, 0, 26624, 104, }, /* 1524 */ + { 169, 13, 12, 0, 0, 18432, 144, }, /* 1525 */ + { 95, 7, 12, 0, 0, 18432, 84, }, /* 1526 */ + { 95, 12, 3, 0, 0, 26624, 98, }, /* 1527 */ + { 95, 12, 3, 0, 0, 26624, 164, }, /* 1528 */ + { 95, 13, 12, 0, 0, 18432, 144, }, /* 1529 */ + { 95, 21, 12, 0, 0, 18432, 74, }, /* 1530 */ + { 172, 7, 12, 0, 0, 18432, 84, }, /* 1531 */ + { 172, 12, 3, 0, 0, 26624, 106, }, /* 1532 */ + { 172, 6, 12, 0, 0, 18432, 148, }, /* 1533 */ + { 140, 7, 12, 0, 0, 34816, 84, }, /* 1534 */ + { 140, 15, 12, 0, 0, 34816, 74, }, /* 1535 */ + { 140, 12, 3, 0, 0, 26624, 98, }, /* 1536 */ + { 79, 9, 12, 0, 34, 34816, 76, }, /* 1537 */ + { 79, 5, 12, 0, -34, 34816, 78, }, /* 1538 */ + { 79, 12, 3, 0, 0, 26624, 164, }, /* 1539 */ + { 79, 12, 3, 0, 0, 26624, 106, }, /* 1540 */ + { 79, 12, 3, 0, 0, 26624, 98, }, /* 1541 */ + { 79, 6, 12, 0, 0, 34816, 148, }, /* 1542 */ + { 79, 13, 12, 0, 0, 34816, 144, }, /* 1543 */ + { 79, 21, 12, 0, 0, 34816, 74, }, /* 1544 */ + { 100, 15, 12, 0, 0, 0, 74, }, /* 1545 */ + { 100, 26, 12, 0, 0, 0, 74, }, /* 1546 */ + { 100, 23, 12, 0, 0, 0, 74, }, /* 1547 */ + { 5, 7, 12, 0, 0, 0, 256, }, /* 1548 */ + { 100, 26, 14, 0, 0, 28672, 362, }, /* 1549 */ + { 99, 2, 14, 0, 0, 18432, 364, }, /* 1550 */ + { 100, 26, 12, 0, 0, 18432, 366, }, /* 1551 */ + { 100, 26, 14, 0, 0, 18432, 368, }, /* 1552 */ + { 100, 26, 14, 0, 0, 18432, 362, }, /* 1553 */ + { 100, 26, 11, 0, 0, 18432, 370, }, /* 1554 */ + { 27, 26, 12, 0, 0, 18432, 74, }, /* 1555 */ + { 100, 26, 14, 0, 0, 18432, 252, }, /* 1556 */ + { 100, 26, 14, 0, 0, 18816, 362, }, /* 1557 */ + { 100, 26, 14, 0, 0, 28672, 372, }, /* 1558 */ + { 100, 26, 14, 0, 0, 28672, 374, }, /* 1559 */ + { 100, 24, 3, 0, 0, 28672, 376, }, /* 1560 */ + { 100, 26, 14, 0, 0, 28672, 378, }, /* 1561 */ + { 100, 1, 3, 0, 0, 6144, 380, }, /* 1562 */ }; const uint16_t PRIV(ucd_stage1)[] = { /* 17408 bytes */ @@ -2144,8 +2172,8 @@ const uint16_t PRIV(ucd_stage1)[] = { /* 17408 bytes */ 213,213,213,213,214,215,216,217,146,146,218,146,219,220,221,222, /* U+16800 */ 223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223, /* U+17000 */ 223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223, /* U+17800 */ -223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,224, /* U+18000 */ -223,223,223,223,223,223,225,225,225,226,227,146,146,146,146,146, /* U+18800 */ +223,223,223,223,223,223,223,223,223,223,223,223,223,223,223,223, /* U+18000 */ +223,223,223,223,223,223,224,224,224,225,226,227,146,146,146,146, /* U+18800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+19000 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+19800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+1A000 */ @@ -2156,10 +2184,10 @@ const uint16_t PRIV(ucd_stage1)[] = { /* 17408 bytes */ 146,146,146,146,146,146,146,146,236,237,236,236,236,238,239,240, /* U+1C800 */ 241,242,243,244,245,246,247,146,248,249,250,251,252,253,254,255, /* U+1D000 */ 256,256,256,256,257,258,146,146,146,146,146,146,146,146,259,146, /* U+1D800 */ -260,261,262,146,146,263,146,146,146,264,146,265,146,146,146,266, /* U+1E000 */ -267,268,269,270,270,270,270,270,271,272,273,270,274,275,270,270, /* U+1E800 */ -276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291, /* U+1F000 */ -292,293,294,295,296,297,236,298,281,281,281,281,281,281,281,299, /* U+1F800 */ +260,261,262,146,146,263,146,146,146,264,146,265,146,266,146,267, /* U+1E000 */ +268,269,270,271,271,271,271,271,272,273,274,271,275,276,271,271, /* U+1E800 */ +277,278,279,280,281,282,283,284,285,286,287,288,289,290,236,291, /* U+1F000 */ +292,293,294,295,296,297,236,298,282,282,282,282,282,282,282,299, /* U+1F800 */ 101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101, /* U+20000 */ 101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101, /* U+20800 */ 101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101, /* U+21000 */ @@ -2182,23 +2210,23 @@ const uint16_t PRIV(ucd_stage1)[] = { /* 17408 bytes */ 101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101, /* U+29800 */ 101,101,101,101,101,101,101,101,101,101,101,101,101,300,101,101, /* U+2A000 */ 101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101, /* U+2A800 */ -101,101,101,101,101,101,101,101,101,101,101,101,101,101,301,101, /* U+2B000 */ -302,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101, /* U+2B800 */ +101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101, /* U+2B000 */ +301,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101, /* U+2B800 */ 101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101, /* U+2C000 */ -101,101,101,101,101,101,101,101,101,101,101,101,101,303,101,101, /* U+2C800 */ +101,101,101,101,101,101,101,101,101,101,101,101,101,302,101,101, /* U+2C800 */ 101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101, /* U+2D000 */ 101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101, /* U+2D800 */ 101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101, /* U+2E000 */ -101,101,101,101,101,101,101,304,101,101,101,101,305,146,146,146, /* U+2E800 */ +101,101,101,101,101,101,101,303,101,101,101,101,304,146,146,146, /* U+2E800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+2F000 */ -129,129,129,129,306,146,146,146,146,146,146,146,146,146,146,307, /* U+2F800 */ +129,129,129,129,305,146,146,146,146,146,146,146,146,146,146,306, /* U+2F800 */ 101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101, /* U+30000 */ 101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101, /* U+30800 */ -101,101,101,101,101,101,308,101,101,101,101,101,101,101,101,101, /* U+31000 */ +101,101,101,101,101,101,307,101,101,101,101,101,101,101,101,101, /* U+31000 */ 101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101, /* U+31800 */ -101,101,101,101,101,101,101,309,146,146,146,146,146,146,146,146, /* U+32000 */ -146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+32800 */ -146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+33000 */ +101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101, /* U+32000 */ +101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101, /* U+32800 */ +101,101,101,101,101,101,101,101,308,146,146,146,146,146,146,146, /* U+33000 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+33800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+34000 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+34800 */ @@ -2223,7 +2251,7 @@ const uint16_t PRIV(ucd_stage1)[] = { /* 17408 bytes */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+3E000 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+3E800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+3F000 */ -146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,307, /* U+3F800 */ +146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,306, /* U+3F800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+40000 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+40800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+41000 */ @@ -2255,7 +2283,7 @@ const uint16_t PRIV(ucd_stage1)[] = { /* 17408 bytes */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+4E000 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+4E800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+4F000 */ -146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,307, /* U+4F800 */ +146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,306, /* U+4F800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+50000 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+50800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+51000 */ @@ -2287,7 +2315,7 @@ const uint16_t PRIV(ucd_stage1)[] = { /* 17408 bytes */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+5E000 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+5E800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+5F000 */ -146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,307, /* U+5F800 */ +146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,306, /* U+5F800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+60000 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+60800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+61000 */ @@ -2319,7 +2347,7 @@ const uint16_t PRIV(ucd_stage1)[] = { /* 17408 bytes */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+6E000 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+6E800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+6F000 */ -146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,307, /* U+6F800 */ +146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,306, /* U+6F800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+70000 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+70800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+71000 */ @@ -2351,7 +2379,7 @@ const uint16_t PRIV(ucd_stage1)[] = { /* 17408 bytes */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+7E000 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+7E800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+7F000 */ -146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,307, /* U+7F800 */ +146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,306, /* U+7F800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+80000 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+80800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+81000 */ @@ -2383,7 +2411,7 @@ const uint16_t PRIV(ucd_stage1)[] = { /* 17408 bytes */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+8E000 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+8E800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+8F000 */ -146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,307, /* U+8F800 */ +146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,306, /* U+8F800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+90000 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+90800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+91000 */ @@ -2415,7 +2443,7 @@ const uint16_t PRIV(ucd_stage1)[] = { /* 17408 bytes */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+9E000 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+9E800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+9F000 */ -146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,307, /* U+9F800 */ +146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,306, /* U+9F800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+A0000 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+A0800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+A1000 */ @@ -2447,7 +2475,7 @@ const uint16_t PRIV(ucd_stage1)[] = { /* 17408 bytes */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+AE000 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+AE800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+AF000 */ -146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,307, /* U+AF800 */ +146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,306, /* U+AF800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+B0000 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+B0800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+B1000 */ @@ -2479,7 +2507,7 @@ const uint16_t PRIV(ucd_stage1)[] = { /* 17408 bytes */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+BE000 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+BE800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+BF000 */ -146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,307, /* U+BF800 */ +146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,306, /* U+BF800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+C0000 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+C0800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+C1000 */ @@ -2511,7 +2539,7 @@ const uint16_t PRIV(ucd_stage1)[] = { /* 17408 bytes */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+CE000 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+CE800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+CF000 */ -146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,307, /* U+CF800 */ +146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,306, /* U+CF800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+D0000 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+D0800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+D1000 */ @@ -2543,9 +2571,9 @@ const uint16_t PRIV(ucd_stage1)[] = { /* 17408 bytes */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+DE000 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+DE800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+DF000 */ -146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,307, /* U+DF800 */ -310,311,312,313,311,311,311,311,311,311,311,311,311,311,311,311, /* U+E0000 */ -311,311,311,311,311,311,311,311,311,311,311,311,311,311,311,311, /* U+E0800 */ +146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,306, /* U+DF800 */ +309,310,311,312,310,310,310,310,310,310,310,310,310,310,310,310, /* U+E0000 */ +310,310,310,310,310,310,310,310,310,310,310,310,310,310,310,310, /* U+E0800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+E1000 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+E1800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+E2000 */ @@ -2575,7 +2603,7 @@ const uint16_t PRIV(ucd_stage1)[] = { /* 17408 bytes */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+EE000 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+EE800 */ 146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,146, /* U+EF000 */ -146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,307, /* U+EF800 */ +146,146,146,146,146,146,146,146,146,146,146,146,146,146,146,306, /* U+EF800 */ 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, /* U+F0000 */ 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, /* U+F0800 */ 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, /* U+F1000 */ @@ -2607,7 +2635,7 @@ const uint16_t PRIV(ucd_stage1)[] = { /* 17408 bytes */ 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, /* U+FE000 */ 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, /* U+FE800 */ 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, /* U+FF000 */ -128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,314, /* U+FF800 */ +128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,313, /* U+FF800 */ 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, /* U+100000 */ 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, /* U+100800 */ 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, /* U+101000 */ @@ -2639,10 +2667,10 @@ const uint16_t PRIV(ucd_stage1)[] = { /* 17408 bytes */ 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, /* U+10E000 */ 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, /* U+10E800 */ 128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,128, /* U+10F000 */ -128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,314, /* U+10F800 */ +128,128,128,128,128,128,128,128,128,128,128,128,128,128,128,313, /* U+10F800 */ }; -const uint16_t PRIV(ucd_stage2)[] = { /* 80640 bytes, block = 128 */ +const uint16_t PRIV(ucd_stage2)[] = { /* 80384 bytes, block = 128 */ /* block 0 */ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 1, 3, 4, 0, 0, @@ -2696,7 +2724,7 @@ const uint16_t PRIV(ucd_stage2)[] = { /* 80640 bytes, block = 128 */ /* block 5 */ 140, 70,141,140, 70, 70, 70,142,140,143,144,144,145, 70, 70, 70, - 70, 70,146, 70, 93, 70, 70, 70, 70, 70, 70, 70, 70,147,148, 70, + 70, 70,146, 70, 93, 93, 70, 70, 70, 70, 70, 70, 70,147,148, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 149,149,150,149,149,149,149,149,149,151,151,152,153,152,152,152, 154,154, 46, 46, 46, 46,151,155,151,155,155,155,151,156,151,151, @@ -2707,7 +2735,7 @@ const uint16_t PRIV(ucd_stage2)[] = { /* 80640 bytes, block = 128 */ /* block 6 */ 161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176, 174,177,176,178,176,176,176,176,176,176,176,176,176,176,176,176, -179,176,176,180,181,179,176,176,176,176,176,176,176,182,179,176, +176,176,176,179,180,181,176,176,176,176,176,176,176,182,181,176, 183,184,176,176,176,176,176,176,176,176,176,176,176,176,176,176, 176,176,185,176,176,186,176,176,176,176,176,176,176,176,176,187, 176,176,176,176,176,176,176,176,188,189,189,189,189,176,190,176, @@ -2757,419 +2785,419 @@ const uint16_t PRIV(ucd_stage2)[] = { /* 80640 bytes, block = 128 */ /* block 11 */ 291,291,291,291,291,291,291,292,290,293,294,196,196,295,295,296, 297,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298, -298,298,299,298,298,298,298,298,298,298,298,298,298,298,298,298, -300,300,300,300,300,300,300,300,300,300,300,300,300,300,301,300, -302,300,300,303,300,304,302,304,297,297,297,297,297,297,297,297, -305,305,305,305,305,305,305,305,305,305,305,305,305,305,305,305, -305,305,305,305,305,305,305,305,305,305,305,297,297,297,297,305, -305,305,305,302,306,297,297,297,297,297,297,297,297,297,297,297, +298,298,298,298,298,298,298,298,298,298,298,298,298,298,298,298, +299,299,299,299,299,299,299,299,299,299,299,299,299,299,300,299, +301,299,299,302,299,299,301,299,297,297,297,297,297,297,297,297, +303,303,303,303,303,303,303,303,303,303,303,303,303,303,303,303, +303,303,303,303,303,303,303,303,303,303,303,297,297,297,297,303, +303,303,303,301,304,297,297,297,297,297,297,297,297,297,297,297, /* block 12 */ -307,307,307,307,307,308,309,309,310,311,311,312,313,314,315,315, -316,316,316,316,316,316,316,316,316,316,316,317,318,319,319,320, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -322,321,321,321,321,321,321,321,321,321,321,323,323,323,323,323, -323,323,323,324,325,325,316,326,327,316,316,316,316,316,316,316, -328,328,328,328,328,328,328,328,328,328,311,329,329,314,321,321, -324,321,321,330,321,321,321,321,321,321,321,321,321,321,321,321, +305,305,305,305,305,306,307,307,308,309,309,310,311,312,313,313, +314,314,314,314,314,314,314,314,314,314,314,315,316,317,317,318, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +320,319,319,319,319,319,319,319,319,319,319,321,321,321,321,321, +321,321,321,322,323,323,314,324,325,314,314,314,314,314,314,314, +326,326,326,326,326,326,326,326,326,326,309,327,327,312,319,319, +322,319,319,328,319,319,319,319,319,319,319,319,319,319,319,319, /* block 13 */ -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,331,321,316,316,316,316,316,316,332,308,315,333, -333,316,316,332,316,334,334,332,332,315,333,333,333,316,321,321, -335,335,335,335,335,335,335,335,335,335,321,321,321,336,336,321, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,329,319,314,314,314,314,314,314,330,306,313,331, +331,314,314,330,314,332,332,330,330,313,331,331,331,314,319,319, +333,333,333,333,333,333,333,333,333,333,319,319,319,334,334,319, /* block 14 */ -337,337,337,338,338,338,338,338,338,338,338,339,338,339,340,341, -342,343,342,342,342,342,342,342,342,342,342,342,342,342,342,342, +335,335,335,336,336,336,336,336,336,336,336,337,336,337,338,339, +340,341,340,340,340,340,340,340,340,340,340,340,340,340,340,340, +340,340,340,340,340,340,340,340,340,340,340,340,340,340,340,340, 342,342,342,342,342,342,342,342,342,342,342,342,342,342,342,342, -344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344, -345,345,345,345,345,345,345,345,345,345,345,340,340,342,342,342, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, +343,343,343,343,343,343,343,343,343,343,343,338,338,340,340,340, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, /* block 15 */ -346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346, -346,346,346,346,346,346,346,346,346,346,346,346,346,346,346,346, -346,346,346,346,346,346,347,347,347,347,347,347,347,347,347,347, -347,346,340,340,340,340,340,340,340,340,340,340,340,340,340,340, -348,348,348,348,348,348,348,348,348,348,349,349,349,349,349,349, -349,349,349,349,349,349,349,349,349,349,349,349,349,349,349,349, -349,349,349,349,349,349,349,349,349,349,349,350,350,350,350,350, -350,350,350,350,351,351,352,353,354,355,356,297,297,357,358,358, +344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344, +344,344,344,344,344,344,344,344,344,344,344,344,344,344,344,344, +344,344,344,344,344,344,345,345,345,345,345,345,345,345,345,345, +345,344,338,338,338,338,338,338,338,338,338,338,338,338,338,338, +346,346,346,346,346,346,346,346,346,346,347,347,347,347,347,347, +347,347,347,347,347,347,347,347,347,347,347,347,347,347,347,347, +347,347,347,347,347,347,347,347,347,347,347,348,348,348,348,348, +348,348,348,348,349,349,350,351,352,353,354,297,297,355,356,356, /* block 16 */ -359,359,359,359,359,359,359,359,359,359,359,359,359,359,359,359, -359,359,359,359,359,359,360,360,361,361,362,360,360,360,360,360, -360,360,360,360,362,360,360,360,362,360,360,360,360,363,297,297, -364,364,364,364,364,364,365,366,364,366,364,364,364,366,366,297, -367,367,367,367,367,367,367,367,367,367,367,367,367,367,367,367, -367,367,367,367,367,367,367,367,367,368,368,368,297,297,369,297, -342,342,342,342,342,342,342,342,342,342,342,340,340,340,340,340, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, +357,357,357,357,357,357,357,357,357,357,357,357,357,357,357,357, +357,357,357,357,357,357,358,358,359,359,360,358,358,358,358,358, +358,358,358,358,360,358,358,358,360,358,358,358,358,361,297,297, +362,362,362,362,362,362,363,364,362,364,362,362,362,364,364,297, +365,365,365,365,365,365,365,365,365,365,365,365,365,365,365,365, +365,365,365,365,365,365,365,365,365,366,366,366,297,297,367,297, +340,340,340,340,340,340,340,340,340,340,340,338,338,338,338,338, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, /* block 17 */ -321,321,321,321,321,321,321,321,370,321,321,321,321,321,321,340, -307,307,340,340,340,340,340,316,333,333,333,333,333,333,333,333, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,334,327,327,333,327,327,327, -333,333,333,371,316,316,316,316,316,316,316,316,316,316,316,316, -372,372,308,326,326,326,326,326,326,326,333,333,333,333,333,333, -326,326,326,373,326,326,326,326,326,326,326,326,326,326,326,316, +319,319,319,319,319,319,319,319,368,319,319,319,319,319,319,319, +305,305,338,338,338,338,338,314,331,331,331,331,331,331,331,331, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,332,325,325,331,325,325,325, +331,331,331,369,314,314,314,314,314,314,314,314,314,314,314,314, +370,370,306,324,324,324,324,324,324,324,331,331,331,331,331,331, +324,324,324,371,324,324,324,324,324,324,324,324,324,324,324,314, /* block 18 */ -374,374,374,375,376,376,376,376,376,376,376,376,376,376,376,376, -376,376,376,376,376,377,377,377,377,377,377,377,377,377,377,377, -377,377,377,377,377,377,377,377,377,377,377,377,377,377,377,377, -377,377,377,377,377,377,377,377,377,377,374,375,378,376,375,375, -375,374,374,374,374,374,374,374,374,375,375,375,375,379,375,375, -376,380,381,176,176,374,374,374,377,377,377,377,377,377,377,377, -376,376,374,374,382,383,384,384,384,384,384,384,384,384,384,384, -385,386,376,376,376,376,376,376,377,377,377,377,377,377,377,377, +372,372,372,373,374,374,374,374,374,374,374,374,374,374,374,374, +374,374,374,374,374,375,375,375,375,375,375,375,375,375,375,375, +375,375,375,375,375,375,375,375,375,375,375,375,375,375,375,375, +375,375,375,375,375,375,375,375,375,375,372,373,376,374,373,373, +373,372,372,372,372,372,372,372,372,373,373,373,373,377,373,373, +374,378,379,176,176,372,372,372,375,375,375,375,375,375,375,375, +374,374,372,372,380,381,382,382,382,382,382,382,382,382,382,382, +383,384,374,374,374,374,374,374,375,375,375,375,375,375,375,375, /* block 19 */ -387,388,389,389,196,387,387,387,387,387,387,387,387,196,196,387, -387,196,196,387,387,390,390,390,390,390,390,390,390,390,390,390, -390,390,390,390,390,390,390,390,390,196,390,390,390,390,390,390, -390,196,390,196,196,196,390,390,390,390,196,196,391,387,392,389, -389,388,388,388,388,196,196,389,389,196,196,389,389,393,387,196, -196,196,196,196,196,196,196,392,196,196,196,196,390,390,196,390, -387,387,388,388,196,196,394,394,394,394,394,394,394,394,394,394, -390,390,395,395,396,396,396,396,396,396,397,395,387,398,399,196, +385,386,387,387,196,385,385,385,385,385,385,385,385,196,196,385, +385,196,196,385,385,388,388,388,388,388,388,388,388,388,388,388, +388,388,388,388,388,388,388,388,388,196,388,388,388,388,388,388, +388,196,388,196,196,196,388,388,388,388,196,196,389,385,390,387, +387,386,386,386,386,196,196,387,387,196,196,387,387,391,385,196, +196,196,196,196,196,196,196,390,196,196,196,196,388,388,196,388, +385,385,386,386,196,196,392,392,392,392,392,392,392,392,392,392, +388,388,393,393,394,394,394,394,394,394,395,393,385,396,397,196, /* block 20 */ -196,400,400,401,196,402,402,402,402,402,402,196,196,196,196,402, -402,196,196,402,402,402,402,402,402,402,402,402,402,402,402,402, -402,402,402,402,402,402,402,402,402,196,402,402,402,402,402,402, -402,196,402,402,196,402,402,196,402,402,196,196,403,196,401,401, -401,400,400,196,196,196,196,400,400,196,196,400,400,404,196,196, -196,400,196,196,196,196,196,196,196,402,402,402,402,196,402,196, -196,196,196,196,196,196,405,405,405,405,405,405,405,405,405,405, -400,406,402,402,402,400,407,196,196,196,196,196,196,196,196,196, +196,398,398,399,196,400,400,400,400,400,400,196,196,196,196,400, +400,196,196,400,400,400,400,400,400,400,400,400,400,400,400,400, +400,400,400,400,400,400,400,400,400,196,400,400,400,400,400,400, +400,196,400,400,196,400,400,196,400,400,196,196,401,196,399,399, +399,398,398,196,196,196,196,398,398,196,196,398,398,402,196,196, +196,398,196,196,196,196,196,196,196,400,400,400,400,196,400,196, +196,196,196,196,196,196,403,403,403,403,403,403,403,403,403,403, +398,404,400,400,400,398,405,196,196,196,196,196,196,196,196,196, /* block 21 */ -196,408,408,409,196,410,410,410,410,410,410,410,410,410,196,410, -410,410,196,410,410,411,411,411,411,411,411,411,411,411,411,411, -411,411,411,411,411,411,411,411,411,196,411,411,411,411,411,411, -411,196,411,411,196,411,411,411,411,411,196,196,412,410,409,409, -409,408,408,408,408,408,196,408,408,409,196,409,409,413,196,196, -410,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -410,410,408,408,196,196,414,414,414,414,414,414,414,414,414,414, -415,416,196,196,196,196,196,196,196,411,408,417,408,412,412,412, +196,406,406,407,196,408,408,408,408,408,408,408,408,408,196,408, +408,408,196,408,408,409,409,409,409,409,409,409,409,409,409,409, +409,409,409,409,409,409,409,409,409,196,409,409,409,409,409,409, +409,196,409,409,196,409,409,409,409,409,196,196,410,408,407,407, +407,406,406,406,406,406,196,406,406,407,196,407,407,411,196,196, +408,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, +408,408,406,406,196,196,412,412,412,412,412,412,412,412,412,412, +413,414,196,196,196,196,196,196,196,409,406,415,406,410,410,410, /* block 22 */ -196,418,419,419,196,420,420,420,420,420,420,420,420,196,196,420, -420,196,196,420,420,421,421,421,421,421,421,421,421,421,421,421, -421,421,421,421,421,421,421,421,421,196,421,421,421,421,421,421, -421,196,421,421,196,421,421,421,421,421,196,196,422,420,423,418, -419,418,418,418,418,196,196,419,419,196,196,419,419,424,196,196, -196,196,196,196,196,425,418,423,196,196,196,196,421,421,196,421, -420,420,418,418,196,196,426,426,426,426,426,426,426,426,426,426, -427,421,428,428,428,428,428,428,196,196,196,196,196,196,196,196, +196,416,417,417,196,418,418,418,418,418,418,418,418,196,196,418, +418,196,196,418,418,419,419,419,419,419,419,419,419,419,419,419, +419,419,419,419,419,419,419,419,419,196,419,419,419,419,419,419, +419,196,419,419,196,419,419,419,419,419,196,196,420,418,421,416, +417,416,416,416,416,196,196,417,417,196,196,417,417,422,196,196, +196,196,196,196,196,423,416,421,196,196,196,196,419,419,196,419, +418,418,416,416,196,196,424,424,424,424,424,424,424,424,424,424, +425,419,426,426,426,426,426,426,196,196,196,196,196,196,196,196, /* block 23 */ -196,196,429,430,196,430,430,430,430,430,430,196,196,196,430,430, -430,196,430,430,430,430,196,196,196,430,430,196,430,196,430,430, -196,196,196,430,430,196,196,196,430,430,430,196,196,196,430,430, -430,430,430,430,430,430,430,430,430,430,196,196,196,196,431,432, -429,432,432,196,196,196,432,432,432,196,432,432,432,433,196,196, -430,196,196,196,196,196,196,431,196,196,196,196,196,196,196,196, -196,196,196,196,196,196,434,434,434,434,434,434,434,434,434,434, -435,435,435,436,437,437,437,437,437,438,437,196,196,196,196,196, +196,196,427,428,196,428,428,428,428,428,428,196,196,196,428,428, +428,196,428,428,428,428,196,196,196,428,428,196,428,196,428,428, +196,196,196,428,428,196,196,196,428,428,428,196,196,196,428,428, +428,428,428,428,428,428,428,428,428,428,196,196,196,196,429,430, +427,430,430,196,196,196,430,430,430,196,430,430,430,431,196,196, +428,196,196,196,196,196,196,429,196,196,196,196,196,196,196,196, +196,196,196,196,196,196,432,432,432,432,432,432,432,432,432,432, +433,433,433,434,435,435,435,435,435,436,435,196,196,196,196,196, /* block 24 */ -439,440,440,440,439,441,441,441,441,441,441,441,441,196,441,441, -441,196,441,441,441,442,442,442,442,442,442,442,442,442,442,442, -442,442,442,442,442,442,442,442,442,196,442,442,442,442,442,442, -442,442,442,442,442,442,442,442,442,442,196,196,443,441,439,439, -439,440,440,440,440,196,439,439,439,196,439,439,439,444,196,196, -196,196,196,196,196,439,439,196,442,442,442,196,196,441,196,196, -441,441,439,439,196,196,445,445,445,445,445,445,445,445,445,445, -196,196,196,196,196,196,196,446,447,447,447,447,447,447,447,448, +437,438,438,438,437,439,439,439,439,439,439,439,439,196,439,439, +439,196,439,439,439,440,440,440,440,440,440,440,440,440,440,440, +440,440,440,440,440,440,440,440,440,196,440,440,440,440,440,440, +440,440,440,440,440,440,440,440,440,440,196,196,441,439,437,437, +437,438,438,438,438,196,437,437,437,196,437,437,437,442,196,196, +196,196,196,196,196,437,437,196,440,440,440,196,439,439,196,196, +439,439,437,437,196,196,443,443,443,443,443,443,443,443,443,443, +196,196,196,196,196,196,196,444,445,445,445,445,445,445,445,446, /* block 25 */ -449,450,451,451,452,449,449,449,449,449,449,449,449,196,449,449, -449,196,449,449,449,449,449,449,449,449,449,449,449,449,449,449, -449,449,449,449,449,449,449,449,449,196,449,449,449,449,449,449, -449,449,449,449,196,449,449,449,449,449,196,196,453,449,451,454, -455,451,455,451,451,196,454,455,455,196,455,455,450,456,196,196, -196,196,196,196,196,455,455,196,196,196,196,196,196,449,449,196, -449,449,450,450,196,196,457,457,457,457,457,457,457,457,457,457, -196,449,449,451,196,196,196,196,196,196,196,196,196,196,196,196, +447,448,449,449,450,447,447,447,447,447,447,447,447,196,447,447, +447,196,447,447,447,447,447,447,447,447,447,447,447,447,447,447, +447,447,447,447,447,447,447,447,447,196,447,447,447,447,447,447, +447,447,447,447,196,447,447,447,447,447,196,196,451,447,449,452, +453,449,453,449,449,196,452,453,453,196,453,453,448,454,196,196, +196,196,196,196,196,453,453,196,196,196,196,196,447,447,447,196, +447,447,448,448,196,196,455,455,455,455,455,455,455,455,455,455, +196,447,447,449,196,196,196,196,196,196,196,196,196,196,196,196, /* block 26 */ -458,458,459,459,460,460,460,460,460,460,460,460,460,196,460,460, -460,196,460,460,460,461,461,461,461,461,461,461,461,461,461,461, -461,461,461,461,461,461,461,461,461,461,461,461,461,461,461,461, -461,461,461,461,461,461,461,461,461,461,461,462,462,460,463,459, -459,458,458,458,458,196,459,459,459,196,459,459,459,462,464,465, -196,196,196,196,460,460,460,463,466,466,466,466,466,466,466,460, -460,460,458,458,196,196,467,467,467,467,467,467,467,467,467,467, -466,466,466,466,466,466,466,466,466,465,460,460,460,460,460,460, +456,456,457,457,458,458,458,458,458,458,458,458,458,196,458,458, +458,196,458,458,458,459,459,459,459,459,459,459,459,459,459,459, +459,459,459,459,459,459,459,459,459,459,459,459,459,459,459,459, +459,459,459,459,459,459,459,459,459,459,459,460,460,458,461,457, +457,456,456,456,456,196,457,457,457,196,457,457,457,460,462,463, +196,196,196,196,458,458,458,461,464,464,464,464,464,464,464,458, +458,458,456,456,196,196,465,465,465,465,465,465,465,465,465,465, +464,464,464,464,464,464,464,464,464,463,458,458,458,458,458,458, /* block 27 */ -196,468,469,469,196,470,470,470,470,470,470,470,470,470,470,470, -470,470,470,470,470,470,470,196,196,196,470,470,470,470,470,470, -470,470,470,470,470,470,470,470,470,470,470,470,470,470,470,470, -470,470,196,470,470,470,470,470,470,470,470,470,196,470,196,196, -470,470,470,470,470,470,470,196,196,196,471,196,196,196,196,472, -469,469,468,468,468,196,468,196,469,469,469,469,469,469,469,472, -196,196,196,196,196,196,473,473,473,473,473,473,473,473,473,473, -196,196,469,469,474,196,196,196,196,196,196,196,196,196,196,196, +196,466,467,467,196,468,468,468,468,468,468,468,468,468,468,468, +468,468,468,468,468,468,468,196,196,196,468,468,468,468,468,468, +468,468,468,468,468,468,468,468,468,468,468,468,468,468,468,468, +468,468,196,468,468,468,468,468,468,468,468,468,196,468,196,196, +468,468,468,468,468,468,468,196,196,196,469,196,196,196,196,470, +467,467,466,466,466,196,466,196,467,467,467,467,467,467,467,470, +196,196,196,196,196,196,471,471,471,471,471,471,471,471,471,471, +196,196,467,467,472,196,196,196,196,196,196,196,196,196,196,196, /* block 28 */ -196,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475, -475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475, -475,475,475,475,475,475,475,475,475,475,475,475,475,475,475,475, -475,476,475,477,476,476,476,476,476,476,478,196,196,196,196,479, -480,480,480,480,480,475,481,482,482,482,482,482,482,476,482,483, -484,484,484,484,484,484,484,484,484,484,485,485,196,196,196,196, +196,473,473,473,473,473,473,473,473,473,473,473,473,473,473,473, +473,473,473,473,473,473,473,473,473,473,473,473,473,473,473,473, +473,473,473,473,473,473,473,473,473,473,473,473,473,473,473,473, +473,474,473,475,474,474,474,474,474,474,476,196,196,196,196,477, +478,478,478,478,478,473,479,480,480,480,480,480,480,474,480,481, +482,482,482,482,482,482,482,482,482,482,483,483,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 29 */ -196,486,486,196,486,196,486,486,486,486,486,196,486,486,486,486, -486,486,486,486,486,486,486,486,486,486,486,486,486,486,486,486, -486,486,486,486,196,486,196,486,486,486,486,486,486,486,486,486, -486,487,486,488,487,487,487,487,487,487,489,487,487,486,196,196, -490,490,490,490,490,196,491,196,492,492,492,492,492,487,493,196, -494,494,494,494,494,494,494,494,494,494,196,196,486,486,486,486, +196,484,484,196,484,196,484,484,484,484,484,196,484,484,484,484, +484,484,484,484,484,484,484,484,484,484,484,484,484,484,484,484, +484,484,484,484,196,484,196,484,484,484,484,484,484,484,484,484, +484,485,484,486,485,485,485,485,485,485,487,485,485,484,196,196, +488,488,488,488,488,196,489,196,490,490,490,490,490,485,491,196, +492,492,492,492,492,492,492,492,492,492,196,196,484,484,484,484, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 30 */ -495,496,496,496,497,497,497,497,498,497,497,497,497,498,498,498, -498,498,498,496,497,496,496,496,499,499,496,496,496,496,496,496, -500,500,500,500,500,500,500,500,500,500,501,501,501,501,501,501, -501,501,501,501,496,499,496,499,496,499,502,503,502,503,504,504, -495,495,495,495,495,495,495,495,196,495,495,495,495,495,495,495, -495,495,495,495,495,495,495,495,495,495,495,495,495,495,495,495, -495,495,495,495,495,495,495,495,495,495,495,495,495,196,196,196, -196,505,505,505,505,505,505,506,505,506,505,505,505,505,505,507, +493,494,494,494,495,495,495,495,496,495,495,495,495,496,496,496, +496,496,496,494,495,494,494,494,497,497,494,494,494,494,494,494, +498,498,498,498,498,498,498,498,498,498,499,499,499,499,499,499, +499,499,499,499,494,497,494,497,494,497,500,501,500,501,502,502, +493,493,493,493,493,493,493,493,196,493,493,493,493,493,493,493, +493,493,493,493,493,493,493,493,493,493,493,493,493,493,493,493, +493,493,493,493,493,493,493,493,493,493,493,493,493,196,196,196, +196,503,503,503,503,503,503,504,503,504,503,503,503,503,503,505, /* block 31 */ -505,505,508,508,509,497,499,499,495,495,495,495,495,505,505,505, -505,505,505,505,505,505,505,505,196,505,505,505,505,505,505,505, -505,505,505,505,505,505,505,505,505,505,505,505,505,505,505,505, -505,505,505,505,505,505,505,505,505,505,505,505,505,196,496,496, -496,496,496,496,496,496,499,496,496,496,496,496,496,196,496,496, -497,497,497,497,497,510,510,510,510,497,497,196,196,196,196,196, +503,503,506,506,507,495,497,497,493,493,493,493,493,503,503,503, +503,503,503,503,503,503,503,503,196,503,503,503,503,503,503,503, +503,503,503,503,503,503,503,503,503,503,503,503,503,503,503,503, +503,503,503,503,503,503,503,503,503,503,503,503,503,196,494,494, +494,494,494,494,494,494,497,494,494,494,494,494,494,196,494,494, +495,495,495,495,495,508,508,508,508,495,495,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 32 */ -511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511, -511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511, -511,511,511,511,511,511,511,511,511,511,511,512,512,513,513,513, -513,514,513,513,513,513,513,515,512,516,516,514,514,513,513,511, -517,517,517,517,517,517,517,517,517,517,518,518,519,519,519,519, -511,511,511,511,511,511,514,514,513,513,511,511,511,511,513,513, -513,511,512,520,520,511,511,512,512,520,520,520,520,520,511,511, -511,513,513,513,513,511,511,511,511,511,511,511,511,511,511,511, +509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509, +509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509, +509,509,509,509,509,509,509,509,509,509,509,510,510,511,511,511, +511,512,511,511,511,511,511,513,510,514,514,512,512,511,511,509, +515,515,515,515,515,515,515,515,515,515,516,516,517,517,517,517, +509,509,509,509,509,509,512,512,511,511,509,509,509,509,511,511, +511,509,510,518,518,509,509,510,510,518,518,518,518,518,509,509, +509,511,511,511,511,509,509,509,509,509,509,509,509,509,509,509, /* block 33 */ -511,511,513,512,514,513,513,520,520,520,520,520,520,521,511,520, -522,522,522,522,522,522,522,522,522,522,520,520,512,513,523,523, -524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524, -524,524,524,524,524,524,524,524,524,524,524,524,524,524,524,524, -524,524,524,524,524,524,196,524,196,196,196,196,196,524,196,196, -525,525,525,525,525,525,525,525,525,525,525,525,525,525,525,525, -525,525,525,525,525,525,525,525,525,525,525,525,525,525,525,525, -525,525,525,525,525,525,525,525,525,525,525,526,527,525,525,525, +509,509,511,510,512,511,511,518,518,518,518,518,518,519,509,518, +520,520,520,520,520,520,520,520,520,520,518,518,510,511,521,521, +522,522,522,522,522,522,522,522,522,522,522,522,522,522,522,522, +522,522,522,522,522,522,522,522,522,522,522,522,522,522,522,522, +522,522,522,522,522,522,196,522,196,196,196,196,196,522,196,196, +523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523, +523,523,523,523,523,523,523,523,523,523,523,523,523,523,523,523, +523,523,523,523,523,523,523,523,523,523,523,524,525,523,523,523, /* block 34 */ -528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528, -528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528, -528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528, -528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528, -528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528, -528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,529, -530,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531, -531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531, +526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526, +526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526, +526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526, +526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526, +526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526, +526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,527, +528,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529, +529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529, /* block 35 */ -531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531, -531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531, -531,531,531,531,531,531,531,531,532,532,532,532,532,532,532,532, -532,532,532,532,532,532,532,532,532,532,532,532,532,532,532,532, -532,532,532,532,532,532,532,532,532,532,532,532,532,532,532,532, -532,532,532,532,532,532,532,532,532,532,532,532,532,532,532,532, -532,532,532,532,532,532,532,532,532,532,532,532,532,532,532,532, -532,532,532,532,532,532,532,532,532,532,532,532,532,532,532,532, +529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529, +529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529, +529,529,529,529,529,529,529,529,530,530,530,530,530,530,530,530, +530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530, +530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530, +530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530, +530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530, +530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530, /* block 36 */ -533,533,533,533,533,533,533,533,533,533,533,533,533,533,533,533, -533,533,533,533,533,533,533,533,533,533,533,533,533,533,533,533, -533,533,533,533,533,533,533,533,533,533,533,533,533,533,533,533, -533,533,533,533,533,533,533,533,533,533,533,533,533,533,533,533, -533,533,533,533,533,533,533,533,533,196,533,533,533,533,196,196, -533,533,533,533,533,533,533,196,533,196,533,533,533,533,196,196, -533,533,533,533,533,533,533,533,533,533,533,533,533,533,533,533, -533,533,533,533,533,533,533,533,533,533,533,533,533,533,533,533, +531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531, +531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531, +531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531, +531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531, +531,531,531,531,531,531,531,531,531,196,531,531,531,531,196,196, +531,531,531,531,531,531,531,196,531,196,531,531,531,531,196,196, +531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531, +531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531, /* block 37 */ -533,533,533,533,533,533,533,533,533,196,533,533,533,533,196,196, -533,533,533,533,533,533,533,533,533,533,533,533,533,533,533,533, -533,533,533,533,533,533,533,533,533,533,533,533,533,533,533,533, -533,196,533,533,533,533,196,196,533,533,533,533,533,533,533,196, -533,196,533,533,533,533,196,196,533,533,533,533,533,533,533,533, -533,533,533,533,533,533,533,196,533,533,533,533,533,533,533,533, -533,533,533,533,533,533,533,533,533,533,533,533,533,533,533,533, -533,533,533,533,533,533,533,533,533,533,533,533,533,533,533,533, +531,531,531,531,531,531,531,531,531,196,531,531,531,531,196,196, +531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531, +531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531, +531,196,531,531,531,531,196,196,531,531,531,531,531,531,531,196, +531,196,531,531,531,531,196,196,531,531,531,531,531,531,531,531, +531,531,531,531,531,531,531,196,531,531,531,531,531,531,531,531, +531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531, +531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531, /* block 38 */ -533,533,533,533,533,533,533,533,533,533,533,533,533,533,533,533, -533,196,533,533,533,533,196,196,533,533,533,533,533,533,533,533, -533,533,533,533,533,533,533,533,533,533,533,533,533,533,533,533, -533,533,533,533,533,533,533,533,533,533,533,533,533,533,533,533, -533,533,533,533,533,533,533,533,533,533,533,533,533,533,533,533, -533,533,533,533,533,533,533,533,533,533,533,196,196,534,534,534, -535,536,537,536,536,536,536,537,537,538,538,538,538,538,538,538, -538,538,539,539,539,539,539,539,539,539,539,539,539,196,196,196, +531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531, +531,196,531,531,531,531,196,196,531,531,531,531,531,531,531,531, +531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531, +531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531, +531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531, +531,531,531,531,531,531,531,531,531,531,531,196,196,532,532,532, +533,534,535,534,534,534,534,535,535,536,536,536,536,536,536,536, +536,536,537,537,537,537,537,537,537,537,537,537,537,196,196,196, /* block 39 */ -533,533,533,533,533,533,533,533,533,533,533,533,533,533,533,533, -540,540,540,540,540,540,540,540,540,540,196,196,196,196,196,196, -541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541, -541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541, -541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541, -541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541, -541,541,541,541,541,541,541,541,541,541,541,541,541,541,541,541, -542,542,542,542,542,542,196,196,543,543,543,543,543,543,196,196, +531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531, +538,538,538,538,538,538,538,538,538,538,196,196,196,196,196,196, +539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539, +539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539, +539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539, +539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539, +539,539,539,539,539,539,539,539,539,539,539,539,539,539,539,539, +540,540,540,540,540,540,196,196,541,541,541,541,541,541,196,196, /* block 40 */ -544,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545, -545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545, -545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545, -545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545, -545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545, -545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545, -545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545, -545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545, +542,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543, +543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543, +543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543, +543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543, +543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543, +543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543, +543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543, +543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543, /* block 41 */ -545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545, -545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545, -545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545, -545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545, -545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545, -545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545, -545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545, -545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545, +543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543, +543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543, +543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543, +543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543, +543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543, +543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543, +543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543, +543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543, /* block 42 */ -545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545, -545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545, -545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545, -545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545, -545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545, -545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545, -545,545,545,545,545,545,545,545,545,545,545,545,545,546,547,545, -545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545, +543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543, +543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543, +543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543, +543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543, +543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543, +543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543, +543,543,543,543,543,543,543,543,543,543,543,543,543,544,545,543, +543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543, /* block 43 */ -548,549,549,549,549,549,549,549,549,549,549,549,549,549,549,549, -549,549,549,549,549,549,549,549,549,549,549,550,551,196,196,196, -552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552, -552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552, -552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552, -552,552,552,552,552,552,552,552,552,552,552,552,552,552,552,552, -552,552,552,552,552,552,552,552,552,552,552,553,553,553,554,554, -554,552,552,552,552,552,552,552,552,196,196,196,196,196,196,196, +546,547,547,547,547,547,547,547,547,547,547,547,547,547,547,547, +547,547,547,547,547,547,547,547,547,547,547,548,549,196,196,196, +550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550, +550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550, +550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550, +550,550,550,550,550,550,550,550,550,550,550,550,550,550,550,550, +550,550,550,550,550,550,550,550,550,550,550,551,551,551,552,552, +552,550,550,550,550,550,550,550,550,196,196,196,196,196,196,196, /* block 44 */ -555,555,555,555,555,555,555,555,555,555,555,555,555,555,555,555, -555,555,556,556,557,558,196,196,196,196,196,196,196,196,196,555, -559,559,559,559,559,559,559,559,559,559,559,559,559,559,559,559, -559,559,560,560,561,562,562,196,196,196,196,196,196,196,196,196, -563,563,563,563,563,563,563,563,563,563,563,563,563,563,563,563, -563,563,564,564,196,196,196,196,196,196,196,196,196,196,196,196, -565,565,565,565,565,565,565,565,565,565,565,565,565,196,565,565, -565,196,566,566,196,196,196,196,196,196,196,196,196,196,196,196, +553,553,553,553,553,553,553,553,553,553,553,553,553,553,553,553, +553,553,554,554,555,556,196,196,196,196,196,196,196,196,196,553, +557,557,557,557,557,557,557,557,557,557,557,557,557,557,557,557, +557,557,558,558,559,560,560,196,196,196,196,196,196,196,196,196, +561,561,561,561,561,561,561,561,561,561,561,561,561,561,561,561, +561,561,562,562,196,196,196,196,196,196,196,196,196,196,196,196, +563,563,563,563,563,563,563,563,563,563,563,563,563,196,563,563, +563,196,564,564,196,196,196,196,196,196,196,196,196,196,196,196, /* block 45 */ -567,567,567,567,567,567,567,567,567,567,567,567,567,567,567,567, -567,567,567,567,567,567,567,567,567,567,567,567,567,567,567,567, -567,567,567,568,568,567,567,567,567,567,567,567,567,567,567,567, -567,567,567,567,569,569,570,571,571,571,571,571,571,571,570,570, -570,570,570,570,570,570,571,570,570,572,572,572,572,572,572,572, -572,572,573,572,574,574,575,576,577,577,575,578,567,572,196,196, +565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565, +565,565,565,565,565,565,565,565,565,565,565,565,565,565,565,565, +565,565,565,566,566,565,565,565,565,565,565,565,565,565,565,565, +565,565,565,565,567,567,568,569,569,569,569,569,569,569,568,568, +568,568,568,568,568,568,569,568,568,570,570,570,570,570,570,570, +570,570,571,570,572,572,573,574,575,575,573,576,577,570,196,196, +578,578,578,578,578,578,578,578,578,578,196,196,196,196,196,196, 579,579,579,579,579,579,579,579,579,579,196,196,196,196,196,196, -580,580,580,580,580,580,580,580,580,580,196,196,196,196,196,196, /* block 46 */ -581,581,582,583,584,582,585,581,584,586,587,588,588,588,589,588, -590,590,590,590,590,590,590,590,590,590,196,196,196,196,196,196, -591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591, -591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591, -591,591,591,592,591,591,591,591,591,591,591,591,591,591,591,591, -591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591, -591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591, -591,591,591,591,591,591,591,591,591,196,196,196,196,196,196,196, +580,580,581,582,583,581,584,580,583,585,586,587,587,587,588,587, +589,589,589,589,589,589,589,589,589,589,196,196,196,196,196,196, +590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590, +590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590, +590,590,590,591,590,590,590,590,590,590,590,590,590,590,590,590, +590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590, +590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590, +590,590,590,590,590,590,590,590,590,196,196,196,196,196,196,196, /* block 47 */ -591,591,591,591,591,593,593,591,591,591,591,591,591,591,591,591, -591,591,591,591,591,591,591,591,591,591,591,591,591,591,591,591, -591,591,591,591,591,591,591,591,591,594,591,196,196,196,196,196, -545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545, -545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545, -545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545, -545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545, -545,545,545,545,545,545,196,196,196,196,196,196,196,196,196,196, +590,590,590,590,590,592,592,590,590,590,590,590,590,590,590,590, +590,590,590,590,590,590,590,590,590,590,590,590,590,590,590,590, +590,590,590,590,590,590,590,590,590,593,590,196,196,196,196,196, +543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543, +543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543, +543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543, +543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543, +543,543,543,543,543,543,196,196,196,196,196,196,196,196,196,196, /* block 48 */ -595,595,595,595,595,595,595,595,595,595,595,595,595,595,595,595, -595,595,595,595,595,595,595,595,595,595,595,595,595,595,595,196, -596,596,596,597,597,597,597,596,596,597,597,597,196,196,196,196, -597,597,596,597,597,597,597,597,597,598,598,598,196,196,196,196, -599,196,196,196,600,600,601,601,601,601,601,601,601,601,601,601, -602,602,602,602,602,602,602,602,602,602,602,602,602,602,602,602, -602,602,602,602,602,602,602,602,602,602,602,602,602,602,196,196, -602,602,602,602,602,196,196,196,196,196,196,196,196,196,196,196, +594,594,594,594,594,594,594,594,594,594,594,594,594,594,594,594, +594,594,594,594,594,594,594,594,594,594,594,594,594,594,594,196, +595,595,595,596,596,596,596,595,595,596,596,596,196,196,196,196, +596,596,595,596,596,596,596,596,596,597,597,597,196,196,196,196, +598,196,196,196,599,599,600,600,600,600,600,600,600,600,600,600, +601,601,601,601,601,601,601,601,601,601,601,601,601,601,601,601, +601,601,601,601,601,601,601,601,601,601,601,601,601,601,196,196, +601,601,601,601,601,196,196,196,196,196,196,196,196,196,196,196, /* block 49 */ -603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603, -603,603,603,603,603,603,603,603,603,603,603,603,603,603,603,603, -603,603,603,603,603,603,603,603,603,603,603,603,196,196,196,196, -603,603,603,603,603,604,604,604,603,603,604,603,603,603,603,603, -603,603,603,603,603,603,603,603,603,603,196,196,196,196,196,196, -605,605,605,605,605,605,605,605,605,605,606,196,196,196,607,607, -608,608,608,608,608,608,608,608,608,608,608,608,608,608,608,608, -608,608,608,608,608,608,608,608,608,608,608,608,608,608,608,608, +602,602,602,602,602,602,602,602,602,602,602,602,602,602,602,602, +602,602,602,602,602,602,602,602,602,602,602,602,602,602,602,602, +602,602,602,602,602,602,602,602,602,602,602,602,196,196,196,196, +602,602,602,602,602,603,603,603,602,602,603,602,602,602,602,602, +602,602,602,602,602,602,602,602,602,602,196,196,196,196,196,196, +604,604,604,604,604,604,604,604,604,604,605,196,196,196,606,606, +607,607,607,607,607,607,607,607,607,607,607,607,607,607,607,607, +607,607,607,607,607,607,607,607,607,607,607,607,607,607,607,607, /* block 50 */ -609,609,609,609,609,609,609,609,609,609,609,609,609,609,609,609, -609,609,609,609,609,609,609,610,610,611,611,610,196,196,612,612, -613,613,613,613,613,613,613,613,613,613,613,613,613,613,613,613, -613,613,613,613,613,613,613,613,613,613,613,613,613,613,613,613, -613,613,613,613,613,613,613,613,613,613,613,613,613,613,613,613, -613,613,613,613,613,614,615,614,615,615,615,615,615,615,615,196, -616,617,615,617,617,615,615,615,615,615,615,615,615,614,614,614, -614,614,614,615,615,618,618,618,618,618,618,618,618,196,196,618, +608,608,608,608,608,608,608,608,608,608,608,608,608,608,608,608, +608,608,608,608,608,608,608,609,609,610,610,609,196,196,611,611, +612,612,612,612,612,612,612,612,612,612,612,612,612,612,612,612, +612,612,612,612,612,612,612,612,612,612,612,612,612,612,612,612, +612,612,612,612,612,612,612,612,612,612,612,612,612,612,612,612, +612,612,612,612,612,613,614,613,614,614,614,614,614,614,614,196, +615,616,614,616,616,614,614,614,614,614,614,614,614,613,613,613, +613,613,613,614,614,617,617,617,617,617,617,617,617,196,196,617, /* block 51 */ -619,619,619,619,619,619,619,619,619,619,196,196,196,196,196,196, -619,619,619,619,619,619,619,619,619,619,196,196,196,196,196,196, -620,620,620,620,620,620,620,621,622,622,622,622,620,620,196,196, -176,176,176,176,176,176,176,176,176,176,176,176,176,176,623,624, -624,176,176,176,176,176,176,176,176,176,176,176,624,624,624,196, -196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, +618,618,618,618,618,618,618,618,618,618,196,196,196,196,196,196, +618,618,618,618,618,618,618,618,618,618,196,196,196,196,196,196, +619,619,619,619,619,619,619,620,621,621,621,621,619,619,196,196, +176,176,176,176,176,176,176,176,176,176,176,176,176,176,622,623, +623,176,176,176,176,176,176,176,176,176,176,176,623,623,623,176, +176,176,176,176,176,176,176,176,176,176,176,176,176,176,196,196, +176,176,176,176,176,176,176,176,176,176,176,176,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 52 */ -625,625,625,625,626,627,627,627,627,627,627,627,627,627,627,627, +624,624,624,624,625,626,626,626,626,626,626,627,627,626,626,626, +626,626,626,627,627,627,627,627,627,627,627,627,627,627,627,627, 627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627, -627,627,627,627,627,627,627,627,627,627,627,627,627,627,627,627, -627,627,627,627,628,629,625,625,625,625,625,629,625,629,626,626, -626,626,625,629,630,627,627,627,627,627,627,627,627,196,631,631, +627,627,627,627,628,629,624,624,624,624,624,629,624,629,625,625, +625,625,624,629,630,627,627,627,627,627,627,627,627,196,631,631, 632,632,632,632,632,632,632,632,632,632,631,631,633,634,631,631, 633,635,635,635,635,635,635,635,635,635,635,628,628,628,628,628, 628,628,628,628,635,635,635,635,635,635,635,635,635,631,631,631, @@ -3178,51 +3206,51 @@ const uint16_t PRIV(ucd_stage2)[] = { /* 80640 bytes, block = 128 */ 636,636,637,638,638,638,638,638,638,638,638,638,638,638,638,638, 638,638,638,638,638,638,638,638,638,638,638,638,638,638,638,638, 638,637,636,636,636,636,637,637,636,636,639,640,636,636,638,638, -641,641,641,641,641,641,641,641,641,641,638,638,638,638,638,638, -642,642,642,642,642,642,642,642,642,642,642,642,642,642,642,642, -642,642,642,642,642,642,642,642,642,642,642,642,642,642,642,642, -642,642,642,642,642,642,643,644,645,645,644,644,644,645,644,645, -645,645,646,646,196,196,196,196,196,196,196,196,647,647,647,647, +641,641,641,641,641,641,641,641,641,641,642,638,638,638,642,642, +643,643,643,643,643,643,643,643,643,643,643,643,643,643,643,643, +643,643,643,643,643,643,643,643,643,643,643,643,643,643,643,643, +643,643,643,643,643,643,644,645,646,646,645,645,645,646,645,646, +646,646,647,647,196,196,196,196,196,196,196,196,648,648,648,648, /* block 54 */ -648,648,648,648,648,648,648,648,648,648,648,648,648,648,648,648, -648,648,648,648,648,648,648,648,648,648,648,648,648,648,648,648, -648,648,648,648,649,649,649,649,649,649,649,649,650,650,650,650, -650,650,650,650,649,649,651,652,196,196,196,653,653,654,654,654, -655,655,655,655,655,655,655,655,655,655,196,196,196,648,648,648, -656,656,656,656,656,656,656,656,656,656,657,657,657,657,657,657, -657,657,657,657,657,657,657,657,657,657,657,657,657,657,657,657, -657,657,657,657,657,657,657,657,658,658,658,659,658,658,660,660, +649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649, +649,649,649,649,649,649,649,649,649,649,649,649,649,649,649,649, +649,649,649,649,650,650,650,650,650,650,650,650,651,651,651,651, +651,651,651,651,650,650,652,653,196,196,196,654,654,655,655,655, +656,656,656,656,656,656,656,656,656,656,196,196,196,649,649,649, +657,657,657,657,657,657,657,657,657,657,658,658,658,658,658,658, +658,658,658,658,658,658,658,658,658,658,658,658,658,658,658,658, +658,658,658,658,658,658,658,658,659,659,659,660,659,659,661,661, /* block 55 */ -661,662,663,664,665,666,667,668,669,275,276,196,196,196,196,196, -670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670, -670,670,670,670,670,670,670,670,670,670,670,670,670,670,670,670, -670,670,670,670,670,670,670,670,670,670,670,196,196,670,670,670, -671,671,671,671,671,671,671,671,196,196,196,196,196,196,196,196, -672,673,672,674,673,675,675,676,675,676,677,673,676,676,673,673, -676,678,673,673,673,673,673,673,673,679,680,681,681,675,681,681, -681,681,682,683,684,680,680,685,686,686,687,196,196,196,196,196, +662,663,664,665,666,667,668,669,670,275,276,196,196,196,196,196, +671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671, +671,671,671,671,671,671,671,671,671,671,671,671,671,671,671,671, +671,671,671,671,671,671,671,671,671,671,671,196,196,671,671,671, +672,672,672,672,672,672,672,672,196,196,196,196,196,196,196,196, +673,674,673,675,674,676,677,678,679,680,681,674,680,680,674,674, +680,682,683,674,674,674,674,674,674,684,685,686,687,688,687,687, +687,687,689,690,691,692,692,693,694,694,695,196,196,196,196,196, /* block 56 */ 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, - 70, 70, 70, 70, 70, 70,256,256,256,256,256,688,149,149,149,149, + 70, 70, 70, 70, 70, 70,256,256,256,256,256,696,149,149,149,149, 149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149, 149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149, -149,149,149,149,149,149,149,149,149,149,149,149,149,689,689,689, -689,689,150,149,149,149,689,689,689,689,689, 70, 70, 70, 70, 70, - 70, 70, 70, 70, 70, 70, 70, 70,690,691, 70, 70, 70,692, 70, 70, +149,149,149,149,149,149,149,149,149,149,149,149,149,697,697,697, +697,697,150,149,149,149,697,697,697,697,697, 70, 70, 70, 70, 70, + 70, 70, 70, 70, 70, 70, 70, 70,698,699, 70, 70, 70,700, 70, 70, /* block 57 */ - 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,693, 70, - 70, 70, 70, 70, 70, 70,694, 70, 70, 70, 70,695,695,695,695,695, -695,695,695,695,696,695,695,695,696,695,695,695,695,695,695,695, -695,695,695,695,695,695,695,695,695,695,695,695,695,695,695,697, -698,698,189,189,176,176,176,176,176,176,176,176,176,176,176,176, -189,189,189,624,624,624,624,624,624,624,624,624,624,624,624,624, -624,624,624,624,624,624,624,624,624,624,624,624,624,624,624,624, -624,624,624,624,624,176,176,176,699,176,700,176,176,176,176,176, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,701, 70, + 70, 70, 70, 70, 70, 70,702, 70, 70, 70, 70,149,149,149,149,149, +149,149,149,149,150,149,149,149,150,149,149,149,149,149,149,149, +149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,703, +704,704,189,189,176,176,176,176,176,176,176,176,176,176,176,176, +189,189,189,623,623,623,623,623,623,623,623,623,623,623,623,623, +623,623,623,623,623,623,623,623,623,623,623,623,623,623,623,623, +623,623,623,623,623,176,176,176,705,176,706,176,176,176,176,176, /* block 58 */ 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, @@ -3231,12 +3259,12 @@ const uint16_t PRIV(ucd_stage2)[] = { /* 80640 bytes, block = 128 */ 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, -701,702, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, +707,708, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, /* block 59 */ 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, - 65, 66, 65, 66, 65, 66, 69, 69, 69, 69,703,704, 70, 70,705, 70, + 65, 66, 65, 66, 65, 66, 69, 69, 69, 69,709,710, 70, 70,711, 70, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 67, 65, 66, 65, 66, @@ -3245,123 +3273,123 @@ const uint16_t PRIV(ucd_stage2)[] = { /* 80640 bytes, block = 128 */ 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, /* block 60 */ -706,706,706,706,706,706,706,706,707,707,707,707,707,707,707,707, -706,706,706,706,706,706,196,196,707,707,707,707,707,707,196,196, -706,706,706,706,706,706,706,706,707,707,707,707,707,707,707,707, -706,706,706,706,706,706,706,706,707,707,707,707,707,707,707,707, -706,706,706,706,706,706,196,196,707,707,707,707,707,707,196,196, -708,706,708,706,708,706,708,706,196,707,196,707,196,707,196,707, -706,706,706,706,706,706,706,706,707,707,707,707,707,707,707,707, -709,709,710,710,710,710,711,711,712,712,713,713,714,714,196,196, +712,712,712,712,712,712,712,712,713,713,713,713,713,713,713,713, +712,712,712,712,712,712,196,196,713,713,713,713,713,713,196,196, +712,712,712,712,712,712,712,712,713,713,713,713,713,713,713,713, +712,712,712,712,712,712,712,712,713,713,713,713,713,713,713,713, +712,712,712,712,712,712,196,196,713,713,713,713,713,713,196,196, +714,712,714,712,714,712,714,712,196,713,196,713,196,713,196,713, +712,712,712,712,712,712,712,712,713,713,713,713,713,713,713,713, +715,715,716,716,716,716,717,717,718,718,719,719,720,720,196,196, /* block 61 */ -715,715,715,715,715,715,715,715,716,716,716,716,716,716,716,716, -715,715,715,715,715,715,715,715,716,716,716,716,716,716,716,716, -715,715,715,715,715,715,715,715,716,716,716,716,716,716,716,716, -706,706,717,718,717,196,708,717,707,707,719,719,720,201,721,201, -201,201,717,718,717,196,708,717,722,722,722,722,720,201,201,201, -706,706,708,723,196,196,708,708,707,707,724,724,196,201,201,201, -706,706,708,725,708,250,708,708,707,707,726,726,255,201,201,201, -196,196,717,718,717,196,708,717,727,727,728,728,720,201,201,196, +721,721,721,721,721,721,721,721,722,722,722,722,722,722,722,722, +721,721,721,721,721,721,721,721,722,722,722,722,722,722,722,722, +721,721,721,721,721,721,721,721,722,722,722,722,722,722,722,722, +712,712,723,724,723,196,714,723,713,713,725,725,726,201,727,201, +201,201,723,724,723,196,714,723,728,728,728,728,726,201,201,201, +712,712,714,729,196,196,714,714,713,713,730,730,196,201,201,201, +712,712,714,731,714,250,714,714,713,713,732,732,255,201,201,201, +196,196,723,724,723,196,714,723,733,733,734,734,726,201,201,196, /* block 62 */ -729,729,729,729,729,729,729,729,729,729,729, 51,730,731,732,733, -734,734,734,734,734,734,735, 43,736,737,738,739,739,740,738,739, - 43, 43, 43, 43,741, 43, 43,742,743,744,745,746,747,748,749,750, -751,751,752,752,752, 43, 43, 43, 43, 49, 57, 43,753,754, 43,755, -756, 43, 43, 43,757,758,759,754,754,753, 43, 43, 43, 43, 43,760, - 43, 43, 50,761,755, 43, 43, 43, 43, 43,762, 43, 43,763, 43,729, - 51,764,764,764,764,765,766,767,768,769,770,770,770,770,770,770, - 54,696,196,196, 54, 54, 54, 54, 54, 54,771,772,773,774,775,695, +735,735,735,735,735,735,735,735,735,735,735, 51,736,737,738,739, +740,740,740,740,740,740,741, 43,742,743,744,745,745,746,744,745, + 43, 43, 43, 43,747, 43, 43,748,749,750,751,752,753,754,755,756, +757,757,758,758,758, 43, 43, 43, 43, 49, 57, 43,759,760, 43,761, +762, 43, 43, 43,763,764,765,760,760,759, 43, 43, 43, 43, 43,766, + 43, 43, 50,767,761, 43, 43, 43, 43, 43,768, 43, 43,769, 43,735, + 51,770,770,770,770,771,772,773,774,775,776,776,776,776,776,776, + 54,777,196,196, 54, 54, 54, 54, 54, 54,778,779,780,781,782,783, /* block 63 */ - 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,771,772,773,774,775,196, -695,695,695,695,695,695,695,695,695,695,695,695,695,196,196,196, -479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479, -479,479,479,479,479,479,479,479,479,479,479,479,479,479,479,479, -479,776,776,776,776,776,776,776,776,776,776,776,776,776,776,776, -777,777,777,777,777,777,777,777,777,777,777,777,777,778,778,778, -778,777,778,779,778,777,777,189,189,189,189,777,777,777,777,777, -780,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, + 54, 54, 54, 54, 54, 54, 54, 54, 54, 54,778,779,780,781,782,196, +783,783,783,783,783,783,783,783,783,783,783,783,783,196,196,196, +477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477, +477,477,477,477,477,477,477,477,477,477,477,477,477,477,477,477, +477,477,784,784,784,784,784,784,784,784,784,784,784,784,784,784, +785,785,785,785,785,785,785,785,785,785,785,785,785,786,786,786, +786,785,786,787,786,785,785,189,189,189,189,785,785,785,785,785, +788,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 64 */ -781,781,782,781,781,781,781,782,781,781,783,782,782,782,783,783, -782,782,782,783,781,782,781,781,784,782,782,782,782,782,781,781, -781,781,785,781,782,781,786,781,782,787,788,789,782,782,790,783, -782,782,791,782,783,792,792,792,792,793,781,781,783,783,782,782, -794,794,794,794,794,782,783,783,795,795,781,794,781,781,796,510, +789,789,790,789,789,789,789,790,789,789,791,790,790,790,791,791, +790,790,790,791,789,790,789,789,792,790,790,790,790,790,789,789, +789,789,793,789,790,789,794,789,790,795,796,797,790,790,798,791, +790,790,799,790,791,800,800,800,800,801,789,789,791,791,790,790, +802,802,802,802,802,790,791,791,803,803,789,802,789,789,804,508, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, -797,797,797,797,797,797,797,797,797,797,797,797,797,797,797,797, -798,798,798,798,798,798,798,798,798,798,798,798,798,798,798,798, +805,805,805,805,805,805,805,805,805,805,805,805,805,805,805,805, +806,806,806,806,806,806,806,806,806,806,806,806,806,806,806,806, /* block 65 */ -799,799,799, 65, 66,799,799,799,799, 58,781,781,196,196,196,196, - 50, 50, 50, 50,800,801,801,801,801,801, 50, 50,802,802,802,802, - 50,802,802, 50,802,802, 50,802, 45,801,801,802,802,802, 50, 45, -802,802, 45, 45, 45, 45,802,802, 45, 45, 45, 45,802,802,802,802, -802,802,802,802,802,802,802,802,802,802,802,802,802,802, 50, 50, -802,802, 50,802, 50,802,802,802,802,802,802,802, 45,802, 45, 45, - 45, 45, 45, 45,802,802, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, +807,807,807, 65, 66,807,807,807,807, 58,789,789,196,196,196,196, + 50, 50, 50, 50,808,809,809,809,809,809, 50, 50,810,810,810,810, + 50,810,810, 50,810,810, 50,810, 45,809,809,810,810,810, 50, 45, +810,810, 45, 45, 45, 45,810,810, 45, 45, 45, 45,810,810,810,810, +810,810,810,810,810,810,810,810,810,810,810,810,810,810, 50, 50, +810,810, 50,810, 50,810,810,810,810,810,810,810, 45,810, 45, 45, + 45, 45, 45, 45,810,810, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, /* block 66 */ - 50, 50,803, 50, 50, 50, 50,803,804,804,804,804,804,804, 50, 50, - 50, 50,805, 53, 50,804, 50, 50, 50, 50, 50, 50, 50, 50,803,804, -804,804,804, 50,804, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,804,804, 50, 50, - 50, 50, 50,804, 50,804, 50, 50, 50, 50, 50, 50,804, 50, 50, 50, - 50, 50,804,804,804,804, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50,804,804,804,804,804,804,804,804, 50, 50,804,804, -804,804,804,804,804,804,804,804,804,804,804,804,804,804,804,804, + 50, 50,811, 50, 50, 50, 50,811,812,812,812,812,812,812, 50, 50, + 50, 50,813, 53, 50,812, 50, 50, 50, 50, 50, 50, 50, 50,811,812, +812,812,812, 50,812, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,812,812, 50, 50, + 50, 50, 50,812, 50,812, 50, 50, 50, 50, 50, 50,812, 50, 50, 50, + 50, 50,812,812,812,812, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50,812,812,812,812,812,812,812,812, 50, 50,812,812, +812,812,812,812,812,812,812,812,812,812,812,812,812,812,812,812, /* block 67 */ -804,804,804,804,804,804,804,804,804,804,804,804, 50, 50, 50,804, -804,804,804, 50, 50, 50, 50, 50,804, 50, 50, 50, 50, 50, 50, 50, - 50, 50,804,804, 50, 50,804, 50,804,804, 50,804, 50, 50, 50, 50, -804,804,804,804,804,804,804,804,804, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50,804,804,804,804,804, 50, 50, -804,804, 50, 50, 50, 50,804,804,804,804,804,804,804,804,804,804, -804,804,804,804,804,804,804,804,804,804,804,804,804,804, 50, 50, -804,804,804,804,804, 50,804,804, 50, 50,804,804,804,804,804, 50, +812,812,812,812,812,812,812,812,812,812,812,812, 50, 50, 50,812, +812,812,812, 50, 50, 50, 50, 50,812, 50, 50, 50, 50, 50, 50, 50, + 50, 50,812,812, 50, 50,812, 50,812,812, 50,812, 50, 50, 50, 50, +812,812,812,812,812,812,812,812,812, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50,812,812,812,812,812, 50, 50, +812,812, 50, 50, 50, 50,812,812,812,812,812,812,812,812,812,812, +812,812,812,812,812,812,812,812,812,812,812,812,812,812, 50, 50, +812,812,812,812,812, 50,812,812, 50, 50,812,812,812,812,812, 50, /* block 68 */ - 45, 45, 45, 45, 45, 45, 45, 45,806,807,806,807, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,808,808, 45, 45, 45, 45, - 50, 50, 45, 45, 45, 45, 45, 45, 47,809,810, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45,811,811,811,811,811,811,811,811,811,811, -811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811, -811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811, -811,811,811,811,811,811,811,811,811,811,811,811,811,811,811,811, -811,811,811,811,811,811,811,811,811,811,811, 45, 50, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45,814,815,814,815, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,816,816, 45, 45, 45, 45, + 50, 50, 45, 45, 45, 45, 45, 45, 47,817,818, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45,819,819,819,819,819,819,819,819,819,819, +819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819, +819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819, +819,819,819,819,819,819,819,819,819,819,819,819,819,819,819,819, +819,819,819,819,819,819,819,819,819,819,819, 45, 50, 45, 45, 45, /* block 69 */ - 45, 45, 45, 45, 45, 45, 45, 45,812, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45,811, 45, 45, 45, 45, 45, 50, 50, 50, 50, 50, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45,819, 45, 45, 45, 45, 45, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50,802,802, 45,802, 45, 45, 45, 45, 45, 45, 45, 45, + 50, 50, 50, 50,810,810, 45,810, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 47, -802, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 50, 50, 50, 50, - 50, 50,802, 45, 45, 45, 45, 45, 45,808,808,808,808, 47, 47, 47, -808, 47, 47,808, 45, 45, 45, 45, 47, 47, 47, 45, 45, 45, 45, 45, +810, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 50, 50, 50, 50, + 50, 50,810, 45, 45, 45, 45, 45, 45,816,816,816,816, 47, 47, 47, +816, 47, 47,816, 45, 45, 45, 45, 47, 47, 47, 45, 45, 45, 45, 45, /* block 70 */ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,813,813,813,813,813,813, -813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,813,813,813,813,813, -813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,820,820,820,820,820,820, +820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,820,820,820,820,820, +820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, /* block 71 */ - 58, 58, 58, 58, 58, 58, 58, 58,814,814,814,814,814,814,814,814, -814,814,814,814,814,814,814,814,814,814,814,814,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,815,815,815,815,815,815,815,815,815,815, -815,815,816,815,815,815,815,815,815,815,815,815,815,815,815,815, -817,817,817,817,817,817,817,817,817,817,817,817,817,817,817,817, -817,817,817,817,817,817,817,817,817,817, 58, 58, 58, 58, 58, 58, + 58, 58, 58, 58, 58, 58, 58, 58,821,821,821,821,821,821,821,821, +821,821,821,821,821,821,821,821,821,821,821,821,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,822,822,822,822,822,822,822,822,822,822, +822,822,823,822,822,822,822,822,822,822,822,822,822,822,822,822, +824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824, +824,824,824,824,824,824,824,824,824,824, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, /* block 72 */ @@ -3377,132 +3405,132 @@ const uint16_t PRIV(ucd_stage2)[] = { /* 80640 bytes, block = 128 */ /* block 73 */ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, -802,802, 45, 45, 45, 45, 45, 45, 45, 45, 47, 47, 45, 45,802,802, -802,802,802,802,802,802,801, 50, 45, 45, 45, 45,802,802,802,802, -801, 50, 45, 45, 45, 45,802,802, 45, 45,802,802, 45, 45, 45,802, -802,802,802,802, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45,802, 45,802, 45, 45,802,802,802,802,802,802, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 50, 50, 50,800,800,818,818, 50, +810,810, 45, 45, 45, 45, 45, 45, 45, 45, 47, 47, 45, 45,810,810, +810,810,810,810,810,810,809, 50, 45, 45, 45, 45,810,810,810,810, +809, 50, 45, 45, 45, 45,810,810, 45, 45,810,810, 45, 45, 45,810, +810,810,810,810, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45,810, 45,810, 45, 45,810,810,810,810,810,810, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 50, 50, 50,808,808,825,825, 50, /* block 74 */ - 47, 47, 47, 47, 47,819,802,812,812,812,812,812,812,812, 47,812, -812, 47,812, 45,808,808,812,812, 47,812,812,812,812,820,812,812, - 47,812, 47, 47,812,812, 47,812,812,812, 47,812,812,812, 47, 47, -812,812,812,812,812,812,812,812, 47, 47, 47,812,812,812,812,812, -801,812,801,812,812,812,812,812,808,808,808,808,808,808,808,808, -808,808,808,808,812,812,812,812,812,812,812,812,812,812,812, 47, -801,819,819,801,812, 47, 47,812, 47,812,812,812,812,819,819,821, -812,812,812,812,812,812,812,812,812,812,812, 47,812,812, 47,808, + 47, 47, 47, 47, 47,810,810, 45, 45, 45, 45, 45, 45, 45, 47, 45, + 45, 47, 45, 45,816,816, 45, 45, 47, 45, 45, 45, 45,826, 45, 45, + 47, 45, 47, 47, 45, 45, 47, 45, 45, 45, 47, 45, 45, 45, 47, 47, + 45, 45, 45, 45, 45, 45, 45, 45, 47, 47, 47, 45, 45, 45, 45, 45, +809, 45,809, 45, 45, 45, 45, 45,816,816,816,816,816,816,816,816, +816,816,816,816, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 47, +809,810,810,809, 45, 47, 47, 45, 47, 45, 45, 45, 45,810,810, 50, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 47, 45, 45, 47,816, /* block 75 */ -812,812,812,812,812,812, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, -812,812, 47,808, 47, 47, 47, 47,812, 47,812, 47, 47,812,812,812, - 47,808,812,812,812,812,812, 47,812,812,808,808,822,812,812,812, - 47, 47,812,812,812,812,812,812,812,812,812,812,812,808,808,812, -812,812,812,812,808,808,812,812, 47,812,812,812,812,812,808, 47, -812, 47,812, 47,808,812,812,812,812,812,812,812,812,812,812,812, -812,812,812,812,812,812,812,812,812, 47,808,812,812,812,812,812, - 47, 47,808,808, 47,808,812, 47, 47,820,808,812,812,808,812,812, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 47,816, 47, 47, 47, 47, 45, 47, 45, 47, 47, 45, 45, 45, + 47,816, 45, 45, 45, 45, 45, 47, 45, 45,816,816,819, 45, 45, 45, + 47, 47, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,816,816, 45, + 45, 45, 45, 45,816,816, 45, 45, 47, 45, 45, 45, 45, 45,816, 47, + 45, 47, 45, 47,816, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 47,816, 45, 45, 45, 45, 45, + 47, 47,816,816, 47,816, 45, 47, 47,826,816, 45, 45,816, 45, 45, /* block 76 */ -812,812, 47,812,812,808, 45, 45, 47, 47,823,823,820,820,812, 47, -812,812, 47, 45, 47, 45, 47, 45, 45, 45, 45, 45, 45, 47, 45, 45, - 45, 47, 45, 45, 45, 45, 45, 45,808, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 47, 45, 45,816, 45, 45, 47, 47,827,827,826,826, 45, 47, + 45, 45, 47, 45, 47, 45, 47, 45, 45, 45, 45, 45, 45, 47, 45, 45, + 45, 47, 45, 45, 45, 45, 45, 45,816, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 47, 47, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 47, 45, 45, 47, 45, 45, 45, 45,808, 45,808, 45, - 45, 45, 45,808,808,808, 45,808, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 47, 47,812,812,812,758,759,758,759,758,759,758,759, -758,759,758,759,758,759, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, + 45, 45, 45, 45, 47, 45, 45, 47, 45, 45, 45, 45,816, 45,816, 45, + 45, 45, 45,816,816,816, 45,816, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 47, 47, 45, 45, 45,764,765,764,765,764,765,764,765, +764,765,764,765,764,765, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, /* block 77 */ 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 45,808,808,808, 45, 45, 45, 45, 45, 45, 45, 45, + 58, 58, 58, 58, 45,816,816,816, 45, 45, 45, 45, 45, 45, 45, 45, 45, 47, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, -808, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,808, - 50, 50, 50,804,804,806,807, 50,804,804, 50,804, 50,804, 50, 50, - 50, 50, 50, 50, 50,804,804, 50, 50, 50, 50, 50,804,804,804, 50, - 50, 50,804,804,804,804,806,807,806,807,806,807,806,807,806,807, +816, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,816, + 50, 50, 50,812,812,814,815, 50,812,812, 50,812, 50,812, 50, 50, + 50, 50, 50, 50, 50,812,812, 50, 50, 50, 50, 50,812,812,812, 50, + 50, 50,812,812,812,812,814,815,814,815,814,815,814,815,814,815, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, /* block 78 */ -824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824, -824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824, -824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824, -824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824, -824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824, -824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824, -824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824, -824,824,824,824,824,824,824,824,824,824,824,824,824,824,824,824, +828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828, +828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828, +828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828, +828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828, +828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828, +828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828, +828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828, +828,828,828,828,828,828,828,828,828,828,828,828,828,828,828,828, /* block 79 */ 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50,800,800, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50,808,808, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, /* block 80 */ - 50, 50, 50,806,807,806,807,806,807,806,807,806,807,806,807,806, -807,806,807,806,807,806,807,806,807, 50, 50,804, 50, 50, 50, 50, -804, 50, 50,804,804,804, 50, 50,804,804,804,804,804,804,804,804, - 50, 50, 50, 50, 50, 50, 50, 50,804, 50, 50, 50, 50, 50, 50, 50, -804,804, 50, 50,804,804, 50, 50, 50, 50, 50, 50, 50, 50, 50,804, -804,804,804, 50,804,804, 50, 50,806,807,806,807, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50,804,804, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50,804, 50, 50,804,804, 50, 50,806,807, 50, 50, + 50, 50, 50,814,815,814,815,814,815,814,815,814,815,814,815,814, +815,814,815,814,815,814,815,814,815, 50, 50,812, 50, 50, 50, 50, +812, 50, 50,812,812,812, 50, 50,812,812,812,812,812,812,812,812, + 50, 50, 50, 50, 50, 50, 50, 50,812, 50, 50, 50, 50, 50, 50, 50, +812,812, 50, 50,812,812, 50, 50, 50, 50, 50, 50, 50, 50, 50,812, +812,812,812, 50,812,812, 50, 50,814,815,814,815, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50,812,812, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50,812, 50, 50,812,812, 50, 50,814,815, 50, 50, /* block 81 */ 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,804,804,804,804, 50, - 50, 50, 50, 50,804,804, 50, 50, 50, 50, 50, 50,804,804, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,812,812,812,812, 50, + 50, 50, 50, 50,812,812, 50, 50, 50, 50, 50, 50,812,812, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50,804,804, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, - 50, 50, 50, 50, 50, 50, 50, 50, 50,804,804,804,804,804,804,804, + 50, 50, 50, 50,812,812, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, + 50, 50, 50, 50, 50, 50, 50, 50, 50,812,812,812,812,812,812,812, /* block 82 */ -804,804,804,804,804,804,804,804,804,804,804,804,804,804,804,804, -804,804,804,804,804,804,804,804,804,804,804,804,804,804,804,804, -804,804,804, 50, 50, 50,804,804,804,804,804,804,804,804, 50,804, -804,804,804,804,804,804,804,804,804,804,804,804,804,804,804,804, -804,804,804,804,804,804,804,804,804,804,804,804,804,804,804,804, -804,804,804,804,804,804,804, 50, 50, 50, 50, 50, 50, 50,804, 50, - 50, 50, 50,804,804,804, 50, 50, 50, 50, 50, 50,804,804,804, 50, - 50, 50, 50, 50, 50, 50, 50,804,804,804,804, 50, 50, 50, 50, 50, +812,812,812,812,812,812,812,812,812,812,812,812,812,812,812,812, +812,812,812,812,812,812,812,812,812,812,812,812,812,812,812,812, +812,812,812, 50, 50, 50,812,812,812,812,812,812,812,812, 50,812, +812,812,812,812,812,812,812,812,812,812,812,812,812,812,812,812, +812,812,812,812,812,812,812,812,812,812,812,812,812,812,812,812, +812,812,812,812,812,812,812, 50, 50, 50, 50, 50, 50, 50,812, 50, + 50, 50, 50,812,812,812, 50, 50, 50, 50, 50, 50,812,812,812, 50, + 50, 50, 50, 50, 50, 50, 50,812,812,812,812, 50, 50, 50, 50, 50, /* block 83 */ 45, 45, 45, 45, 45, 47, 47, 47, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,808,808, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,816,816, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 45, 45, 50, 50, 50, 50, 50, 50, 45, 45, 45, -808, 45, 45, 45, 45,808, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, +816, 45, 45, 45, 45,816, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45,813,813, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45,820,820, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, /* block 84 */ 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45,813, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, - 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,825, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, + 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45, 45,829, 45, /* block 85 */ -826,826,826,826,826,826,826,826,826,826,826,826,826,826,826,826, -826,826,826,826,826,826,826,826,826,826,826,826,826,826,826,826, -826,826,826,826,826,826,826,826,826,826,826,826,826,826,826,826, -827,827,827,827,827,827,827,827,827,827,827,827,827,827,827,827, -827,827,827,827,827,827,827,827,827,827,827,827,827,827,827,827, -827,827,827,827,827,827,827,827,827,827,827,827,827,827,827,827, - 65, 66,828,829,830,831,832, 65, 66, 65, 66, 65, 66,833,834,835, -836, 70, 65, 66, 70, 65, 66, 70, 70, 70, 70, 70,696,695,837,837, +830,830,830,830,830,830,830,830,830,830,830,830,830,830,830,830, +830,830,830,830,830,830,830,830,830,830,830,830,830,830,830,830, +830,830,830,830,830,830,830,830,830,830,830,830,830,830,830,830, +831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831, +831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831, +831,831,831,831,831,831,831,831,831,831,831,831,831,831,831,831, + 65, 66,832,833,834,835,836, 65, 66, 65, 66, 65, 66,837,838,839, +840, 70, 65, 66, 70, 65, 66, 70, 70, 70, 70, 70,777,783,841,841, /* block 86 */ 246,247,246,247,246,247,246,247,246,247,246,247,246,247,246,247, @@ -3511,598 +3539,598 @@ const uint16_t PRIV(ucd_stage2)[] = { /* 80640 bytes, block = 128 */ 246,247,246,247,246,247,246,247,246,247,246,247,246,247,246,247, 246,247,246,247,246,247,246,247,246,247,246,247,246,247,246,247, 246,247,246,247,246,247,246,247,246,247,246,247,246,247,246,247, -246,247,246,247,838,839,839,839,839,839,839,246,247,246,247,840, -840,840,246,247,196,196,196,196,196,841,841,841,842,843,842,842, +246,247,246,247,842,843,843,843,843,843,843,246,247,246,247,844, +844,844,246,247,196,196,196,196,196,845,845,845,846,847,846,846, /* block 87 */ -844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844, -844,844,844,844,844,844,844,844,844,844,844,844,844,844,844,844, -844,844,844,844,844,844,196,844,196,196,196,196,196,844,196,196, -845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845, -845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845, -845,845,845,845,845,845,845,845,845,845,845,845,845,845,845,845, -845,845,845,845,845,845,845,845,196,196,196,196,196,196,196,846, -847,196,196,196,196,196,196,196,196,196,196,196,196,196,196,848, - -/* block 88 */ -533,533,533,533,533,533,533,533,533,533,533,533,533,533,533,533, -533,533,533,533,533,533,533,196,196,196,196,196,196,196,196,196, -533,533,533,533,533,533,533,196,533,533,533,533,533,533,533,196, -533,533,533,533,533,533,533,196,533,533,533,533,533,533,533,196, -533,533,533,533,533,533,533,196,533,533,533,533,533,533,533,196, -533,533,533,533,533,533,533,196,533,533,533,533,533,533,533,196, +848,848,848,848,848,848,848,848,848,848,848,848,848,848,848,848, +848,848,848,848,848,848,848,848,848,848,848,848,848,848,848,848, +848,848,848,848,848,848,196,848,196,196,196,196,196,848,196,196, +849,849,849,849,849,849,849,849,849,849,849,849,849,849,849,849, 849,849,849,849,849,849,849,849,849,849,849,849,849,849,849,849, 849,849,849,849,849,849,849,849,849,849,849,849,849,849,849,849, +849,849,849,849,849,849,849,849,196,196,196,196,196,196,196,850, +851,196,196,196,196,196,196,196,196,196,196,196,196,196,196,852, + +/* block 88 */ +531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531, +531,531,531,531,531,531,531,196,196,196,196,196,196,196,196,196, +531,531,531,531,531,531,531,196,531,531,531,531,531,531,531,196, +531,531,531,531,531,531,531,196,531,531,531,531,531,531,531,196, +531,531,531,531,531,531,531,196,531,531,531,531,531,531,531,196, +531,531,531,531,531,531,531,196,531,531,531,531,531,531,531,196, +853,853,853,853,853,853,853,853,853,853,853,853,853,853,853,853, +853,853,853,853,853,853,853,853,853,853,853,853,853,853,853,853, /* block 89 */ - 43, 43,850,851,850,851, 43, 43, 43,850,851, 43,850,851, 43, 43, - 43, 43, 43, 43, 43, 43, 43,852, 43, 43,734, 43,850,851, 43, 43, -850,851,758,759,758,759,758,759,758,759, 43, 43, 43, 43,754,853, -854,855, 43, 43, 43, 43, 43, 43, 43, 43,734,734,856, 43, 43, 43, -734,857,738,858, 43, 43, 43, 43, 43, 43, 43, 43,859, 43,859,859, - 45, 45, 43,754,754,758,759,758,759,758,759,758,759,734,813,813, -813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813, -813,813,813,813,813,813,813,813,813,813,813,813,813,813,813,813, + 43, 43,854,855,854,855, 43, 43, 43,854,855, 43,854,855, 43, 43, + 43, 43, 43, 43, 43, 43, 43,856, 43, 43,740, 43,854,855, 43, 43, +854,855,764,765,764,765,764,765,764,765, 43, 43, 43, 43,760,857, +858,859, 43, 43, 43, 43, 43, 43, 43, 43,740,740,860, 43, 43, 43, +740,861,744,862, 43, 43, 43, 43, 43, 43, 43, 43,863, 43,863,863, + 45, 45, 43,760,760,764,765,764,765,764,765,764,765,740,820,820, +820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820, +820,820,820,820,820,820,820,820,820,820,820,820,820,820,820,820, /* block 90 */ -860,860,860,860,860,860,860,860,860,860,860,860,860,860,860,860, -860,860,860,860,860,860,860,860,860,860,196,860,860,860,860,860, -860,860,860,860,860,860,860,860,860,860,860,860,860,860,860,860, -860,860,860,860,860,860,860,860,860,860,860,860,860,860,860,860, -860,860,860,860,860,860,860,860,860,860,860,860,860,860,860,860, -860,860,860,860,860,860,860,860,860,860,860,860,860,860,860,860, -860,860,860,860,860,860,860,860,860,860,860,860,860,860,860,860, -860,860,860,860,196,196,196,196,196,196,196,196,196,196,196,196, +864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864, +864,864,864,864,864,864,864,864,864,864,196,864,864,864,864,864, +864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864, +864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864, +864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864, +864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864, +864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864, +864,864,864,864,196,196,196,196,196,196,196,196,196,196,196,196, /* block 91 */ -860,860,860,860,860,860,860,860,860,860,860,860,860,860,860,860, -860,860,860,860,860,860,860,860,860,860,860,860,860,860,860,860, -860,860,860,860,860,860,860,860,860,860,860,860,860,860,860,860, -860,860,860,860,860,860,860,860,860,860,860,860,860,860,860,860, -860,860,860,860,860,860,860,860,860,860,860,860,860,860,860,860, -860,860,860,860,860,860,860,860,860,860,860,860,860,860,860,860, -860,860,860,860,860,860,860,860,860,860,860,860,860,860,860,860, -860,860,860,860,860,860,860,860,860,860,860,860,860,860,860,860, +864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864, +864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864, +864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864, +864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864, +864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864, +864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864, +864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864, +864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864, /* block 92 */ -860,860,860,860,860,860,860,860,860,860,860,860,860,860,860,860, -860,860,860,860,860,860,860,860,860,860,860,860,860,860,860,860, -860,860,860,860,860,860,860,860,860,860,860,860,860,860,860,860, -860,860,860,860,860,860,860,860,860,860,860,860,860,860,860,860, -860,860,860,860,860,860,860,860,860,860,860,860,860,860,860,860, -860,860,860,860,860,860,196,196,196,196,196,196,196,196,196,196, +864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864, +864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864, +864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864, +864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864, +864,864,864,864,864,864,864,864,864,864,864,864,864,864,864,864, +864,864,864,864,864,864,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -861,861,862,862,861,861,861,861,861,861,861,861,861,861,863,863, +865,865,866,866,865,865,865,865,865,865,865,865,865,865,867,867, /* block 93 */ -729,864,865,866,781,867,868,869,870,871,872,873,874,875,874,875, -876,877, 45,878,876,877,876,877,876,877,876,877,879,880,881,881, - 45,869,869,869,869,869,869,869,869,869,882,882,882,882,883,883, -884,885,885,885,885,885,781,886,869,869,869,887,888,889,890,890, -196,891,891,891,891,891,891,891,891,891,891,891,891,891,891,891, -891,891,891,891,891,891,891,891,891,891,891,891,891,891,891,891, -891,891,891,891,891,891,891,891,891,891,891,891,891,891,891,891, -891,891,891,891,891,891,891,891,891,891,891,891,891,891,891,891, +735,868,869,870,789,871,872,873,874,875,876,877,878,879,878,879, +880,881, 45,882,880,881,880,881,880,881,880,881,883,884,885,885, + 45,873,873,873,873,873,873,873,873,873,886,886,886,886,887,887, +888,889,889,889,889,889,789,890,873,873,873,891,892,893,894,894, +196,895,895,895,895,895,895,895,895,895,895,895,895,895,895,895, +895,895,895,895,895,895,895,895,895,895,895,895,895,895,895,895, +895,895,895,895,895,895,895,895,895,895,895,895,895,895,895,895, +895,895,895,895,895,895,895,895,895,895,895,895,895,895,895,895, /* block 94 */ -891,891,891,891,891,891,891,891,891,891,891,891,891,891,891,891, -891,891,891,891,891,891,891,196,196,892,892,893,893,894,894,891, -895,896,896,896,896,896,896,896,896,896,896,896,896,896,896,896, -896,896,896,896,896,896,896,896,896,896,896,896,896,896,896,896, -896,896,896,896,896,896,896,896,896,896,896,896,896,896,896,896, -896,896,896,896,896,896,896,896,896,896,896,896,896,896,896,896, -896,896,896,896,896,896,896,896,896,896,896,896,896,896,896,896, -896,896,896,896,896,896,896,896,896,896,896,897,898,899,899,896, - -/* block 95 */ -196,196,196,196,196,900,900,900,900,900,900,900,900,900,900,900, +895,895,895,895,895,895,895,895,895,895,895,895,895,895,895,895, +895,895,895,895,895,895,895,196,196,896,896,897,897,898,898,895, +899,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900, 900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900, 900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900, -196,901,901,901,901,901,901,901,901,901,901,901,901,901,901,901, -901,901,901,901,901,901,901,901,901,901,901,901,901,901,901,901, -901,901,901,901,901,901,901,901,901,901,901,901,901,901,901,901, -901,901,901,901,902,901,901,901,901,901,901,901,901,901,901,901, -901,901,901,901,901,901,901,901,901,901,901,901,901,901,901,901, - -/* block 96 */ -901,901,901,901,901,901,901,901,901,901,901,901,901,901,901,196, -903,903,904,904,904,904,903,903,903,903,903,903,903,903,903,903, 900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900, 900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900, -890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890, -890,890,890,890,890,890,890,890,890,890,890,890,890,890,890,890, -890,890,890,890,890,890,196,196,196,196,196,196,196,196,196,861, -896,896,896,896,896,896,896,896,896,896,896,896,896,896,896,896, +900,900,900,900,900,900,900,900,900,900,900,901,902,903,903,900, -/* block 97 */ +/* block 95 */ +196,196,196,196,196,904,904,904,904,904,904,904,904,904,904,904, +904,904,904,904,904,904,904,904,904,904,904,904,904,904,904,904, +904,904,904,904,904,904,904,904,904,904,904,904,904,904,904,904, +196,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905, 905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905, -905,905,905,905,905,905,905,905,905,905,905,905,905,906,906,196, -904,904,904,904,904,904,904,904,904,904,903,903,903,903,903,903, -903,903,903,903,903,903,903,903,903,903,903,903,903,903,903,903, -903,903,903,903,903,903,903,903,907,907,907,907,907,907,907,907, -781, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905, -905,905,905,905,905,905,905,905,905,905,905,905,906,906,906,510, +905,905,905,905,906,905,905,905,905,905,905,905,905,905,905,905, +905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905, -/* block 98 */ -904,904,904,904,904,904,904,904,904,904,903,903,903,903,903,903, -903,903,903,903,903,903,903,908,903,908,903,903,903,903,903,903, -903,903,903,903,903,903,903,903,903,903,903,903,903,903,903,903, -903, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, -903,903,903,903,903,903,903,903,903,903,903,903,781,781,781,781, +/* block 96 */ +905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,196, +907,907,908,908,908,908,907,907,907,907,907,907,907,907,907,907, +904,904,904,904,904,904,904,904,904,904,904,904,904,904,904,904, +904,904,904,904,904,904,904,904,904,904,904,904,904,904,904,904, +894,894,894,894,894,894,894,894,894,894,894,894,894,894,894,894, +894,894,894,894,894,894,894,894,894,894,894,894,894,894,894,894, +894,894,894,894,894,894,196,196,196,196,196,196,196,196,196,865, +900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900, + +/* block 97 */ 909,909,909,909,909,909,909,909,909,909,909,909,909,909,909,909, +909,909,909,909,909,909,909,909,909,909,909,909,909,910,910,196, +908,908,908,908,908,908,908,908,908,908,907,907,907,907,907,907, +907,907,907,907,907,907,907,907,907,907,907,907,907,907,907,907, +907,907,907,907,907,907,907,907,911,911,911,911,911,911,911,911, +789, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 909,909,909,909,909,909,909,909,909,909,909,909,909,909,909,909, -909,909,909,909,909,909,909,909,909,909,909,909,909,909,909,903, +909,909,909,909,909,909,909,909,909,909,909,909,910,910,910,508, + +/* block 98 */ +908,908,908,908,908,908,908,908,908,908,907,907,907,907,907,907, +907,907,907,907,907,907,907,912,907,912,907,907,907,907,907,907, +907,907,907,907,907,907,907,907,907,907,907,907,907,907,907,907, +907, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, +907,907,907,907,907,907,907,907,907,907,907,907,789,789,789,789, +913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913, +913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913, +913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,907, /* block 99 */ -909,909,909,909,909,909,909,909,909,909,909,909,909,909,909,909, -909,909,909,909,909,909,909,909,909,909,909,909,909,909,909,909, -909,909,909,909,909,909,909,909,909,909,909,909,909,909,909,909, -909,909,909,909,909,909,909,909,909,909,909,909,909,909,909,909, -909,909,909,909,909,909,909,909,909,909,909,909,909,909,909,909, -909,909,909,909,909,909,909,909,903,903,903,903,903,903,903,903, -903,903,903,903,903,903,903,903,903,903,903,903,903,903,903,903, -903,510,510,510,510,510,510,781,781,781,781,903,903,903,903,903, +913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913, +913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913, +913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913, +913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913, +913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913, +913,913,913,913,913,913,913,913,907,907,907,907,907,907,907,907, +907,907,907,907,907,907,907,907,907,907,907,907,907,907,907,907, +907,508,508,508,508,508,508,789,789,789,789,907,907,907,907,907, /* block 100 */ -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,781,781, -903,903,903,903,903,903,903,903,903,903,903,903,903,903,903,903, -903,903,903,903,903,903,903,903,903,903,903,903,903,903,903,781, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,789,789, +907,907,907,907,907,907,907,907,907,907,907,907,907,907,907,907, +907,907,907,907,907,907,907,907,907,907,907,907,907,907,907,789, /* block 101 */ -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, /* block 102 */ -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, /* block 103 */ -911,911,911,911,911,911,911,911,911,911,911,911,911,911,911,911, -911,911,911,911,911,912,911,911,911,911,911,911,911,911,911,911, -911,911,911,911,911,911,911,911,911,911,911,911,911,911,911,911, -911,911,911,911,911,911,911,911,911,911,911,911,911,911,911,911, -911,911,911,911,911,911,911,911,911,911,911,911,911,911,911,911, -911,911,911,911,911,911,911,911,911,911,911,911,911,911,911,911, -911,911,911,911,911,911,911,911,911,911,911,911,911,911,911,911, -911,911,911,911,911,911,911,911,911,911,911,911,911,911,911,911, +915,915,915,915,915,915,915,915,915,915,915,915,915,915,915,915, +915,915,915,915,915,916,915,915,915,915,915,915,915,915,915,915, +915,915,915,915,915,915,915,915,915,915,915,915,915,915,915,915, +915,915,915,915,915,915,915,915,915,915,915,915,915,915,915,915, +915,915,915,915,915,915,915,915,915,915,915,915,915,915,915,915, +915,915,915,915,915,915,915,915,915,915,915,915,915,915,915,915, +915,915,915,915,915,915,915,915,915,915,915,915,915,915,915,915, +915,915,915,915,915,915,915,915,915,915,915,915,915,915,915,915, /* block 104 */ -911,911,911,911,911,911,911,911,911,911,911,911,911,911,911,911, -911,911,911,911,911,911,911,911,911,911,911,911,911,911,911,911, -911,911,911,911,911,911,911,911,911,911,911,911,911,911,911,911, -911,911,911,911,911,911,911,911,911,911,911,911,911,911,911,911, -911,911,911,911,911,911,911,911,911,911,911,911,911,911,911,911, -911,911,911,911,911,911,911,911,911,911,911,911,911,911,911,911, -911,911,911,911,911,911,911,911,911,911,911,911,911,911,911,911, -911,911,911,911,911,911,911,911,911,911,911,911,911,911,911,911, +915,915,915,915,915,915,915,915,915,915,915,915,915,915,915,915, +915,915,915,915,915,915,915,915,915,915,915,915,915,915,915,915, +915,915,915,915,915,915,915,915,915,915,915,915,915,915,915,915, +915,915,915,915,915,915,915,915,915,915,915,915,915,915,915,915, +915,915,915,915,915,915,915,915,915,915,915,915,915,915,915,915, +915,915,915,915,915,915,915,915,915,915,915,915,915,915,915,915, +915,915,915,915,915,915,915,915,915,915,915,915,915,915,915,915, +915,915,915,915,915,915,915,915,915,915,915,915,915,915,915,915, /* block 105 */ -911,911,911,911,911,911,911,911,911,911,911,911,911,196,196,196, -913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913, -913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913, -913,913,913,913,913,913,913,913,913,913,913,913,913,913,913,913, -913,913,913,913,913,913,913,196,196,196,196,196,196,196,196,196, -914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, -914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, -914,914,914,914,914,914,914,914,915,915,915,915,915,915,916,917, - -/* block 106 */ -918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918, -918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918, -918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918, -918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918, -918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918, -918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918, +915,915,915,915,915,915,915,915,915,915,915,915,915,196,196,196, +917,917,917,917,917,917,917,917,917,917,917,917,917,917,917,917, +917,917,917,917,917,917,917,917,917,917,917,917,917,917,917,917, +917,917,917,917,917,917,917,917,917,917,917,917,917,917,917,917, +917,917,917,917,917,917,917,196,196,196,196,196,196,196,196,196, 918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918, 918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918, +918,918,918,918,918,918,918,918,919,919,919,919,919,919,920,921, + +/* block 106 */ +922,922,922,922,922,922,922,922,922,922,922,922,922,922,922,922, +922,922,922,922,922,922,922,922,922,922,922,922,922,922,922,922, +922,922,922,922,922,922,922,922,922,922,922,922,922,922,922,922, +922,922,922,922,922,922,922,922,922,922,922,922,922,922,922,922, +922,922,922,922,922,922,922,922,922,922,922,922,922,922,922,922, +922,922,922,922,922,922,922,922,922,922,922,922,922,922,922,922, +922,922,922,922,922,922,922,922,922,922,922,922,922,922,922,922, +922,922,922,922,922,922,922,922,922,922,922,922,922,922,922,922, /* block 107 */ -918,918,918,918,918,918,918,918,918,918,918,918,919,920,921,921, -918,918,918,918,918,918,918,918,918,918,918,918,918,918,918,918, -922,922,922,922,922,922,922,922,922,922,918,918,196,196,196,196, +922,922,922,922,922,922,922,922,922,922,922,922,923,924,925,925, +922,922,922,922,922,922,922,922,922,922,922,922,922,922,922,922, +926,926,926,926,926,926,926,926,926,926,922,922,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -275,276,275,276,275,276,275,276,275,276,923,924,275,276,275,276, +275,276,275,276,275,276,275,276,275,276,927,928,275,276,275,276, 275,276,275,276,275,276,275,276,275,276,275,276,275,276,275,276, -275,276,275,276,275,276,275,276,275,276,275,276,275,276,925,281, -283,283,283,926,849,849,849,849,849,849,849,849,927,927,926,928, +275,276,275,276,275,276,275,276,275,276,275,276,275,276,929,281, +283,283,283,930,853,853,853,853,853,853,853,853,931,931,930,932, /* block 108 */ 275,276,275,276,275,276,275,276,275,276,275,276,275,276,275,276, -275,276,275,276,275,276,275,276,275,276,275,276,929,929,849,849, -930,930,930,930,930,930,930,930,930,930,930,930,930,930,930,930, -930,930,930,930,930,930,930,930,930,930,930,930,930,930,930,930, -930,930,930,930,930,930,930,930,930,930,930,930,930,930,930,930, -930,930,930,930,930,930,930,930,930,930,930,930,930,930,930,930, -930,930,930,930,930,930,931,931,931,931,931,931,931,931,931,931, -932,932,933,934,935,935,935,934,196,196,196,196,196,196,196,196, +275,276,275,276,275,276,275,276,275,276,275,276,933,933,853,853, +934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934, +934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934, +934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934, +934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934, +934,934,934,934,934,934,935,935,935,935,935,935,935,935,935,935, +936,936,937,938,939,939,939,938,196,196,196,196,196,196,196,196, /* block 109 */ -936,936,936,936,936,936,936,936, 46, 46, 46, 46, 46, 46, 46, 46, +940,940,940,940,940,940,940,940, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46, 46,151,151,151,151,151,151,151,151,151, 46, 46, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 70, 70, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, -695, 70, 70, 70, 70, 70, 70, 70, 70, 65, 66, 65, 66,937, 65, 66, +783, 70, 70, 70, 70, 70, 70, 70, 70, 65, 66, 65, 66,941, 65, 66, /* block 110 */ - 65, 66, 65, 66, 65, 66, 65, 66,151,938,938, 65, 66,939, 70, 93, - 65, 66, 65, 66,940, 70, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, - 65, 66, 65, 66, 65, 66, 65, 66, 65, 66,941,942,943,944,941, 70, -945,946,947,948, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, - 65, 66, 65, 66,949,950,951, 65, 66, 65, 66,952, 65, 66,196,196, - 65, 66,196, 70,196, 70, 65, 66, 65, 66, 65, 66,953,196,196,196, + 65, 66, 65, 66, 65, 66, 65, 66,151,942,942, 65, 66,943, 70, 93, + 65, 66, 65, 66,944, 70, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, + 65, 66, 65, 66, 65, 66, 65, 66, 65, 66,945,946,947,948,945, 70, +949,950,951,952, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, + 65, 66, 65, 66,953,954,955, 65, 66, 65, 66,956, 65, 66, 65, 66, + 65, 66, 65, 66, 65, 66, 65, 66, 65, 66, 65, 66,957,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -196,196,695,695,695, 65, 66, 93,149,149, 70, 93, 93, 93, 93, 93, +196,149,783,783,783, 65, 66, 93,149,149, 70, 93, 93, 93, 93, 93, /* block 111 */ -954,954,955,954,954,954,956,954,954,954,954,955,954,954,954,954, -954,954,954,954,954,954,954,954,954,954,954,954,954,954,954,954, -954,954,954,957,957,955,955,957,958,958,958,958,956,196,196,196, -959,959,959,960,960,960,961,961,962,963,196,196,196,196,196,196, -964,964,964,964,964,964,964,964,964,964,964,964,964,964,964,964, -964,964,964,964,964,964,964,964,964,964,964,964,964,964,964,964, -964,964,964,964,964,964,964,964,964,964,964,964,964,964,964,964, -964,964,964,964,965,965,966,966,196,196,196,196,196,196,196,196, - -/* block 112 */ -967,967,968,968,968,968,968,968,968,968,968,968,968,968,968,968, +958,958,959,958,958,958,960,958,958,958,958,959,958,958,958,958, +958,958,958,958,958,958,958,958,958,958,958,958,958,958,958,958, +958,958,958,961,961,959,959,961,962,962,962,962,960,196,196,196, +963,963,963,964,964,964,965,965,966,967,196,196,196,196,196,196, 968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968, 968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968, -968,968,968,968,967,967,967,967,967,967,967,967,967,967,967,967, -967,967,967,967,969,970,196,196,196,196,196,196,196,196,971,971, -972,972,972,972,972,972,972,972,972,972,196,196,196,196,196,196, -378,378,378,378,378,378,378,378,378,378,378,378,378,378,378,378, -378,973,376,974,376,376,376,376,385,385,385,376,385,376,376,374, +968,968,968,968,968,968,968,968,968,968,968,968,968,968,968,968, +968,968,968,968,969,969,970,970,196,196,196,196,196,196,196,196, + +/* block 112 */ +971,971,972,972,972,972,972,972,972,972,972,972,972,972,972,972, +972,972,972,972,972,972,972,972,972,972,972,972,972,972,972,972, +972,972,972,972,972,972,972,972,972,972,972,972,972,972,972,972, +972,972,972,972,971,971,971,971,971,971,971,971,971,971,971,971, +971,971,971,971,973,974,196,196,196,196,196,196,196,196,975,975, +976,976,976,976,976,976,976,976,976,976,196,196,196,196,196,196, +376,376,376,376,376,376,376,376,376,376,376,376,376,376,376,376, +376,977,374,978,374,374,374,374,383,383,383,374,383,374,374,372, /* block 113 */ -975,975,975,975,975,975,975,975,975,975,976,976,976,976,976,976, -976,976,976,976,976,976,976,976,976,976,976,976,976,976,976,976, -976,976,976,976,976,976,977,977,977,977,977,978,978,978,979,980, -981,981,981,981,981,981,981,981,981,981,981,981,981,981,981,981, -981,981,981,981,981,981,981,982,982,982,982,982,982,982,982,982, -982,982,983,984,196,196,196,196,196,196,196,196,196,196,196,985, -528,528,528,528,528,528,528,528,528,528,528,528,528,528,528,528, -528,528,528,528,528,528,528,528,528,528,528,528,528,196,196,196, +979,979,979,979,979,979,979,979,979,979,980,980,980,980,980,980, +980,980,980,980,980,980,980,980,980,980,980,980,980,980,980,980, +980,980,980,980,980,980,981,981,981,981,981,982,982,982,983,984, +985,985,985,985,985,985,985,985,985,985,985,985,985,985,985,985, +985,985,985,985,985,985,985,986,986,986,986,986,986,986,986,986, +986,986,987,988,196,196,196,196,196,196,196,196,196,196,196,989, +526,526,526,526,526,526,526,526,526,526,526,526,526,526,526,526, +526,526,526,526,526,526,526,526,526,526,526,526,526,196,196,196, /* block 114 */ -986,986,986,987,988,988,988,988,988,988,988,988,988,988,988,988, -988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988, -988,988,988,988,988,988,988,988,988,988,988,988,988,988,988,988, -988,988,988,989,987,987,986,986,986,986,987,987,986,986,987,987, -990,991,991,991,991,991,991,992,993,993,991,991,991,991,196,994, -995,995,995,995,995,995,995,995,995,995,196,196,196,196,991,991, -511,511,511,511,511,521,996,511,511,511,511,511,511,511,511,511, -522,522,522,522,522,522,522,522,522,522,511,511,511,511,511,196, +990,990,990,991,992,992,992,992,992,993,993,993,992,992,992,993, +993,993,993,993,993,993,993,993,993,993,993,993,993,993,993,993, +993,993,993,993,993,993,993,993,993,993,993,993,993,993,993,993, +993,993,993,994,991,991,990,990,990,990,991,991,990,990,991,991, +995,996,996,996,996,996,996,997,998,998,996,996,996,996,196,999, +1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,196,196,196,196,996,996, +509,509,509,509,509,519,1001,509,509,509,509,509,509,509,509,509, +520,520,520,520,520,520,520,520,520,520,509,509,509,509,509,196, /* block 115 */ -997,997,997,997,997,997,997,997,997,997,997,997,997,997,997,997, -997,997,997,997,997,997,997,997,997,997,997,997,997,997,997,997, -997,997,997,997,997,997,997,997,997,998,998,998,998,998,998,999, -999,998,998,999,999,998,998,196,196,196,196,196,196,196,196,196, -997,997,997,998,997,997,997,997,997,997,997,997,998,999,196,196, -1000,1000,1000,1000,1000,1000,1000,1000,1000,1000,196,196,1001,1002,1002,1002, -511,511,511,511,511,511,511,511,511,511,511,511,511,511,511,511, -996,511,511,511,511,511,511,523,523,523,511,520,521,520,511,511, +1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002, +1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002,1002, +1002,1002,1002,1002,1002,1002,1002,1002,1002,1003,1003,1003,1003,1003,1003,1004, +1004,1003,1003,1004,1004,1003,1003,196,196,196,196,196,196,196,196,196, +1002,1002,1002,1003,1002,1002,1002,1002,1002,1002,1002,1002,1003,1004,196,196, +1005,1005,1005,1005,1005,1005,1005,1005,1005,1005,196,196,1006,1007,1007,1007, +509,509,509,509,509,509,509,509,509,509,509,509,509,509,509,509, +1001,509,509,509,1008,1008,1008,521,521,521,509,518,519,518,509,509, /* block 116 */ -1003,1003,1003,1003,1003,1003,1003,1003,1003,1003,1003,1003,1003,1003,1003,1003, -1003,1003,1003,1003,1003,1003,1003,1003,1003,1003,1003,1003,1003,1003,1003,1003, -1003,1003,1003,1003,1003,1003,1003,1003,1003,1003,1003,1003,1003,1003,1003,1003, -1004,1003,1004,1004,1004,1005,1005,1004,1004,1005,1003,1005,1005,1003,1004,1006, -1007,1006,1007,196,196,196,196,196,196,196,196,196,196,196,196,196, -196,196,196,196,196,196,196,196,196,196,196,1003,1003,1008,1009,1010, -1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1012,1013,1013,1012,1012, -1014,1014,1011,1015,1015,1012,1016,196,196,196,196,196,196,196,196,196, +1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009, +1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009, +1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009,1009, +1010,1009,1010,1010,1010,1011,1011,1010,1010,1011,1009,1011,1011,1009,1010,1012, +1013,1012,1013,196,196,196,196,196,196,196,196,196,196,196,196,196, +196,196,196,196,196,196,196,196,196,196,196,1009,1009,1014,1015,1016, +1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1018,1019,1019,1018,1018, +1020,1020,1021,1022,1022,1018,1023,196,196,196,196,196,196,196,196,196, /* block 117 */ -196,533,533,533,533,533,533,196,196,533,533,533,533,533,533,196, -196,533,533,533,533,533,533,196,196,196,196,196,196,196,196,196, -533,533,533,533,533,533,533,196,533,533,533,533,533,533,533,196, +196,531,531,531,531,531,531,196,196,531,531,531,531,531,531,196, +196,531,531,531,531,531,531,196,196,196,196,196,196,196,196,196, +531,531,531,531,531,531,531,196,531,531,531,531,531,531,531,196, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, - 70, 70, 70,1017, 70, 70, 70, 70, 70, 70, 70,938,149,149,149,149, + 70, 70, 70,1024, 70, 70, 70, 70, 70, 70, 70,942,149,149,149,149, 70, 70, 70, 70, 70,256, 70, 70, 70,149, 46, 46,196,196,196,196, -1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018, +1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025, /* block 118 */ -1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018, -1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018, -1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018, -1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018,1018, -1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011, -1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011,1011, -1011,1011,1011,1012,1012,1013,1012,1012,1013,1012,1012,1014,1019,1016,196,196, -1020,1020,1020,1020,1020,1020,1020,1020,1020,1020,196,196,196,196,196,196, +1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025, +1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025, +1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025, +1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025, +1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017, +1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1017,1021,1021,1021,1021,1021, +1021,1021,1021,1018,1018,1019,1018,1018,1019,1018,1018,1020,1026,1023,196,196, +1027,1027,1027,1027,1027,1027,1027,1027,1027,1027,196,196,196,196,196,196, /* block 119 */ -1021,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1021,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1021,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1021,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1021,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, +1028,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1028,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1028,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1028,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1028,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, /* block 120 */ -1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1021,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1021,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1021,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1021,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1021,1022,1022,1022, +1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1028,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1028,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1028,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1028,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1028,1029,1029,1029, /* block 121 */ -1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1021,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1021,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1021,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1021,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, +1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1028,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1028,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1028,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1028,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, /* block 122 */ -1022,1022,1022,1022,1022,1022,1022,1022,1021,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1021,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1021,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1021,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1021,1022,1022,1022,1022,1022,1022,1022, +1029,1029,1029,1029,1029,1029,1029,1029,1028,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1028,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1028,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1028,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1028,1029,1029,1029,1029,1029,1029,1029, /* block 123 */ -1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1021,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1021,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1021,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1021,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, +1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1028,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1028,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1028,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1028,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, /* block 124 */ -1022,1022,1022,1022,1021,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1021,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1021,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1021,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1021,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, +1029,1029,1029,1029,1028,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1028,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1028,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1028,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1028,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, /* block 125 */ -1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1021,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1021,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1021,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1021,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, +1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1028,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1028,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1028,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1028,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, /* block 126 */ -1022,1022,1022,1022,1022,1022,1022,1022,1021,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022,1022, -1022,1022,1022,1022,196,196,196,196,196,196,196,196,196,196,196,196, -531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,531, -531,531,531,531,531,531,531,196,196,196,196,532,532,532,532,532, -532,532,532,532,532,532,532,532,532,532,532,532,532,532,532,532, -532,532,532,532,532,532,532,532,532,532,532,532,532,532,532,532, -532,532,532,532,532,532,532,532,532,532,532,532,196,196,196,196, +1029,1029,1029,1029,1029,1029,1029,1029,1028,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029,1029, +1029,1029,1029,1029,196,196,196,196,196,196,196,196,196,196,196,196, +529,529,529,529,529,529,529,529,529,529,529,529,529,529,529,529, +529,529,529,529,529,529,529,196,196,196,196,530,530,530,530,530, +530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530, +530,530,530,530,530,530,530,530,530,530,530,530,530,530,530,530, +530,530,530,530,530,530,530,530,530,530,530,530,196,196,196,196, /* block 127 */ -1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023, -1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023, -1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023, -1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023, -1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023, -1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023, -1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023, -1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023,1023, +1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030, +1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030, +1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030, +1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030, +1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030, +1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030, +1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030, +1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030,1030, /* block 128 */ -1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024, -1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024, -1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024, -1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024, -1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024, -1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024, -1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024, -1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024, +1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031, +1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031, +1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031, +1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031, +1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031, +1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031, +1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031, +1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031, /* block 129 */ -1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025, -1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025, -1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025, -1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025, -1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025, -1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025, -1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025, -1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025, +1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032, +1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032, +1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032, +1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032, +1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032, +1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032, +1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032, +1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032, /* block 130 */ -1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,910,910, -1025,910,1025,910,910,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,910, -1025,910,1025,910,910,1025,1025,910,910,910,1025,1025,1025,1025,1025,1025, -1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025, -1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025, -1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025, -1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,196,196, -1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025, +1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,914,914, +1032,914,1032,914,914,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,914, +1032,914,1032,914,914,1032,1032,914,914,914,1032,1032,1032,1032,1032,1032, +1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032, +1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032, +1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032, +1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,196,196, +1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032, /* block 131 */ -1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025, -1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025, -1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025, -1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025, -1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025, -1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,196,196,196,196,196,196, +1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032, +1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032, +1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032, +1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032, +1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032, +1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 132 */ -703,703,703,703,703,1026,1027,196,196,196,196,196,196,196,196,196, -196,196,196,292,292,292,292,292,196,196,196,196,196,305,300,305, -305,305,305,305,305,305,305,305,305,1028,305,305,305,305,305,305, -305,305,305,305,305,305,305,297,305,305,305,305,305,297,305,297, -305,305,297,305,305,297,305,305,305,305,305,305,305,305,305,305, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, +709,709,709,709,709,1033,1034,196,196,196,196,196,196,196,196,196, +196,196,196,292,292,292,292,292,196,196,196,196,196,303,299,303, +303,303,303,303,303,303,303,303,303,1035,303,303,303,303,303,303, +303,303,303,303,303,303,303,297,303,303,303,303,303,297,303,297, +303,303,297,303,303,297,303,303,303,303,303,303,303,303,303,303, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, /* block 133 */ -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,370,370,370,370,370,370,370,370,370,370,370,370,370,370, -370,370,370,340,340,340,340,340,340,340,340,340,340,340,340,340, -340,340,340,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,368,368,368,368,368,368,368,368,368,368,368,368,368,368, +368,368,368,313,313,313,313,313,313,313,313,313,313,313,313,313, +313,313,313,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, /* block 134 */ -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,1029,1029, -1029,1029,1029,1029,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,1036,1036, +1036,1036,1036,1036,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, /* block 135 */ -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, /* block 136 */ -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,1030,1031, -315,315,315,315,315,315,315,315,315,315,315,315,315,315,315,315, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,1037,1038, +313,313,313,313,313,313,313,313,313,313,313,313,313,313,313,313, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, /* block 137 */ -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -340,340,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,340,340,340,340,340,340,340,315, -1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032, -1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032, -321,321,1033,321,321,321,321,321,321,321,1029,1029,312,1034,315,315, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +313,313,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,313,313,313,313,313,313,313,313, +1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039, +1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039,1039, +319,319,1040,319,319,319,319,319,319,319,1036,1036,310,1041,313,313, /* block 138 */ -1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1036, -1037,1037,1038,1039,1037,1038,1038,1040,1041,1037,196,196,196,196,196,196, -176,176,176,176,176,176,176,176,176,176,176,176,176,176,927,927, -1037,1042,1042,755,755,1040,1041,1040,1041,1040,1041,1040,1041,1040,1041,1040, -1041,1043,1044,1043,1044,866,866,1040,1041,1037,1037,1037,1037,755,755,755, -1045,199,1046,196,199,1047,1038,1038,1042,1048,1049,1048,1049,1048,1049,1050, -1037,1051,1052,1053,1054,1054,794,196,1051,479,1050,1037,196,196,196,196, -1029,321,1029,321,1029,340,1029,321,1029,321,1029,321,1029,321,1029,321, +1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1043, +1044,1044,1045,1046,1044,1045,1045,1047,1048,1044,196,196,196,196,196,196, +176,176,176,176,176,176,176,176,176,176,176,176,176,176,931,931, +1044,1049,1049,761,761,1047,1048,1047,1048,1047,1048,1047,1048,1047,1048,1047, +1048,1050,1051,1050,1051,870,870,1047,1048,1044,1044,1044,1044,761,761,761, +1052,199,1053,196,199,1054,1045,1045,1049,1055,1056,1055,1056,1055,1056,1057, +1044,1058,1059,1060,1061,1061,802,196,1058,477,1057,1044,196,196,196,196, +1036,319,1036,319,1036,338,1036,319,1036,319,1036,319,1036,319,1036,319, /* block 139 */ -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,321,321,321, -321,321,321,321,321,321,321,321,321,321,321,321,321,340,340, 51, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,319,319,319, +319,319,319,319,319,319,319,319,319,319,319,319,319,338,338, 51, /* block 140 */ -196,1038,1055,1050,479,1050,1037,1056,1048,1049,1037,1052,1045,1057,1046,1058, -1059,1059,1059,1059,1059,1059,1059,1059,1059,1059,1047,199,1054,794,1054,1038, -1037,1060,1060,1060,1060,1060,1060, 59, 59, 59, 59, 59, 59, 59, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,1048,1051,1049,1061,755, - 46,1062,1062,1062,1062,1062,1062, 62, 62, 62, 62, 62, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62,1048,794,1049,794,1048, -1049,1063,1064,1065,1066,897,896,896,896,896,896,896,896,896,896,896, -898,896,896,896,896,896,896,896,896,896,896,896,896,896,896,896, +196,1045,1062,1057,477,1057,1044,1063,1055,1056,1044,1059,1052,1064,1053,1065, +1066,1066,1066,1066,1066,1066,1066,1066,1066,1066,1054,199,1061,802,1061,1045, +1044,1067,1067,1067,1067,1067,1067, 59, 59, 59, 59, 59, 59, 59, 59, 59, + 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59,1055,1058,1056,1068,761, + 46,1069,1069,1069,1069,1069,1069, 62, 62, 62, 62, 62, 62, 62, 62, 62, + 62, 62, 62, 62, 62, 62, 62, 62, 62, 62, 62,1055,802,1056,802,1055, +1056,1070,1071,1072,1073,901,900,900,900,900,900,900,900,900,900,900, +902,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900, /* block 141 */ -896,896,896,896,896,896,896,896,896,896,896,896,896,896,896,896, -896,896,896,896,896,896,896,896,896,896,896,896,896,896,1067,1067, -902,901,901,901,901,901,901,901,901,901,901,901,901,901,901,901, -901,901,901,901,901,901,901,901,901,901,901,901,901,901,901,196, -196,196,901,901,901,901,901,901,196,196,901,901,901,901,901,901, -196,196,901,901,901,901,901,901,196,196,901,901,901,196,196,196, -479,479,794, 46,781,479,479,196,781,794,794,794,794,781,781,196, -765,765,765,765,765,765,765,765,765,1068,1068,1068,781,781,1032,1032, +900,900,900,900,900,900,900,900,900,900,900,900,900,900,900,900, +900,900,900,900,900,900,900,900,900,900,900,900,900,900,1074,1074, +906,905,905,905,905,905,905,905,905,905,905,905,905,905,905,905, +905,905,905,905,905,905,905,905,905,905,905,905,905,905,905,196, +196,196,905,905,905,905,905,905,196,196,905,905,905,905,905,905, +196,196,905,905,905,905,905,905,196,196,905,905,905,196,196,196, +477,477,802, 46,789,477,477,196,789,802,802,802,802,789,789,196, +771,771,771,771,771,771,771,771,771,1075,1075,1075,789,789,1039,1039, /* block 142 */ -1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,196,1069,1069,1069, -1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069, -1069,1069,1069,1069,1069,1069,1069,196,1069,1069,1069,1069,1069,1069,1069,1069, -1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,196,1069,1069,196,1069, -1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,196,196, -1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,196,196, +1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,196,1076,1076,1076, +1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076, +1076,1076,1076,1076,1076,1076,1076,196,1076,1076,1076,1076,1076,1076,1076,1076, +1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,196,1076,1076,196,1076, +1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,196,196, +1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 143 */ -1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069, -1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069, -1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069, -1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069, -1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069, -1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069, -1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069, -1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,1069,196,196,196,196,196, +1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076, +1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076, +1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076, +1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076, +1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076, +1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076, +1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076, +1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,1076,196,196,196,196,196, /* block 144 */ -1070,1071,1072,196,196,196,196,1073,1073,1073,1073,1073,1073,1073,1073,1073, -1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073, -1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073,1073, -1073,1073,1073,1073,196,196,196,1074,1074,1074,1074,1074,1074,1074,1074,1074, -1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075, -1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075, -1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075,1075, -1075,1075,1075,1075,1075,1076,1076,1076,1076,1077,1077,1077,1077,1077,1077,1077, +1077,1078,1079,196,196,196,196,1080,1080,1080,1080,1080,1080,1080,1080,1080, +1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080, +1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080, +1080,1080,1080,1080,196,196,196,1081,1081,1081,1081,1081,1081,1081,1081,1081, +1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082, +1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082, +1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082, +1082,1082,1082,1082,1082,1083,1083,1083,1083,1084,1084,1084,1084,1084,1084,1084, /* block 145 */ -1077,1077,1077,1077,1077,1077,1077,1077,1077,1077,1076,1076,1077,1078,1078,196, -781,781,781,781,781,781,781,781,781,781,781,781,781,196,196,196, -1077,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, +1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1083,1083,1084,1085,1085,196, +789,789,789,789,789,789,789,789,789,789,789,789,789,196,196,196, +1084,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,189,196,196, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,189,196,196, /* block 146 */ 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, @@ -4115,97 +4143,97 @@ const uint16_t PRIV(ucd_stage2)[] = { /* 80640 bytes, block = 128 */ 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 147 */ -1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079, -1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,1079,196,196,196, -1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080, -1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080, -1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080,1080, -1080,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -1081,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082, -1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,1082,196,196,196,196, - -/* block 148 */ -1083,1083,1083,1083,1083,1083,1083,1083,1083,1083,1083,1083,1083,1083,1083,1083, -1083,1083,1083,1083,1083,1083,1083,1083,1083,1083,1083,1083,1083,1083,1083,1083, -1084,1084,1084,1084,196,196,196,196,196,196,196,196,196,1083,1083,1083, -1085,1085,1085,1085,1085,1085,1085,1085,1085,1085,1085,1085,1085,1085,1085,1085, -1085,1086,1085,1085,1085,1085,1085,1085,1085,1085,1086,196,196,196,196,196, +1086,1086,1086,1086,1086,1086,1086,1086,1086,1086,1086,1086,1086,1086,1086,1086, +1086,1086,1086,1086,1086,1086,1086,1086,1086,1086,1086,1086,1086,196,196,196, +1087,1087,1087,1087,1087,1087,1087,1087,1087,1087,1087,1087,1087,1087,1087,1087, 1087,1087,1087,1087,1087,1087,1087,1087,1087,1087,1087,1087,1087,1087,1087,1087, 1087,1087,1087,1087,1087,1087,1087,1087,1087,1087,1087,1087,1087,1087,1087,1087, -1087,1087,1087,1087,1087,1087,1088,1088,1088,1088,1088,196,196,196,196,196, +1087,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, +1088,1089,1089,1089,1089,1089,1089,1089,1089,1089,1089,1089,1089,1089,1089,1089, +1089,1089,1089,1089,1089,1089,1089,1089,1089,1089,1089,1089,196,196,196,196, + +/* block 148 */ +1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090, +1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090,1090, +1091,1091,1091,1091,196,196,196,196,196,196,196,196,196,1090,1090,1090, +1092,1092,1092,1092,1092,1092,1092,1092,1092,1092,1092,1092,1092,1092,1092,1092, +1092,1093,1092,1092,1092,1092,1092,1092,1092,1092,1093,196,196,196,196,196, +1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094, +1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094, +1094,1094,1094,1094,1094,1094,1095,1095,1095,1095,1095,196,196,196,196,196, /* block 149 */ -1089,1089,1089,1089,1089,1089,1089,1089,1089,1089,1089,1089,1089,1089,1089,1089, -1089,1089,1089,1089,1089,1089,1089,1089,1089,1089,1089,1089,1089,1089,196,1090, -1091,1091,1091,1091,1091,1091,1091,1091,1091,1091,1091,1091,1091,1091,1091,1091, -1091,1091,1091,1091,1091,1091,1091,1091,1091,1091,1091,1091,1091,1091,1091,1091, -1091,1091,1091,1091,196,196,196,196,1091,1091,1091,1091,1091,1091,1091,1091, -1092,1093,1093,1093,1093,1093,196,196,196,196,196,196,196,196,196,196, +1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096, +1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,196,1097, +1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098, +1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,1098, +1098,1098,1098,1098,196,196,196,196,1098,1098,1098,1098,1098,1098,1098,1098, +1099,1100,1100,1100,1100,1100,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 150 */ -1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094, -1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094,1094, -1094,1094,1094,1094,1094,1094,1094,1094,1095,1095,1095,1095,1095,1095,1095,1095, -1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095, -1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095,1095, -1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096, -1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096, -1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096,1096, - -/* block 151 */ -1097,1097,1097,1097,1097,1097,1097,1097,1097,1097,1097,1097,1097,1097,1097,1097, -1097,1097,1097,1097,1097,1097,1097,1097,1097,1097,1097,1097,1097,1097,196,196, -1098,1098,1098,1098,1098,1098,1098,1098,1098,1098,196,196,196,196,196,196, -1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099, -1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099,1099, -1099,1099,1099,1099,196,196,196,196,1100,1100,1100,1100,1100,1100,1100,1100, -1100,1100,1100,1100,1100,1100,1100,1100,1100,1100,1100,1100,1100,1100,1100,1100, -1100,1100,1100,1100,1100,1100,1100,1100,1100,1100,1100,1100,196,196,196,196, - -/* block 152 */ 1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101, 1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101,1101, -1101,1101,1101,1101,1101,1101,1101,1101,196,196,196,196,196,196,196,196, +1101,1101,1101,1101,1101,1101,1101,1101,1102,1102,1102,1102,1102,1102,1102,1102, 1102,1102,1102,1102,1102,1102,1102,1102,1102,1102,1102,1102,1102,1102,1102,1102, 1102,1102,1102,1102,1102,1102,1102,1102,1102,1102,1102,1102,1102,1102,1102,1102, -1102,1102,1102,1102,1102,1102,1102,1102,1102,1102,1102,1102,1102,1102,1102,1102, -1102,1102,1102,1102,196,196,196,196,196,196,196,196,196,196,196,1103, -1104,1104,1104,1104,1104,1104,1104,1104,1104,1104,1104,196,1104,1104,1104,1104, +1103,1103,1103,1103,1103,1103,1103,1103,1103,1103,1103,1103,1103,1103,1103,1103, +1103,1103,1103,1103,1103,1103,1103,1103,1103,1103,1103,1103,1103,1103,1103,1103, +1103,1103,1103,1103,1103,1103,1103,1103,1103,1103,1103,1103,1103,1103,1103,1103, -/* block 153 */ -1104,1104,1104,1104,1104,1104,1104,1104,1104,1104,1104,196,1104,1104,1104,1104, -1104,1104,1104,196,1104,1104,196,1105,1105,1105,1105,1105,1105,1105,1105,1105, -1105,1105,196,1105,1105,1105,1105,1105,1105,1105,1105,1105,1105,1105,1105,1105, -1105,1105,196,1105,1105,1105,1105,1105,1105,1105,196,1105,1105,196,196,196, -1106,1106,1106,1106,1106,1106,1106,1106,1106,1106,1106,1106,1106,1106,1106,1106, +/* block 151 */ +1104,1104,1104,1104,1104,1104,1104,1104,1104,1104,1104,1104,1104,1104,1104,1104, +1104,1104,1104,1104,1104,1104,1104,1104,1104,1104,1104,1104,1104,1104,196,196, +1105,1105,1105,1105,1105,1105,1105,1105,1105,1105,196,196,196,196,196,196, 1106,1106,1106,1106,1106,1106,1106,1106,1106,1106,1106,1106,1106,1106,1106,1106, 1106,1106,1106,1106,1106,1106,1106,1106,1106,1106,1106,1106,1106,1106,1106,1106, -1106,1106,1106,1106,196,196,196,196,196,196,196,196,196,196,196,196, +1106,1106,1106,1106,196,196,196,196,1107,1107,1107,1107,1107,1107,1107,1107, +1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107, +1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,196,196,196,196, + +/* block 152 */ +1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108, +1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108,1108, +1108,1108,1108,1108,1108,1108,1108,1108,196,196,196,196,196,196,196,196, +1109,1109,1109,1109,1109,1109,1109,1109,1109,1109,1109,1109,1109,1109,1109,1109, +1109,1109,1109,1109,1109,1109,1109,1109,1109,1109,1109,1109,1109,1109,1109,1109, +1109,1109,1109,1109,1109,1109,1109,1109,1109,1109,1109,1109,1109,1109,1109,1109, +1109,1109,1109,1109,196,196,196,196,196,196,196,196,196,196,196,1110, +1111,1111,1111,1111,1111,1111,1111,1111,1111,1111,1111,196,1111,1111,1111,1111, + +/* block 153 */ +1111,1111,1111,1111,1111,1111,1111,1111,1111,1111,1111,196,1111,1111,1111,1111, +1111,1111,1111,196,1111,1111,196,1112,1112,1112,1112,1112,1112,1112,1112,1112, +1112,1112,196,1112,1112,1112,1112,1112,1112,1112,1112,1112,1112,1112,1112,1112, +1112,1112,196,1112,1112,1112,1112,1112,1112,1112,196,1112,1112,196,196,196, +1113,1113,1113,1113,1113,1113,1113,1113,1113,1113,1113,1113,1113,1113,1113,1113, +1113,1113,1113,1113,1113,1113,1113,1113,1113,1113,1113,1113,1113,1113,1113,1113, +1113,1113,1113,1113,1113,1113,1113,1113,1113,1113,1113,1113,1113,1113,1113,1113, +1113,1113,1113,1113,196,196,196,196,196,196,196,196,196,196,196,196, /* block 154 */ -1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107, -1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107, -1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107, -1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107, -1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107, -1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107, -1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107, -1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107, +1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114, +1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114, +1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114, +1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114, +1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114, +1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114, +1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114, +1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114, /* block 155 */ -1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107, -1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107, -1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107, -1107,1107,1107,1107,1107,1107,1107,196,196,196,196,196,196,196,196,196, -1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107,1107, -1107,1107,1107,1107,1107,1107,196,196,196,196,196,196,196,196,196,196, -1107,1107,1107,1107,1107,1107,1107,1107,196,196,196,196,196,196,196,196, +1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114, +1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114, +1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114, +1114,1114,1114,1114,1114,1114,1114,196,196,196,196,196,196,196,196,196, +1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114,1114, +1114,1114,1114,1114,1114,1114,196,196,196,196,196,196,196,196,196,196, +1114,1114,1114,1114,1114,1114,1114,1114,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 156 */ -149,1108,1108,149,149,149,196,149,149,149,149,149,149,149,149,149, +149,1115,1115,149,149,149,196,149,149,149,149,149,149,149,149,149, 149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149, 149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149, 149,196,149,149,149,149,149,149,149,149,149,196,196,196,196,196, @@ -4215,79 +4243,79 @@ const uint16_t PRIV(ucd_stage2)[] = { /* 80640 bytes, block = 128 */ 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 157 */ -1109,1109,1109,1109,1109,1109,297,297,1109,297,1109,1109,1109,1109,1109,1109, -1109,1109,1109,1109,1109,1109,1109,1109,1109,1109,1109,1109,1109,1109,1109,1109, -1109,1109,1109,1109,1109,1109,1109,1109,1109,1109,1109,1109,1109,1109,1109,1109, -1109,1109,1109,1109,1109,1109,297,1109,1109,297,297,297,1109,297,297,1109, -1110,1110,1110,1110,1110,1110,1110,1110,1110,1110,1110,1110,1110,1110,1110,1110, -1110,1110,1110,1110,1110,1110,297,1111,1112,1112,1112,1112,1112,1112,1112,1112, -1113,1113,1113,1113,1113,1113,1113,1113,1113,1113,1113,1113,1113,1113,1113,1113, -1113,1113,1113,1113,1113,1113,1113,1114,1114,1115,1115,1115,1115,1115,1115,1115, +1116,1116,1116,1116,1116,1116,297,297,1116,297,1116,1116,1116,1116,1116,1116, +1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116, +1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116, +1116,1116,1116,1116,1116,1116,297,1116,1116,297,297,297,1116,297,297,1116, +1117,1117,1117,1117,1117,1117,1117,1117,1117,1117,1117,1117,1117,1117,1117,1117, +1117,1117,1117,1117,1117,1117,297,1118,1119,1119,1119,1119,1119,1119,1119,1119, +1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120, +1120,1120,1120,1120,1120,1120,1120,1121,1121,1122,1122,1122,1122,1122,1122,1122, /* block 158 */ -1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116, -1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,1116,297, -297,297,297,297,297,297,297,1117,1117,1117,1117,1117,1117,1117,1117,1117, +1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123, +1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,297, +297,297,297,297,297,297,297,1124,1124,1124,1124,1124,1124,1124,1124,1124, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, -1118,1118,1118,1118,1118,1118,1118,1118,1118,1118,1118,1118,1118,1118,1118,1118, -1118,1118,1118,297,1118,1118,297,297,297,297,297,1119,1119,1119,1119,1119, +1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125, +1125,1125,1125,297,1125,1125,297,297,297,297,297,1126,1126,1126,1126,1126, /* block 159 */ -1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120,1120, -1120,1120,1120,1120,1120,1120,1121,1121,1121,1121,1121,1121,297,297,297,1122, -1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,1123, -1123,1123,1123,1123,1123,1123,1123,1123,1123,1123,297,297,297,297,297,1124, -297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, -297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, +1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127, +1127,1127,1127,1127,1127,1127,1128,1128,1128,1128,1128,1128,297,297,297,1129, +1130,1130,1130,1130,1130,1130,1130,1130,1130,1130,1130,1130,1130,1130,1130,1130, +1130,1130,1130,1130,1130,1130,1130,1130,1130,1130,297,297,297,297,297,1131, +1132,1132,1132,1132,1132,1132,1132,1132,1132,1132,1132,1132,1132,1132,1132,1132, +1132,1132,1132,1132,1132,1132,1132,1132,1132,1132,297,297,297,297,297,297, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, /* block 160 */ -1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125, -1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125,1125, -1126,1126,1126,1126,1126,1126,1126,1126,1126,1126,1126,1126,1126,1126,1126,1126, -1126,1126,1126,1126,1126,1126,1126,1126,297,297,297,297,1127,1127,1126,1126, -1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127, -297,297,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127, -1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127, -1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127,1127, +1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133, +1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133,1133, +1134,1134,1134,1134,1134,1134,1134,1134,1134,1134,1134,1134,1134,1134,1134,1134, +1134,1134,1134,1134,1134,1134,1134,1134,297,297,297,297,1135,1135,1134,1134, +1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135, +297,297,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135, +1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135, +1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135, /* block 161 */ -1128,1129,1129,1129,297,1129,1129,297,297,297,297,297,1129,1129,1129,1129, -1128,1128,1128,1128,297,1128,1128,1128,297,1128,1128,1128,1128,1128,1128,1128, -1128,1128,1128,1128,1128,1128,1128,1128,1128,1128,1128,1128,1128,1128,1128,1128, -1128,1128,1128,1128,1128,1128,297,297,1130,1130,1130,297,297,297,297,1131, -1132,1132,1132,1132,1132,1132,1132,1132,1132,297,297,297,297,297,297,297, -1133,1133,1133,1133,1133,1133,1134,1134,1133,297,297,297,297,297,297,297, -1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135, -1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1135,1136,1136,1137, +1136,1137,1137,1137,297,1137,1137,297,297,297,297,297,1137,1137,1137,1137, +1136,1136,1136,1136,297,1136,1136,1136,297,1136,1136,1136,1136,1136,1136,1136, +1136,1136,1136,1136,1136,1136,1136,1136,1136,1136,1136,1136,1136,1136,1136,1136, +1136,1136,1136,1136,1136,1136,297,297,1138,1138,1138,297,297,297,297,1139, +1140,1140,1140,1140,1140,1140,1140,1140,1140,297,297,297,297,297,297,297, +1141,1141,1141,1141,1141,1141,1142,1142,1141,297,297,297,297,297,297,297, +1143,1143,1143,1143,1143,1143,1143,1143,1143,1143,1143,1143,1143,1143,1143,1143, +1143,1143,1143,1143,1143,1143,1143,1143,1143,1143,1143,1143,1143,1144,1144,1145, /* block 162 */ -1138,1138,1138,1138,1138,1138,1138,1138,1138,1138,1138,1138,1138,1138,1138,1138, -1138,1138,1138,1138,1138,1138,1138,1138,1138,1138,1138,1138,1138,1139,1139,1139, +1146,1146,1146,1146,1146,1146,1146,1146,1146,1146,1146,1146,1146,1146,1146,1146, +1146,1146,1146,1146,1146,1146,1146,1146,1146,1146,1146,1146,1146,1147,1147,1147, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, -1140,1140,1140,1140,1140,1140,1140,1140,1141,1140,1140,1140,1140,1140,1140,1140, -1140,1140,1140,1140,1140,1140,1140,1140,1140,1140,1140,1140,1140,1140,1140,1140, -1140,1140,1140,1140,1140,1142,1142,297,297,297,297,1143,1143,1143,1143,1143, -1144,1144,1145,1144,1144,1144,1146,297,297,297,297,297,297,297,297,297, +1148,1148,1148,1148,1148,1148,1148,1148,1149,1148,1148,1148,1148,1148,1148,1148, +1148,1148,1148,1148,1148,1148,1148,1148,1148,1148,1148,1148,1148,1148,1148,1148, +1148,1148,1148,1148,1148,1150,1150,297,297,297,297,1151,1151,1151,1151,1151, +1152,1152,1153,1152,1152,1152,1154,297,297,297,297,297,297,297,297,297, /* block 163 */ -1147,1147,1147,1147,1147,1147,1147,1147,1147,1147,1147,1147,1147,1147,1147,1147, -1147,1147,1147,1147,1147,1147,1147,1147,1147,1147,1147,1147,1147,1147,1147,1147, -1147,1147,1147,1147,1147,1147,1147,1147,1147,1147,1147,1147,1147,1147,1147,1147, -1147,1147,1147,1147,1147,1147,297,297,297,1148,1149,1149,1149,1149,1149,1149, -1150,1150,1150,1150,1150,1150,1150,1150,1150,1150,1150,1150,1150,1150,1150,1150, -1150,1150,1150,1150,1150,1150,297,297,1151,1151,1151,1151,1151,1151,1151,1151, -1152,1152,1152,1152,1152,1152,1152,1152,1152,1152,1152,1152,1152,1152,1152,1152, -1152,1152,1152,297,297,297,297,297,1153,1153,1153,1153,1153,1153,1153,1153, +1155,1155,1155,1155,1155,1155,1155,1155,1155,1155,1155,1155,1155,1155,1155,1155, +1155,1155,1155,1155,1155,1155,1155,1155,1155,1155,1155,1155,1155,1155,1155,1155, +1155,1155,1155,1155,1155,1155,1155,1155,1155,1155,1155,1155,1155,1155,1155,1155, +1155,1155,1155,1155,1155,1155,297,297,297,1156,1157,1157,1157,1157,1157,1157, +1158,1158,1158,1158,1158,1158,1158,1158,1158,1158,1158,1158,1158,1158,1158,1158, +1158,1158,1158,1158,1158,1158,297,297,1159,1159,1159,1159,1159,1159,1159,1159, +1160,1160,1160,1160,1160,1160,1160,1160,1160,1160,1160,1160,1160,1160,1160,1160, +1160,1160,1160,297,297,297,297,297,1161,1161,1161,1161,1161,1161,1161,1161, /* block 164 */ -1154,1154,1154,1154,1154,1154,1154,1154,1154,1154,1154,1154,1154,1154,1154,1154, -1154,1154,297,297,297,297,297,297,297,1155,1155,1155,1155,297,297,297, -297,297,297,297,297,297,297,297,297,1156,1156,1156,1156,1156,1156,1156, +1162,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162,1162, +1162,1162,297,297,297,297,297,297,297,1163,1163,1163,1163,297,297,297, +297,297,297,297,297,297,297,297,297,1164,1164,1164,1164,1164,1164,1164, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, @@ -4295,37 +4323,37 @@ const uint16_t PRIV(ucd_stage2)[] = { /* 80640 bytes, block = 128 */ 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, /* block 165 */ -1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157, -1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157, -1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157, -1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157,1157, -1157,1157,1157,1157,1157,1157,1157,1157,1157,297,297,297,297,297,297,297, +1165,1165,1165,1165,1165,1165,1165,1165,1165,1165,1165,1165,1165,1165,1165,1165, +1165,1165,1165,1165,1165,1165,1165,1165,1165,1165,1165,1165,1165,1165,1165,1165, +1165,1165,1165,1165,1165,1165,1165,1165,1165,1165,1165,1165,1165,1165,1165,1165, +1165,1165,1165,1165,1165,1165,1165,1165,1165,1165,1165,1165,1165,1165,1165,1165, +1165,1165,1165,1165,1165,1165,1165,1165,1165,297,297,297,297,297,297,297, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, /* block 166 */ -1158,1158,1158,1158,1158,1158,1158,1158,1158,1158,1158,1158,1158,1158,1158,1158, -1158,1158,1158,1158,1158,1158,1158,1158,1158,1158,1158,1158,1158,1158,1158,1158, -1158,1158,1158,1158,1158,1158,1158,1158,1158,1158,1158,1158,1158,1158,1158,1158, -1158,1158,1158,297,297,297,297,297,297,297,297,297,297,297,297,297, -1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159, -1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159, -1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159,1159, -1159,1159,1159,297,297,297,297,297,297,297,1160,1160,1160,1160,1160,1160, +1166,1166,1166,1166,1166,1166,1166,1166,1166,1166,1166,1166,1166,1166,1166,1166, +1166,1166,1166,1166,1166,1166,1166,1166,1166,1166,1166,1166,1166,1166,1166,1166, +1166,1166,1166,1166,1166,1166,1166,1166,1166,1166,1166,1166,1166,1166,1166,1166, +1166,1166,1166,297,297,297,297,297,297,297,297,297,297,297,297,297, +1167,1167,1167,1167,1167,1167,1167,1167,1167,1167,1167,1167,1167,1167,1167,1167, +1167,1167,1167,1167,1167,1167,1167,1167,1167,1167,1167,1167,1167,1167,1167,1167, +1167,1167,1167,1167,1167,1167,1167,1167,1167,1167,1167,1167,1167,1167,1167,1167, +1167,1167,1167,297,297,297,297,297,297,297,1168,1168,1168,1168,1168,1168, /* block 167 */ -1161,1161,1161,1161,1161,1161,1161,1161,1161,1161,1161,1161,1161,1161,1161,1161, -1161,1161,1161,1161,1161,1161,1161,1161,1161,1161,1161,1161,1161,1161,1161,1161, -1161,1161,1162,1162,1163,1163,1163,1163,340,340,340,340,340,340,340,340, -1164,1164,1164,1164,1164,1164,1164,1164,1164,1164,340,340,340,340,340,340, -1165,1165,1165,1165,1165,1165,1165,1165,1165,1165,1166,1166,1166,1166,1167,1166, -1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168,1168, -1168,1168,1168,1168,1168,1168,297,297,297,1169,1170,1171,1171,1171,1172,1173, -1174,1174,1174,1174,1174,1174,1174,1174,1174,1174,1174,1174,1174,1174,1174,1174, +1169,1169,1169,1169,1169,1169,1169,1169,1169,1169,1169,1169,1169,1169,1169,1169, +1169,1169,1169,1169,1169,1169,1169,1169,1169,1169,1169,1169,1169,1169,1169,1169, +1169,1169,1170,1170,1171,1171,1171,1171,338,338,338,338,338,338,338,338, +1172,1172,1172,1172,1172,1172,1172,1172,1172,1172,338,338,338,338,338,338, +1173,1173,1173,1173,1173,1173,1173,1173,1173,1173,1174,1174,1174,1174,1175,1174, +1176,1176,1176,1176,1176,1176,1176,1176,1176,1176,1176,1176,1176,1176,1176,1176, +1176,1176,1176,1176,1176,1176,297,297,297,1177,1178,1179,1179,1179,1180,1181, +1182,1182,1182,1182,1182,1182,1182,1182,1182,1182,1182,1182,1182,1182,1182,1182, /* block 168 */ -1174,1174,1174,1174,1174,1174,297,297,297,297,297,297,297,297,1175,1175, +1182,1182,1182,1182,1182,1182,297,297,297,297,297,297,297,297,1183,1183, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, @@ -4341,184 +4369,184 @@ const uint16_t PRIV(ucd_stage2)[] = { /* 80640 bytes, block = 128 */ 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, -1176,1176,1176,1176,1176,1176,1176,1176,1176,1176,1176,1176,1176,1176,1176,1176, -1176,1176,1176,1176,1176,1176,1176,1176,1176,1176,1176,1176,1176,1176,1176,297, +1184,1184,1184,1184,1184,1184,1184,1184,1184,1184,1184,1184,1184,1184,1184,1184, +1184,1184,1184,1184,1184,1184,1184,1184,1184,1184,1184,1184,1184,1184,1184,297, /* block 170 */ -1177,1177,1177,1177,1177,1177,1177,1177,1177,1177,1177,1177,1177,1177,1177,1177, -1177,1177,1177,1177,1177,1177,1177,1177,1177,1177,1177,1177,1177,1177,1177,1177, -1177,1177,1177,1177,1177,1177,1177,1177,1177,1177,297,1178,1178,1179,297,297, -1177,1177,297,297,297,297,297,297,297,297,297,297,297,297,297,297, -340,340,321,321,321,340,340,340,340,340,340,340,340,340,340,340, -340,340,340,340,340,340,340,340,340,340,340,340,340,340,340,340, -340,340,340,340,340,340,340,340,340,340,340,340,340,340,340,340, -340,340,340,340,340,340,340,340,340,340,340,340,316,333,333,333, +1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185, +1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,1185, +1185,1185,1185,1185,1185,1185,1185,1185,1185,1185,297,1186,1186,1187,297,297, +1185,1185,297,297,297,297,297,297,297,297,297,297,297,297,297,297, +338,338,319,319,319,1188,319,319,338,338,338,338,338,338,338,338, +1189,313,313,313,313,313,313,313,313,338,338,338,338,338,338,338, +338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338, +338,338,338,338,338,338,338,338,338,338,324,314,314,331,331,331, /* block 171 */ -1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180, -1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1180,1181,1181,1181, -1181,1181,1181,1181,1181,1181,1181,1180,297,297,297,297,297,297,297,297, -1182,1182,1182,1182,1182,1182,1182,1182,1182,1182,1182,1182,1182,1182,1182,1182, -1182,1182,1182,1182,1182,1182,1183,1183,1183,1183,1183,1183,1183,1183,1183,1183, -1183,1184,1184,1184,1184,1185,1185,1185,1185,1185,340,340,340,340,340,340, -340,340,340,340,340,340,340,340,340,340,340,340,340,340,340,340, -1186,1186,1186,1186,1186,1186,1186,1186,1186,1186,1186,1186,1186,1186,1186,1186, +1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190, +1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1190,1191,1191,1191, +1191,1191,1191,1191,1191,1191,1191,1190,297,297,297,297,297,297,297,297, +1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192,1192, +1192,1192,1192,1192,1192,1192,1193,1193,1193,1193,1193,1193,1193,1193,1193,1193, +1193,1194,1194,1194,1194,1195,1195,1195,1195,1195,338,338,338,338,338,338, +338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338, +1196,1196,1196,1196,1196,1196,1196,1196,1196,1196,1196,1196,1196,1196,1196,1196, /* block 172 */ -1186,1186,1187,1187,1187,1187,1188,1188,1188,1188,297,297,297,297,297,297, +1196,1196,1197,1197,1197,1197,1198,1198,1198,1198,297,297,297,297,297,297, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, -1189,1189,1189,1189,1189,1189,1189,1189,1189,1189,1189,1189,1189,1189,1189,1189, -1189,1189,1189,1189,1189,1190,1190,1190,1190,1190,1190,1190,297,297,297,297, +1199,1199,1199,1199,1199,1199,1199,1199,1199,1199,1199,1199,1199,1199,1199,1199, +1199,1199,1199,1199,1199,1200,1200,1200,1200,1200,1200,1200,297,297,297,297, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, -1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191,1191, -1191,1191,1191,1191,1191,1191,1191,297,297,297,297,297,297,297,297,297, +1201,1201,1201,1201,1201,1201,1201,1201,1201,1201,1201,1201,1201,1201,1201,1201, +1201,1201,1201,1201,1201,1201,1201,297,297,297,297,297,297,297,297,297, /* block 173 */ -1192,1193,1192,1194,1194,1194,1194,1194,1194,1194,1194,1194,1194,1194,1194,1194, -1194,1194,1194,1194,1194,1194,1194,1194,1194,1194,1194,1194,1194,1194,1194,1194, -1194,1194,1194,1194,1194,1194,1194,1194,1194,1194,1194,1194,1194,1194,1194,1194, -1194,1194,1194,1194,1194,1194,1194,1194,1193,1193,1193,1193,1193,1193,1193,1193, -1193,1193,1193,1193,1193,1193,1195,1196,1196,1197,1197,1197,1197,1197,196,196, -196,196,1198,1198,1198,1198,1198,1198,1198,1198,1198,1198,1198,1198,1198,1198, -1198,1198,1198,1198,1198,1198,1199,1199,1199,1199,1199,1199,1199,1199,1199,1199, -1195,1194,1194,1193,1193,1194,196,196,196,196,196,196,196,196,196,1200, +1202,1203,1202,1204,1204,1204,1204,1204,1204,1204,1204,1204,1204,1204,1204,1204, +1204,1204,1204,1204,1204,1204,1204,1204,1204,1204,1204,1204,1204,1204,1204,1204, +1204,1204,1204,1204,1204,1204,1204,1204,1204,1204,1204,1204,1204,1204,1204,1204, +1204,1204,1204,1204,1204,1204,1204,1204,1203,1203,1203,1203,1203,1203,1203,1203, +1203,1203,1203,1203,1203,1203,1205,1206,1206,1207,1207,1207,1207,1207,196,196, +196,196,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208,1208, +1208,1208,1208,1208,1208,1208,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209, +1205,1204,1204,1203,1203,1204,196,196,196,196,196,196,196,196,196,1210, /* block 174 */ -1201,1201,1202,1203,1203,1203,1203,1203,1203,1203,1203,1203,1203,1203,1203,1203, -1203,1203,1203,1203,1203,1203,1203,1203,1203,1203,1203,1203,1203,1203,1203,1203, -1203,1203,1203,1203,1203,1203,1203,1203,1203,1203,1203,1203,1203,1203,1203,1203, -1202,1202,1202,1201,1201,1201,1201,1202,1202,1204,1205,1206,1206,1207,1208,1208, -1208,1208,1201,196,196,196,196,196,196,196,196,196,196,1207,196,196, -1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209,1209, -1209,1209,1209,1209,1209,1209,1209,1209,1209,196,196,196,196,196,196,196, -1210,1210,1210,1210,1210,1210,1210,1210,1210,1210,196,196,196,196,196,196, +1211,1211,1212,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213, +1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213, +1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213,1213, +1212,1212,1212,1211,1211,1211,1211,1212,1212,1214,1215,1216,1216,1217,1218,1218, +1218,1218,1211,196,196,196,196,196,196,196,196,196,196,1217,196,196, +1219,1219,1219,1219,1219,1219,1219,1219,1219,1219,1219,1219,1219,1219,1219,1219, +1219,1219,1219,1219,1219,1219,1219,1219,1219,196,196,196,196,196,196,196, +1220,1220,1220,1220,1220,1220,1220,1220,1220,1220,196,196,196,196,196,196, /* block 175 */ -1211,1211,1211,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212, -1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212,1212, -1212,1212,1212,1212,1212,1212,1212,1211,1211,1211,1211,1211,1213,1211,1211,1211, -1211,1211,1211,1214,1214,196,1215,1215,1215,1215,1215,1215,1215,1215,1215,1215, -1216,1217,1217,1217,1212,1213,1213,1212,196,196,196,196,196,196,196,196, -1218,1218,1218,1218,1218,1218,1218,1218,1218,1218,1218,1218,1218,1218,1218,1218, -1218,1218,1218,1218,1218,1218,1218,1218,1218,1218,1218,1218,1218,1218,1218,1218, -1218,1218,1218,1219,1220,1220,1218,196,196,196,196,196,196,196,196,196, +1221,1221,1221,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222, +1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222,1222, +1222,1222,1222,1222,1222,1222,1222,1221,1221,1221,1221,1221,1223,1221,1221,1221, +1221,1221,1221,1224,1224,196,1225,1225,1225,1225,1225,1225,1225,1225,1225,1225, +1226,1227,1227,1227,1222,1223,1223,1222,196,196,196,196,196,196,196,196, +1228,1228,1228,1228,1228,1228,1228,1228,1228,1228,1228,1228,1228,1228,1228,1228, +1228,1228,1228,1228,1228,1228,1228,1228,1228,1228,1228,1228,1228,1228,1228,1228, +1228,1228,1228,1229,1230,1230,1228,196,196,196,196,196,196,196,196,196, /* block 176 */ -1221,1221,1222,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223, -1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223, -1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223,1223, -1223,1223,1223,1222,1222,1222,1221,1221,1221,1221,1221,1221,1221,1221,1221,1222, -1224,1223,1225,1225,1223,1226,1226,1227,1227,1228,1229,1229,1229,1226,1222,1221, -1230,1230,1230,1230,1230,1230,1230,1230,1230,1230,1223,1227,1223,1227,1226,1226, -196,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231,1231, -1231,1231,1231,1231,1231,196,196,196,196,196,196,196,196,196,196,196, +1231,1231,1232,1233,1233,1233,1233,1233,1233,1233,1233,1233,1233,1233,1233,1233, +1233,1233,1233,1233,1233,1233,1233,1233,1233,1233,1233,1233,1233,1233,1233,1233, +1233,1233,1233,1233,1233,1233,1233,1233,1233,1233,1233,1233,1233,1233,1233,1233, +1233,1233,1233,1232,1232,1232,1231,1231,1231,1231,1231,1231,1231,1231,1231,1232, +1234,1233,1235,1235,1233,1236,1236,1237,1237,1238,1239,1239,1239,1236,1232,1231, +1240,1240,1240,1240,1240,1240,1240,1240,1240,1240,1233,1237,1233,1237,1236,1236, +196,1241,1241,1241,1241,1241,1241,1241,1241,1241,1241,1241,1241,1241,1241,1241, +1241,1241,1241,1241,1241,196,196,196,196,196,196,196,196,196,196,196, /* block 177 */ -1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232, -1232,1232,196,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232, -1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1232,1233,1233,1233,1234, -1234,1234,1233,1233,1234,1235,1236,1237,1238,1238,1239,1238,1238,1240,1234,1232, -1232,1234,196,196,196,196,196,196,196,196,196,196,196,196,196,196, +1242,1242,1242,1242,1242,1242,1242,1242,1242,1242,1242,1242,1242,1242,1242,1242, +1242,1242,196,1242,1242,1242,1242,1242,1242,1242,1242,1242,1242,1242,1242,1242, +1242,1242,1242,1242,1242,1242,1242,1242,1242,1242,1242,1242,1243,1243,1243,1244, +1244,1244,1243,1243,1244,1245,1246,1247,1248,1248,1249,1248,1248,1250,1244,1242, +1242,1244,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 178 */ -1241,1241,1241,1241,1241,1241,1241,196,1241,196,1241,1241,1241,1241,196,1241, -1241,1241,1241,1241,1241,1241,1241,1241,1241,1241,1241,1241,1241,1241,196,1241, -1241,1241,1241,1241,1241,1241,1241,1241,1241,1242,196,196,196,196,196,196, -1243,1243,1243,1243,1243,1243,1243,1243,1243,1243,1243,1243,1243,1243,1243,1243, -1243,1243,1243,1243,1243,1243,1243,1243,1243,1243,1243,1243,1243,1243,1243,1243, -1243,1243,1243,1243,1243,1243,1243,1243,1243,1243,1243,1243,1243,1243,1243,1244, -1245,1245,1245,1244,1244,1244,1244,1244,1244,1246,1247,196,196,196,196,196, -1248,1248,1248,1248,1248,1248,1248,1248,1248,1248,196,196,196,196,196,196, +1251,1251,1251,1251,1251,1251,1251,196,1251,196,1251,1251,1251,1251,196,1251, +1251,1251,1251,1251,1251,1251,1251,1251,1251,1251,1251,1251,1251,1251,196,1251, +1251,1251,1251,1251,1251,1251,1251,1251,1251,1252,196,196,196,196,196,196, +1253,1253,1253,1253,1253,1253,1253,1253,1253,1253,1253,1253,1253,1253,1253,1253, +1253,1253,1253,1253,1253,1253,1253,1253,1253,1253,1253,1253,1253,1253,1253,1253, +1253,1253,1253,1253,1253,1253,1253,1253,1253,1253,1253,1253,1253,1253,1253,1254, +1255,1255,1255,1254,1254,1254,1254,1254,1254,1256,1257,196,196,196,196,196, +1258,1258,1258,1258,1258,1258,1258,1258,1258,1258,196,196,196,196,196,196, /* block 179 */ -1249,1250,1251,1252,196,1253,1253,1253,1253,1253,1253,1253,1253,196,196,1253, -1253,196,196,1253,1253,1253,1253,1253,1253,1253,1253,1253,1253,1253,1253,1253, -1253,1253,1253,1253,1253,1253,1253,1253,1253,196,1253,1253,1253,1253,1253,1253, -1253,196,1253,1253,196,1253,1253,1253,1253,1253,196,1254,1255,1253,1256,1251, -1249,1251,1251,1251,1251,196,196,1251,1251,196,196,1251,1251,1257,196,196, -1253,196,196,196,196,196,196,1256,196,196,196,196,196,1258,1253,1253, -1253,1253,1251,1251,196,196,1259,1259,1259,1259,1259,1259,1259,196,196,196, -1259,1259,1259,1259,1259,196,196,196,196,196,196,196,196,196,196,196, +1259,1260,1261,1262,196,1263,1263,1263,1263,1263,1263,1263,1263,196,196,1263, +1263,196,196,1263,1263,1263,1263,1263,1263,1263,1263,1263,1263,1263,1263,1263, +1263,1263,1263,1263,1263,1263,1263,1263,1263,196,1263,1263,1263,1263,1263,1263, +1263,196,1263,1263,196,1263,1263,1263,1263,1263,196,1264,1265,1263,1266,1261, +1259,1261,1261,1261,1261,196,196,1261,1261,196,196,1261,1261,1267,196,196, +1263,196,196,196,196,196,196,1266,196,196,196,196,196,1268,1263,1263, +1263,1263,1261,1261,196,196,1269,1269,1269,1269,1269,1269,1269,196,196,196, +1269,1269,1269,1269,1269,196,196,196,196,196,196,196,196,196,196,196, /* block 180 */ -1260,1260,1260,1260,1260,1260,1260,1260,1260,1260,196,1260,196,196,1260,196, -1260,1260,1260,1260,1260,1260,1260,1260,1260,1260,1260,1260,1260,1260,1260,1260, -1260,1260,1260,1260,1260,1260,1260,1260,1260,1260,1260,1260,1260,1260,1260,1260, -1260,1260,1260,1260,1260,1260,196,1260,1261,1262,1262,1263,1263,1263,1263,1263, -1263,196,1261,196,196,1261,196,1261,1261,1261,1262,196,1262,1262,1264,1265, -1264,1266,1267,1268,1269,1269,196,1270,1270,196,196,196,196,196,196,196, -196,1271,1271,196,196,196,196,196,196,196,196,196,196,196,196,196, +1270,1270,1270,1270,1270,1270,1270,1270,1270,1270,196,1270,196,196,1270,196, +1270,1270,1270,1270,1270,1270,1270,1270,1270,1270,1270,1270,1270,1270,1270,1270, +1270,1270,1270,1270,1270,1270,1270,1270,1270,1270,1270,1270,1270,1270,1270,1270, +1270,1270,1270,1270,1270,1270,196,1271,1272,1273,1273,1274,1274,1274,1274,1274, +1274,196,1272,196,196,1272,196,1272,1272,1272,1273,196,1273,1273,1275,1276, +1275,1277,1278,1279,1280,1280,196,1281,1281,196,196,196,196,196,196,196, +196,1282,1282,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 181 */ -1272,1272,1272,1272,1272,1272,1272,1272,1272,1272,1272,1272,1272,1272,1272,1272, -1272,1272,1272,1272,1272,1272,1272,1272,1272,1272,1272,1272,1272,1272,1272,1272, -1272,1272,1272,1272,1272,1272,1272,1272,1272,1272,1272,1272,1272,1272,1272,1272, -1272,1272,1272,1272,1272,1273,1273,1273,1274,1274,1274,1274,1274,1274,1274,1274, -1273,1273,1275,1274,1274,1273,1276,1272,1272,1272,1272,1277,1277,1278,1279,1279, -1280,1280,1280,1280,1280,1280,1280,1280,1280,1280,1278,1278,196,1279,1281,1272, -1272,1272,196,196,196,196,196,196,196,196,196,196,196,196,196,196, +1283,1283,1283,1283,1283,1283,1283,1283,1283,1283,1283,1283,1283,1283,1283,1283, +1283,1283,1283,1283,1283,1283,1283,1283,1283,1283,1283,1283,1283,1283,1283,1283, +1283,1283,1283,1283,1283,1283,1283,1283,1283,1283,1283,1283,1283,1283,1283,1283, +1283,1283,1283,1283,1283,1284,1284,1284,1285,1285,1285,1285,1285,1285,1285,1285, +1284,1284,1286,1285,1285,1284,1287,1283,1283,1283,1283,1288,1288,1289,1290,1290, +1291,1291,1291,1291,1291,1291,1291,1291,1291,1291,1289,1289,196,1290,1292,1283, +1283,1283,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 182 */ -1282,1282,1282,1282,1282,1282,1282,1282,1282,1282,1282,1282,1282,1282,1282,1282, -1282,1282,1282,1282,1282,1282,1282,1282,1282,1282,1282,1282,1282,1282,1282,1282, -1282,1282,1282,1282,1282,1282,1282,1282,1282,1282,1282,1282,1282,1282,1282,1282, -1283,1284,1284,1285,1285,1285,1285,1285,1285,1284,1285,1284,1284,1283,1284,1285, -1285,1284,1286,1287,1282,1282,1288,1282,196,196,196,196,196,196,196,196, -1289,1289,1289,1289,1289,1289,1289,1289,1289,1289,196,196,196,196,196,196, +1293,1293,1293,1293,1293,1293,1293,1293,1293,1293,1293,1293,1293,1293,1293,1293, +1293,1293,1293,1293,1293,1293,1293,1293,1293,1293,1293,1293,1293,1293,1293,1293, +1293,1293,1293,1293,1293,1293,1293,1293,1293,1293,1293,1293,1293,1293,1293,1293, +1294,1295,1295,1296,1296,1296,1296,1296,1296,1295,1296,1295,1295,1294,1295,1296, +1296,1295,1297,1298,1293,1293,1299,1293,196,196,196,196,196,196,196,196, +1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 183 */ -1290,1290,1290,1290,1290,1290,1290,1290,1290,1290,1290,1290,1290,1290,1290,1290, -1290,1290,1290,1290,1290,1290,1290,1290,1290,1290,1290,1290,1290,1290,1290,1290, -1290,1290,1290,1290,1290,1290,1290,1290,1290,1290,1290,1290,1290,1290,1290,1291, -1292,1292,1293,1293,1293,1293,196,196,1292,1292,1292,1292,1293,1293,1292,1294, -1295,1296,1297,1297,1298,1298,1299,1299,1299,1297,1297,1297,1297,1297,1297,1297, -1297,1297,1297,1297,1297,1297,1297,1297,1290,1290,1290,1290,1293,1293,196,196, +1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301, +1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301, +1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1301,1302, +1303,1303,1304,1304,1304,1304,196,196,1303,1303,1303,1303,1304,1304,1303,1305, +1306,1307,1308,1308,1309,1309,1310,1310,1310,1308,1308,1308,1308,1308,1308,1308, +1308,1308,1308,1308,1308,1308,1308,1308,1301,1301,1301,1301,1304,1304,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 184 */ -1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300, -1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300, -1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300,1300, -1301,1301,1301,1302,1302,1302,1302,1302,1302,1302,1302,1301,1301,1302,1301,1303, -1302,1304,1304,1305,1300,196,196,196,196,196,196,196,196,196,196,196, -1306,1306,1306,1306,1306,1306,1306,1306,1306,1306,196,196,196,196,196,196, -581,581,581,581,581,581,581,581,581,581,581,581,581,196,196,196, +1311,1311,1311,1311,1311,1311,1311,1311,1311,1311,1311,1311,1311,1311,1311,1311, +1311,1311,1311,1311,1311,1311,1311,1311,1311,1311,1311,1311,1311,1311,1311,1311, +1311,1311,1311,1311,1311,1311,1311,1311,1311,1311,1311,1311,1311,1311,1311,1311, +1312,1312,1312,1313,1313,1313,1313,1313,1313,1313,1313,1312,1312,1313,1312,1314, +1313,1315,1315,1316,1311,196,196,196,196,196,196,196,196,196,196,196, +1317,1317,1317,1317,1317,1317,1317,1317,1317,1317,196,196,196,196,196,196, +580,580,580,580,580,580,580,580,580,580,580,580,580,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 185 */ -1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307, -1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307, -1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1307,1308,1309,1308,1309,1309, -1308,1308,1308,1308,1308,1308,1310,1311,1307,1312,196,196,196,196,196,196, -1313,1313,1313,1313,1313,1313,1313,1313,1313,1313,196,196,196,196,196,196, -522,522,522,522,522,522,522,522,522,522,522,522,522,522,522,522, -522,522,522,522,196,196,196,196,196,196,196,196,196,196,196,196, +1318,1318,1318,1318,1318,1318,1318,1318,1318,1318,1318,1318,1318,1318,1318,1318, +1318,1318,1318,1318,1318,1318,1318,1318,1318,1318,1318,1318,1318,1318,1318,1318, +1318,1318,1318,1318,1318,1318,1318,1318,1318,1318,1318,1319,1320,1319,1320,1320, +1319,1319,1319,1319,1319,1319,1321,1322,1318,1323,196,196,196,196,196,196, +1324,1324,1324,1324,1324,1324,1324,1324,1324,1324,196,196,196,196,196,196, +520,520,520,520,520,520,520,520,520,520,520,520,520,520,520,520, +520,520,520,520,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 186 */ -1314,1314,1314,1314,1314,1314,1314,1314,1314,1314,1314,1314,1314,1314,1314,1314, -1314,1314,1314,1314,1314,1314,1314,1314,1314,1314,1314,196,196,1315,1316,1315, -1317,1317,1315,1315,1315,1315,1316,1315,1315,1315,1315,1318,196,196,196,196, -1319,1319,1319,1319,1319,1319,1319,1319,1319,1319,1320,1320,1321,1321,1321,1322, -1314,1314,1314,1314,1314,1314,1314,196,196,196,196,196,196,196,196,196, +1325,1325,1325,1325,1325,1325,1325,1325,1325,1325,1325,1325,1325,1325,1325,1325, +1325,1325,1325,1325,1325,1325,1325,1325,1325,1325,1325,196,196,1326,1327,1326, +1328,1328,1326,1326,1326,1326,1327,1326,1326,1326,1326,1329,196,196,196,196, +1330,1330,1330,1330,1330,1330,1330,1330,1330,1330,1331,1331,1332,1332,1332,1333, +1325,1325,1325,1325,1325,1325,1325,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 187 */ -1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323, -1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323, -1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1323,1324,1324,1324,1325, -1325,1325,1325,1325,1325,1325,1325,1325,1324,1326,1327,1328,196,196,196,196, +1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334, +1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334, +1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1335,1335,1335,1336, +1336,1336,1336,1336,1336,1336,1336,1336,1335,1337,1338,1339,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, @@ -4527,61 +4555,61 @@ const uint16_t PRIV(ucd_stage2)[] = { /* 80640 bytes, block = 128 */ /* block 188 */ 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329, -1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329,1329, -1330,1330,1330,1330,1330,1330,1330,1330,1330,1330,1330,1330,1330,1330,1330,1330, -1330,1330,1330,1330,1330,1330,1330,1330,1330,1330,1330,1330,1330,1330,1330,1330, -1331,1331,1331,1331,1331,1331,1331,1331,1331,1331,1332,1332,1332,1332,1332,1332, -1332,1332,1332,196,196,196,196,196,196,196,196,196,196,196,196,1333, +1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340, +1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340,1340, +1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341, +1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341,1341, +1342,1342,1342,1342,1342,1342,1342,1342,1342,1342,1343,1343,1343,1343,1343,1343, +1343,1343,1343,196,196,196,196,196,196,196,196,196,196,196,196,1344, /* block 189 */ -1334,1334,1334,1334,1334,1334,1334,196,196,1334,196,196,1334,1334,1334,1334, -1334,1334,1334,1334,196,1334,1334,196,1334,1334,1334,1334,1334,1334,1334,1334, -1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334,1334, -1335,1336,1336,1336,1336,1336,196,1336,1336,196,196,1337,1337,1338,1339,1340, -1336,1340,1336,1341,1342,1343,1342,196,196,196,196,196,196,196,196,196, -1344,1344,1344,1344,1344,1344,1344,1344,1344,1344,196,196,196,196,196,196, +1345,1345,1345,1345,1345,1345,1345,196,196,1345,196,196,1345,1345,1345,1345, +1345,1345,1345,1345,196,1345,1345,196,1345,1345,1345,1345,1345,1345,1345,1345, +1345,1345,1345,1345,1345,1345,1345,1345,1345,1345,1345,1345,1345,1345,1345,1345, +1346,1347,1347,1347,1347,1347,196,1347,1347,196,196,1348,1348,1349,1350,1351, +1347,1351,1347,1352,1353,1354,1353,196,196,196,196,196,196,196,196,196, +1355,1355,1355,1355,1355,1355,1355,1355,1355,1355,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 190 */ 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -1345,1345,1345,1345,1345,1345,1345,1345,196,196,1345,1345,1345,1345,1345,1345, -1345,1345,1345,1345,1345,1345,1345,1345,1345,1345,1345,1345,1345,1345,1345,1345, -1345,1345,1345,1345,1345,1345,1345,1345,1345,1345,1345,1345,1345,1345,1345,1345, -1345,1346,1346,1346,1347,1347,1347,1347,196,196,1347,1347,1346,1346,1346,1346, -1348,1345,1349,1345,1346,196,196,196,196,196,196,196,196,196,196,196, +1356,1356,1356,1356,1356,1356,1356,1356,196,196,1356,1356,1356,1356,1356,1356, +1356,1356,1356,1356,1356,1356,1356,1356,1356,1356,1356,1356,1356,1356,1356,1356, +1356,1356,1356,1356,1356,1356,1356,1356,1356,1356,1356,1356,1356,1356,1356,1356, +1356,1357,1357,1357,1358,1358,1358,1358,196,196,1358,1358,1357,1357,1357,1357, +1359,1356,1360,1356,1357,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 191 */ -1350,1351,1351,1351,1351,1351,1351,1352,1352,1351,1351,1350,1350,1350,1350,1350, -1350,1350,1350,1350,1350,1350,1350,1350,1350,1350,1350,1350,1350,1350,1350,1350, -1350,1350,1350,1350,1350,1350,1350,1350,1350,1350,1350,1350,1350,1350,1350,1350, -1350,1350,1350,1353,1354,1351,1351,1351,1351,1355,1356,1351,1351,1351,1351,1357, -1357,1357,1358,1358,1357,1357,1357,1354,196,196,196,196,196,196,196,196, -1359,1360,1360,1360,1360,1360,1360,1361,1361,1360,1360,1360,1359,1359,1359,1359, -1359,1359,1359,1359,1359,1359,1359,1359,1359,1359,1359,1359,1359,1359,1359,1359, -1359,1359,1359,1359,1359,1359,1359,1359,1359,1359,1359,1359,1359,1359,1359,1359, +1361,1362,1362,1362,1362,1362,1362,1363,1363,1362,1362,1361,1361,1361,1361,1361, +1361,1361,1361,1361,1361,1361,1361,1361,1361,1361,1361,1361,1361,1361,1361,1361, +1361,1361,1361,1361,1361,1361,1361,1361,1361,1361,1361,1361,1361,1361,1361,1361, +1361,1361,1361,1364,1365,1362,1362,1362,1362,1366,1367,1362,1362,1362,1362,1368, +1368,1368,1369,1369,1368,1368,1368,1365,196,196,196,196,196,196,196,196, +1370,1371,1371,1371,1371,1371,1371,1372,1372,1371,1371,1371,1370,1370,1370,1370, +1370,1370,1370,1370,1370,1370,1370,1370,1370,1370,1370,1370,1370,1370,1370,1370, +1370,1370,1370,1370,1370,1370,1370,1370,1370,1370,1370,1370,1370,1370,1370,1370, /* block 192 */ -1359,1359,1359,1359,1362,1362,1362,1362,1362,1362,1360,1360,1360,1360,1360,1360, -1360,1360,1360,1360,1360,1360,1360,1361,1363,1364,1365,1366,1366,1359,1365,1365, -1365,1367,1367,196,196,196,196,196,196,196,196,196,196,196,196,196, -545,545,545,545,545,545,545,545,545,545,545,545,545,545,545,545, -1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368, -1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368, -1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368,1368, -1368,1368,1368,1368,1368,1368,1368,1368,1368,196,196,196,196,196,196,196, +1370,1370,1370,1370,1373,1373,1373,1373,1373,1373,1371,1371,1371,1371,1371,1371, +1371,1371,1371,1371,1371,1371,1371,1372,1374,1375,1376,1377,1377,1378,1376,1376, +1376,1379,1379,196,196,196,196,196,196,196,196,196,196,196,196,196, +543,543,543,543,543,543,543,543,543,543,543,543,543,543,543,543, +1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380, +1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380, +1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380, +1380,1380,1380,1380,1380,1380,1380,1380,1380,196,196,196,196,196,196,196, /* block 193 */ -385,385,385,385,385,385,385,385,385,385,196,196,196,196,196,196, -196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, +383,383,383,383,383,383,383,383,383,383,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, +1231,1232,1231,1231,1231,1232,1231,1232,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 194 */ @@ -4589,49 +4617,49 @@ const uint16_t PRIV(ucd_stage2)[] = { /* 80640 bytes, block = 128 */ 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -1369,1369,1369,1369,1369,1369,1369,1369,1369,1369,1369,1369,1369,1369,1369,1369, -1369,1369,1369,1369,1369,1369,1369,1369,1369,1369,1369,1369,1369,1369,1369,1369, -1369,1370,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -1371,1371,1371,1371,1371,1371,1371,1371,1371,1371,196,196,196,196,196,196, +1381,1381,1381,1381,1381,1381,1381,1381,1381,1381,1381,1381,1381,1381,1381,1381, +1381,1381,1381,1381,1381,1381,1381,1381,1381,1381,1381,1381,1381,1381,1381,1381, +1381,1382,196,196,196,196,196,196,196,196,196,196,196,196,196,196, +1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,196,196,196,196,196,196, /* block 195 */ -1372,1372,1372,1372,1372,1372,1372,1372,1372,196,1372,1372,1372,1372,1372,1372, -1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372, -1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1372,1373, -1374,1374,1374,1374,1374,1374,1374,196,1374,1374,1374,1374,1374,1374,1373,1375, -1372,1376,1376,1377,1378,1378,196,196,196,196,196,196,196,196,196,196, -1379,1379,1379,1379,1379,1379,1379,1379,1379,1379,1380,1380,1380,1380,1380,1380, -1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,1380,196,196,196, -1381,1382,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383, +1384,1384,1384,1384,1384,1384,1384,1384,1384,196,1384,1384,1384,1384,1384,1384, +1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384, +1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1385, +1386,1386,1386,1386,1386,1386,1386,196,1386,1386,1386,1386,1386,1386,1385,1387, +1384,1388,1388,1389,1390,1390,196,196,196,196,196,196,196,196,196,196, +1391,1391,1391,1391,1391,1391,1391,1391,1391,1391,1392,1392,1392,1392,1392,1392, +1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,196,196,196, +1393,1394,1395,1395,1395,1395,1395,1395,1395,1395,1395,1395,1395,1395,1395,1395, /* block 196 */ -1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383,1383, -196,196,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384,1384, -1384,1384,1384,1384,1384,1384,1384,1384,196,1385,1384,1384,1384,1384,1384,1384, -1384,1385,1384,1384,1385,1384,1384,196,196,196,196,196,196,196,196,196, +1395,1395,1395,1395,1395,1395,1395,1395,1395,1395,1395,1395,1395,1395,1395,1395, +196,196,1396,1396,1396,1396,1396,1396,1396,1396,1396,1396,1396,1396,1396,1396, +1396,1396,1396,1396,1396,1396,1396,1396,196,1397,1396,1396,1396,1396,1396,1396, +1396,1397,1396,1396,1397,1396,1396,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 197 */ -1386,1386,1386,1386,1386,1386,1386,196,1386,1386,196,1386,1386,1386,1386,1386, -1386,1386,1386,1386,1386,1386,1386,1386,1386,1386,1386,1386,1386,1386,1386,1386, -1386,1386,1386,1386,1386,1386,1386,1386,1386,1386,1386,1386,1386,1386,1386,1386, -1386,1387,1387,1387,1387,1387,1387,196,196,196,1387,196,1387,1387,196,1387, -1387,1387,1388,1387,1389,1389,1390,1387,196,196,196,196,196,196,196,196, -1391,1391,1391,1391,1391,1391,1391,1391,1391,1391,196,196,196,196,196,196, -1392,1392,1392,1392,1392,1392,196,1392,1392,196,1392,1392,1392,1392,1392,1392, -1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1392, +1398,1398,1398,1398,1398,1398,1398,196,1398,1398,196,1398,1398,1398,1398,1398, +1398,1398,1398,1398,1398,1398,1398,1398,1398,1398,1398,1398,1398,1398,1398,1398, +1398,1398,1398,1398,1398,1398,1398,1398,1398,1398,1398,1398,1398,1398,1398,1398, +1398,1399,1399,1399,1399,1399,1399,196,196,196,1399,196,1399,1399,196,1399, +1399,1399,1400,1399,1401,1401,1402,1399,196,196,196,196,196,196,196,196, +1403,1403,1403,1403,1403,1403,1403,1403,1403,1403,196,196,196,196,196,196, +1404,1404,1404,1404,1404,1404,196,1404,1404,196,1404,1404,1404,1404,1404,1404, +1404,1404,1404,1404,1404,1404,1404,1404,1404,1404,1404,1404,1404,1404,1404,1404, /* block 198 */ -1392,1392,1392,1392,1392,1392,1392,1392,1392,1392,1393,1393,1393,1393,1393,196, -1394,1394,196,1393,1393,1394,1393,1395,1392,196,196,196,196,196,196,196, -1396,1396,1396,1396,1396,1396,1396,1396,1396,1396,196,196,196,196,196,196, -196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, +1404,1404,1404,1404,1404,1404,1404,1404,1404,1404,1405,1405,1405,1405,1405,196, +1406,1406,196,1405,1405,1406,1405,1407,1404,196,196,196,196,196,196,196, +1408,1408,1408,1408,1408,1408,1408,1408,1408,1408,196,196,196,196,196,196, +1409,1409,1409,1409,1409,1409,1409,1409,1409,1409,1409,1409,1409,1409,1409,1409, +1409,1409,1409,1409,1409,1409,1409,1409,1409,1409,1409,1409,1409,1409,1409,1409, +1409,1409,1409,1409,1409,1409,1409,1409,1409,1410,1409,1409,196,196,196,196, +1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 199 */ @@ -4641,16 +4669,16 @@ const uint16_t PRIV(ucd_stage2)[] = { /* 80640 bytes, block = 128 */ 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -1397,1397,1397,1397,1397,1397,1397,1397,1397,1397,1397,1397,1397,1397,1397,1397, -1397,1397,1397,1398,1398,1399,1399,1400,1400,196,196,196,196,196,196,196, +1412,1412,1412,1412,1412,1412,1412,1412,1412,1412,1412,1412,1412,1412,1412,1412, +1412,1412,1412,1413,1413,1414,1414,1415,1415,196,196,196,196,196,196,196, /* block 200 */ -1401,1401,1402,1403,1404,1404,1404,1404,1404,1404,1404,1404,1404,1404,1404,1404, -1404,196,1404,1404,1404,1404,1404,1404,1404,1404,1404,1404,1404,1404,1404,1404, -1404,1404,1404,1404,1404,1404,1404,1404,1404,1404,1404,1404,1404,1404,1404,1404, -1404,1404,1404,1404,1403,1403,1401,1401,1401,1401,1401,196,196,196,1403,1403, -1401,1405,1406,1407,1407,1408,1408,1408,1408,1408,1408,1408,1408,1408,1408,1408, -1409,1409,1409,1409,1409,1409,1409,1409,1409,1409,1410,196,196,196,196,196, +1416,1416,1417,1418,1419,1419,1419,1419,1419,1419,1419,1419,1419,1419,1419,1419, +1419,196,1419,1419,1419,1419,1419,1419,1419,1419,1419,1419,1419,1419,1419,1419, +1419,1419,1419,1419,1419,1419,1419,1419,1419,1419,1419,1419,1419,1419,1419,1419, +1419,1419,1419,1419,1418,1418,1416,1416,1416,1416,1416,196,196,196,1418,1418, +1416,1420,1421,1422,1422,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423, +1424,1424,1424,1424,1424,1424,1424,1424,1424,1424,1425,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, @@ -4658,25 +4686,25 @@ const uint16_t PRIV(ucd_stage2)[] = { /* 80640 bytes, block = 128 */ 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -914,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411,1411, -435,435,1411,435,1411,437,437,437,437,437,437,437,437,438,438,438, -438,437,437,437,437,437,437,437,437,437,437,437,437,437,437,437, -437,437,196,196,196,196,196,196,196,196,196,196,196,196,196,1412, +918,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, +1426,1426,1426,1426,1426,1426,1426,1426,1426,1426,1426,1426,1426,1426,1426,1426, +433,433,1426,433,1426,435,435,435,435,435,435,435,435,436,436,436, +436,435,435,435,435,435,435,435,435,435,435,435,435,435,435,435, +435,435,196,196,196,196,196,196,196,196,196,196,196,196,196,1427, /* block 202 */ -1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413, -1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413, -1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413, -1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413, -1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413, -1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413, -1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413, -1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413, +1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428, +1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428, +1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428, +1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428, +1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428, +1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428, +1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428, +1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428, /* block 203 */ -1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413, -1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,196,196,196,196,196,196, +1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428, +1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, @@ -4685,137 +4713,137 @@ const uint16_t PRIV(ucd_stage2)[] = { /* 80640 bytes, block = 128 */ 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 204 */ -1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414, -1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414, -1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414, -1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414, -1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414, -1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414, -1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,1414,196, -1415,1415,1415,1415,1415,196,196,196,196,196,196,196,196,196,196,196, +1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429, +1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429, +1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429, +1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429, +1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429, +1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429, +1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,196, +1430,1430,1430,1430,1430,196,196,196,196,196,196,196,196,196,196,196, /* block 205 */ -1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413, -1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413, -1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413, -1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413,1413, -1413,1413,1413,1413,196,196,196,196,196,196,196,196,196,196,196,196, +1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428, +1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428, +1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428, +1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428, +1428,1428,1428,1428,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 206 */ 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416, -1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416, -1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416, -1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416, -1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416, -1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416,1416, -1416,1417,1417,196,196,196,196,196,196,196,196,196,196,196,196,196, +1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431, +1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431, +1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431, +1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431, +1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431, +1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431, +1431,1432,1432,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 207 */ -1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418, -1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418, -1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418, -1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418, -1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418, -1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418, -1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418, -1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418, +1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433, +1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433, +1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433, +1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433, +1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433, +1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433, +1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433, +1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433, /* block 208 */ -1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418, -1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418, -1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418, -1419,1419,1419,1419,1419,1419,1419,1419,1419,1419,1419,1419,1419,1419,1419,1419, -1420,1418,1418,1418,1418,1418,1418,1421,1421,1421,1421,1421,1421,1421,1421,1421, -1421,1421,1421,1421,1421,1421,196,196,196,196,196,196,196,196,196,196, -1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418, -1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418, +1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433, +1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433, +1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433, +1434,1434,1434,1434,1434,1434,1434,1434,1434,1434,1434,1434,1434,1434,1434,1434, +1435,1433,1433,1433,1433,1433,1433,1436,1436,1436,1436,1436,1436,1436,1436,1436, +1436,1436,1436,1436,1436,1436,196,196,196,196,196,196,196,196,196,196, +1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433, +1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433, /* block 209 */ -1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418, -1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418, -1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418, -1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418, -1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418, -1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418, -1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418, -1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,1418,196,196,196,196,196, +1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433, +1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433, +1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433, +1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433, +1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433, +1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433, +1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433, +1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,196,196,196,196,196, /* block 210 */ -1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422, -1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422, -1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422, -1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422, -1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422, -1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422, -1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422, -1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422, +1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437, +1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437, +1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437, +1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437, +1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437, +1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437, +1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437, +1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437, /* block 211 */ -1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422, -1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422, -1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422, -1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422,1422, -1422,1422,1422,1422,1422,1422,1422,196,196,196,196,196,196,196,196,196, +1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437, +1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437, +1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437, +1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437,1437, +1437,1437,1437,1437,1437,1437,1437,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 212 */ -1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423, -1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1423,1424,1424, -1424,1424,1424,1424,1424,1424,1424,1424,1424,1424,1425,1425,1425,1424,1424,1426, -1427,1427,1427,1427,1427,1427,1427,1427,1427,1427,196,196,196,196,196,196, +1438,1438,1438,1438,1438,1438,1438,1438,1438,1438,1438,1438,1438,1438,1438,1438, +1438,1438,1438,1438,1438,1438,1438,1438,1438,1438,1438,1438,1438,1438,1439,1439, +1439,1439,1439,1439,1439,1439,1439,1439,1439,1439,1440,1440,1440,1439,1439,1441, +1442,1442,1442,1442,1442,1442,1442,1442,1442,1442,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 213 */ -930,930,930,930,930,930,930,930,930,930,930,930,930,930,930,930, -930,930,930,930,930,930,930,930,930,930,930,930,930,930,930,930, -930,930,930,930,930,930,930,930,930,930,930,930,930,930,930,930, -930,930,930,930,930,930,930,930,930,930,930,930,930,930,930,930, -930,930,930,930,930,930,930,930,930,930,930,930,930,930,930,930, -930,930,930,930,930,930,930,930,930,930,930,930,930,930,930,930, -930,930,930,930,930,930,930,930,930,930,930,930,930,930,930,930, -930,930,930,930,930,930,930,930,930,930,930,930,930,930,930,930, +934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934, +934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934, +934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934, +934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934, +934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934, +934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934, +934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934, +934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934, /* block 214 */ -930,930,930,930,930,930,930,930,930,930,930,930,930,930,930,930, -930,930,930,930,930,930,930,930,930,930,930,930,930,930,930,930, -930,930,930,930,930,930,930,930,930,930,930,930,930,930,930,930, -930,930,930,930,930,930,930,930,930,196,196,196,196,196,196,196, -1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428, -1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,1428,196, -1429,1429,1429,1429,1429,1429,1429,1429,1429,1429,196,196,196,196,1430,1430, -1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431, +934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934, +934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934, +934,934,934,934,934,934,934,934,934,934,934,934,934,934,934,934, +934,934,934,934,934,934,934,934,934,196,196,196,196,196,196,196, +1443,1443,1443,1443,1443,1443,1443,1443,1443,1443,1443,1443,1443,1443,1443,1443, +1443,1443,1443,1443,1443,1443,1443,1443,1443,1443,1443,1443,1443,1443,1443,196, +1444,1444,1444,1444,1444,1444,1444,1444,1444,1444,196,196,196,196,1445,1445, +1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446, /* block 215 */ -1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431, -1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431, -1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431, -1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,1431,196, -1432,1432,1432,1432,1432,1432,1432,1432,1432,1432,196,196,196,196,196,196, -1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433, -1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,1433,196,196, -1434,1434,1434,1434,1434,1435,196,196,196,196,196,196,196,196,196,196, +1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446, +1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446, +1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446, +1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,1446,196, +1447,1447,1447,1447,1447,1447,1447,1447,1447,1447,196,196,196,196,196,196, +1448,1448,1448,1448,1448,1448,1448,1448,1448,1448,1448,1448,1448,1448,1448,1448, +1448,1448,1448,1448,1448,1448,1448,1448,1448,1448,1448,1448,1448,1448,196,196, +1449,1449,1449,1449,1449,1450,196,196,196,196,196,196,196,196,196,196, /* block 216 */ -1436,1436,1436,1436,1436,1436,1436,1436,1436,1436,1436,1436,1436,1436,1436,1436, -1436,1436,1436,1436,1436,1436,1436,1436,1436,1436,1436,1436,1436,1436,1436,1436, -1436,1436,1436,1436,1436,1436,1436,1436,1436,1436,1436,1436,1436,1436,1436,1436, -1437,1437,1437,1437,1437,1437,1437,1438,1438,1439,1440,1440,1441,1441,1441,1441, -1442,1442,1443,1443,1438,1441,196,196,196,196,196,196,196,196,196,196, -1444,1444,1444,1444,1444,1444,1444,1444,1444,1444,196,1445,1445,1445,1445,1445, -1445,1445,196,1436,1436,1436,1436,1436,1436,1436,1436,1436,1436,1436,1436,1436, -1436,1436,1436,1436,1436,1436,1436,1436,196,196,196,196,196,1436,1436,1436, +1451,1451,1451,1451,1451,1451,1451,1451,1451,1451,1451,1451,1451,1451,1451,1451, +1451,1451,1451,1451,1451,1451,1451,1451,1451,1451,1451,1451,1451,1451,1451,1451, +1451,1451,1451,1451,1451,1451,1451,1451,1451,1451,1451,1451,1451,1451,1451,1451, +1452,1452,1452,1452,1452,1452,1452,1453,1453,1454,1455,1455,1456,1456,1456,1456, +1457,1457,1458,1458,1453,1456,196,196,196,196,196,196,196,196,196,196, +1459,1459,1459,1459,1459,1459,1459,1459,1459,1459,196,1460,1460,1460,1460,1460, +1460,1460,196,1451,1451,1451,1451,1451,1451,1451,1451,1451,1451,1451,1451,1451, +1451,1451,1451,1451,1451,1451,1451,1451,196,196,196,196,196,1451,1451,1451, /* block 217 */ -1436,1436,1436,1436,1436,1436,1436,1436,1436,1436,1436,1436,1436,1436,1436,1436, +1451,1451,1451,1451,1451,1451,1451,1451,1451,1451,1451,1451,1451,1451,1451,1451, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, @@ -4829,94 +4857,84 @@ const uint16_t PRIV(ucd_stage2)[] = { /* 80640 bytes, block = 128 */ 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -1446,1446,1446,1447,1447,1447,1447,1447,1447,1447,1447,1447,1447,1447,1447,1447, -1447,1447,1447,1447,1447,1447,1447,1447,1447,1447,1447,1447,1447,1447,1447,1447, -1447,1447,1447,1448,1447,1447,1447,1448,1448,1448,1448,1449,1449,1450,1451,1451, -1452,1452,1452,1452,1452,1452,1452,1452,1452,1452,196,196,196,196,196,196, +1461,1461,1461,1462,1462,1462,1462,1462,1462,1462,1462,1462,1462,1462,1462,1462, +1462,1462,1462,1462,1462,1462,1462,1462,1462,1462,1462,1462,1462,1462,1462,1462, +1462,1462,1462,1463,1462,1462,1462,1463,1463,1463,1463,1464,1464,1465,1466,1466, +1467,1467,1467,1467,1467,1467,1467,1467,1467,1467,196,196,196,196,196,196, /* block 219 */ 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -1453,1453,1453,1453,1453,1453,1453,1453,1453,1453,1453,1453,1453,1453,1453,1453, -1453,1453,1453,1453,1453,1453,1453,1453,1453,1453,1453,1453,1453,1453,1453,1453, -1454,1454,1454,1454,1454,1454,1454,1454,1454,1454,1454,1454,1454,1454,1454,1454, -1454,1454,1454,1454,1454,1454,1454,1454,1454,1454,1454,1454,1454,1454,1454,1454, +1468,1468,1468,1468,1468,1468,1468,1468,1468,1468,1468,1468,1468,1468,1468,1468, +1468,1468,1468,1468,1468,1468,1468,1468,1468,1468,1468,1468,1468,1468,1468,1468, +1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469, +1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469, /* block 220 */ -1455,1455,1455,1455,1455,1455,1455,1455,1455,1455,1455,1455,1455,1455,1455,1455, -1455,1455,1455,1455,1455,1455,1455,1456,1457,1458,1458,196,196,196,196,196, -196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, +1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470, +1470,1470,1470,1470,1470,1470,1470,1471,1472,1473,1473,196,196,196,196,196, +1474,1474,1474,1474,1474,1474,1474,1474,1474,1474,1474,1474,1474,1474,1474,1474, +1474,1474,1474,1474,1474,1474,1474,1474,1474,196,196,1475,1475,1475,1475,1475, +1475,1475,1475,1475,1475,1475,1475,1475,1475,1475,1475,1475,1475,1475,1475,1475, +1475,1475,1475,1475,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 221 */ -1459,1459,1459,1459,1459,1459,1459,1459,1459,1459,1459,1459,1459,1459,1459,1459, -1459,1459,1459,1459,1459,1459,1459,1459,1459,1459,1459,1459,1459,1459,1459,1459, -1459,1459,1459,1459,1459,1459,1459,1459,1459,1459,1459,1459,1459,1459,1459,1459, -1459,1459,1459,1459,1459,1459,1459,1459,1459,1459,1459,1459,1459,1459,1459,1459, -1459,1459,1459,1459,1459,1459,1459,1459,1459,1459,1459,196,196,196,196,1460, -1459,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461, -1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461, -1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461,1461, +1476,1476,1476,1476,1476,1476,1476,1476,1476,1476,1476,1476,1476,1476,1476,1476, +1476,1476,1476,1476,1476,1476,1476,1476,1476,1476,1476,1476,1476,1476,1476,1476, +1476,1476,1476,1476,1476,1476,1476,1476,1476,1476,1476,1476,1476,1476,1476,1476, +1476,1476,1476,1476,1476,1476,1476,1476,1476,1476,1476,1476,1476,1476,1476,1476, +1476,1476,1476,1476,1476,1476,1476,1476,1476,1476,1476,196,196,196,196,1477, +1476,1478,1478,1478,1478,1478,1478,1478,1478,1478,1478,1478,1478,1478,1478,1478, +1478,1478,1478,1478,1478,1478,1478,1478,1478,1478,1478,1478,1478,1478,1478,1478, +1478,1478,1478,1478,1478,1478,1478,1478,1478,1478,1478,1478,1478,1478,1478,1478, /* block 222 */ -1461,1461,1461,1461,1461,1461,1461,1461,196,196,196,196,196,196,196,1462, -1462,1462,1462,1463,1463,1463,1463,1463,1463,1463,1463,1463,1463,1463,1463,1463, +1478,1478,1478,1478,1478,1478,1478,1478,196,196,196,196,196,196,196,1479, +1479,1479,1479,1480,1480,1480,1480,1480,1480,1480,1480,1480,1480,1480,1480,1480, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -1464,1465,1466,867,1467,196,196,196,196,196,196,196,196,196,196,196, -1468,1468,196,196,196,196,196,196,196,196,196,196,196,196,196,196, +1481,1482,1483,871,1484,196,196,196,196,196,196,196,196,196,196,196, +1485,1485,1486,1486,873,873,873,196,196,196,196,196,196,196,196,196, /* block 223 */ -1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469, -1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469, -1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469, -1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469, -1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469, -1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469, -1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469, -1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469, +1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487, +1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487, +1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487, +1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487, +1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487, +1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487, +1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487, +1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487, /* block 224 */ -1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469, -1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469, -1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469, -1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469, -1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469, -1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469, -1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469,1469, -1469,1469,1469,1469,1469,1469,1469,1469,196,196,196,196,196,196,196,196, +1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488, +1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488, +1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488, +1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488, +1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488, +1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488, +1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488, +1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488, /* block 225 */ -1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470, -1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470, -1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470, -1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470, -1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470, -1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470, -1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470, -1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470, - -/* block 226 */ -1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470, -1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470, -1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470, -1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470, -1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470,1470, -1470,1470,1470,1470,1470,1470,196,196,196,196,196,196,196,196,196,196, +1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488, +1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488, +1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488, +1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488, +1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488,1488, +1488,1488,1488,1488,1488,1488,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,1470, +196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,1488, -/* block 227 */ -1469,1469,1469,1469,1469,1469,1469,1469,1469,196,196,196,196,196,196,196, -196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, +/* block 226 */ +1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487, +1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, @@ -4924,6 +4942,16 @@ const uint16_t PRIV(ucd_stage2)[] = { /* 80640 bytes, block = 128 */ 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, +/* block 227 */ +1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487, +1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487, +1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487, +1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487, +1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487, +1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487, +1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487,1487, +1487,1487,1487,196,196,196,196,196,196,196,196,196,196,196,196,196, + /* block 228 */ 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, @@ -4932,72 +4960,72 @@ const uint16_t PRIV(ucd_stage2)[] = { /* 80640 bytes, block = 128 */ 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -1471,1471,1471,1471,196,1471,1471,1471,1471,1471,1471,1471,196,1471,1471,196, +1489,1489,1489,1489,196,1489,1489,1489,1489,1489,1489,1489,196,1489,1489,196, /* block 229 */ -896,891,891,891,891,891,891,891,891,891,891,891,891,891,891,891, -891,891,891,891,891,891,891,891,891,891,891,891,891,891,891,891, -891,891,891,891,891,891,891,891,891,891,891,891,891,891,891,891, -891,891,891,891,891,891,891,891,891,891,891,891,891,891,891,891, -891,891,891,891,891,891,891,891,891,891,891,891,891,891,891,891, -891,891,891,891,891,891,891,891,891,891,891,891,891,891,891,891, -891,891,891,891,891,891,891,891,891,891,891,891,891,891,891,891, -891,891,891,891,891,891,891,891,891,891,891,891,891,891,891,891, +900,895,895,895,895,895,895,895,895,895,895,895,895,895,895,895, +895,895,895,895,895,895,895,895,895,895,895,895,895,895,895,895, +895,895,895,895,895,895,895,895,895,895,895,895,895,895,895,895, +895,895,895,895,895,895,895,895,895,895,895,895,895,895,895,895, +895,895,895,895,895,895,895,895,895,895,895,895,895,895,895,895, +895,895,895,895,895,895,895,895,895,895,895,895,895,895,895,895, +895,895,895,895,895,895,895,895,895,895,895,895,895,895,895,895, +895,895,895,895,895,895,895,895,895,895,895,895,895,895,895,895, /* block 230 */ -891,891,891,891,891,891,891,891,891,891,891,891,891,891,891,891, -891,891,891,891,891,891,891,891,891,891,891,891,891,891,891,891, -891,891,891,891,891,891,891,891,891,891,891,891,891,891,891,891, -891,891,891,891,891,891,891,891,891,891,891,891,891,891,891,891, -891,891,891,891,891,891,891,891,891,891,891,891,891,891,891,891, -891,891,891,891,891,891,891,891,891,891,891,891,891,891,891,891, -891,891,891,891,891,891,891,891,891,891,891,891,891,891,891,891, -891,891,891,891,891,891,891,891,891,891,891,891,891,891,891,891, +895,895,895,895,895,895,895,895,895,895,895,895,895,895,895,895, +895,895,895,895,895,895,895,895,895,895,895,895,895,895,895,895, +895,895,895,895,895,895,895,895,895,895,895,895,895,895,895,895, +895,895,895,895,895,895,895,895,895,895,895,895,895,895,895,895, +895,895,895,895,895,895,895,895,895,895,895,895,895,895,895,895, +895,895,895,895,895,895,895,895,895,895,895,895,895,895,895,895, +895,895,895,895,895,895,895,895,895,895,895,895,895,895,895,895, +895,895,895,895,895,895,895,895,895,895,895,895,895,895,895,895, /* block 231 */ -891,891,891,891,891,891,891,891,891,891,891,891,891,891,891,891, -891,891,891,891,891,891,891,891,891,891,891,891,891,891,891,891, -896,896,896,196,196,196,196,196,196,196,196,196,196,196,196,196, -196,196,891,196,196,196,196,196,196,196,196,196,196,196,196,196, +895,895,895,895,895,895,895,895,895,895,895,895,895,895,895,895, +895,895,895,895,895,895,895,895,895,895,895,895,895,895,895,895, +900,900,900,196,196,196,196,196,196,196,196,196,196,196,196,196, +196,196,895,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -891,891,891,196,196,896,196,196,196,196,196,196,196,196,196,196, -196,196,196,196,896,896,896,896,196,196,196,196,196,196,196,196, -1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472, +895,895,895,196,196,900,196,196,196,196,196,196,196,196,196,196, +196,196,196,196,900,900,900,900,196,196,196,196,196,196,196,196, +1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490, /* block 232 */ -1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472, -1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472, -1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472, -1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472, -1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472, -1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472, -1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472, -1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472, +1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490, +1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490, +1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490, +1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490, +1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490, +1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490, +1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490, +1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490, /* block 233 */ -1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472, -1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472, -1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472, -1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472, -1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472, -1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472, -1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472, -1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,1472,196,196,196,196, +1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490, +1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490, +1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490, +1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490, +1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490, +1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490, +1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490, +1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,1490,196,196,196,196, /* block 234 */ -1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473, -1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473, -1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473, -1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473, -1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473, -1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473, -1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,196,196,196,196,196, -1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,196,196,196, +1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491, +1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491, +1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491, +1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491, +1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491, +1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491, +1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,196,196,196,196,196, +1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,196,196,196, /* block 235 */ -1473,1473,1473,1473,1473,1473,1473,1473,1473,196,196,196,196,196,196,196, -1473,1473,1473,1473,1473,1473,1473,1473,1473,1473,196,196,1474,1475,1476,1477, -1478,1478,1478,1478,196,196,196,196,196,196,196,196,196,196,196,196, +1491,1491,1491,1491,1491,1491,1491,1491,1491,196,196,196,196,196,196,196, +1491,1491,1491,1491,1491,1491,1491,1491,1491,1491,196,196,1492,1493,1494,1495, +1496,1496,1496,1496,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, @@ -5005,34 +5033,34 @@ const uint16_t PRIV(ucd_stage2)[] = { /* 80640 bytes, block = 128 */ 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 236 */ -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, /* block 237 */ -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -1479,1479,1479,1479,1479,1479,1479,1479,1479,1479,196,196,196,196,196,196, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +1497,1497,1497,1497,1497,1497,1497,1497,1497,1497,789,789,789,196,196,196, /* block 238 */ -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,196,196,196,196,196,196,196,196,196,196,196,196, -196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,196,196,196,196,196,196,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +802,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 239 */ 176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176, @@ -5040,66 +5068,66 @@ const uint16_t PRIV(ucd_stage2)[] = { /* 80640 bytes, block = 128 */ 176,176,176,176,176,176,176,176,176,176,176,176,176,176,196,196, 176,176,176,176,176,176,176,176,176,176,176,176,176,176,176,176, 176,176,176,176,176,176,176,196,196,196,196,196,196,196,196,196, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, /* block 240 */ -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,196,196,196,196,196,196,196,196,196,196,196,196, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 241 */ -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, /* block 242 */ -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,196,196,196,196,196,196,196,196,196,196, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,196,196,196,196,196,196,196,196,196,196, /* block 243 */ -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,196,196,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,1480,1480,176,176,176,510,510,510,1481,1481,1481, -1481,1481,1481, 51, 51, 51, 51, 51, 51, 51, 51,176,176,176,176,176, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,196,196,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,1498,1498,176,176,176,508,508,508,1499,1499,1499, +1499,1499,1499, 51, 51, 51, 51, 51, 51, 51, 51,176,176,176,176,176, /* block 244 */ -176,176,176,510,510,176,176,176,176,176,176,176,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,176,176,176,176,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,781,781,196,196,196,196,196, +176,176,176,508,508,176,176,176,176,176,176,176,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,176,176,176,176,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,789,789,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 245 */ -1077,1077,1077,1077,1077,1077,1077,1077,1077,1077,1077,1077,1077,1077,1077,1077, -1077,1077,1077,1077,1077,1077,1077,1077,1077,1077,1077,1077,1077,1077,1077,1077, -1077,1077,1077,1077,1077,1077,1077,1077,1077,1077,1077,1077,1077,1077,1077,1077, -1077,1077,1077,1077,1077,1077,1077,1077,1077,1077,1077,1077,1077,1077,1077,1077, -1077,1077,1482,1482,1482,1077,196,196,196,196,196,196,196,196,196,196, +1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084, +1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084, +1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084, +1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084,1084, +1084,1084,1500,1500,1500,1084,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, @@ -5109,125 +5137,125 @@ const uint16_t PRIV(ucd_stage2)[] = { /* 80640 bytes, block = 128 */ 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -907,907,907,907,907,907,907,907,907,907,907,907,907,907,907,907, -907,907,907,907,196,196,196,196,196,196,196,196,196,196,196,196, -907,907,907,907,907,907,907,907,907,907,907,907,907,907,907,907, -907,907,907,907,196,196,196,196,196,196,196,196,196,196,196,196, +911,911,911,911,911,911,911,911,911,911,911,911,911,911,911,911, +911,911,911,911,196,196,196,196,196,196,196,196,196,196,196,196, +911,911,911,911,911,911,911,911,911,911,911,911,911,911,911,911, +911,911,911,911,196,196,196,196,196,196,196,196,196,196,196,196, /* block 247 */ -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,196,196,196,196,196,196,196,196,196, -904,904,904,904,904,904,904,904,904,904,904,904,904,904,904,904, -904,904,907,907,907,907,907,907,907,196,196,196,196,196,196,196, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,196,196,196,196,196,196,196,196,196, +908,908,908,908,908,908,908,908,908,908,908,908,908,908,908,908, +908,908,911,911,911,911,911,911,911,196,196,196,196,196,196,196, /* block 248 */ -782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782, -782,782,782,782,782,782,782,782,782,782,783,783,783,783,783,783, -783,783,795,795,783,783,783,783,783,783,783,783,783,783,783,783, -783,783,783,783,782,782,782,782,782,782,782,782,782,782,782,782, -782,782,782,782,782,782,782,782,782,782,782,782,782,782,783,783, -783,783,783,783,783,196,795,795,783,783,783,783,783,783,783,783, -783,783,783,783,783,783,783,783,782,782,782,782,782,782,782,782, -782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782, +790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790, +790,790,790,790,790,790,790,790,790,790,791,791,791,791,791,791, +791,791,803,803,791,791,791,791,791,791,791,791,791,791,791,791, +791,791,791,791,790,790,790,790,790,790,790,790,790,790,790,790, +790,790,790,790,790,790,790,790,790,790,790,790,790,790,791,791, +791,791,791,791,791,196,803,803,791,791,791,791,791,791,791,791, +791,791,791,791,791,791,791,791,790,790,790,790,790,790,790,790, +790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790, /* block 249 */ -782,782,783,783,783,783,783,783,783,783,795,795,783,783,783,783, -783,783,783,783,783,783,783,783,783,783,783,783,782,196,782,782, -196,196,782,196,196,782,782,196,196,782,782,782,782,196,782,782, -782,782,782,782,782,782,783,783,783,783,196,783,196,783,795,795, -783,783,783,783,196,783,783,783,783,783,783,783,783,783,783,783, -782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782, -782,782,782,782,782,782,782,782,782,782,783,783,783,783,783,783, -783,783,795,795,783,783,783,783,783,783,783,783,783,783,783,783, +790,790,791,791,791,791,791,791,791,791,803,803,791,791,791,791, +791,791,791,791,791,791,791,791,791,791,791,791,790,196,790,790, +196,196,790,196,196,790,790,196,196,790,790,790,790,196,790,790, +790,790,790,790,790,790,791,791,791,791,196,791,196,791,803,803, +791,791,791,791,196,791,791,791,791,791,791,791,791,791,791,791, +790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790, +790,790,790,790,790,790,790,790,790,790,791,791,791,791,791,791, +791,791,803,803,791,791,791,791,791,791,791,791,791,791,791,791, /* block 250 */ -783,783,783,783,782,782,196,782,782,782,782,196,196,782,782,782, -782,782,782,782,782,196,782,782,782,782,782,782,782,196,783,783, -783,783,783,783,783,783,795,795,783,783,783,783,783,783,783,783, -783,783,783,783,783,783,783,783,782,782,196,782,782,782,782,196, -782,782,782,782,782,196,782,196,196,196,782,782,782,782,782,782, -782,196,783,783,783,783,783,783,783,783,795,795,783,783,783,783, -783,783,783,783,783,783,783,783,783,783,783,783,782,782,782,782, -782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782, +791,791,791,791,790,790,196,790,790,790,790,196,196,790,790,790, +790,790,790,790,790,196,790,790,790,790,790,790,790,196,791,791, +791,791,791,791,791,791,803,803,791,791,791,791,791,791,791,791, +791,791,791,791,791,791,791,791,790,790,196,790,790,790,790,196, +790,790,790,790,790,196,790,196,196,196,790,790,790,790,790,790, +790,196,791,791,791,791,791,791,791,791,803,803,791,791,791,791, +791,791,791,791,791,791,791,791,791,791,791,791,790,790,790,790, +790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790, /* block 251 */ -782,782,782,782,782,782,783,783,783,783,783,783,783,783,795,795, -783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783, -782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782, -782,782,782,782,782,782,782,782,782,782,783,783,783,783,783,783, -783,783,795,795,783,783,783,783,783,783,783,783,783,783,783,783, -783,783,783,783,782,782,782,782,782,782,782,782,782,782,782,782, -782,782,782,782,782,782,782,782,782,782,782,782,782,782,783,783, -783,783,783,783,783,783,795,795,783,783,783,783,783,783,783,783, +790,790,790,790,790,790,791,791,791,791,791,791,791,791,803,803, +791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791, +790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790, +790,790,790,790,790,790,790,790,790,790,791,791,791,791,791,791, +791,791,803,803,791,791,791,791,791,791,791,791,791,791,791,791, +791,791,791,791,790,790,790,790,790,790,790,790,790,790,790,790, +790,790,790,790,790,790,790,790,790,790,790,790,790,790,791,791, +791,791,791,791,791,791,803,803,791,791,791,791,791,791,791,791, /* block 252 */ -783,783,783,783,783,783,783,783,782,782,782,782,782,782,782,782, -782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782, -782,782,783,783,783,783,783,783,783,783,795,795,783,783,783,783, -783,783,783,783,783,783,783,783,783,783,783,783,782,782,782,782, -782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782, -782,782,782,782,782,782,783,783,783,783,783,783,783,783,795,795, -783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783, -782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782, +791,791,791,791,791,791,791,791,790,790,790,790,790,790,790,790, +790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790, +790,790,791,791,791,791,791,791,791,791,803,803,791,791,791,791, +791,791,791,791,791,791,791,791,791,791,791,791,790,790,790,790, +790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790, +790,790,790,790,790,790,791,791,791,791,791,791,791,791,803,803, +791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791, +790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790, /* block 253 */ -782,782,782,782,782,782,782,782,782,782,783,783,783,783,783,783, -783,783,795,795,783,783,783,783,783,783,783,783,783,783,783,783, -783,783,783,783,783,783,196,196,782,782,782,782,782,782,782,782, -782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782, -782,1483,783,783,783,783,783,783,783,783,783,783,783,783,783,783, -783,783,783,783,783,783,783,783,783,783,783,1483,783,783,783,783, -783,783,782,782,782,782,782,782,782,782,782,782,782,782,782,782, -782,782,782,782,782,782,782,782,782,782,782,1483,783,783,783,783, +790,790,790,790,790,790,790,790,790,790,791,791,791,791,791,791, +791,791,803,803,791,791,791,791,791,791,791,791,791,791,791,791, +791,791,791,791,791,791,196,196,790,790,790,790,790,790,790,790, +790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790, +790,1501,791,791,791,791,791,791,791,791,791,791,791,791,791,791, +791,791,791,791,791,791,791,791,791,791,791,1501,791,791,791,791, +791,791,790,790,790,790,790,790,790,790,790,790,790,790,790,790, +790,790,790,790,790,790,790,790,790,790,790,1501,791,791,791,791, /* block 254 */ -783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783, -783,783,783,783,783,1483,783,783,783,783,783,783,782,782,782,782, -782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782, -782,782,782,782,782,1483,783,783,783,783,783,783,783,783,783,783, -783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,1483, -783,783,783,783,783,783,782,782,782,782,782,782,782,782,782,782, -782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,1483, -783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783, +791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791, +791,791,791,791,791,1501,791,791,791,791,791,791,790,790,790,790, +790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790, +790,790,790,790,790,1501,791,791,791,791,791,791,791,791,791,791, +791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,1501, +791,791,791,791,791,791,790,790,790,790,790,790,790,790,790,790, +790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,1501, +791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791, /* block 255 */ -783,783,783,783,783,783,783,783,783,1483,783,783,783,783,783,783, -782,782,782,782,782,782,782,782,782,782,782,782,782,782,782,782, -782,782,782,782,782,782,782,782,782,1483,783,783,783,783,783,783, -783,783,783,783,783,783,783,783,783,783,783,783,783,783,783,783, -783,783,783,1483,783,783,783,783,783,783,782,783,196,196,1484,1484, -1484,1484,1484,1484,1484,1484,1484,1484,1484,1484,1484,1484,1484,1484,1484,1484, -1484,1484,1484,1484,1484,1484,1484,1484,1484,1484,1484,1484,1484,1484,1484,1484, -1484,1484,1484,1484,1484,1484,1484,1484,1484,1484,1484,1484,1484,1484,1484,1484, +791,791,791,791,791,791,791,791,791,1501,791,791,791,791,791,791, +790,790,790,790,790,790,790,790,790,790,790,790,790,790,790,790, +790,790,790,790,790,790,790,790,790,1501,791,791,791,791,791,791, +791,791,791,791,791,791,791,791,791,791,791,791,791,791,791,791, +791,791,791,1501,791,791,791,791,791,791,790,791,196,196,1502,1502, +1502,1502,1502,1502,1502,1502,1502,1502,1502,1502,1502,1502,1502,1502,1502,1502, +1502,1502,1502,1502,1502,1502,1502,1502,1502,1502,1502,1502,1502,1502,1502,1502, +1502,1502,1502,1502,1502,1502,1502,1502,1502,1502,1502,1502,1502,1502,1502,1502, /* block 256 */ -1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485, -1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485, -1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485, -1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485, -1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485, -1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485, -1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485, -1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485, +1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503, +1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503, +1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503, +1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503, +1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503, +1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503, +1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503, +1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503, /* block 257 */ -1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486, -1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486, -1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486, -1486,1486,1486,1486,1486,1486,1486,1485,1485,1485,1485,1486,1486,1486,1486,1486, -1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486, -1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486, -1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1485,1485,1485, -1485,1485,1485,1485,1485,1486,1485,1485,1485,1485,1485,1485,1485,1485,1485,1485, +1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504, +1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504, +1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504, +1504,1504,1504,1504,1504,1504,1504,1503,1503,1503,1503,1504,1504,1504,1504,1504, +1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504, +1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504, +1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1503,1503,1503, +1503,1503,1503,1503,1503,1504,1503,1503,1503,1503,1503,1503,1503,1503,1503,1503, /* block 258 */ -1485,1485,1485,1485,1486,1485,1485,1487,1488,1487,1487,1489,196,196,196,196, -196,196,196,196,196,196,196,196,196,196,196,1486,1486,1486,1486,1486, -196,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486,1486, +1503,1503,1503,1503,1504,1503,1503,1505,1506,1505,1505,1507,196,196,196,196, +196,196,196,196,196,196,196,196,196,196,196,1504,1504,1504,1504,1504, +196,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, @@ -5236,7 +5264,7 @@ const uint16_t PRIV(ucd_stage2)[] = { /* 80640 bytes, block = 128 */ /* block 259 */ 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 93, 70, 70, 70, 70, 70, - 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,694, 70, 70, 70, 70,196, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,702, 70, 70, 70, 70,196, 196,196,196,196,196, 70, 70, 70, 70, 70, 70,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, @@ -5245,17 +5273,17 @@ const uint16_t PRIV(ucd_stage2)[] = { /* 80640 bytes, block = 128 */ 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 260 */ -1490,1490,1490,1490,1490,1490,1490,196,1490,1490,1490,1490,1490,1490,1490,1490, -1490,1490,1490,1490,1490,1490,1490,1490,1490,196,196,1490,1490,1490,1490,1490, -1490,1490,196,1490,1490,196,1490,1490,1490,1490,1490,196,196,196,196,196, -929,929,929,929,929,929,929,929,929,929,929,929,929,929,929,929, -929,929,929,929,929,929,929,929,929,929,929,929,1491,1491,929,929, -929,929,929,929,929,929,929,929,929,929,929,929,929,929,929,929, -929,929,929,929,929,929,929,929,1491,929,929,929,929,929,196,196, +1508,1508,1508,1508,1508,1508,1508,196,1508,1508,1508,1508,1508,1508,1508,1508, +1508,1508,1508,1508,1508,1508,1508,1508,1508,196,196,1508,1508,1508,1508,1508, +1508,1508,196,1508,1508,196,1508,1508,1508,1508,1508,196,196,196,196,196, +933,933,933,933,933,933,933,933,933,933,933,933,933,933,933,933, +933,933,933,933,933,933,933,933,933,933,933,933,1509,1509,933,933, +933,933,933,933,933,933,933,933,933,933,933,933,933,933,933,933, +933,933,933,933,933,933,933,933,1509,933,933,933,933,933,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 261 */ -196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,849, +196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,853, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, @@ -5265,24 +5293,24 @@ const uint16_t PRIV(ucd_stage2)[] = { /* 80640 bytes, block = 128 */ 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 262 */ -1492,1492,1492,1492,1492,1492,1492,1492,1492,1492,1492,1492,1492,1492,1492,1492, -1492,1492,1492,1492,1492,1492,1492,1492,1492,1492,1492,1492,1492,1492,1492,1492, -1492,1492,1492,1492,1492,1492,1492,1492,1492,1492,1492,1492,1492,196,196,196, -1493,1493,1493,1493,1493,1493,1493,1494,1494,1494,1494,1494,1495,1495,196,196, -1496,1496,1496,1496,1496,1496,1496,1496,1496,1496,196,196,196,196,1492,1497, +1510,1510,1510,1510,1510,1510,1510,1510,1510,1510,1510,1510,1510,1510,1510,1510, +1510,1510,1510,1510,1510,1510,1510,1510,1510,1510,1510,1510,1510,1510,1510,1510, +1510,1510,1510,1510,1510,1510,1510,1510,1510,1510,1510,1510,1510,196,196,196, +1511,1511,1511,1511,1511,1511,1511,1512,1512,1512,1512,1512,1513,1513,196,196, +1514,1514,1514,1514,1514,1514,1514,1514,1514,1514,196,196,196,196,1510,1515, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 263 */ 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -1498,1498,1498,1498,1498,1498,1498,1498,1498,1498,1498,1498,1498,1498,1498,1498, -1498,1498,1498,1498,1498,1498,1498,1498,1498,1498,1498,1498,1498,1498,1499,196, +1516,1516,1516,1516,1516,1516,1516,1516,1516,1516,1516,1516,1516,1516,1516,1516, +1516,1516,1516,1516,1516,1516,1516,1516,1516,1516,1516,1516,1516,1516,1517,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500, -1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500, -1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1500,1501,1501,1501,1501, -1502,1502,1502,1502,1502,1502,1502,1502,1502,1502,196,196,196,196,196,1503, +1518,1518,1518,1518,1518,1518,1518,1518,1518,1518,1518,1518,1518,1518,1518,1518, +1518,1518,1518,1518,1518,1518,1518,1518,1518,1518,1518,1518,1518,1518,1518,1518, +1518,1518,1518,1518,1518,1518,1518,1518,1518,1518,1518,1518,1519,1519,1519,1519, +1520,1520,1520,1520,1520,1520,1520,1520,1520,1520,196,196,196,196,196,1521, /* block 264 */ 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, @@ -5290,9 +5318,9 @@ const uint16_t PRIV(ucd_stage2)[] = { /* 80640 bytes, block = 128 */ 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504, -1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1504,1505,1506,1506,1506,1506, -1507,1507,1507,1507,1507,1507,1507,1507,1507,1507,196,196,196,196,196,196, +1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522, +1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,1523,1524,1524,1524,1524, +1525,1525,1525,1525,1525,1525,1525,1525,1525,1525,196,196,196,196,196,196, /* block 265 */ 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, @@ -5300,51 +5328,61 @@ const uint16_t PRIV(ucd_stage2)[] = { /* 80640 bytes, block = 128 */ 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -1508,1508,1508,1508,1508,1508,1508,1508,1508,1508,1508,1508,1508,1508,1508,1508, -1508,1508,1508,1508,1508,1508,1508,1508,1508,1508,1508,1508,1508,1508,1509,1510, -1508,1511,1511,1511,1511,1511,1511,1511,1511,1511,1511,196,196,196,196,1512, +1526,1526,1526,1526,1526,1526,1526,1526,1526,1526,1526,1526,1526,1526,1526,1526, +1526,1526,1526,1526,1526,1526,1526,1526,1526,1526,1526,1526,1526,1526,1527,1528, +1526,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,196,196,196,196,1530, /* block 266 */ 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -533,533,533,533,533,533,533,196,533,533,533,533,196,533,533,196, -533,533,533,533,533,533,533,533,533,533,533,533,533,533,533,196, +1531,1531,1531,1531,1531,1531,1531,1531,1531,1531,1531,1531,1531,1531,1531,1531, +1531,1531,1531,1531,1531,1531,1531,1531,1531,1531,1531,1531,1531,1531,1531,196, +1531,1531,1531,1532,1531,1531,1532,1531,1531,1531,1531,1531,1531,1531,1532,1532, +1531,1531,1531,1531,1531,1532,196,196,196,196,196,196,196,196,1531,1533, /* block 267 */ -1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513, -1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513, -1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513, -1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513, -1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513, -1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513, -1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513, -1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513, +196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, +196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, +196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, +196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, +196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, +196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, +531,531,531,531,531,531,531,196,531,531,531,531,196,531,531,196, +531,531,531,531,531,531,531,531,531,531,531,531,531,531,531,196, /* block 268 */ -1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513, -1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513, -1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513, -1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513,1513, -1513,1513,1513,1513,1513,297,297,1514,1514,1514,1514,1514,1514,1514,1514,1514, -1515,1515,1515,1515,1515,1515,1515,297,297,297,297,297,297,297,297,297, -297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, -297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, +1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534, +1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534, +1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534, +1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534, +1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534, +1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534, +1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534, +1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534, /* block 269 */ -1516,1516,1516,1516,1516,1516,1516,1516,1516,1516,1516,1516,1516,1516,1516,1516, -1516,1516,1516,1516,1516,1516,1516,1516,1516,1516,1516,1516,1516,1516,1516,1516, -1516,1516,1517,1517,1517,1517,1517,1517,1517,1517,1517,1517,1517,1517,1517,1517, -1517,1517,1517,1517,1517,1517,1517,1517,1517,1517,1517,1517,1517,1517,1517,1517, -1517,1517,1517,1517,1518,1518,1518,1519,1520,1520,1520,1521,297,297,297,297, -1522,1522,1522,1522,1522,1522,1522,1522,1522,1522,297,297,297,297,1523,1523, +1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534, +1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534, +1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534, +1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534, +1534,1534,1534,1534,1534,297,297,1535,1535,1535,1535,1535,1535,1535,1535,1535, +1536,1536,1536,1536,1536,1536,1536,297,297,297,297,297,297,297,297,297, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, /* block 270 */ +1537,1537,1537,1537,1537,1537,1537,1537,1537,1537,1537,1537,1537,1537,1537,1537, +1537,1537,1537,1537,1537,1537,1537,1537,1537,1537,1537,1537,1537,1537,1537,1537, +1537,1537,1538,1538,1538,1538,1538,1538,1538,1538,1538,1538,1538,1538,1538,1538, +1538,1538,1538,1538,1538,1538,1538,1538,1538,1538,1538,1538,1538,1538,1538,1538, +1538,1538,1538,1538,1539,1539,1539,1540,1541,1541,1541,1542,297,297,297,297, +1543,1543,1543,1543,1543,1543,1543,1543,1543,1543,297,297,297,297,1544,1544, +297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, +297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, + +/* block 271 */ 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, @@ -5354,7 +5392,7 @@ const uint16_t PRIV(ucd_stage2)[] = { /* 80640 bytes, block = 128 */ 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, -/* block 271 */ +/* block 272 */ 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, @@ -5362,351 +5400,331 @@ const uint16_t PRIV(ucd_stage2)[] = { /* 80640 bytes, block = 128 */ 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, -340,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524, +338,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545, -/* block 272 */ -1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524, -1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524, -1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1525,1524,1524,1524, -1526,1524,1524,1524,1524,340,340,340,340,340,340,340,340,340,340,340, +/* block 273 */ +1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545, +1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545, +1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1546,1545,1545,1545, +1547,1545,1545,1545,1545,338,338,338,338,338,338,338,338,338,338,338, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, -/* block 273 */ -340,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524, -1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524, -1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1525,1524, -1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,1524,340,340, -340,340,340,340,340,340,340,340,340,340,340,340,340,340,340,340, +/* block 274 */ +338,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545, +1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545, +1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1546,1545, +1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,1545,338,338, +338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, 297,297,297,297,297,297,297,297,297,297,297,297,297,297,297,297, -/* block 274 */ -1527,1527,1527,1527,340,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527, -1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527, -340,1527,1527,340,1527,340,340,1527,340,1527,1527,1527,1527,1527,1527,1527, -1527,1527,1527,340,1527,1527,1527,1527,340,1527,340,1527,340,340,340,340, -340,340,1527,340,340,340,340,1527,340,1527,340,1527,340,1527,1527,1527, -340,1527,1527,340,1527,340,340,1527,340,1527,340,1527,340,1527,340,1527, -340,1527,1527,340,1527,340,340,1527,1527,1527,1527,340,1527,1527,1527,1527, -1527,1527,1527,340,1527,1527,1527,1527,340,1527,1527,1527,1527,340,1527,340, - /* block 275 */ -1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,340,1527,1527,1527,1527,1527, -1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,340,340,340,340, -340,1527,1527,1527,340,1527,1527,1527,1527,1527,340,1527,1527,1527,1527,1527, -1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,1527,340,340,340,340, -340,340,340,340,340,340,340,340,340,340,340,340,340,340,340,340, -340,340,340,340,340,340,340,340,340,340,340,340,340,340,340,340, -340,340,340,340,340,340,340,340,340,340,340,340,340,340,340,340, -309,309,340,340,340,340,340,340,340,340,340,340,340,340,340,340, +1548,1548,1548,1548,338,1548,1548,1548,1548,1548,1548,1548,1548,1548,1548,1548, +1548,1548,1548,1548,1548,1548,1548,1548,1548,1548,1548,1548,1548,1548,1548,1548, +338,1548,1548,338,1548,338,338,1548,338,1548,1548,1548,1548,1548,1548,1548, +1548,1548,1548,338,1548,1548,1548,1548,338,1548,338,1548,338,338,338,338, +338,338,1548,338,338,338,338,1548,338,1548,338,1548,338,1548,1548,1548, +338,1548,1548,338,1548,338,338,1548,338,1548,338,1548,338,1548,338,1548, +338,1548,1548,338,1548,338,338,1548,1548,1548,1548,338,1548,1548,1548,1548, +1548,1548,1548,338,1548,1548,1548,1548,338,1548,1548,1548,1548,338,1548,338, /* block 276 */ -1528,1528,1528,1528,1529,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528, -1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528, -1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1530,1530,1530,1530, -1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528, -1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528, -1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528, -1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528, -1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528, +1548,1548,1548,1548,1548,1548,1548,1548,1548,1548,338,1548,1548,1548,1548,1548, +1548,1548,1548,1548,1548,1548,1548,1548,1548,1548,1548,1548,338,338,338,338, +338,1548,1548,1548,338,1548,1548,1548,1548,1548,338,1548,1548,1548,1548,1548, +1548,1548,1548,1548,1548,1548,1548,1548,1548,1548,1548,1548,338,338,338,338, +338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338, +338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338, +338,338,338,338,338,338,338,338,338,338,338,338,338,338,338,338, +307,307,338,338,338,338,338,338,338,338,338,338,338,338,338,338, /* block 277 */ -1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528, -1528,1528,1528,1528,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530, -1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1530, -1530,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528, -1530,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1529, -1530,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528, -1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528, -1528,1528,1528,1528,1528,1528,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530, +789,789,789,789,1549,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,1550,1550,1550,1550, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, /* block 278 */ -814,814,814,814,814,814,814,814,814,814,814, 58, 58,1528,1528,1528, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,1528, -1531,1531,1531,1531,1531,1531,1531,1531,1531,1531,1531,1531,1531,1531,1531,1531, -1531,1531,1531,1531,1531,1531,1531,1531,1531,1531,510,510,510,510,510,510, -1531,1531,1531,1531,1531,1531,1531,1531,1531,1531,1531,1531,1531,1531,1531,1531, -1531,1531,1531,1531,1531,1531,1531,1531,1531,1531,781,781,1528,1528,1528,1528, -1532,1532,1531,1531,1531,1531,1531,1531,1531,1531,1531,1531,1531,1531,1532,1532, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,1550, +1550,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +1550,789,789,789,789,789,789,789,789,789,789,789,789,789,789,1549, +1550,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550, /* block 279 */ -1531,1531,1531,1531,1531,1531,1531,1531,1531,1531,510,510,510,510,1533,510, -510,1533,1533,1533,1533,1533,1533,1533,1533,1533,1533,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,1528,1530,1530, -1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530, -1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530, -1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530, -1530,1530,1530,1530,1530,1530,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534, -1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534,1534, +821,821,821,821,821,821,821,821,821,821,821, 58, 58,789,789,789, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,789, +1551,1551,1551,1551,1551,1551,1551,1551,1551,1551,1551,1551,1551,1551,1551,1551, +1551,1551,1551,1551,1551,1551,1551,1551,1551,1551,508,508,508,508,508,508, +1551,1551,1551,1551,1551,1551,1551,1551,1551,1551,1551,1551,1551,1551,1551,1551, +1551,1551,1551,1551,1551,1551,1551,1551,1551,1551,789,789,789,789,789,789, +1552,1552,1551,1551,1551,1551,1551,1551,1551,1551,1551,1551,1551,1551,1552,1552, /* block 280 */ -1535,1533,1536,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530, -510,510,510,510,510,510,510,510,510,510,1533,510,510,510,510,510, -510,510,510,510,510,510,510,510,510,510,510,510,510,510,510,1533, -510,510,1533,1533,1533,1533,1533,1536,1533,1533,1533,510,1530,1530,1530,1530, -510,510,510,510,510,510,510,510,510,1530,1530,1530,1530,1530,1530,1530, -1537,1537,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530, -1528,1528,1528,1528,1528,1528,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530, -1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530, +1551,1551,1551,1551,1551,1551,1551,1551,1551,1551,508,508,508,508,1553,508, +508,1553,1553,1553,1553,1553,1553,1553,1553,1553,1553,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,789,1550,1550, +1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550, +1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550, +1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550, +1550,1550,1550,1550,1550,1550,1554,1554,1554,1554,1554,1554,1554,1554,1554,1554, +1554,1554,1554,1554,1554,1554,1554,1554,1554,1554,1554,1554,1554,1554,1554,1554, /* block 281 */ -1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530, -1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530, -1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530, -1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530, -1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530, -1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530, -1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530, -1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530, +1555,1553,1556,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550, +508,508,508,508,508,508,508,508,508,508,1553,508,508,508,508,508, +508,508,508,508,508,508,508,508,508,508,508,508,508,508,508,1553, +508,508,1553,1553,1553,1553,1553,1556,1553,1553,1553,508,1550,1550,1550,1550, +508,508,508,508,508,508,508,508,508,1550,1550,1550,1550,1550,1550,1550, +1557,1557,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550, +789,789,789,789,789,789,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550, +1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550, /* block 282 */ -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,785,1528,1528,785,785,785,785,785,785,785,785,785,1529,1529,1529, -1529,1529,1529,1529,1529,1529,785,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,785,1529,1529, +1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550, +1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550, +1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550, +1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550, +1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550, +1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550, +1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550, +1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550, /* block 283 */ -1529,1529,1529,1529,1529,1538,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1528,1528,785,785,1528,785,785,785,1528,1528,785,785, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1538,1538,1538,1529,1529,1538,1529,1529,1538,1539,1539,785,785,1529, -1529,1529,1529,1529,785,785,785,785,785,785,785,785,785,785,785,785, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1528,1528,785,1529,785,1528,785,1529,1529,1529,1540,1540,1540,1540,1540, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,793,789,789,793,793,793,793,793,793,793,793,793,1549,1549,1549, +1549,1549,1549,1549,1549,1549,793,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,793,1549,1549, /* block 284 */ -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,785, -1529,785,1538,1538,1529,1529,1538,1538,1538,1538,1538,1538,1538,1538,1538,1538, -1538,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1529,1538,1538,1538,1538,1538,1538,1538,1538,1538,1538, -1538,1538,1538,1538,1538,1538,1538,1538,1538,1529,1529,1529,1538,1529,1529,1529, +1549,1549,1549,1549,1549,1558,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,789,789,793,793,789,793,793,793,789,789,793,793, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1558,1558,1558,1549,1549,1558,1549,1549,1558,1559,1559,793,793,1549, +1549,1549,1549,1549,793,793,793,793,793,793,793,793,793,793,793,793, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,789,789,793,1549,793,789,793,1549,1549,1549,1560,1560,1560,1560,1560, /* block 285 */ -1529,1538,1538,1538,1529,1538,1538,1538,1529,1529,1529,1529,1529,1529,1529,1538, -1529,1538,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1538,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,785,1528,1529, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,793, +1549,793,1558,1558,1549,1549,1558,1558,1558,1558,1558,1558,1558,1558,1558,1558, +1558,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1558,1558,1558,1558,1558,1558,1558,1558,1558,1558, +1558,1558,1558,1558,1558,1558,1558,1558,1558,1549,1549,1549,1558,1549,1549,1549, /* block 286 */ -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,781,781, -781,781,781,781,781,781,1528,1528,1528,785,785,1529,1529,1529,1529,1528, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1528,1528,1528,1528,1528,1528,1528,785, -785,1528,1528,785,1539,1539,785,785,785,785,1538,1528,1528,1528,1528,1528, +1549,1558,1558,1558,1549,1558,1558,1558,1549,1549,1549,1549,1549,1549,1549,1558, +1549,1558,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1558,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,793,789,1549, /* block 287 */ -1528,1528,1528,1528,1528,1528,1528,785,1528,1528,785,785,785,785,1528,1528, -1539,1528,1528,1528,1528,1538,1538,1528,1528,1528,1528,1528,1528,1528,1528,1528, -1528,1528,1528,1528,1529,785,1528,1528,785,1528,1528,1528,1528,1528,1528,1528, -1528,785,785,1528,1528,1528,1528,1528,1528,1528,1528,1528,785,1528,1528,1528, -1528,1528,785,785,785,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528, -1528,785,785,785,1528,1528,1528,1528,1528,1528,1528,1528,785,785,785,1528, -1528,785,1528,785,1528,1528,1528,1528,785,1528,1528,1528,1528,1528,1528,785, -1528,1528,1528,785,1528,1528,1528,1528,1528,1528,785,1529,1529,1529,1529,1529, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,789,789, +789,789,789,789,789,789,789,789,789,793,793,1549,1549,1549,1549,789, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,789,789,789,789,789,789,789,793, +793,789,789,793,1559,1559,793,793,793,793,1558,789,789,789,789,789, /* block 288 */ -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1538,1538,1538,1529,1529,1529,1538,1538,1538,1538,1538, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, +789,789,789,789,789,789,789,793,789,789,793,793,793,793,789,789, +1559,789,789,789,789,1558,1558,789,789,789,789,789,789,789,789,789, +789,789,789,789,1549,793,789,789,793,789,789,789,789,789,789,789, +789,793,793,789,789,789,789,789,789,789,789,789,793,789,789,789, +789,789,793,793,793,789,789,789,789,789,789,789,789,789,789,789, +789,793,793,793,789,789,789,789,789,789,789,789,793,793,793,789, +789,793,789,793,789,789,789,789,793,789,789,789,789,789,789,793, +789,789,789,793,789,789,789,789,789,789,793,1549,1549,1549,1549,1549, /* block 289 */ -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1538,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1538,1538,1538,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1538,1529,1529,1529,1529,1529,1528,1528,1528,1528,1528,785,1538,785,785,785, -1529,1529,1529,1528,1528,1529,1529,1529,1530,1530,1530,1530,1529,1529,1529,1529, -785,785,785,785,785,785,1528,1528,1528,785,1528,1529,1529,1530,1530,1530, -785,1528,1528,785,1529,1529,1529,1529,1529,1529,1529,1529,1529,1530,1530,1530, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1558,1558,1558,1549,1549,1549,1558,1558,1558,1558,1558, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, /* block 290 */ -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,1528,1528,1528,1530,1530,1530,1530,1528,1528,1528,1528,1528, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1558,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1558,1558,1558,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1558,1549,1549,1549,1549,1549,789,789,789,789,789,793,1558,793,793,793, +1549,1549,1549,789,789,1549,1549,1549,1549,1550,1550,1550,1549,1549,1549,1549, +793,793,793,793,793,793,789,789,789,793,789,1549,1549,1550,1550,1550, +793,789,789,793,1549,1549,1549,1549,1549,1549,1549,1549,1549,1550,1550,1550, /* block 291 */ -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,1528,1528,1528,1528,1528,1530,1530,1530,1530,1530,1530, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1530,1530,1530,1530, -1529,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,1550,1550,1550,1550,1550,1550, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1550,1550,1550,1550, +1549,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550, /* block 292 */ -781,781,781,781,781,781,781,781,781,781,781,781,1530,1530,1530,1530, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,1530,1530,1530,1530,1530,1530,1530,1530, -781,781,781,781,781,781,781,781,781,781,1530,1530,1530,1530,1530,1530, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, +789,789,789,789,789,789,789,789,789,789,789,789,1550,1550,1550,1550, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,1550,1550,1550,1550,1550,1550,1550,1550, +789,789,789,789,789,789,789,789,789,789,1550,1550,1550,1550,1550,1550, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, /* block 293 */ -781,781,781,781,781,781,781,781,1530,1530,1530,1530,1530,1530,1530,1530, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,1530,1530, -1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1530,1530,1530,1530, -1528,1528,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530, -1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530, -1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530, -1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530, +789,789,789,789,789,789,789,789,1550,1550,1550,1550,1550,1550,1550,1550, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,1550,1550, +789,789,789,789,789,789,789,789,789,789,789,789,1550,1550,1550,1550, +789,789,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550, +802,802,802,802,802,802,802,802,802,1550,1550,1550,1550,1550,1550,1550, +1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550, +1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550, /* block 294 */ -781,781,781,781,781,781,781,781,781,781,781,781,1538,1529,1529,1538, -1529,1529,1529,1529,1529,1529,1529,1529,1538,1538,1538,1538,1538,1538,1538,1538, -1529,1529,1529,1529,1529,1529,1538,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1538,1538,1538,1538,1538,1538,1538,1538,1538,1538,1529,781,1538,1538,1538,1529, -1529,1529,1529,1529,1529,1529,781,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1538,1529,1529,1529,1529,1529,1529,1529,1529, +789,789,789,789,789,789,789,789,789,789,789,789,1558,1549,1549,1558, +1549,1549,1549,1549,1549,1549,1549,1549,1558,1558,1558,1558,1558,1558,1558,1558, +1549,1549,1549,1549,1549,1549,1558,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1558,1558,1558,1558,1558,1558,1558,1558,1558,1558,1549,789,1558,1558,1558,1549, +1549,1549,1549,1549,1549,1549,789,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1558,1549,1549,1549,1549,1549,1549,1549,1549, /* block 295 */ -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1541,1541,1541,1541,1529,1538,1538,1529,1538,1538,1529,1538,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1538,1538,1538, -1529,1538,1538,1538,1538,1538,1538,1538,1538,1538,1538,1538,1538,1538,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1561,1561,1561,1561,1549,1558,1558,1549,1558,1558,1549,1558,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1558,1558,1558, +1549,1558,1558,1558,1558,1558,1558,1558,1558,1558,1558,1558,1558,1558,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, /* block 296 */ -1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528, -1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528, -1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528, -1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528, -1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528, -1528,1528,1528,1528,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530, -1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1528,1530,1530, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1530,1530,1530, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,1550,1550,1550,1550,1550,1550,1550,1550, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,1550,1550, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1550,1550,1550, /* block 297 */ -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1530,1530,1530,1530,1530,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529, -1529,1529,1529,1538,1538,1538,1529,1530,1530,1530,1530,1530,1530,1530,1529,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1530,1530,1529, -1529,1529,1529,1529,1529,1529,1529,1529,1529,1529,1530,1530,1530,1530,1530,1530, -1538,1538,1538,1538,1538,1538,1538,1538,1538,1530,1530,1530,1530,1530,1530,1530, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1550,1550,1550,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549, +1549,1549,1549,1558,1558,1558,1549,1550,1549,1550,1550,1550,1550,1549,1549,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1550,1550,1549, +1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1549,1550,1550,1550,1550,1549, +1558,1558,1558,1558,1558,1558,1558,1558,1558,1550,1550,1550,1550,1550,1550,1550, /* block 298 */ -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,196,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -781,781,781,781,781,781,781,781,781,781,781,781,781,781,781,781, -1479,1479,1479,1479,1479,1479,1479,1479,1479,1479,196,196,196,196,196,196, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,196,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +789,789,789,789,789,789,789,789,789,789,789,789,789,789,789,789, +1497,1497,1497,1497,1497,1497,1497,1497,1497,1497,789,196,196,196,196,196, /* block 299 */ -1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530, -1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530, -1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530, -1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530, -1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530, -1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530, -1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530, -1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1530,1032,1032, +1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550, +1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550, +1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550, +1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550, +1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550, +1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550, +1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550, +1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1550,1039,1039, /* block 300 */ -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, /* block 301 */ -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,196,196,196,196,196,196, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,196,196, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, /* block 302 */ -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,196,196, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,196,196, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, /* block 303 */ -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, /* block 304 */ -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, - -/* block 305 */ -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,196,196, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -/* block 306 */ -1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025, -1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,1025,196,196, +/* block 305 */ +1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032, +1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,1032,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, @@ -5714,7 +5732,7 @@ const uint16_t PRIV(ucd_stage2)[] = { /* 80640 bytes, block = 128 */ 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -/* block 307 */ +/* block 306 */ 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, @@ -5722,77 +5740,77 @@ const uint16_t PRIV(ucd_stage2)[] = { /* 80640 bytes, block = 128 */ 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, 196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -196,196,196,196,196,196,196,196,196,196,196,196,196,196,1032,1032, +196,196,196,196,196,196,196,196,196,196,196,196,196,196,1039,1039, + +/* block 307 */ +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,196,196,196,196,196, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, /* block 308 */ -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,196,196,196,196,196, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,914,914,914,914,914,914, +914,914,914,914,914,914,914,914,914,914,196,196,196,196,196,196, /* block 309 */ -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -910,910,910,910,910,910,910,910,910,910,910,910,910,910,910,910, -196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, -196,196,196,196,196,196,196,196,196,196,196,196,196,196,196,196, +771,776,771,771,771,771,771,771,771,771,771,771,771,771,771,771, +771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771, +1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562, +1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562, +1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562, +1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562, +1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562, +1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562,1562, /* block 310 */ -765,770,765,765,765,765,765,765,765,765,765,765,765,765,765,765, -765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765, -1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542, -1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542, -1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542, -1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542, -1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542, -1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542,1542, +771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771, +771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771, +771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771, +771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771, +771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771, +771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771, +771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771, +771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771, /* block 311 */ -765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765, -765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765, -765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765, -765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765, -765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765, -765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765, -765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765, -765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765, +1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042, +1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042, +1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042, +1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042, +1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042, +1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042, +1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042, +1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042, /* block 312 */ -1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035, -1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035, -1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035, -1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035, -1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035, -1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035, -1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035, -1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035, +1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042, +1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042, +1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042, +1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042, +1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042, +1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042, +1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042,1042, +771,771,771,771,771,771,771,771,771,771,771,771,771,771,771,771, /* block 313 */ -1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035, -1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035, -1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035, -1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035, -1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035, -1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035, -1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035,1035, -765,765,765,765,765,765,765,765,765,765,765,765,765,765,765,765, - -/* block 314 */ -1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024, -1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024, -1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024, -1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024, -1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024, -1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024, -1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024, -1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1024,1032,1032, +1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031, +1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031, +1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031, +1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031, +1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031, +1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031, +1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031, +1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1031,1039,1039, }; #if UCD_BLOCK_SIZE != 128 diff --git a/scintilla/pcre2/src/pcre2_ucp.h b/scintilla/pcre2/src/pcre2_ucp.h index 513c54e29e..74c1cc5391 100644 --- a/scintilla/pcre2/src/pcre2_ucp.h +++ b/scintilla/pcre2/src/pcre2_ucp.h @@ -42,6 +42,7 @@ POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- */ + #ifndef PCRE2_UCP_H_IDEMPOTENT_GUARD #define PCRE2_UCP_H_IDEMPOTENT_GUARD @@ -301,6 +302,7 @@ enum { ucp_Multani, ucp_Old_Hungarian, ucp_Adlam, + ucp_Newa, ucp_Osage, ucp_Tangut, ucp_Masaram_Gondi, @@ -376,7 +378,6 @@ enum { ucp_SignWriting, ucp_Bhaiksuki, ucp_Marchen, - ucp_Newa, ucp_Nushu, ucp_Soyombo, ucp_Zanabazar_Square, @@ -394,6 +395,10 @@ enum { ucp_Kawi, ucp_Nag_Mundari, ucp_Kirat_Rai, + ucp_Sidetic, + ucp_Tai_Yo, + ucp_Tolong_Siki, + ucp_Beria_Erfe, /* This must be last */ ucp_Script_Count diff --git a/scintilla/pcre2/src/pcre2_ucptables_inc.h b/scintilla/pcre2/src/pcre2_ucptables_inc.h index 6f1731d32c..06a5c0e564 100644 --- a/scintilla/pcre2/src/pcre2_ucptables_inc.h +++ b/scintilla/pcre2/src/pcre2_ucptables_inc.h @@ -42,6 +42,7 @@ POSSIBILITY OF SUCH DAMAGE. ----------------------------------------------------------------------------- */ + #ifdef SUPPORT_UNICODE /* The PRIV(utt)[] table below translates Unicode property names into type and @@ -81,6 +82,8 @@ the "loose matching" rules that Unicode advises and Perl uses. */ #define STRING_batk0 STR_b STR_a STR_t STR_k "\0" #define STRING_beng0 STR_b STR_e STR_n STR_g "\0" #define STRING_bengali0 STR_b STR_e STR_n STR_g STR_a STR_l STR_i "\0" +#define STRING_berf0 STR_b STR_e STR_r STR_f "\0" +#define STRING_beriaerfe0 STR_b STR_e STR_r STR_i STR_a STR_e STR_r STR_f STR_e "\0" #define STRING_bhaiksuki0 STR_b STR_h STR_a STR_i STR_k STR_s STR_u STR_k STR_i "\0" #define STRING_bhks0 STR_b STR_h STR_k STR_s "\0" #define STRING_bidial0 STR_b STR_i STR_d STR_i STR_a STR_l "\0" @@ -459,6 +462,8 @@ the "loose matching" rules that Unicode advises and Perl uses. */ #define STRING_shrd0 STR_s STR_h STR_r STR_d "\0" #define STRING_sidd0 STR_s STR_i STR_d STR_d "\0" #define STRING_siddham0 STR_s STR_i STR_d STR_d STR_h STR_a STR_m "\0" +#define STRING_sidetic0 STR_s STR_i STR_d STR_e STR_t STR_i STR_c "\0" +#define STRING_sidt0 STR_s STR_i STR_d STR_t "\0" #define STRING_signwriting0 STR_s STR_i STR_g STR_n STR_w STR_r STR_i STR_t STR_i STR_n STR_g "\0" #define STRING_sind0 STR_s STR_i STR_n STR_d "\0" #define STRING_sinh0 STR_s STR_i STR_n STR_h "\0" @@ -490,6 +495,7 @@ the "loose matching" rules that Unicode advises and Perl uses. */ #define STRING_taile0 STR_t STR_a STR_i STR_l STR_e "\0" #define STRING_taitham0 STR_t STR_a STR_i STR_t STR_h STR_a STR_m "\0" #define STRING_taiviet0 STR_t STR_a STR_i STR_v STR_i STR_e STR_t "\0" +#define STRING_taiyo0 STR_t STR_a STR_i STR_y STR_o "\0" #define STRING_takr0 STR_t STR_a STR_k STR_r "\0" #define STRING_takri0 STR_t STR_a STR_k STR_r STR_i "\0" #define STRING_tale0 STR_t STR_a STR_l STR_e "\0" @@ -500,6 +506,7 @@ the "loose matching" rules that Unicode advises and Perl uses. */ #define STRING_tangsa0 STR_t STR_a STR_n STR_g STR_s STR_a "\0" #define STRING_tangut0 STR_t STR_a STR_n STR_g STR_u STR_t "\0" #define STRING_tavt0 STR_t STR_a STR_v STR_t "\0" +#define STRING_tayo0 STR_t STR_a STR_y STR_o "\0" #define STRING_telu0 STR_t STR_e STR_l STR_u "\0" #define STRING_telugu0 STR_t STR_e STR_l STR_u STR_g STR_u "\0" #define STRING_term0 STR_t STR_e STR_r STR_m "\0" @@ -517,6 +524,8 @@ the "loose matching" rules that Unicode advises and Perl uses. */ #define STRING_tnsa0 STR_t STR_n STR_s STR_a "\0" #define STRING_todhri0 STR_t STR_o STR_d STR_h STR_r STR_i "\0" #define STRING_todr0 STR_t STR_o STR_d STR_r "\0" +#define STRING_tolongsiki0 STR_t STR_o STR_l STR_o STR_n STR_g STR_s STR_i STR_k STR_i "\0" +#define STRING_tols0 STR_t STR_o STR_l STR_s "\0" #define STRING_toto0 STR_t STR_o STR_t STR_o "\0" #define STRING_tulutigalari0 STR_t STR_u STR_l STR_u STR_t STR_i STR_g STR_a STR_l STR_a STR_r STR_i "\0" #define STRING_tutg0 STR_t STR_u STR_t STR_g "\0" @@ -593,6 +602,8 @@ const char PRIV(utt_names)[] = STRING_batk0 STRING_beng0 STRING_bengali0 + STRING_berf0 + STRING_beriaerfe0 STRING_bhaiksuki0 STRING_bhks0 STRING_bidial0 @@ -971,6 +982,8 @@ const char PRIV(utt_names)[] = STRING_shrd0 STRING_sidd0 STRING_siddham0 + STRING_sidetic0 + STRING_sidt0 STRING_signwriting0 STRING_sind0 STRING_sinh0 @@ -1002,6 +1015,7 @@ const char PRIV(utt_names)[] = STRING_taile0 STRING_taitham0 STRING_taiviet0 + STRING_taiyo0 STRING_takr0 STRING_takri0 STRING_tale0 @@ -1012,6 +1026,7 @@ const char PRIV(utt_names)[] = STRING_tangsa0 STRING_tangut0 STRING_tavt0 + STRING_tayo0 STRING_telu0 STRING_telugu0 STRING_term0 @@ -1029,6 +1044,8 @@ const char PRIV(utt_names)[] = STRING_tnsa0 STRING_todhri0 STRING_todr0 + STRING_tolongsiki0 + STRING_tols0 STRING_toto0 STRING_tulutigalari0 STRING_tutg0 @@ -1105,488 +1122,496 @@ const ucp_type_table PRIV(utt)[] = { { 177, PT_SC, ucp_Batak }, { 182, PT_SCX, ucp_Bengali }, { 187, PT_SCX, ucp_Bengali }, - { 195, PT_SC, ucp_Bhaiksuki }, - { 205, PT_SC, ucp_Bhaiksuki }, - { 210, PT_BIDICL, ucp_bidiAL }, - { 217, PT_BIDICL, ucp_bidiAN }, - { 224, PT_BIDICL, ucp_bidiB }, - { 230, PT_BIDICL, ucp_bidiBN }, - { 237, PT_BOOL, ucp_Bidi_Control }, - { 243, PT_BOOL, ucp_Bidi_Control }, - { 255, PT_BIDICL, ucp_bidiCS }, - { 262, PT_BIDICL, ucp_bidiEN }, - { 269, PT_BIDICL, ucp_bidiES }, - { 276, PT_BIDICL, ucp_bidiET }, - { 283, PT_BIDICL, ucp_bidiFSI }, - { 291, PT_BIDICL, ucp_bidiL }, - { 297, PT_BIDICL, ucp_bidiLRE }, - { 305, PT_BIDICL, ucp_bidiLRI }, - { 313, PT_BIDICL, ucp_bidiLRO }, - { 321, PT_BOOL, ucp_Bidi_Mirrored }, - { 327, PT_BOOL, ucp_Bidi_Mirrored }, - { 340, PT_BIDICL, ucp_bidiNSM }, - { 348, PT_BIDICL, ucp_bidiON }, - { 355, PT_BIDICL, ucp_bidiPDF }, - { 363, PT_BIDICL, ucp_bidiPDI }, - { 371, PT_BIDICL, ucp_bidiR }, - { 377, PT_BIDICL, ucp_bidiRLE }, - { 385, PT_BIDICL, ucp_bidiRLI }, - { 393, PT_BIDICL, ucp_bidiRLO }, - { 401, PT_BIDICL, ucp_bidiS }, - { 407, PT_BIDICL, ucp_bidiWS }, - { 414, PT_SCX, ucp_Bopomofo }, - { 419, PT_SCX, ucp_Bopomofo }, - { 428, PT_SC, ucp_Brahmi }, - { 433, PT_SC, ucp_Brahmi }, - { 440, PT_SC, ucp_Braille }, - { 445, PT_SC, ucp_Braille }, - { 453, PT_SCX, ucp_Buginese }, - { 458, PT_SCX, ucp_Buginese }, - { 467, PT_SCX, ucp_Buhid }, - { 472, PT_SCX, ucp_Buhid }, - { 478, PT_GC, ucp_C }, - { 480, PT_SCX, ucp_Chakma }, - { 485, PT_SC, ucp_Canadian_Aboriginal }, - { 504, PT_SC, ucp_Canadian_Aboriginal }, - { 509, PT_SCX, ucp_Carian }, - { 514, PT_SCX, ucp_Carian }, - { 521, PT_BOOL, ucp_Cased }, - { 527, PT_BOOL, ucp_Case_Ignorable }, - { 541, PT_SCX, ucp_Caucasian_Albanian }, - { 559, PT_PC, ucp_Cc }, - { 562, PT_PC, ucp_Cf }, - { 565, PT_SCX, ucp_Chakma }, - { 572, PT_SC, ucp_Cham }, - { 577, PT_BOOL, ucp_Changes_When_Casefolded }, - { 599, PT_BOOL, ucp_Changes_When_Casemapped }, - { 621, PT_BOOL, ucp_Changes_When_Lowercased }, - { 643, PT_BOOL, ucp_Changes_When_Titlecased }, - { 665, PT_BOOL, ucp_Changes_When_Uppercased }, - { 687, PT_SCX, ucp_Cherokee }, - { 692, PT_SCX, ucp_Cherokee }, - { 701, PT_SC, ucp_Chorasmian }, - { 712, PT_SC, ucp_Chorasmian }, - { 717, PT_BOOL, ucp_Case_Ignorable }, - { 720, PT_PC, ucp_Cn }, - { 723, PT_PC, ucp_Co }, - { 726, PT_SC, ucp_Common }, - { 733, PT_SCX, ucp_Coptic }, - { 738, PT_SCX, ucp_Coptic }, - { 745, PT_SCX, ucp_Cypro_Minoan }, - { 750, PT_SCX, ucp_Cypriot }, - { 755, PT_PC, ucp_Cs }, - { 758, PT_SC, ucp_Cuneiform }, - { 768, PT_BOOL, ucp_Changes_When_Casefolded }, - { 773, PT_BOOL, ucp_Changes_When_Casemapped }, - { 778, PT_BOOL, ucp_Changes_When_Lowercased }, - { 782, PT_BOOL, ucp_Changes_When_Titlecased }, - { 786, PT_BOOL, ucp_Changes_When_Uppercased }, - { 790, PT_SCX, ucp_Cypriot }, - { 798, PT_SCX, ucp_Cypro_Minoan }, - { 810, PT_SCX, ucp_Cyrillic }, - { 819, PT_SCX, ucp_Cyrillic }, - { 824, PT_BOOL, ucp_Dash }, - { 829, PT_BOOL, ucp_Default_Ignorable_Code_Point }, - { 855, PT_BOOL, ucp_Deprecated }, - { 859, PT_BOOL, ucp_Deprecated }, - { 870, PT_SC, ucp_Deseret }, - { 878, PT_SCX, ucp_Devanagari }, - { 883, PT_SCX, ucp_Devanagari }, - { 894, PT_BOOL, ucp_Default_Ignorable_Code_Point }, - { 897, PT_BOOL, ucp_Diacritic }, - { 901, PT_BOOL, ucp_Diacritic }, - { 911, PT_SC, ucp_Dives_Akuru }, - { 916, PT_SC, ucp_Dives_Akuru }, - { 927, PT_SCX, ucp_Dogra }, - { 932, PT_SCX, ucp_Dogra }, - { 938, PT_SC, ucp_Deseret }, - { 943, PT_SCX, ucp_Duployan }, - { 948, PT_SCX, ucp_Duployan }, - { 957, PT_BOOL, ucp_Emoji_Modifier_Base }, - { 963, PT_BOOL, ucp_Emoji_Component }, - { 969, PT_SC, ucp_Egyptian_Hieroglyphs }, - { 974, PT_SC, ucp_Egyptian_Hieroglyphs }, - { 994, PT_SCX, ucp_Elbasan }, - { 999, PT_SCX, ucp_Elbasan }, - { 1007, PT_SC, ucp_Elymaic }, - { 1012, PT_SC, ucp_Elymaic }, - { 1020, PT_BOOL, ucp_Emoji_Modifier }, - { 1025, PT_BOOL, ucp_Emoji }, - { 1031, PT_BOOL, ucp_Emoji_Component }, - { 1046, PT_BOOL, ucp_Emoji_Modifier }, - { 1060, PT_BOOL, ucp_Emoji_Modifier_Base }, - { 1078, PT_BOOL, ucp_Emoji_Presentation }, - { 1096, PT_BOOL, ucp_Emoji_Presentation }, - { 1102, PT_SCX, ucp_Ethiopic }, - { 1107, PT_SCX, ucp_Ethiopic }, - { 1116, PT_BOOL, ucp_Extender }, - { 1120, PT_BOOL, ucp_Extended_Pictographic }, - { 1141, PT_BOOL, ucp_Extender }, - { 1150, PT_BOOL, ucp_Extended_Pictographic }, - { 1158, PT_SCX, ucp_Garay }, - { 1163, PT_SCX, ucp_Garay }, - { 1169, PT_SCX, ucp_Georgian }, - { 1174, PT_SCX, ucp_Georgian }, - { 1183, PT_SCX, ucp_Glagolitic }, - { 1188, PT_SCX, ucp_Glagolitic }, - { 1199, PT_SCX, ucp_Gunjala_Gondi }, - { 1204, PT_SCX, ucp_Masaram_Gondi }, - { 1209, PT_SCX, ucp_Gothic }, - { 1214, PT_SCX, ucp_Gothic }, - { 1221, PT_SCX, ucp_Grantha }, - { 1226, PT_SCX, ucp_Grantha }, - { 1234, PT_BOOL, ucp_Grapheme_Base }, - { 1247, PT_BOOL, ucp_Grapheme_Extend }, - { 1262, PT_BOOL, ucp_Grapheme_Link }, - { 1275, PT_BOOL, ucp_Grapheme_Base }, - { 1282, PT_SCX, ucp_Greek }, - { 1288, PT_SCX, ucp_Greek }, - { 1293, PT_BOOL, ucp_Grapheme_Extend }, - { 1299, PT_BOOL, ucp_Grapheme_Link }, - { 1306, PT_SCX, ucp_Gujarati }, - { 1315, PT_SCX, ucp_Gujarati }, - { 1320, PT_SCX, ucp_Gurung_Khema }, - { 1325, PT_SCX, ucp_Gunjala_Gondi }, - { 1338, PT_SCX, ucp_Gurmukhi }, - { 1347, PT_SCX, ucp_Gurmukhi }, - { 1352, PT_SCX, ucp_Gurung_Khema }, - { 1364, PT_SCX, ucp_Han }, - { 1368, PT_SCX, ucp_Hangul }, - { 1373, PT_SCX, ucp_Hangul }, - { 1380, PT_SCX, ucp_Han }, - { 1385, PT_SCX, ucp_Hanifi_Rohingya }, - { 1400, PT_SCX, ucp_Hanunoo }, - { 1405, PT_SCX, ucp_Hanunoo }, - { 1413, PT_SC, ucp_Hatran }, - { 1418, PT_SC, ucp_Hatran }, - { 1425, PT_SCX, ucp_Hebrew }, - { 1430, PT_SCX, ucp_Hebrew }, - { 1437, PT_BOOL, ucp_Hex_Digit }, - { 1441, PT_BOOL, ucp_Hex_Digit }, - { 1450, PT_SCX, ucp_Hiragana }, - { 1455, PT_SCX, ucp_Hiragana }, - { 1464, PT_SC, ucp_Anatolian_Hieroglyphs }, - { 1469, PT_SC, ucp_Pahawh_Hmong }, - { 1474, PT_SC, ucp_Nyiakeng_Puachue_Hmong }, - { 1479, PT_SCX, ucp_Old_Hungarian }, - { 1484, PT_BOOL, ucp_ID_Continue }, - { 1488, PT_BOOL, ucp_ID_Compat_Math_Continue }, - { 1509, PT_BOOL, ucp_ID_Compat_Math_Start }, - { 1527, PT_BOOL, ucp_ID_Continue }, - { 1538, PT_BOOL, ucp_Ideographic }, - { 1543, PT_BOOL, ucp_Ideographic }, - { 1555, PT_BOOL, ucp_ID_Start }, - { 1559, PT_BOOL, ucp_IDS_Binary_Operator }, - { 1564, PT_BOOL, ucp_IDS_Binary_Operator }, - { 1582, PT_BOOL, ucp_IDS_Trinary_Operator }, - { 1587, PT_BOOL, ucp_ID_Start }, - { 1595, PT_BOOL, ucp_IDS_Trinary_Operator }, - { 1614, PT_BOOL, ucp_IDS_Unary_Operator }, - { 1619, PT_BOOL, ucp_IDS_Unary_Operator }, - { 1636, PT_SC, ucp_Imperial_Aramaic }, - { 1652, PT_BOOL, ucp_InCB }, - { 1657, PT_SC, ucp_Inherited }, - { 1667, PT_SC, ucp_Inscriptional_Pahlavi }, - { 1688, PT_SC, ucp_Inscriptional_Parthian }, - { 1710, PT_SC, ucp_Old_Italic }, - { 1715, PT_SCX, ucp_Javanese }, - { 1720, PT_SCX, ucp_Javanese }, - { 1729, PT_BOOL, ucp_Join_Control }, - { 1735, PT_BOOL, ucp_Join_Control }, - { 1747, PT_SCX, ucp_Kaithi }, - { 1754, PT_SCX, ucp_Kayah_Li }, - { 1759, PT_SCX, ucp_Katakana }, - { 1764, PT_SCX, ucp_Kannada }, - { 1772, PT_SCX, ucp_Katakana }, - { 1781, PT_SC, ucp_Kawi }, - { 1786, PT_SCX, ucp_Kayah_Li }, - { 1794, PT_SC, ucp_Kharoshthi }, - { 1799, PT_SC, ucp_Kharoshthi }, - { 1810, PT_SC, ucp_Khitan_Small_Script }, - { 1828, PT_SC, ucp_Khmer }, - { 1834, PT_SC, ucp_Khmer }, - { 1839, PT_SCX, ucp_Khojki }, - { 1844, PT_SCX, ucp_Khojki }, - { 1851, PT_SCX, ucp_Khudawadi }, - { 1861, PT_SC, ucp_Kirat_Rai }, - { 1870, PT_SC, ucp_Khitan_Small_Script }, - { 1875, PT_SCX, ucp_Kannada }, - { 1880, PT_SC, ucp_Kirat_Rai }, - { 1885, PT_SCX, ucp_Kaithi }, - { 1890, PT_GC, ucp_L }, - { 1892, PT_LAMP, 0 }, - { 1895, PT_SC, ucp_Tai_Tham }, - { 1900, PT_SC, ucp_Lao }, - { 1904, PT_SC, ucp_Lao }, - { 1909, PT_SCX, ucp_Latin }, - { 1915, PT_SCX, ucp_Latin }, - { 1920, PT_LAMP, 0 }, - { 1923, PT_SC, ucp_Lepcha }, - { 1928, PT_SC, ucp_Lepcha }, - { 1935, PT_SCX, ucp_Limbu }, - { 1940, PT_SCX, ucp_Limbu }, - { 1946, PT_SCX, ucp_Linear_A }, - { 1951, PT_SCX, ucp_Linear_B }, - { 1956, PT_SCX, ucp_Linear_A }, - { 1964, PT_SCX, ucp_Linear_B }, - { 1972, PT_SCX, ucp_Lisu }, - { 1977, PT_PC, ucp_Ll }, - { 1980, PT_PC, ucp_Lm }, - { 1983, PT_PC, ucp_Lo }, - { 1986, PT_BOOL, ucp_Logical_Order_Exception }, - { 1990, PT_BOOL, ucp_Logical_Order_Exception }, - { 2012, PT_BOOL, ucp_Lowercase }, - { 2018, PT_BOOL, ucp_Lowercase }, - { 2028, PT_PC, ucp_Lt }, - { 2031, PT_PC, ucp_Lu }, - { 2034, PT_SCX, ucp_Lycian }, - { 2039, PT_SCX, ucp_Lycian }, - { 2046, PT_SCX, ucp_Lydian }, - { 2051, PT_SCX, ucp_Lydian }, - { 2058, PT_GC, ucp_M }, - { 2060, PT_SCX, ucp_Mahajani }, - { 2069, PT_SCX, ucp_Mahajani }, - { 2074, PT_SC, ucp_Makasar }, - { 2079, PT_SC, ucp_Makasar }, - { 2087, PT_SCX, ucp_Malayalam }, - { 2097, PT_SCX, ucp_Mandaic }, - { 2102, PT_SCX, ucp_Mandaic }, - { 2110, PT_SCX, ucp_Manichaean }, - { 2115, PT_SCX, ucp_Manichaean }, - { 2126, PT_SC, ucp_Marchen }, - { 2131, PT_SC, ucp_Marchen }, - { 2139, PT_SCX, ucp_Masaram_Gondi }, - { 2152, PT_BOOL, ucp_Math }, - { 2157, PT_PC, ucp_Mc }, - { 2160, PT_BOOL, ucp_Modifier_Combining_Mark }, - { 2164, PT_PC, ucp_Me }, - { 2167, PT_SC, ucp_Medefaidrin }, - { 2179, PT_SC, ucp_Medefaidrin }, - { 2184, PT_SC, ucp_Meetei_Mayek }, - { 2196, PT_SC, ucp_Mende_Kikakui }, - { 2201, PT_SC, ucp_Mende_Kikakui }, - { 2214, PT_SC, ucp_Meroitic_Cursive }, - { 2219, PT_SCX, ucp_Meroitic_Hieroglyphs }, - { 2224, PT_SC, ucp_Meroitic_Cursive }, - { 2240, PT_SCX, ucp_Meroitic_Hieroglyphs }, - { 2260, PT_SC, ucp_Miao }, - { 2265, PT_SCX, ucp_Malayalam }, - { 2270, PT_PC, ucp_Mn }, - { 2273, PT_SCX, ucp_Modi }, - { 2278, PT_BOOL, ucp_Modifier_Combining_Mark }, - { 2300, PT_SCX, ucp_Mongolian }, - { 2305, PT_SCX, ucp_Mongolian }, - { 2315, PT_SC, ucp_Mro }, - { 2319, PT_SC, ucp_Mro }, - { 2324, PT_SC, ucp_Meetei_Mayek }, - { 2329, PT_SCX, ucp_Multani }, - { 2334, PT_SCX, ucp_Multani }, - { 2342, PT_SCX, ucp_Myanmar }, - { 2350, PT_SCX, ucp_Myanmar }, - { 2355, PT_GC, ucp_N }, - { 2357, PT_SC, ucp_Nabataean }, - { 2367, PT_SC, ucp_Nag_Mundari }, - { 2372, PT_SC, ucp_Nag_Mundari }, - { 2383, PT_SCX, ucp_Nandinagari }, - { 2388, PT_SCX, ucp_Nandinagari }, - { 2400, PT_SC, ucp_Old_North_Arabian }, - { 2405, PT_SC, ucp_Nabataean }, - { 2410, PT_BOOL, ucp_Noncharacter_Code_Point }, - { 2416, PT_PC, ucp_Nd }, - { 2419, PT_SC, ucp_Newa }, - { 2424, PT_SC, ucp_New_Tai_Lue }, - { 2434, PT_SCX, ucp_Nko }, - { 2438, PT_SCX, ucp_Nko }, - { 2443, PT_PC, ucp_Nl }, - { 2446, PT_PC, ucp_No }, - { 2449, PT_BOOL, ucp_Noncharacter_Code_Point }, - { 2471, PT_SC, ucp_Nushu }, - { 2476, PT_SC, ucp_Nushu }, - { 2482, PT_SC, ucp_Nyiakeng_Puachue_Hmong }, - { 2503, PT_SC, ucp_Ogham }, - { 2508, PT_SC, ucp_Ogham }, - { 2514, PT_SC, ucp_Ol_Chiki }, - { 2522, PT_SC, ucp_Ol_Chiki }, - { 2527, PT_SCX, ucp_Old_Hungarian }, - { 2540, PT_SC, ucp_Old_Italic }, - { 2550, PT_SC, ucp_Old_North_Arabian }, - { 2566, PT_SCX, ucp_Old_Permic }, - { 2576, PT_SC, ucp_Old_Persian }, - { 2587, PT_SC, ucp_Old_Sogdian }, - { 2598, PT_SC, ucp_Old_South_Arabian }, - { 2614, PT_SCX, ucp_Old_Turkic }, - { 2624, PT_SCX, ucp_Old_Uyghur }, - { 2634, PT_SCX, ucp_Ol_Onal }, - { 2641, PT_SCX, ucp_Ol_Onal }, - { 2646, PT_SCX, ucp_Oriya }, - { 2652, PT_SCX, ucp_Old_Turkic }, - { 2657, PT_SCX, ucp_Oriya }, - { 2662, PT_SCX, ucp_Osage }, - { 2668, PT_SCX, ucp_Osage }, - { 2673, PT_SC, ucp_Osmanya }, - { 2678, PT_SC, ucp_Osmanya }, - { 2686, PT_SCX, ucp_Old_Uyghur }, - { 2691, PT_GC, ucp_P }, - { 2693, PT_SC, ucp_Pahawh_Hmong }, - { 2705, PT_SC, ucp_Palmyrene }, - { 2710, PT_SC, ucp_Palmyrene }, - { 2720, PT_BOOL, ucp_Pattern_Syntax }, - { 2727, PT_BOOL, ucp_Pattern_Syntax }, - { 2741, PT_BOOL, ucp_Pattern_White_Space }, - { 2759, PT_BOOL, ucp_Pattern_White_Space }, - { 2765, PT_SC, ucp_Pau_Cin_Hau }, - { 2770, PT_SC, ucp_Pau_Cin_Hau }, - { 2780, PT_PC, ucp_Pc }, - { 2783, PT_BOOL, ucp_Prepended_Concatenation_Mark }, - { 2787, PT_PC, ucp_Pd }, - { 2790, PT_PC, ucp_Pe }, - { 2793, PT_SCX, ucp_Old_Permic }, - { 2798, PT_PC, ucp_Pf }, - { 2801, PT_SCX, ucp_Phags_Pa }, - { 2806, PT_SCX, ucp_Phags_Pa }, - { 2814, PT_SC, ucp_Inscriptional_Pahlavi }, - { 2819, PT_SCX, ucp_Psalter_Pahlavi }, - { 2824, PT_SC, ucp_Phoenician }, - { 2829, PT_SC, ucp_Phoenician }, - { 2840, PT_PC, ucp_Pi }, - { 2843, PT_SC, ucp_Miao }, - { 2848, PT_PC, ucp_Po }, - { 2851, PT_BOOL, ucp_Prepended_Concatenation_Mark }, - { 2878, PT_SC, ucp_Inscriptional_Parthian }, - { 2883, PT_PC, ucp_Ps }, - { 2886, PT_SCX, ucp_Psalter_Pahlavi }, - { 2901, PT_SCX, ucp_Coptic }, - { 2906, PT_SC, ucp_Inherited }, - { 2911, PT_BOOL, ucp_Quotation_Mark }, - { 2917, PT_BOOL, ucp_Quotation_Mark }, - { 2931, PT_BOOL, ucp_Radical }, - { 2939, PT_BOOL, ucp_Regional_Indicator }, - { 2957, PT_SC, ucp_Rejang }, - { 2964, PT_BOOL, ucp_Regional_Indicator }, - { 2967, PT_SC, ucp_Rejang }, - { 2972, PT_SCX, ucp_Hanifi_Rohingya }, - { 2977, PT_SCX, ucp_Runic }, - { 2983, PT_SCX, ucp_Runic }, - { 2988, PT_GC, ucp_S }, - { 2990, PT_SCX, ucp_Samaritan }, - { 3000, PT_SCX, ucp_Samaritan }, - { 3005, PT_SC, ucp_Old_South_Arabian }, - { 3010, PT_SC, ucp_Saurashtra }, - { 3015, PT_SC, ucp_Saurashtra }, - { 3026, PT_PC, ucp_Sc }, - { 3029, PT_BOOL, ucp_Soft_Dotted }, - { 3032, PT_BOOL, ucp_Sentence_Terminal }, - { 3049, PT_SC, ucp_SignWriting }, - { 3054, PT_SCX, ucp_Sharada }, - { 3062, PT_SCX, ucp_Shavian }, - { 3070, PT_SCX, ucp_Shavian }, - { 3075, PT_SCX, ucp_Sharada }, - { 3080, PT_SC, ucp_Siddham }, - { 3085, PT_SC, ucp_Siddham }, - { 3093, PT_SC, ucp_SignWriting }, - { 3105, PT_SCX, ucp_Khudawadi }, - { 3110, PT_SCX, ucp_Sinhala }, - { 3115, PT_SCX, ucp_Sinhala }, - { 3123, PT_PC, ucp_Sk }, - { 3126, PT_PC, ucp_Sm }, - { 3129, PT_PC, ucp_So }, - { 3132, PT_BOOL, ucp_Soft_Dotted }, - { 3143, PT_SCX, ucp_Sogdian }, - { 3148, PT_SCX, ucp_Sogdian }, - { 3156, PT_SC, ucp_Old_Sogdian }, - { 3161, PT_SC, ucp_Sora_Sompeng }, - { 3166, PT_SC, ucp_Sora_Sompeng }, - { 3178, PT_SC, ucp_Soyombo }, - { 3183, PT_SC, ucp_Soyombo }, - { 3191, PT_BOOL, ucp_White_Space }, - { 3197, PT_BOOL, ucp_Sentence_Terminal }, - { 3203, PT_SC, ucp_Sundanese }, - { 3208, PT_SC, ucp_Sundanese }, - { 3218, PT_SCX, ucp_Sunuwar }, - { 3223, PT_SCX, ucp_Sunuwar }, - { 3231, PT_SCX, ucp_Syloti_Nagri }, - { 3236, PT_SCX, ucp_Syloti_Nagri }, - { 3248, PT_SCX, ucp_Syriac }, - { 3253, PT_SCX, ucp_Syriac }, - { 3260, PT_SCX, ucp_Tagalog }, - { 3268, PT_SCX, ucp_Tagbanwa }, - { 3273, PT_SCX, ucp_Tagbanwa }, - { 3282, PT_SCX, ucp_Tai_Le }, - { 3288, PT_SC, ucp_Tai_Tham }, - { 3296, PT_SC, ucp_Tai_Viet }, - { 3304, PT_SCX, ucp_Takri }, - { 3309, PT_SCX, ucp_Takri }, - { 3315, PT_SCX, ucp_Tai_Le }, - { 3320, PT_SC, ucp_New_Tai_Lue }, - { 3325, PT_SCX, ucp_Tamil }, - { 3331, PT_SCX, ucp_Tamil }, - { 3336, PT_SCX, ucp_Tangut }, - { 3341, PT_SC, ucp_Tangsa }, - { 3348, PT_SCX, ucp_Tangut }, - { 3355, PT_SC, ucp_Tai_Viet }, - { 3360, PT_SCX, ucp_Telugu }, - { 3365, PT_SCX, ucp_Telugu }, - { 3372, PT_BOOL, ucp_Terminal_Punctuation }, - { 3377, PT_BOOL, ucp_Terminal_Punctuation }, - { 3397, PT_SCX, ucp_Tifinagh }, - { 3402, PT_SCX, ucp_Tagalog }, - { 3407, PT_SCX, ucp_Thaana }, - { 3412, PT_SCX, ucp_Thaana }, - { 3419, PT_SCX, ucp_Thai }, - { 3424, PT_SCX, ucp_Tibetan }, - { 3432, PT_SCX, ucp_Tibetan }, - { 3437, PT_SCX, ucp_Tifinagh }, - { 3446, PT_SCX, ucp_Tirhuta }, - { 3451, PT_SCX, ucp_Tirhuta }, - { 3459, PT_SC, ucp_Tangsa }, - { 3464, PT_SCX, ucp_Todhri }, - { 3471, PT_SCX, ucp_Todhri }, - { 3476, PT_SCX, ucp_Toto }, - { 3481, PT_SCX, ucp_Tulu_Tigalari }, - { 3494, PT_SCX, ucp_Tulu_Tigalari }, - { 3499, PT_SC, ucp_Ugaritic }, - { 3504, PT_SC, ucp_Ugaritic }, - { 3513, PT_BOOL, ucp_Unified_Ideograph }, - { 3519, PT_BOOL, ucp_Unified_Ideograph }, - { 3536, PT_SC, ucp_Unknown }, - { 3544, PT_BOOL, ucp_Uppercase }, - { 3550, PT_BOOL, ucp_Uppercase }, - { 3560, PT_SC, ucp_Vai }, - { 3564, PT_SC, ucp_Vai }, - { 3569, PT_BOOL, ucp_Variation_Selector }, - { 3587, PT_SC, ucp_Vithkuqi }, - { 3592, PT_SC, ucp_Vithkuqi }, - { 3601, PT_BOOL, ucp_Variation_Selector }, - { 3604, PT_SC, ucp_Wancho }, - { 3611, PT_SC, ucp_Warang_Citi }, - { 3616, PT_SC, ucp_Warang_Citi }, - { 3627, PT_SC, ucp_Wancho }, - { 3632, PT_BOOL, ucp_White_Space }, - { 3643, PT_BOOL, ucp_White_Space }, - { 3650, PT_ALNUM, 0 }, - { 3654, PT_BOOL, ucp_XID_Continue }, - { 3659, PT_BOOL, ucp_XID_Continue }, - { 3671, PT_BOOL, ucp_XID_Start }, - { 3676, PT_BOOL, ucp_XID_Start }, - { 3685, PT_SC, ucp_Old_Persian }, - { 3690, PT_PXSPACE, 0 }, - { 3694, PT_SPACE, 0 }, - { 3698, PT_SC, ucp_Cuneiform }, - { 3703, PT_UCNC, 0 }, - { 3707, PT_WORD, 0 }, - { 3711, PT_SCX, ucp_Yezidi }, - { 3716, PT_SCX, ucp_Yezidi }, - { 3723, PT_SCX, ucp_Yi }, - { 3726, PT_SCX, ucp_Yi }, - { 3731, PT_GC, ucp_Z }, - { 3733, PT_SC, ucp_Zanabazar_Square }, - { 3749, PT_SC, ucp_Zanabazar_Square }, - { 3754, PT_SC, ucp_Inherited }, - { 3759, PT_PC, ucp_Zl }, - { 3762, PT_PC, ucp_Zp }, - { 3765, PT_PC, ucp_Zs }, - { 3768, PT_SC, ucp_Common }, - { 3773, PT_SC, ucp_Unknown } + { 195, PT_SC, ucp_Beria_Erfe }, + { 200, PT_SC, ucp_Beria_Erfe }, + { 210, PT_SC, ucp_Bhaiksuki }, + { 220, PT_SC, ucp_Bhaiksuki }, + { 225, PT_BIDICL, ucp_bidiAL }, + { 232, PT_BIDICL, ucp_bidiAN }, + { 239, PT_BIDICL, ucp_bidiB }, + { 245, PT_BIDICL, ucp_bidiBN }, + { 252, PT_BOOL, ucp_Bidi_Control }, + { 258, PT_BOOL, ucp_Bidi_Control }, + { 270, PT_BIDICL, ucp_bidiCS }, + { 277, PT_BIDICL, ucp_bidiEN }, + { 284, PT_BIDICL, ucp_bidiES }, + { 291, PT_BIDICL, ucp_bidiET }, + { 298, PT_BIDICL, ucp_bidiFSI }, + { 306, PT_BIDICL, ucp_bidiL }, + { 312, PT_BIDICL, ucp_bidiLRE }, + { 320, PT_BIDICL, ucp_bidiLRI }, + { 328, PT_BIDICL, ucp_bidiLRO }, + { 336, PT_BOOL, ucp_Bidi_Mirrored }, + { 342, PT_BOOL, ucp_Bidi_Mirrored }, + { 355, PT_BIDICL, ucp_bidiNSM }, + { 363, PT_BIDICL, ucp_bidiON }, + { 370, PT_BIDICL, ucp_bidiPDF }, + { 378, PT_BIDICL, ucp_bidiPDI }, + { 386, PT_BIDICL, ucp_bidiR }, + { 392, PT_BIDICL, ucp_bidiRLE }, + { 400, PT_BIDICL, ucp_bidiRLI }, + { 408, PT_BIDICL, ucp_bidiRLO }, + { 416, PT_BIDICL, ucp_bidiS }, + { 422, PT_BIDICL, ucp_bidiWS }, + { 429, PT_SCX, ucp_Bopomofo }, + { 434, PT_SCX, ucp_Bopomofo }, + { 443, PT_SC, ucp_Brahmi }, + { 448, PT_SC, ucp_Brahmi }, + { 455, PT_SC, ucp_Braille }, + { 460, PT_SC, ucp_Braille }, + { 468, PT_SCX, ucp_Buginese }, + { 473, PT_SCX, ucp_Buginese }, + { 482, PT_SCX, ucp_Buhid }, + { 487, PT_SCX, ucp_Buhid }, + { 493, PT_GC, ucp_C }, + { 495, PT_SCX, ucp_Chakma }, + { 500, PT_SC, ucp_Canadian_Aboriginal }, + { 519, PT_SC, ucp_Canadian_Aboriginal }, + { 524, PT_SCX, ucp_Carian }, + { 529, PT_SCX, ucp_Carian }, + { 536, PT_BOOL, ucp_Cased }, + { 542, PT_BOOL, ucp_Case_Ignorable }, + { 556, PT_SCX, ucp_Caucasian_Albanian }, + { 574, PT_PC, ucp_Cc }, + { 577, PT_PC, ucp_Cf }, + { 580, PT_SCX, ucp_Chakma }, + { 587, PT_SC, ucp_Cham }, + { 592, PT_BOOL, ucp_Changes_When_Casefolded }, + { 614, PT_BOOL, ucp_Changes_When_Casemapped }, + { 636, PT_BOOL, ucp_Changes_When_Lowercased }, + { 658, PT_BOOL, ucp_Changes_When_Titlecased }, + { 680, PT_BOOL, ucp_Changes_When_Uppercased }, + { 702, PT_SCX, ucp_Cherokee }, + { 707, PT_SCX, ucp_Cherokee }, + { 716, PT_SC, ucp_Chorasmian }, + { 727, PT_SC, ucp_Chorasmian }, + { 732, PT_BOOL, ucp_Case_Ignorable }, + { 735, PT_PC, ucp_Cn }, + { 738, PT_PC, ucp_Co }, + { 741, PT_SC, ucp_Common }, + { 748, PT_SCX, ucp_Coptic }, + { 753, PT_SCX, ucp_Coptic }, + { 760, PT_SCX, ucp_Cypro_Minoan }, + { 765, PT_SCX, ucp_Cypriot }, + { 770, PT_PC, ucp_Cs }, + { 773, PT_SC, ucp_Cuneiform }, + { 783, PT_BOOL, ucp_Changes_When_Casefolded }, + { 788, PT_BOOL, ucp_Changes_When_Casemapped }, + { 793, PT_BOOL, ucp_Changes_When_Lowercased }, + { 797, PT_BOOL, ucp_Changes_When_Titlecased }, + { 801, PT_BOOL, ucp_Changes_When_Uppercased }, + { 805, PT_SCX, ucp_Cypriot }, + { 813, PT_SCX, ucp_Cypro_Minoan }, + { 825, PT_SCX, ucp_Cyrillic }, + { 834, PT_SCX, ucp_Cyrillic }, + { 839, PT_BOOL, ucp_Dash }, + { 844, PT_BOOL, ucp_Default_Ignorable_Code_Point }, + { 870, PT_BOOL, ucp_Deprecated }, + { 874, PT_BOOL, ucp_Deprecated }, + { 885, PT_SC, ucp_Deseret }, + { 893, PT_SCX, ucp_Devanagari }, + { 898, PT_SCX, ucp_Devanagari }, + { 909, PT_BOOL, ucp_Default_Ignorable_Code_Point }, + { 912, PT_BOOL, ucp_Diacritic }, + { 916, PT_BOOL, ucp_Diacritic }, + { 926, PT_SC, ucp_Dives_Akuru }, + { 931, PT_SC, ucp_Dives_Akuru }, + { 942, PT_SCX, ucp_Dogra }, + { 947, PT_SCX, ucp_Dogra }, + { 953, PT_SC, ucp_Deseret }, + { 958, PT_SCX, ucp_Duployan }, + { 963, PT_SCX, ucp_Duployan }, + { 972, PT_BOOL, ucp_Emoji_Modifier_Base }, + { 978, PT_BOOL, ucp_Emoji_Component }, + { 984, PT_SC, ucp_Egyptian_Hieroglyphs }, + { 989, PT_SC, ucp_Egyptian_Hieroglyphs }, + { 1009, PT_SCX, ucp_Elbasan }, + { 1014, PT_SCX, ucp_Elbasan }, + { 1022, PT_SC, ucp_Elymaic }, + { 1027, PT_SC, ucp_Elymaic }, + { 1035, PT_BOOL, ucp_Emoji_Modifier }, + { 1040, PT_BOOL, ucp_Emoji }, + { 1046, PT_BOOL, ucp_Emoji_Component }, + { 1061, PT_BOOL, ucp_Emoji_Modifier }, + { 1075, PT_BOOL, ucp_Emoji_Modifier_Base }, + { 1093, PT_BOOL, ucp_Emoji_Presentation }, + { 1111, PT_BOOL, ucp_Emoji_Presentation }, + { 1117, PT_SCX, ucp_Ethiopic }, + { 1122, PT_SCX, ucp_Ethiopic }, + { 1131, PT_BOOL, ucp_Extender }, + { 1135, PT_BOOL, ucp_Extended_Pictographic }, + { 1156, PT_BOOL, ucp_Extender }, + { 1165, PT_BOOL, ucp_Extended_Pictographic }, + { 1173, PT_SCX, ucp_Garay }, + { 1178, PT_SCX, ucp_Garay }, + { 1184, PT_SCX, ucp_Georgian }, + { 1189, PT_SCX, ucp_Georgian }, + { 1198, PT_SCX, ucp_Glagolitic }, + { 1203, PT_SCX, ucp_Glagolitic }, + { 1214, PT_SCX, ucp_Gunjala_Gondi }, + { 1219, PT_SCX, ucp_Masaram_Gondi }, + { 1224, PT_SCX, ucp_Gothic }, + { 1229, PT_SCX, ucp_Gothic }, + { 1236, PT_SCX, ucp_Grantha }, + { 1241, PT_SCX, ucp_Grantha }, + { 1249, PT_BOOL, ucp_Grapheme_Base }, + { 1262, PT_BOOL, ucp_Grapheme_Extend }, + { 1277, PT_BOOL, ucp_Grapheme_Link }, + { 1290, PT_BOOL, ucp_Grapheme_Base }, + { 1297, PT_SCX, ucp_Greek }, + { 1303, PT_SCX, ucp_Greek }, + { 1308, PT_BOOL, ucp_Grapheme_Extend }, + { 1314, PT_BOOL, ucp_Grapheme_Link }, + { 1321, PT_SCX, ucp_Gujarati }, + { 1330, PT_SCX, ucp_Gujarati }, + { 1335, PT_SCX, ucp_Gurung_Khema }, + { 1340, PT_SCX, ucp_Gunjala_Gondi }, + { 1353, PT_SCX, ucp_Gurmukhi }, + { 1362, PT_SCX, ucp_Gurmukhi }, + { 1367, PT_SCX, ucp_Gurung_Khema }, + { 1379, PT_SCX, ucp_Han }, + { 1383, PT_SCX, ucp_Hangul }, + { 1388, PT_SCX, ucp_Hangul }, + { 1395, PT_SCX, ucp_Han }, + { 1400, PT_SCX, ucp_Hanifi_Rohingya }, + { 1415, PT_SCX, ucp_Hanunoo }, + { 1420, PT_SCX, ucp_Hanunoo }, + { 1428, PT_SC, ucp_Hatran }, + { 1433, PT_SC, ucp_Hatran }, + { 1440, PT_SCX, ucp_Hebrew }, + { 1445, PT_SCX, ucp_Hebrew }, + { 1452, PT_BOOL, ucp_Hex_Digit }, + { 1456, PT_BOOL, ucp_Hex_Digit }, + { 1465, PT_SCX, ucp_Hiragana }, + { 1470, PT_SCX, ucp_Hiragana }, + { 1479, PT_SC, ucp_Anatolian_Hieroglyphs }, + { 1484, PT_SC, ucp_Pahawh_Hmong }, + { 1489, PT_SC, ucp_Nyiakeng_Puachue_Hmong }, + { 1494, PT_SCX, ucp_Old_Hungarian }, + { 1499, PT_BOOL, ucp_ID_Continue }, + { 1503, PT_BOOL, ucp_ID_Compat_Math_Continue }, + { 1524, PT_BOOL, ucp_ID_Compat_Math_Start }, + { 1542, PT_BOOL, ucp_ID_Continue }, + { 1553, PT_BOOL, ucp_Ideographic }, + { 1558, PT_BOOL, ucp_Ideographic }, + { 1570, PT_BOOL, ucp_ID_Start }, + { 1574, PT_BOOL, ucp_IDS_Binary_Operator }, + { 1579, PT_BOOL, ucp_IDS_Binary_Operator }, + { 1597, PT_BOOL, ucp_IDS_Trinary_Operator }, + { 1602, PT_BOOL, ucp_ID_Start }, + { 1610, PT_BOOL, ucp_IDS_Trinary_Operator }, + { 1629, PT_BOOL, ucp_IDS_Unary_Operator }, + { 1634, PT_BOOL, ucp_IDS_Unary_Operator }, + { 1651, PT_SC, ucp_Imperial_Aramaic }, + { 1667, PT_BOOL, ucp_InCB }, + { 1672, PT_SC, ucp_Inherited }, + { 1682, PT_SC, ucp_Inscriptional_Pahlavi }, + { 1703, PT_SC, ucp_Inscriptional_Parthian }, + { 1725, PT_SC, ucp_Old_Italic }, + { 1730, PT_SCX, ucp_Javanese }, + { 1735, PT_SCX, ucp_Javanese }, + { 1744, PT_BOOL, ucp_Join_Control }, + { 1750, PT_BOOL, ucp_Join_Control }, + { 1762, PT_SCX, ucp_Kaithi }, + { 1769, PT_SCX, ucp_Kayah_Li }, + { 1774, PT_SCX, ucp_Katakana }, + { 1779, PT_SCX, ucp_Kannada }, + { 1787, PT_SCX, ucp_Katakana }, + { 1796, PT_SC, ucp_Kawi }, + { 1801, PT_SCX, ucp_Kayah_Li }, + { 1809, PT_SC, ucp_Kharoshthi }, + { 1814, PT_SC, ucp_Kharoshthi }, + { 1825, PT_SC, ucp_Khitan_Small_Script }, + { 1843, PT_SC, ucp_Khmer }, + { 1849, PT_SC, ucp_Khmer }, + { 1854, PT_SCX, ucp_Khojki }, + { 1859, PT_SCX, ucp_Khojki }, + { 1866, PT_SCX, ucp_Khudawadi }, + { 1876, PT_SC, ucp_Kirat_Rai }, + { 1885, PT_SC, ucp_Khitan_Small_Script }, + { 1890, PT_SCX, ucp_Kannada }, + { 1895, PT_SC, ucp_Kirat_Rai }, + { 1900, PT_SCX, ucp_Kaithi }, + { 1905, PT_GC, ucp_L }, + { 1907, PT_LAMP, 0 }, + { 1910, PT_SC, ucp_Tai_Tham }, + { 1915, PT_SC, ucp_Lao }, + { 1919, PT_SC, ucp_Lao }, + { 1924, PT_SCX, ucp_Latin }, + { 1930, PT_SCX, ucp_Latin }, + { 1935, PT_LAMP, 0 }, + { 1938, PT_SC, ucp_Lepcha }, + { 1943, PT_SC, ucp_Lepcha }, + { 1950, PT_SCX, ucp_Limbu }, + { 1955, PT_SCX, ucp_Limbu }, + { 1961, PT_SCX, ucp_Linear_A }, + { 1966, PT_SCX, ucp_Linear_B }, + { 1971, PT_SCX, ucp_Linear_A }, + { 1979, PT_SCX, ucp_Linear_B }, + { 1987, PT_SCX, ucp_Lisu }, + { 1992, PT_PC, ucp_Ll }, + { 1995, PT_PC, ucp_Lm }, + { 1998, PT_PC, ucp_Lo }, + { 2001, PT_BOOL, ucp_Logical_Order_Exception }, + { 2005, PT_BOOL, ucp_Logical_Order_Exception }, + { 2027, PT_BOOL, ucp_Lowercase }, + { 2033, PT_BOOL, ucp_Lowercase }, + { 2043, PT_PC, ucp_Lt }, + { 2046, PT_PC, ucp_Lu }, + { 2049, PT_SCX, ucp_Lycian }, + { 2054, PT_SCX, ucp_Lycian }, + { 2061, PT_SCX, ucp_Lydian }, + { 2066, PT_SCX, ucp_Lydian }, + { 2073, PT_GC, ucp_M }, + { 2075, PT_SCX, ucp_Mahajani }, + { 2084, PT_SCX, ucp_Mahajani }, + { 2089, PT_SC, ucp_Makasar }, + { 2094, PT_SC, ucp_Makasar }, + { 2102, PT_SCX, ucp_Malayalam }, + { 2112, PT_SCX, ucp_Mandaic }, + { 2117, PT_SCX, ucp_Mandaic }, + { 2125, PT_SCX, ucp_Manichaean }, + { 2130, PT_SCX, ucp_Manichaean }, + { 2141, PT_SC, ucp_Marchen }, + { 2146, PT_SC, ucp_Marchen }, + { 2154, PT_SCX, ucp_Masaram_Gondi }, + { 2167, PT_BOOL, ucp_Math }, + { 2172, PT_PC, ucp_Mc }, + { 2175, PT_BOOL, ucp_Modifier_Combining_Mark }, + { 2179, PT_PC, ucp_Me }, + { 2182, PT_SC, ucp_Medefaidrin }, + { 2194, PT_SC, ucp_Medefaidrin }, + { 2199, PT_SC, ucp_Meetei_Mayek }, + { 2211, PT_SC, ucp_Mende_Kikakui }, + { 2216, PT_SC, ucp_Mende_Kikakui }, + { 2229, PT_SC, ucp_Meroitic_Cursive }, + { 2234, PT_SCX, ucp_Meroitic_Hieroglyphs }, + { 2239, PT_SC, ucp_Meroitic_Cursive }, + { 2255, PT_SCX, ucp_Meroitic_Hieroglyphs }, + { 2275, PT_SC, ucp_Miao }, + { 2280, PT_SCX, ucp_Malayalam }, + { 2285, PT_PC, ucp_Mn }, + { 2288, PT_SCX, ucp_Modi }, + { 2293, PT_BOOL, ucp_Modifier_Combining_Mark }, + { 2315, PT_SCX, ucp_Mongolian }, + { 2320, PT_SCX, ucp_Mongolian }, + { 2330, PT_SC, ucp_Mro }, + { 2334, PT_SC, ucp_Mro }, + { 2339, PT_SC, ucp_Meetei_Mayek }, + { 2344, PT_SCX, ucp_Multani }, + { 2349, PT_SCX, ucp_Multani }, + { 2357, PT_SCX, ucp_Myanmar }, + { 2365, PT_SCX, ucp_Myanmar }, + { 2370, PT_GC, ucp_N }, + { 2372, PT_SC, ucp_Nabataean }, + { 2382, PT_SC, ucp_Nag_Mundari }, + { 2387, PT_SC, ucp_Nag_Mundari }, + { 2398, PT_SCX, ucp_Nandinagari }, + { 2403, PT_SCX, ucp_Nandinagari }, + { 2415, PT_SC, ucp_Old_North_Arabian }, + { 2420, PT_SC, ucp_Nabataean }, + { 2425, PT_BOOL, ucp_Noncharacter_Code_Point }, + { 2431, PT_PC, ucp_Nd }, + { 2434, PT_SCX, ucp_Newa }, + { 2439, PT_SC, ucp_New_Tai_Lue }, + { 2449, PT_SCX, ucp_Nko }, + { 2453, PT_SCX, ucp_Nko }, + { 2458, PT_PC, ucp_Nl }, + { 2461, PT_PC, ucp_No }, + { 2464, PT_BOOL, ucp_Noncharacter_Code_Point }, + { 2486, PT_SC, ucp_Nushu }, + { 2491, PT_SC, ucp_Nushu }, + { 2497, PT_SC, ucp_Nyiakeng_Puachue_Hmong }, + { 2518, PT_SC, ucp_Ogham }, + { 2523, PT_SC, ucp_Ogham }, + { 2529, PT_SC, ucp_Ol_Chiki }, + { 2537, PT_SC, ucp_Ol_Chiki }, + { 2542, PT_SCX, ucp_Old_Hungarian }, + { 2555, PT_SC, ucp_Old_Italic }, + { 2565, PT_SC, ucp_Old_North_Arabian }, + { 2581, PT_SCX, ucp_Old_Permic }, + { 2591, PT_SC, ucp_Old_Persian }, + { 2602, PT_SC, ucp_Old_Sogdian }, + { 2613, PT_SC, ucp_Old_South_Arabian }, + { 2629, PT_SCX, ucp_Old_Turkic }, + { 2639, PT_SCX, ucp_Old_Uyghur }, + { 2649, PT_SCX, ucp_Ol_Onal }, + { 2656, PT_SCX, ucp_Ol_Onal }, + { 2661, PT_SCX, ucp_Oriya }, + { 2667, PT_SCX, ucp_Old_Turkic }, + { 2672, PT_SCX, ucp_Oriya }, + { 2677, PT_SCX, ucp_Osage }, + { 2683, PT_SCX, ucp_Osage }, + { 2688, PT_SC, ucp_Osmanya }, + { 2693, PT_SC, ucp_Osmanya }, + { 2701, PT_SCX, ucp_Old_Uyghur }, + { 2706, PT_GC, ucp_P }, + { 2708, PT_SC, ucp_Pahawh_Hmong }, + { 2720, PT_SC, ucp_Palmyrene }, + { 2725, PT_SC, ucp_Palmyrene }, + { 2735, PT_BOOL, ucp_Pattern_Syntax }, + { 2742, PT_BOOL, ucp_Pattern_Syntax }, + { 2756, PT_BOOL, ucp_Pattern_White_Space }, + { 2774, PT_BOOL, ucp_Pattern_White_Space }, + { 2780, PT_SC, ucp_Pau_Cin_Hau }, + { 2785, PT_SC, ucp_Pau_Cin_Hau }, + { 2795, PT_PC, ucp_Pc }, + { 2798, PT_BOOL, ucp_Prepended_Concatenation_Mark }, + { 2802, PT_PC, ucp_Pd }, + { 2805, PT_PC, ucp_Pe }, + { 2808, PT_SCX, ucp_Old_Permic }, + { 2813, PT_PC, ucp_Pf }, + { 2816, PT_SCX, ucp_Phags_Pa }, + { 2821, PT_SCX, ucp_Phags_Pa }, + { 2829, PT_SC, ucp_Inscriptional_Pahlavi }, + { 2834, PT_SCX, ucp_Psalter_Pahlavi }, + { 2839, PT_SC, ucp_Phoenician }, + { 2844, PT_SC, ucp_Phoenician }, + { 2855, PT_PC, ucp_Pi }, + { 2858, PT_SC, ucp_Miao }, + { 2863, PT_PC, ucp_Po }, + { 2866, PT_BOOL, ucp_Prepended_Concatenation_Mark }, + { 2893, PT_SC, ucp_Inscriptional_Parthian }, + { 2898, PT_PC, ucp_Ps }, + { 2901, PT_SCX, ucp_Psalter_Pahlavi }, + { 2916, PT_SCX, ucp_Coptic }, + { 2921, PT_SC, ucp_Inherited }, + { 2926, PT_BOOL, ucp_Quotation_Mark }, + { 2932, PT_BOOL, ucp_Quotation_Mark }, + { 2946, PT_BOOL, ucp_Radical }, + { 2954, PT_BOOL, ucp_Regional_Indicator }, + { 2972, PT_SC, ucp_Rejang }, + { 2979, PT_BOOL, ucp_Regional_Indicator }, + { 2982, PT_SC, ucp_Rejang }, + { 2987, PT_SCX, ucp_Hanifi_Rohingya }, + { 2992, PT_SCX, ucp_Runic }, + { 2998, PT_SCX, ucp_Runic }, + { 3003, PT_GC, ucp_S }, + { 3005, PT_SCX, ucp_Samaritan }, + { 3015, PT_SCX, ucp_Samaritan }, + { 3020, PT_SC, ucp_Old_South_Arabian }, + { 3025, PT_SC, ucp_Saurashtra }, + { 3030, PT_SC, ucp_Saurashtra }, + { 3041, PT_PC, ucp_Sc }, + { 3044, PT_BOOL, ucp_Soft_Dotted }, + { 3047, PT_BOOL, ucp_Sentence_Terminal }, + { 3064, PT_SC, ucp_SignWriting }, + { 3069, PT_SCX, ucp_Sharada }, + { 3077, PT_SCX, ucp_Shavian }, + { 3085, PT_SCX, ucp_Shavian }, + { 3090, PT_SCX, ucp_Sharada }, + { 3095, PT_SC, ucp_Siddham }, + { 3100, PT_SC, ucp_Siddham }, + { 3108, PT_SC, ucp_Sidetic }, + { 3116, PT_SC, ucp_Sidetic }, + { 3121, PT_SC, ucp_SignWriting }, + { 3133, PT_SCX, ucp_Khudawadi }, + { 3138, PT_SCX, ucp_Sinhala }, + { 3143, PT_SCX, ucp_Sinhala }, + { 3151, PT_PC, ucp_Sk }, + { 3154, PT_PC, ucp_Sm }, + { 3157, PT_PC, ucp_So }, + { 3160, PT_BOOL, ucp_Soft_Dotted }, + { 3171, PT_SCX, ucp_Sogdian }, + { 3176, PT_SCX, ucp_Sogdian }, + { 3184, PT_SC, ucp_Old_Sogdian }, + { 3189, PT_SC, ucp_Sora_Sompeng }, + { 3194, PT_SC, ucp_Sora_Sompeng }, + { 3206, PT_SC, ucp_Soyombo }, + { 3211, PT_SC, ucp_Soyombo }, + { 3219, PT_BOOL, ucp_White_Space }, + { 3225, PT_BOOL, ucp_Sentence_Terminal }, + { 3231, PT_SC, ucp_Sundanese }, + { 3236, PT_SC, ucp_Sundanese }, + { 3246, PT_SCX, ucp_Sunuwar }, + { 3251, PT_SCX, ucp_Sunuwar }, + { 3259, PT_SCX, ucp_Syloti_Nagri }, + { 3264, PT_SCX, ucp_Syloti_Nagri }, + { 3276, PT_SCX, ucp_Syriac }, + { 3281, PT_SCX, ucp_Syriac }, + { 3288, PT_SCX, ucp_Tagalog }, + { 3296, PT_SCX, ucp_Tagbanwa }, + { 3301, PT_SCX, ucp_Tagbanwa }, + { 3310, PT_SCX, ucp_Tai_Le }, + { 3316, PT_SC, ucp_Tai_Tham }, + { 3324, PT_SC, ucp_Tai_Viet }, + { 3332, PT_SC, ucp_Tai_Yo }, + { 3338, PT_SCX, ucp_Takri }, + { 3343, PT_SCX, ucp_Takri }, + { 3349, PT_SCX, ucp_Tai_Le }, + { 3354, PT_SC, ucp_New_Tai_Lue }, + { 3359, PT_SCX, ucp_Tamil }, + { 3365, PT_SCX, ucp_Tamil }, + { 3370, PT_SCX, ucp_Tangut }, + { 3375, PT_SC, ucp_Tangsa }, + { 3382, PT_SCX, ucp_Tangut }, + { 3389, PT_SC, ucp_Tai_Viet }, + { 3394, PT_SC, ucp_Tai_Yo }, + { 3399, PT_SCX, ucp_Telugu }, + { 3404, PT_SCX, ucp_Telugu }, + { 3411, PT_BOOL, ucp_Terminal_Punctuation }, + { 3416, PT_BOOL, ucp_Terminal_Punctuation }, + { 3436, PT_SCX, ucp_Tifinagh }, + { 3441, PT_SCX, ucp_Tagalog }, + { 3446, PT_SCX, ucp_Thaana }, + { 3451, PT_SCX, ucp_Thaana }, + { 3458, PT_SCX, ucp_Thai }, + { 3463, PT_SCX, ucp_Tibetan }, + { 3471, PT_SCX, ucp_Tibetan }, + { 3476, PT_SCX, ucp_Tifinagh }, + { 3485, PT_SCX, ucp_Tirhuta }, + { 3490, PT_SCX, ucp_Tirhuta }, + { 3498, PT_SC, ucp_Tangsa }, + { 3503, PT_SCX, ucp_Todhri }, + { 3510, PT_SCX, ucp_Todhri }, + { 3515, PT_SC, ucp_Tolong_Siki }, + { 3526, PT_SC, ucp_Tolong_Siki }, + { 3531, PT_SCX, ucp_Toto }, + { 3536, PT_SCX, ucp_Tulu_Tigalari }, + { 3549, PT_SCX, ucp_Tulu_Tigalari }, + { 3554, PT_SC, ucp_Ugaritic }, + { 3559, PT_SC, ucp_Ugaritic }, + { 3568, PT_BOOL, ucp_Unified_Ideograph }, + { 3574, PT_BOOL, ucp_Unified_Ideograph }, + { 3591, PT_SC, ucp_Unknown }, + { 3599, PT_BOOL, ucp_Uppercase }, + { 3605, PT_BOOL, ucp_Uppercase }, + { 3615, PT_SC, ucp_Vai }, + { 3619, PT_SC, ucp_Vai }, + { 3624, PT_BOOL, ucp_Variation_Selector }, + { 3642, PT_SC, ucp_Vithkuqi }, + { 3647, PT_SC, ucp_Vithkuqi }, + { 3656, PT_BOOL, ucp_Variation_Selector }, + { 3659, PT_SC, ucp_Wancho }, + { 3666, PT_SC, ucp_Warang_Citi }, + { 3671, PT_SC, ucp_Warang_Citi }, + { 3682, PT_SC, ucp_Wancho }, + { 3687, PT_BOOL, ucp_White_Space }, + { 3698, PT_BOOL, ucp_White_Space }, + { 3705, PT_ALNUM, 0 }, + { 3709, PT_BOOL, ucp_XID_Continue }, + { 3714, PT_BOOL, ucp_XID_Continue }, + { 3726, PT_BOOL, ucp_XID_Start }, + { 3731, PT_BOOL, ucp_XID_Start }, + { 3740, PT_SC, ucp_Old_Persian }, + { 3745, PT_PXSPACE, 0 }, + { 3749, PT_SPACE, 0 }, + { 3753, PT_SC, ucp_Cuneiform }, + { 3758, PT_UCNC, 0 }, + { 3762, PT_WORD, 0 }, + { 3766, PT_SCX, ucp_Yezidi }, + { 3771, PT_SCX, ucp_Yezidi }, + { 3778, PT_SCX, ucp_Yi }, + { 3781, PT_SCX, ucp_Yi }, + { 3786, PT_GC, ucp_Z }, + { 3788, PT_SC, ucp_Zanabazar_Square }, + { 3804, PT_SC, ucp_Zanabazar_Square }, + { 3809, PT_SC, ucp_Inherited }, + { 3814, PT_PC, ucp_Zl }, + { 3817, PT_PC, ucp_Zp }, + { 3820, PT_PC, ucp_Zs }, + { 3823, PT_SC, ucp_Common }, + { 3828, PT_SC, ucp_Unknown } }; const size_t PRIV(utt_size) = sizeof(PRIV(utt)) / sizeof(ucp_type_table); diff --git a/scintilla/pcre2/version.txt b/scintilla/pcre2/version.txt index 23a9601532..a32904693d 100644 --- a/scintilla/pcre2/version.txt +++ b/scintilla/pcre2/version.txt @@ -1 +1 @@ -10.47 +10.49