diff options
author | Dimitry Andric <dim@FreeBSD.org> | 2017-04-16 16:02:53 +0000 |
---|---|---|
committer | Dimitry Andric <dim@FreeBSD.org> | 2017-04-16 16:02:53 +0000 |
commit | ab0bf875a5f328a6710f4e48258979ae1bc8da1c (patch) | |
tree | 66903cf9f73151825893dcc216b04c0930317a10 | |
parent | abacad30a54c59ad437ccf54ec5236a8dd7f3ba9 (diff) | |
download | src-test2-ab0bf875a5f328a6710f4e48258979ae1bc8da1c.tar.gz src-test2-ab0bf875a5f328a6710f4e48258979ae1bc8da1c.zip |
Notes
675 files changed, 32008 insertions, 2607 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index e8326f04b810..32358a1262c9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,16 +14,6 @@ if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR COMPILER_RT_STANDALONE endif() cmake_minimum_required(VERSION 3.4.3) -# FIXME: -# The OLD behavior (pre 3.2) for this policy is to not set the value of the -# CMAKE_EXE_LINKER_FLAGS variable in the generated test project. The NEW behavior -# for this policy is to set the value of the CMAKE_EXE_LINKER_FLAGS variable -# in the test project to the same as it is in the calling project. The new -# behavior cause the compiler_rt test to fail during try_compile: see -# projects/compiler-rt/cmake/Modules/CompilerRTUtils.cmake:121 such that -# CAN_TARGET_${arch} is not set properly. This results in COMPILER_RT_SUPPORTED_ARCH -# not being updated properly leading to poblems. -cmake_policy(SET CMP0056 OLD) # Add path for custom compiler-rt modules. list(INSERT CMAKE_MODULE_PATH 0 @@ -134,7 +124,7 @@ if(NOT WIN32) endif() append_list_if(COMPILER_RT_HAS_FNO_BUILTIN_FLAG -fno-builtin SANITIZER_COMMON_CFLAGS) append_list_if(COMPILER_RT_HAS_FNO_EXCEPTIONS_FLAG -fno-exceptions SANITIZER_COMMON_CFLAGS) -if(NOT COMPILER_RT_DEBUG) +if(NOT COMPILER_RT_DEBUG AND NOT APPLE) append_list_if(COMPILER_RT_HAS_FOMIT_FRAME_POINTER_FLAG -fomit-frame-pointer SANITIZER_COMMON_CFLAGS) endif() append_list_if(COMPILER_RT_HAS_FUNWIND_TABLES_FLAG -funwind-tables SANITIZER_COMMON_CFLAGS) @@ -142,9 +132,16 @@ append_list_if(COMPILER_RT_HAS_FNO_STACK_PROTECTOR_FLAG -fno-stack-protector SAN append_list_if(COMPILER_RT_HAS_FNO_SANITIZE_SAFE_STACK_FLAG -fno-sanitize=safe-stack SANITIZER_COMMON_CFLAGS) append_list_if(COMPILER_RT_HAS_FVISIBILITY_HIDDEN_FLAG -fvisibility=hidden SANITIZER_COMMON_CFLAGS) append_list_if(COMPILER_RT_HAS_FVISIBILITY_INLINES_HIDDEN_FLAG -fvisibility-inlines-hidden SANITIZER_COMMON_CFLAGS) -append_list_if(COMPILER_RT_HAS_FNO_FUNCTION_SECTIONS_FLAG -fno-function-sections SANITIZER_COMMON_CFLAGS) append_list_if(COMPILER_RT_HAS_FNO_LTO_FLAG -fno-lto SANITIZER_COMMON_CFLAGS) +# The following is a workaround for powerpc64le. This is the only architecture +# that requires -fno-function-sections to work properly. If lacking, the ASan +# Linux test function-sections-are-bad.cc fails with the following error: +# 'undefined symbol: __sanitizer_unaligned_load32'. +if(DEFINED TARGET_powerpc64le_CFLAGS) + append_list_if(COMPILER_RT_HAS_FNO_FUNCTION_SECTIONS_FLAG -fno-function-sections TARGET_powerpc64le_CFLAGS) +endif() + if(MSVC) # Replace the /M[DT][d] flags with /MT, and strip any definitions of _DEBUG, # which cause definition mismatches at link time. @@ -246,12 +243,12 @@ else() endif() set(COMPILER_RT_LLD_PATH ${LLVM_MAIN_SRC_DIR}/tools/lld) -if(EXISTS ${COMPILER_RT_LLD_PATH}/) - set(COMPILER_RT_HAS_LLD_SOURCES TRUE) +if(EXISTS ${COMPILER_RT_LLD_PATH}/ AND LLVM_TOOL_LLD_BUILD) + set(COMPILER_RT_HAS_LLD TRUE) else() - set(COMPILER_RT_HAS_LLD_SOURCES FALSE) + set(COMPILER_RT_HAS_LLD FALSE) endif() -pythonize_bool(COMPILER_RT_HAS_LLD_SOURCES) +pythonize_bool(COMPILER_RT_HAS_LLD) add_subdirectory(lib) diff --git a/cmake/Modules/AddCompilerRT.cmake b/cmake/Modules/AddCompilerRT.cmake index 3c1e1c10d2af..b64eb4246346 100644 --- a/cmake/Modules/AddCompilerRT.cmake +++ b/cmake/Modules/AddCompilerRT.cmake @@ -110,6 +110,13 @@ function(add_compiler_rt_runtime name type) "OS;ARCHS;SOURCES;CFLAGS;LINK_FLAGS;DEFS;LINK_LIBS;OBJECT_LIBS" ${ARGN}) set(libnames) + # Until we support this some other way, build compiler-rt runtime without LTO + # to allow non-LTO projects to link with it. + if(COMPILER_RT_HAS_FNO_LTO_FLAG) + set(NO_LTO_FLAGS "-fno-lto") + else() + set(NO_LTO_FLAGS "") + endif() if(APPLE) foreach(os ${LIB_OS}) if(type STREQUAL "STATIC") @@ -121,7 +128,7 @@ function(add_compiler_rt_runtime name type) list_intersect(LIB_ARCHS_${libname} DARWIN_${os}_ARCHS LIB_ARCHS) if(LIB_ARCHS_${libname}) list(APPEND libnames ${libname}) - set(extra_cflags_${libname} ${DARWIN_${os}_CFLAGS} ${LIB_CFLAGS}) + set(extra_cflags_${libname} ${DARWIN_${os}_CFLAGS} ${NO_LTO_FLAGS} ${LIB_CFLAGS}) set(output_name_${libname} ${libname}${COMPILER_RT_OS_SUFFIX}) set(sources_${libname} ${LIB_SOURCES}) format_object_libs(sources_${libname} ${os} ${LIB_OBJECT_LIBS}) @@ -149,7 +156,7 @@ function(add_compiler_rt_runtime name type) set(sources_${libname} ${LIB_SOURCES}) format_object_libs(sources_${libname} ${arch} ${LIB_OBJECT_LIBS}) set(libnames ${libnames} ${libname}) - set(extra_cflags_${libname} ${TARGET_${arch}_CFLAGS} ${LIB_CFLAGS}) + set(extra_cflags_${libname} ${TARGET_${arch}_CFLAGS} ${NO_LTO_FLAGS} ${LIB_CFLAGS}) endforeach() endif() @@ -380,6 +387,7 @@ macro(add_custom_libcxx name prefix) -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX:PATH=<INSTALL_DIR> -DLLVM_PATH=${LLVM_MAIN_SRC_DIR} + -DLIBCXX_STANDALONE_BUILD=On LOG_BUILD 1 LOG_CONFIGURE 1 LOG_INSTALL 1 diff --git a/cmake/Modules/CompilerRTDarwinUtils.cmake b/cmake/Modules/CompilerRTDarwinUtils.cmake index 3c89381f92f9..baea4a067fa8 100644 --- a/cmake/Modules/CompilerRTDarwinUtils.cmake +++ b/cmake/Modules/CompilerRTDarwinUtils.cmake @@ -85,10 +85,12 @@ function(darwin_test_archs os valid_archs) if(TEST_COMPILE_ONLY) try_compile_only(CAN_TARGET_${os}_${arch} -v -arch ${arch} ${DARWIN_${os}_CFLAGS}) else() + set(SAVED_CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS}) + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${arch_linker_flags}") try_compile(CAN_TARGET_${os}_${arch} ${CMAKE_BINARY_DIR} ${SIMPLE_C} COMPILE_DEFINITIONS "-v -arch ${arch}" ${DARWIN_${os}_CFLAGS} - CMAKE_FLAGS "-DCMAKE_EXE_LINKER_FLAGS=${arch_linker_flags}" OUTPUT_VARIABLE TEST_OUTPUT) + set(CMAKE_EXE_LINKER_FLAGS ${SAVED_CMAKE_EXE_LINKER_FLAGS}) endif() if(${CAN_TARGET_${os}_${arch}}) list(APPEND working_archs ${arch}) diff --git a/cmake/Modules/CompilerRTUtils.cmake b/cmake/Modules/CompilerRTUtils.cmake index c337523cd944..3b3a0c1532fc 100644 --- a/cmake/Modules/CompilerRTUtils.cmake +++ b/cmake/Modules/CompilerRTUtils.cmake @@ -138,15 +138,16 @@ macro(test_target_arch arch def) elseif(TEST_COMPILE_ONLY) try_compile_only(CAN_TARGET_${arch} ${TARGET_${arch}_CFLAGS}) else() - set(argstring "${CMAKE_EXE_LINKER_FLAGS} ${argstring}") set(FLAG_NO_EXCEPTIONS "") if(COMPILER_RT_HAS_FNO_EXCEPTIONS_FLAG) set(FLAG_NO_EXCEPTIONS " -fno-exceptions ") endif() + set(SAVED_CMAKE_EXE_LINKER_FLAGS ${CMAKE_EXE_LINKER_FLAGS}) + set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${argstring}") try_compile(CAN_TARGET_${arch} ${CMAKE_BINARY_DIR} ${SIMPLE_SOURCE} COMPILE_DEFINITIONS "${TARGET_${arch}_CFLAGS} ${FLAG_NO_EXCEPTIONS}" - OUTPUT_VARIABLE TARGET_${arch}_OUTPUT - CMAKE_FLAGS "-DCMAKE_EXE_LINKER_FLAGS:STRING=${argstring}") + OUTPUT_VARIABLE TARGET_${arch}_OUTPUT) + set(CMAKE_EXE_LINKER_FLAGS ${SAVED_CMAKE_EXE_LINKER_FLAGS}) endif() endif() if(${CAN_TARGET_${arch}}) @@ -225,7 +226,8 @@ macro(load_llvm_config) RESULT_VARIABLE HAD_ERROR OUTPUT_VARIABLE CONFIG_OUTPUT) if(NOT HAD_ERROR) - string(STRIP "${CONFIG_OUTPUT}" LLVM_CMAKE_PATH) + string(STRIP "${CONFIG_OUTPUT}" LLVM_CMAKE_PATH_FROM_LLVM_CONFIG) + file(TO_CMAKE_PATH ${LLVM_CMAKE_PATH_FROM_LLVM_CONFIG} LLVM_CMAKE_PATH) else() file(TO_CMAKE_PATH ${LLVM_BINARY_DIR} LLVM_BINARY_DIR_CMAKE_STYLE) set(LLVM_CMAKE_PATH "${LLVM_BINARY_DIR_CMAKE_STYLE}/lib${LLVM_LIBDIR_SUFFIX}/cmake/llvm") diff --git a/cmake/base-config-ix.cmake b/cmake/base-config-ix.cmake index 71d14992ee77..6f9f15139ad7 100644 --- a/cmake/base-config-ix.cmake +++ b/cmake/base-config-ix.cmake @@ -172,6 +172,7 @@ macro(test_targets) else() test_target_arch(arm "" "-march=armv7-a" "-mfloat-abi=soft") test_target_arch(armhf "" "-march=armv7-a" "-mfloat-abi=hard") + test_target_arch(armv6m "" "-march=armv6m" "-mfloat-abi=soft") endif() elseif("${COMPILER_RT_DEFAULT_TARGET_ARCH}" MATCHES "aarch32") test_target_arch(aarch32 "" "-march=armv8-a") diff --git a/cmake/builtin-config-ix.cmake b/cmake/builtin-config-ix.cmake index 8cb4ca1a2738..dc2ec16943ac 100644 --- a/cmake/builtin-config-ix.cmake +++ b/cmake/builtin-config-ix.cmake @@ -24,7 +24,7 @@ int foo(int x, int y) { set(ARM64 aarch64) -set(ARM32 arm armhf) +set(ARM32 arm armhf armv6m) set(X86 i386 i686) set(X86_64 x86_64) set(MIPS32 mips mipsel) diff --git a/cmake/config-ix.cmake b/cmake/config-ix.cmake index e0e43552ed21..60cb39a93b29 100644 --- a/cmake/config-ix.cmake +++ b/cmake/config-ix.cmake @@ -31,6 +31,7 @@ check_cxx_compiler_flag(-fno-lto COMPILER_RT_HAS_FNO_LTO_FLAG) check_cxx_compiler_flag("-Werror -msse3" COMPILER_RT_HAS_MSSE3_FLAG) check_cxx_compiler_flag("-Werror -msse4.2" COMPILER_RT_HAS_MSSE4_2_FLAG) check_cxx_compiler_flag(--sysroot=. COMPILER_RT_HAS_SYSROOT_FLAG) +check_cxx_compiler_flag("-Werror -mcrc" COMPILER_RT_HAS_MCRC_FLAG) if(NOT WIN32 AND NOT CYGWIN) # MinGW warns if -fvisibility-inlines-hidden is used. @@ -163,7 +164,12 @@ set(ALL_SANITIZER_COMMON_SUPPORTED_ARCH ${X86} ${X86_64} ${PPC64} set(ALL_ASAN_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64} ${MIPS32} ${MIPS64} ${PPC64} ${S390X}) set(ALL_DFSAN_SUPPORTED_ARCH ${X86_64} ${MIPS64} ${ARM64}) -set(ALL_LSAN_SUPPORTED_ARCH ${X86_64} ${MIPS64} ${ARM64}) + +if(APPLE) + set(ALL_LSAN_SUPPORTED_ARCH ${X86} ${X86_64} ${MIPS64} ${ARM64}) +else() + set(ALL_LSAN_SUPPORTED_ARCH ${X86} ${X86_64} ${MIPS64} ${ARM64} ${ARM32}) +endif() set(ALL_MSAN_SUPPORTED_ARCH ${X86_64} ${MIPS64} ${ARM64} ${PPC64}) set(ALL_PROFILE_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64} ${PPC64} ${MIPS32} ${MIPS64} ${S390X}) @@ -173,8 +179,8 @@ set(ALL_UBSAN_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64} set(ALL_SAFESTACK_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM64} ${MIPS32} ${MIPS64}) set(ALL_CFI_SUPPORTED_ARCH ${X86} ${X86_64} ${MIPS64}) set(ALL_ESAN_SUPPORTED_ARCH ${X86_64} ${MIPS64}) -set(ALL_SCUDO_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32}) -set(ALL_XRAY_SUPPORTED_ARCH ${X86_64} ${ARM32} ${ARM64}) +set(ALL_SCUDO_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64}) +set(ALL_XRAY_SUPPORTED_ARCH ${X86_64} ${ARM32} ${ARM64} ${MIPS32} ${MIPS64} powerpc64le) if(APPLE) include(CompilerRTDarwinUtils) @@ -199,7 +205,7 @@ if(APPLE) list(APPEND DARWIN_EMBEDDED_PLATFORMS ios) set(DARWIN_ios_MIN_VER_FLAG -miphoneos-version-min) set(DARWIN_ios_SANITIZER_MIN_VER_FLAG - ${DARWIN_ios_MIN_VER_FLAG}=7.0) + ${DARWIN_ios_MIN_VER_FLAG}=8.0) endif() if(COMPILER_RT_ENABLE_WATCHOS) list(APPEND DARWIN_EMBEDDED_PLATFORMS watchos) @@ -484,21 +490,21 @@ else() endif() if (PROFILE_SUPPORTED_ARCH AND NOT LLVM_USE_SANITIZER AND - OS_NAME MATCHES "Darwin|Linux|FreeBSD|Windows") + OS_NAME MATCHES "Darwin|Linux|FreeBSD|Windows|Android") set(COMPILER_RT_HAS_PROFILE TRUE) else() set(COMPILER_RT_HAS_PROFILE FALSE) endif() if (COMPILER_RT_HAS_SANITIZER_COMMON AND TSAN_SUPPORTED_ARCH AND - OS_NAME MATCHES "Darwin|Linux|FreeBSD") + OS_NAME MATCHES "Darwin|Linux|FreeBSD|Android") set(COMPILER_RT_HAS_TSAN TRUE) else() set(COMPILER_RT_HAS_TSAN FALSE) endif() if (COMPILER_RT_HAS_SANITIZER_COMMON AND UBSAN_SUPPORTED_ARCH AND - OS_NAME MATCHES "Darwin|Linux|FreeBSD|Windows") + OS_NAME MATCHES "Darwin|Linux|FreeBSD|Windows|Android") set(COMPILER_RT_HAS_UBSAN TRUE) else() set(COMPILER_RT_HAS_UBSAN FALSE) diff --git a/include/CMakeLists.txt b/include/CMakeLists.txt index 1f8b481e7754..ec3bf40b95e6 100644 --- a/include/CMakeLists.txt +++ b/include/CMakeLists.txt @@ -1,17 +1,23 @@ -set(SANITIZER_HEADERS - sanitizer/allocator_interface.h - sanitizer/asan_interface.h - sanitizer/common_interface_defs.h - sanitizer/coverage_interface.h - sanitizer/dfsan_interface.h - sanitizer/esan_interface.h - sanitizer/linux_syscall_hooks.h - sanitizer/lsan_interface.h - sanitizer/msan_interface.h - sanitizer/tsan_interface_atomic.h) +if (COMPILER_RT_BUILD_SANITIZERS) + set(SANITIZER_HEADERS + sanitizer/allocator_interface.h + sanitizer/asan_interface.h + sanitizer/common_interface_defs.h + sanitizer/coverage_interface.h + sanitizer/dfsan_interface.h + sanitizer/esan_interface.h + sanitizer/linux_syscall_hooks.h + sanitizer/lsan_interface.h + sanitizer/msan_interface.h + sanitizer/tsan_interface.h + sanitizer/tsan_interface_atomic.h) +endif(COMPILER_RT_BUILD_SANITIZERS) -set(XRAY_HEADERS - xray/xray_interface.h) +if (COMPILER_RT_BUILD_XRAY) + set(XRAY_HEADERS + xray/xray_interface.h + xray/xray_log_interface.h) +endif(COMPILER_RT_BUILD_XRAY) set(COMPILER_RT_HEADERS ${SANITIZER_HEADERS} diff --git a/include/sanitizer/common_interface_defs.h b/include/sanitizer/common_interface_defs.h index f9f93022353a..4a1de968b0ee 100644 --- a/include/sanitizer/common_interface_defs.h +++ b/include/sanitizer/common_interface_defs.h @@ -158,8 +158,10 @@ extern "C" { // Prints stack traces for all live heap allocations ordered by total // allocation size until `top_percent` of total live heap is shown. // `top_percent` should be between 1 and 100. + // At most `max_number_of_contexts` contexts (stack traces) is printed. // Experimental feature currently available only with asan on Linux/x86_64. - void __sanitizer_print_memory_profile(size_t top_percent); + void __sanitizer_print_memory_profile(size_t top_percent, + size_t max_number_of_contexts); // Fiber annotation interface. // Before switching to a different stack, one must call diff --git a/include/sanitizer/tsan_interface.h b/include/sanitizer/tsan_interface.h new file mode 100644 index 000000000000..34b74d537e0c --- /dev/null +++ b/include/sanitizer/tsan_interface.h @@ -0,0 +1,121 @@ +//===-- tsan_interface.h ----------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file is a part of ThreadSanitizer (TSan), a race detector. +// +// Public interface header for TSan. +//===----------------------------------------------------------------------===// +#ifndef SANITIZER_TSAN_INTERFACE_H +#define SANITIZER_TSAN_INTERFACE_H + +#include <sanitizer/common_interface_defs.h> + +#ifdef __cplusplus +extern "C" { +#endif + +// __tsan_release establishes a happens-before relation with a preceding +// __tsan_acquire on the same address. +void __tsan_acquire(void *addr); +void __tsan_release(void *addr); + +// Annotations for custom mutexes. +// The annotations allow to get better reports (with sets of locked mutexes), +// detect more types of bugs (e.g. mutex misuses, races between lock/unlock and +// destruction and potential deadlocks) and improve precision and performance +// (by ignoring individual atomic operations in mutex code). However, the +// downside is that annotated mutex code itself is not checked for correctness. + +// Mutex creation flags are passed to __tsan_mutex_create annotation. +// If mutex has no constructor and __tsan_mutex_create is not called, +// the flags may be passed to __tsan_mutex_pre_lock/__tsan_mutex_post_lock +// annotations. + +// Mutex has static storage duration and no-op constructor and destructor. +// This effectively makes tsan ignore destroy annotation. +const unsigned __tsan_mutex_linker_init = 1 << 0; +// Mutex is write reentrant. +const unsigned __tsan_mutex_write_reentrant = 1 << 1; +// Mutex is read reentrant. +const unsigned __tsan_mutex_read_reentrant = 1 << 2; + +// Mutex operation flags: + +// Denotes read lock operation. +const unsigned __tsan_mutex_read_lock = 1 << 3; +// Denotes try lock operation. +const unsigned __tsan_mutex_try_lock = 1 << 4; +// Denotes that a try lock operation has failed to acquire the mutex. +const unsigned __tsan_mutex_try_lock_failed = 1 << 5; +// Denotes that the lock operation acquires multiple recursion levels. +// Number of levels is passed in recursion parameter. +// This is useful for annotation of e.g. Java builtin monitors, +// for which wait operation releases all recursive acquisitions of the mutex. +const unsigned __tsan_mutex_recursive_lock = 1 << 6; +// Denotes that the unlock operation releases all recursion levels. +// Number of released levels is returned and later must be passed to +// the corresponding __tsan_mutex_post_lock annotation. +const unsigned __tsan_mutex_recursive_unlock = 1 << 7; + +// Annotate creation of a mutex. +// Supported flags: mutex creation flags. +void __tsan_mutex_create(void *addr, unsigned flags); + +// Annotate destruction of a mutex. +// Supported flags: none. +void __tsan_mutex_destroy(void *addr, unsigned flags); + +// Annotate start of lock operation. +// Supported flags: +// - __tsan_mutex_read_lock +// - __tsan_mutex_try_lock +// - all mutex creation flags +void __tsan_mutex_pre_lock(void *addr, unsigned flags); + +// Annotate end of lock operation. +// Supported flags: +// - __tsan_mutex_read_lock (must match __tsan_mutex_pre_lock) +// - __tsan_mutex_try_lock (must match __tsan_mutex_pre_lock) +// - __tsan_mutex_try_lock_failed +// - __tsan_mutex_recursive_lock +// - all mutex creation flags +void __tsan_mutex_post_lock(void *addr, unsigned flags, int recursion); + +// Annotate start of unlock operation. +// Supported flags: +// - __tsan_mutex_read_lock +// - __tsan_mutex_recursive_unlock +int __tsan_mutex_pre_unlock(void *addr, unsigned flags); + +// Annotate end of unlock operation. +// Supported flags: +// - __tsan_mutex_read_lock (must match __tsan_mutex_pre_unlock) +void __tsan_mutex_post_unlock(void *addr, unsigned flags); + +// Annotate start/end of notify/signal/broadcast operation. +// Supported flags: none. +void __tsan_mutex_pre_signal(void *addr, unsigned flags); +void __tsan_mutex_post_signal(void *addr, unsigned flags); + +// Annotate start/end of a region of code where lock/unlock/signal operation +// diverts to do something else unrelated to the mutex. This can be used to +// annotate, for example, calls into cooperative scheduler or contention +// profiling code. +// These annotations must be called only from within +// __tsan_mutex_pre/post_lock, __tsan_mutex_pre/post_unlock, +// __tsan_mutex_pre/post_signal regions. +// Supported flags: none. +void __tsan_mutex_pre_divert(void *addr, unsigned flags); +void __tsan_mutex_post_divert(void *addr, unsigned flags); + +#ifdef __cplusplus +} // extern "C" +#endif + +#endif // SANITIZER_TSAN_INTERFACE_H diff --git a/include/xray/xray_interface.h b/include/xray/xray_interface.h index 9e712b1fa2a8..52a7e1d9e944 100644 --- a/include/xray/xray_interface.h +++ b/include/xray/xray_interface.h @@ -18,7 +18,13 @@ extern "C" { -enum XRayEntryType { ENTRY = 0, EXIT = 1, TAIL = 2 }; +// Synchronize this with AsmPrinter::SledKind in LLVM. +enum XRayEntryType { + ENTRY = 0, + EXIT = 1, + TAIL = 2, + LOG_ARGS_ENTRY = 3, +}; // Provide a function to invoke for when instrumentation points are hit. This is // a user-visible control surface that overrides the default implementation. The @@ -60,6 +66,17 @@ extern XRayPatchingStatus __xray_patch(); // Reverses the effect of __xray_patch(). See XRayPatchingStatus for possible // result values. extern XRayPatchingStatus __xray_unpatch(); + +// Use XRay to log the first argument of each (instrumented) function call. +// When this function exits, all threads will have observed the effect and +// start logging their subsequent affected function calls (if patched). +// +// Returns 1 on success, 0 on error. +extern int __xray_set_handler_arg1(void (*)(int32_t, XRayEntryType, uint64_t)); + +// Disables the XRay handler used to log first arguments of function calls. +// Returns 1 on success, 0 on error. +extern int __xray_remove_handler_arg1(); } #endif diff --git a/include/xray/xray_log_interface.h b/include/xray/xray_log_interface.h new file mode 100644 index 000000000000..a8709c3a7c8a --- /dev/null +++ b/include/xray/xray_log_interface.h @@ -0,0 +1,60 @@ +//===-- xray_log_interface.h ----------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file is a part of XRay, a function call tracing system. +// +// APIs for installing a new logging implementation. +//===----------------------------------------------------------------------===// +#ifndef XRAY_XRAY_LOG_INTERFACE_H +#define XRAY_XRAY_LOG_INTERFACE_H + +#include "xray/xray_interface.h" +#include <stddef.h> + +extern "C" { + +enum XRayLogInitStatus { + XRAY_LOG_UNINITIALIZED = 0, + XRAY_LOG_INITIALIZING = 1, + XRAY_LOG_INITIALIZED = 2, + XRAY_LOG_FINALIZING = 3, + XRAY_LOG_FINALIZED = 4, +}; + +enum XRayLogFlushStatus { + XRAY_LOG_NOT_FLUSHING = 0, + XRAY_LOG_FLUSHING = 1, + XRAY_LOG_FLUSHED = 2, +}; + +struct XRayLogImpl { + XRayLogInitStatus (*log_init)(size_t, size_t, void *, size_t); + XRayLogInitStatus (*log_finalize)(); + void (*handle_arg0)(int32_t, XRayEntryType); + XRayLogFlushStatus (*flush_log)(); +}; + +void __xray_set_log_impl(XRayLogImpl Impl); +XRayLogInitStatus __xray_log_init(size_t BufferSize, size_t MaxBuffers, + void *Args, size_t ArgsSize); +XRayLogInitStatus __xray_log_finalize(); +XRayLogFlushStatus __xray_log_flushLog(); + +} // extern "C" + +namespace __xray { +// Options used by the LLVM XRay FDR implementation. +struct FDRLoggingOptions { + bool ReportErrors = false; + int Fd = -1; +}; + +} // namespace __xray + +#endif // XRAY_XRAY_LOG_INTERFACE_H diff --git a/include/xray/xray_records.h b/include/xray/xray_records.h index 34c236b39bd2..feb8d228b2fd 100644 --- a/include/xray/xray_records.h +++ b/include/xray/xray_records.h @@ -21,8 +21,17 @@ namespace __xray { enum FileTypes { NAIVE_LOG = 0, + FDR_LOG = 1, }; +// FDR mode use of the union field in the XRayFileHeader. +struct alignas(16) FdrAdditionalHeaderData { + uint64_t ThreadBufferSize; +}; + +static_assert(sizeof(FdrAdditionalHeaderData) == 16, + "FdrAdditionalHeaderData != 16 bytes"); + // This data structure is used to describe the contents of the file. We use this // for versioning the supported XRay file formats. struct alignas(32) XRayFileHeader { @@ -40,6 +49,16 @@ struct alignas(32) XRayFileHeader { // The frequency by which TSC increases per-second. alignas(8) uint64_t CycleFrequency = 0; + + union { + char FreeForm[16]; + // The current civiltime timestamp, as retrived from 'clock_gettime'. This + // allows readers of the file to determine when the file was created or + // written down. + struct timespec TS; + + struct FdrAdditionalHeaderData FdrData; + }; } __attribute__((packed)); static_assert(sizeof(XRayFileHeader) == 32, "XRayFileHeader != 32 bytes"); diff --git a/lib/asan/CMakeLists.txt b/lib/asan/CMakeLists.txt index 5ac5708a63d7..a2d4630dfc33 100644 --- a/lib/asan/CMakeLists.txt +++ b/lib/asan/CMakeLists.txt @@ -36,6 +36,7 @@ set(ASAN_PREINIT_SOURCES include_directories(..) set(ASAN_CFLAGS ${SANITIZER_COMMON_CFLAGS}) + append_rtti_flag(OFF ASAN_CFLAGS) set(ASAN_DYNAMIC_LINK_FLAGS) @@ -107,6 +108,7 @@ add_compiler_rt_component(asan) if(APPLE) add_weak_symbols("asan" WEAK_SYMBOL_LINK_FLAGS) + add_weak_symbols("lsan" WEAK_SYMBOL_LINK_FLAGS) add_weak_symbols("ubsan" WEAK_SYMBOL_LINK_FLAGS) add_weak_symbols("sanitizer_common" WEAK_SYMBOL_LINK_FLAGS) @@ -176,6 +178,21 @@ else() set(VERSION_SCRIPT_FLAG) endif() + set(ASAN_DYNAMIC_WEAK_INTERCEPTION) + if (MSVC) + add_compiler_rt_object_libraries(AsanWeakInterception + ${SANITIZER_COMMON_SUPPORTED_OS} + ARCHS ${arch} + SOURCES asan_win_weak_interception.cc + CFLAGS ${ASAN_CFLAGS} -DSANITIZER_DYNAMIC + DEFS ${ASAN_COMMON_DEFINITIONS}) + set(ASAN_DYNAMIC_WEAK_INTERCEPTION + AsanWeakInterception + UbsanWeakInterception + SancovWeakInterception + SanitizerCommonWeakInterception) + endif() + add_compiler_rt_runtime(clang_rt.asan SHARED ARCHS ${arch} @@ -187,6 +204,7 @@ else() # add_dependencies(clang_rt.asan-dynamic-${arch} clang_rt.asan-dynamic-${arch}-version-list) RTAsan_dynamic_version_script_dummy RTUbsan_cxx + ${ASAN_DYNAMIC_WEAK_INTERCEPTION} CFLAGS ${ASAN_DYNAMIC_CFLAGS} LINK_FLAGS ${ASAN_DYNAMIC_LINK_FLAGS} ${VERSION_SCRIPT_FLAG} @@ -205,28 +223,46 @@ else() endif() if (WIN32) + add_compiler_rt_object_libraries(AsanDllThunk + ${SANITIZER_COMMON_SUPPORTED_OS} + ARCHS ${arch} + SOURCES asan_globals_win.cc + asan_win_dll_thunk.cc + CFLAGS ${ASAN_CFLAGS} -DSANITIZER_DLL_THUNK + DEFS ${ASAN_COMMON_DEFINITIONS}) + add_compiler_rt_runtime(clang_rt.asan_dll_thunk STATIC ARCHS ${arch} - SOURCES asan_win_dll_thunk.cc - asan_globals_win.cc - $<TARGET_OBJECTS:RTInterception.${arch}> - CFLAGS ${ASAN_CFLAGS} -DASAN_DLL_THUNK - DEFS ${ASAN_COMMON_DEFINITIONS} + OBJECT_LIBS AsanDllThunk + UbsanDllThunk + SancovDllThunk + SanitizerCommonDllThunk + SOURCES $<TARGET_OBJECTS:RTInterception.${arch}> PARENT_TARGET asan) - set(DYNAMIC_RUNTIME_THUNK_CFLAGS "-DASAN_DYNAMIC_RUNTIME_THUNK") + set(DYNAMIC_RUNTIME_THUNK_CFLAGS "-DSANITIZER_DYNAMIC_RUNTIME_THUNK") if(MSVC) list(APPEND DYNAMIC_RUNTIME_THUNK_CFLAGS "-Zl") elseif(CMAKE_C_COMPILER_ID MATCHES Clang) list(APPEND DYNAMIC_RUNTIME_THUNK_CFLAGS "-nodefaultlibs") endif() + add_compiler_rt_object_libraries(AsanDynamicRuntimeThunk + ${SANITIZER_COMMON_SUPPORTED_OS} + ARCHS ${arch} + SOURCES asan_globals_win.cc + asan_win_dynamic_runtime_thunk.cc + CFLAGS ${ASAN_CFLAGS} ${DYNAMIC_RUNTIME_THUNK_CFLAGS} + DEFS ${ASAN_COMMON_DEFINITIONS}) + add_compiler_rt_runtime(clang_rt.asan_dynamic_runtime_thunk STATIC ARCHS ${arch} - SOURCES asan_win_dynamic_runtime_thunk.cc - asan_globals_win.cc + OBJECT_LIBS AsanDynamicRuntimeThunk + UbsanDynamicRuntimeThunk + SancovDynamicRuntimeThunk + SanitizerCommonDynamicRuntimeThunk CFLAGS ${ASAN_CFLAGS} ${DYNAMIC_RUNTIME_THUNK_CFLAGS} DEFS ${ASAN_COMMON_DEFINITIONS} PARENT_TARGET asan) diff --git a/lib/asan/asan.syms.extra b/lib/asan/asan.syms.extra index 007aafe380a8..f8e9b3aedcc3 100644 --- a/lib/asan/asan.syms.extra +++ b/lib/asan/asan.syms.extra @@ -1,3 +1,4 @@ __asan_* __lsan_* __ubsan_* +__sancov_* diff --git a/lib/asan/asan_allocator.cc b/lib/asan/asan_allocator.cc index ee9b1a6a04cf..7010b6023614 100644 --- a/lib/asan/asan_allocator.cc +++ b/lib/asan/asan_allocator.cc @@ -523,6 +523,18 @@ struct Allocator { AsanThread *t = GetCurrentThread(); m->free_tid = t ? t->tid() : 0; m->free_context_id = StackDepotPut(*stack); + + Flags &fl = *flags(); + if (fl.max_free_fill_size > 0) { + // We have to skip the chunk header, it contains free_context_id. + uptr scribble_start = (uptr)m + kChunkHeaderSize + kChunkHeader2Size; + if (m->UsedSize() >= kChunkHeader2Size) { // Skip Header2 in user area. + uptr size_to_fill = m->UsedSize() - kChunkHeader2Size; + size_to_fill = Min(size_to_fill, (uptr)fl.max_free_fill_size); + REAL(memset)((void *)scribble_start, fl.free_fill_byte, size_to_fill); + } + } + // Poison the region. PoisonShadow(m->Beg(), RoundUpTo(m->UsedSize(), SHADOW_GRANULARITY), @@ -554,7 +566,17 @@ struct Allocator { uptr chunk_beg = p - kChunkHeaderSize; AsanChunk *m = reinterpret_cast<AsanChunk *>(chunk_beg); + // On Windows, uninstrumented DLLs may allocate memory before ASan hooks + // malloc. Don't report an invalid free in this case. + if (SANITIZER_WINDOWS && + !get_allocator().PointerIsMine(ptr)) { + if (!IsSystemHeapAddress(p)) + ReportFreeNotMalloced(p, stack); + return; + } + ASAN_FREE_HOOK(ptr); + // Must mark the chunk as quarantined before any changes to its metadata. // Do not quarantine given chunk if we failed to set CHUNK_QUARANTINE flag. if (!AtomicallySetQuarantineFlagIfAllocated(m, ptr, stack)) return; @@ -790,8 +812,12 @@ void *asan_realloc(void *p, uptr size, BufferedStackTrace *stack) { if (!p) return instance.Allocate(size, 8, stack, FROM_MALLOC, true); if (size == 0) { - instance.Deallocate(p, 0, stack, FROM_MALLOC); - return nullptr; + if (flags()->allocator_frees_and_returns_null_on_realloc_zero) { + instance.Deallocate(p, 0, stack, FROM_MALLOC); + return nullptr; + } + // Allocate a size of 1 if we shouldn't free() on Realloc to 0 + size = 1; } return instance.Reallocate(p, size, stack); } @@ -958,15 +984,13 @@ uptr __sanitizer_get_allocated_size(const void *p) { #if !SANITIZER_SUPPORTS_WEAK_HOOKS // Provide default (no-op) implementation of malloc hooks. -extern "C" { -SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE -void __sanitizer_malloc_hook(void *ptr, uptr size) { +SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_malloc_hook, + void *ptr, uptr size) { (void)ptr; (void)size; } -SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE -void __sanitizer_free_hook(void *ptr) { + +SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_free_hook, void *ptr) { (void)ptr; } -} // extern "C" #endif diff --git a/lib/asan/asan_descriptions.cc b/lib/asan/asan_descriptions.cc index 0ecbe091c8b1..822a6a62d64e 100644 --- a/lib/asan/asan_descriptions.cc +++ b/lib/asan/asan_descriptions.cc @@ -252,6 +252,9 @@ static void PrintAccessAndVarIntersection(const StackVarDescr &var, uptr addr, str.append("%c", var.name_pos[i]); } str.append("'"); + if (var.line > 0) { + str.append(" (line %d)", var.line); + } if (pos_descr) { Decorator d; // FIXME: we may want to also print the size of the access here, diff --git a/lib/asan/asan_errors.cc b/lib/asan/asan_errors.cc index c287ba1b4be6..57490ad180b5 100644 --- a/lib/asan/asan_errors.cc +++ b/lib/asan/asan_errors.cc @@ -58,10 +58,22 @@ static void MaybeDumpRegisters(void *context) { SignalContext::DumpAllRegisters(context); } +static void MaybeReportNonExecRegion(uptr pc) { +#if SANITIZER_FREEBSD || SANITIZER_LINUX + MemoryMappingLayout proc_maps(/*cache_enabled*/ true); + uptr start, end, protection; + while (proc_maps.Next(&start, &end, nullptr, nullptr, 0, &protection)) { + if (pc >= start && pc < end && + !(protection & MemoryMappingLayout::kProtectionExecute)) + Report("Hint: PC is at a non-executable region. Maybe a wild jump?\n"); + } +#endif +} + void ErrorDeadlySignal::Print() { Decorator d; Printf("%s", d.Warning()); - const char *description = DescribeSignalOrException(signo); + const char *description = __sanitizer::DescribeSignalOrException(signo); Report( "ERROR: AddressSanitizer: %s on unknown address %p (pc %p bp %p sp %p " "T%d)\n", @@ -77,6 +89,7 @@ void ErrorDeadlySignal::Print() { if (addr < GetPageSizeCached()) Report("Hint: address points to the zero page.\n"); } + MaybeReportNonExecRegion(pc); scariness.Print(); BufferedStackTrace stack; GetStackTraceWithPcBpAndContext(&stack, kStackTraceMax, pc, bp, context, diff --git a/lib/asan/asan_flags.cc b/lib/asan/asan_flags.cc index ad5bbff28c37..c8ae3faed7c2 100644 --- a/lib/asan/asan_flags.cc +++ b/lib/asan/asan_flags.cc @@ -61,7 +61,7 @@ void InitializeFlags() { { CommonFlags cf; cf.CopyFrom(*common_flags()); - cf.detect_leaks = CAN_SANITIZE_LEAKS; + cf.detect_leaks = cf.detect_leaks && CAN_SANITIZE_LEAKS; cf.external_symbolizer_path = GetEnv("ASAN_SYMBOLIZER_PATH"); cf.malloc_context_size = kDefaultMallocContextSize; cf.intercept_tls_get_addr = true; @@ -95,6 +95,18 @@ void InitializeFlags() { RegisterCommonFlags(&ubsan_parser); #endif + if (SANITIZER_MAC) { + // Support macOS MallocScribble and MallocPreScribble: + // <https://developer.apple.com/library/content/documentation/Performance/ + // Conceptual/ManagingMemory/Articles/MallocDebug.html> + if (GetEnv("MallocScribble")) { + f->max_free_fill_size = 0x1000; + } + if (GetEnv("MallocPreScribble")) { + f->malloc_fill_byte = 0xaa; + } + } + // Override from ASan compile definition. const char *asan_compile_def = MaybeUseAsanDefaultOptionsCompileDefinition(); asan_parser.ParseString(asan_compile_def); @@ -186,9 +198,6 @@ void InitializeFlags() { } // namespace __asan -#if !SANITIZER_SUPPORTS_WEAK_HOOKS -extern "C" { -SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE -const char* __asan_default_options() { return ""; } -} // extern "C" -#endif +SANITIZER_INTERFACE_WEAK_DEF(const char*, __asan_default_options, void) { + return ""; +} diff --git a/lib/asan/asan_flags.inc b/lib/asan/asan_flags.inc index 4712efb86224..f2216c2e9b3b 100644 --- a/lib/asan/asan_flags.inc +++ b/lib/asan/asan_flags.inc @@ -63,8 +63,14 @@ ASAN_FLAG( int, max_malloc_fill_size, 0x1000, // By default, fill only the first 4K. "ASan allocator flag. max_malloc_fill_size is the maximal amount of " "bytes that will be filled with malloc_fill_byte on malloc.") +ASAN_FLAG( + int, max_free_fill_size, 0, + "ASan allocator flag. max_free_fill_size is the maximal amount of " + "bytes that will be filled with free_fill_byte during free.") ASAN_FLAG(int, malloc_fill_byte, 0xbe, "Value used to fill the newly allocated memory.") +ASAN_FLAG(int, free_fill_byte, 0x55, + "Value used to fill deallocated memory.") ASAN_FLAG(bool, allow_user_poisoning, true, "If set, user may manually mark memory regions as poisoned or " "unpoisoned.") @@ -148,3 +154,10 @@ ASAN_FLAG(bool, halt_on_error, true, "(WARNING: USE AT YOUR OWN RISK!)") ASAN_FLAG(bool, use_odr_indicator, false, "Use special ODR indicator symbol for ODR violation detection") +ASAN_FLAG(bool, allocator_frees_and_returns_null_on_realloc_zero, true, + "realloc(p, 0) is equivalent to free(p) by default (Same as the " + "POSIX standard). If set to false, realloc(p, 0) will return a " + "pointer to an allocated space which can not be used.") +ASAN_FLAG(bool, verify_asan_link_order, true, + "Check position of ASan runtime in library list (needs to be disabled" + " when other library has to be preloaded system-wide)") diff --git a/lib/asan/asan_globals_win.cc b/lib/asan/asan_globals_win.cc index 56c0d1a532f9..261762b63e2c 100644 --- a/lib/asan/asan_globals_win.cc +++ b/lib/asan/asan_globals_win.cc @@ -29,7 +29,7 @@ static void call_on_globals(void (*hook)(__asan_global *, uptr)) { __asan_global *end = &__asan_globals_end; uptr bytediff = (uptr)end - (uptr)start; if (bytediff % sizeof(__asan_global) != 0) { -#ifdef ASAN_DLL_THUNK +#ifdef SANITIZER_DLL_THUNK __debugbreak(); #else CHECK("corrupt asan global array"); diff --git a/lib/asan/asan_globals_win.h b/lib/asan/asan_globals_win.h deleted file mode 100644 index d4ed9c1f38e1..000000000000 --- a/lib/asan/asan_globals_win.h +++ /dev/null @@ -1,34 +0,0 @@ -//===-- asan_globals_win.h --------------------------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// Interface to the Windows-specific global management code. Separated into a -// standalone header to allow inclusion from asan_win_dynamic_runtime_thunk, -// which defines symbols that clash with other sanitizer headers. -// -//===----------------------------------------------------------------------===// - -#ifndef ASAN_GLOBALS_WIN_H -#define ASAN_GLOBALS_WIN_H - -#if !defined(_MSC_VER) -#error "this file is Windows-only, and uses MSVC pragmas" -#endif - -#if defined(_WIN64) -#define SANITIZER_SYM_PREFIX -#else -#define SANITIZER_SYM_PREFIX "_" -#endif - -// Use this macro to force linking asan_globals_win.cc into the DSO. -#define ASAN_LINK_GLOBALS_WIN() \ - __pragma( \ - comment(linker, "/include:" SANITIZER_SYM_PREFIX "__asan_dso_reg_hook")) - -#endif // ASAN_GLOBALS_WIN_H diff --git a/lib/asan/asan_interceptors.cc b/lib/asan/asan_interceptors.cc index 606016d4f4d3..6ee3266062f8 100644 --- a/lib/asan/asan_interceptors.cc +++ b/lib/asan/asan_interceptors.cc @@ -228,9 +228,11 @@ DECLARE_REAL_AND_INTERCEPTOR(void, free, void *) // Strict init-order checking is dlopen-hostile: // https://github.com/google/sanitizers/issues/178 #define COMMON_INTERCEPTOR_ON_DLOPEN(filename, flag) \ - if (flags()->strict_init_order) { \ - StopInitOrderChecking(); \ - } + do { \ + if (flags()->strict_init_order) \ + StopInitOrderChecking(); \ + CheckNoDeepBind(filename, flag); \ + } while (false) #define COMMON_INTERCEPTOR_ON_EXIT(ctx) OnExit() #define COMMON_INTERCEPTOR_LIBRARY_LOADED(filename, handle) \ CoverageUpdateMapping() diff --git a/lib/asan/asan_interface.inc b/lib/asan/asan_interface.inc new file mode 100644 index 000000000000..351be4da5108 --- /dev/null +++ b/lib/asan/asan_interface.inc @@ -0,0 +1,167 @@ +//===-- asan_interface.inc ------------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// Asan interface list. +//===----------------------------------------------------------------------===// +INTERFACE_FUNCTION(__asan_addr_is_in_fake_stack) +INTERFACE_FUNCTION(__asan_address_is_poisoned) +INTERFACE_FUNCTION(__asan_after_dynamic_init) +INTERFACE_FUNCTION(__asan_alloca_poison) +INTERFACE_FUNCTION(__asan_allocas_unpoison) +INTERFACE_FUNCTION(__asan_before_dynamic_init) +INTERFACE_FUNCTION(__asan_describe_address) +INTERFACE_FUNCTION(__asan_exp_load1) +INTERFACE_FUNCTION(__asan_exp_load2) +INTERFACE_FUNCTION(__asan_exp_load4) +INTERFACE_FUNCTION(__asan_exp_load8) +INTERFACE_FUNCTION(__asan_exp_load16) +INTERFACE_FUNCTION(__asan_exp_loadN) +INTERFACE_FUNCTION(__asan_exp_store1) +INTERFACE_FUNCTION(__asan_exp_store2) +INTERFACE_FUNCTION(__asan_exp_store4) +INTERFACE_FUNCTION(__asan_exp_store8) +INTERFACE_FUNCTION(__asan_exp_store16) +INTERFACE_FUNCTION(__asan_exp_storeN) +INTERFACE_FUNCTION(__asan_get_alloc_stack) +INTERFACE_FUNCTION(__asan_get_current_fake_stack) +INTERFACE_FUNCTION(__asan_get_free_stack) +INTERFACE_FUNCTION(__asan_get_report_access_size) +INTERFACE_FUNCTION(__asan_get_report_access_type) +INTERFACE_FUNCTION(__asan_get_report_address) +INTERFACE_FUNCTION(__asan_get_report_bp) +INTERFACE_FUNCTION(__asan_get_report_description) +INTERFACE_FUNCTION(__asan_get_report_pc) +INTERFACE_FUNCTION(__asan_get_report_sp) +INTERFACE_FUNCTION(__asan_get_shadow_mapping) +INTERFACE_FUNCTION(__asan_handle_no_return) +INTERFACE_FUNCTION(__asan_init) +INTERFACE_FUNCTION(__asan_load_cxx_array_cookie) +INTERFACE_FUNCTION(__asan_load1) +INTERFACE_FUNCTION(__asan_load2) +INTERFACE_FUNCTION(__asan_load4) +INTERFACE_FUNCTION(__asan_load8) +INTERFACE_FUNCTION(__asan_load16) +INTERFACE_FUNCTION(__asan_loadN) +INTERFACE_FUNCTION(__asan_load1_noabort) +INTERFACE_FUNCTION(__asan_load2_noabort) +INTERFACE_FUNCTION(__asan_load4_noabort) +INTERFACE_FUNCTION(__asan_load8_noabort) +INTERFACE_FUNCTION(__asan_load16_noabort) +INTERFACE_FUNCTION(__asan_loadN_noabort) +INTERFACE_FUNCTION(__asan_locate_address) +INTERFACE_FUNCTION(__asan_memcpy) +INTERFACE_FUNCTION(__asan_memmove) +INTERFACE_FUNCTION(__asan_memset) +INTERFACE_FUNCTION(__asan_poison_cxx_array_cookie) +INTERFACE_FUNCTION(__asan_poison_intra_object_redzone) +INTERFACE_FUNCTION(__asan_poison_memory_region) +INTERFACE_FUNCTION(__asan_poison_stack_memory) +INTERFACE_FUNCTION(__asan_print_accumulated_stats) +INTERFACE_FUNCTION(__asan_region_is_poisoned) +INTERFACE_FUNCTION(__asan_register_globals) +INTERFACE_FUNCTION(__asan_register_image_globals) +INTERFACE_FUNCTION(__asan_report_error) +INTERFACE_FUNCTION(__asan_report_exp_load1) +INTERFACE_FUNCTION(__asan_report_exp_load2) +INTERFACE_FUNCTION(__asan_report_exp_load4) +INTERFACE_FUNCTION(__asan_report_exp_load8) +INTERFACE_FUNCTION(__asan_report_exp_load16) +INTERFACE_FUNCTION(__asan_report_exp_load_n) +INTERFACE_FUNCTION(__asan_report_exp_store1) +INTERFACE_FUNCTION(__asan_report_exp_store2) +INTERFACE_FUNCTION(__asan_report_exp_store4) +INTERFACE_FUNCTION(__asan_report_exp_store8) +INTERFACE_FUNCTION(__asan_report_exp_store16) +INTERFACE_FUNCTION(__asan_report_exp_store_n) +INTERFACE_FUNCTION(__asan_report_load1) +INTERFACE_FUNCTION(__asan_report_load2) +INTERFACE_FUNCTION(__asan_report_load4) +INTERFACE_FUNCTION(__asan_report_load8) +INTERFACE_FUNCTION(__asan_report_load16) +INTERFACE_FUNCTION(__asan_report_load_n) +INTERFACE_FUNCTION(__asan_report_load1_noabort) +INTERFACE_FUNCTION(__asan_report_load2_noabort) +INTERFACE_FUNCTION(__asan_report_load4_noabort) +INTERFACE_FUNCTION(__asan_report_load8_noabort) +INTERFACE_FUNCTION(__asan_report_load16_noabort) +INTERFACE_FUNCTION(__asan_report_load_n_noabort) +INTERFACE_FUNCTION(__asan_report_present) +INTERFACE_FUNCTION(__asan_report_store1) +INTERFACE_FUNCTION(__asan_report_store2) +INTERFACE_FUNCTION(__asan_report_store4) +INTERFACE_FUNCTION(__asan_report_store8) +INTERFACE_FUNCTION(__asan_report_store16) +INTERFACE_FUNCTION(__asan_report_store_n) +INTERFACE_FUNCTION(__asan_report_store1_noabort) +INTERFACE_FUNCTION(__asan_report_store2_noabort) +INTERFACE_FUNCTION(__asan_report_store4_noabort) +INTERFACE_FUNCTION(__asan_report_store8_noabort) +INTERFACE_FUNCTION(__asan_report_store16_noabort) +INTERFACE_FUNCTION(__asan_report_store_n_noabort) +INTERFACE_FUNCTION(__asan_set_death_callback) +INTERFACE_FUNCTION(__asan_set_error_report_callback) +INTERFACE_FUNCTION(__asan_set_shadow_00) +INTERFACE_FUNCTION(__asan_set_shadow_f1) +INTERFACE_FUNCTION(__asan_set_shadow_f2) +INTERFACE_FUNCTION(__asan_set_shadow_f3) +INTERFACE_FUNCTION(__asan_set_shadow_f5) +INTERFACE_FUNCTION(__asan_set_shadow_f8) +INTERFACE_FUNCTION(__asan_stack_free_0) +INTERFACE_FUNCTION(__asan_stack_free_1) +INTERFACE_FUNCTION(__asan_stack_free_2) +INTERFACE_FUNCTION(__asan_stack_free_3) +INTERFACE_FUNCTION(__asan_stack_free_4) +INTERFACE_FUNCTION(__asan_stack_free_5) +INTERFACE_FUNCTION(__asan_stack_free_6) +INTERFACE_FUNCTION(__asan_stack_free_7) +INTERFACE_FUNCTION(__asan_stack_free_8) +INTERFACE_FUNCTION(__asan_stack_free_9) +INTERFACE_FUNCTION(__asan_stack_free_10) +INTERFACE_FUNCTION(__asan_stack_malloc_0) +INTERFACE_FUNCTION(__asan_stack_malloc_1) +INTERFACE_FUNCTION(__asan_stack_malloc_2) +INTERFACE_FUNCTION(__asan_stack_malloc_3) +INTERFACE_FUNCTION(__asan_stack_malloc_4) +INTERFACE_FUNCTION(__asan_stack_malloc_5) +INTERFACE_FUNCTION(__asan_stack_malloc_6) +INTERFACE_FUNCTION(__asan_stack_malloc_7) +INTERFACE_FUNCTION(__asan_stack_malloc_8) +INTERFACE_FUNCTION(__asan_stack_malloc_9) +INTERFACE_FUNCTION(__asan_stack_malloc_10) +INTERFACE_FUNCTION(__asan_store1) +INTERFACE_FUNCTION(__asan_store2) +INTERFACE_FUNCTION(__asan_store4) +INTERFACE_FUNCTION(__asan_store8) +INTERFACE_FUNCTION(__asan_store16) +INTERFACE_FUNCTION(__asan_storeN) +INTERFACE_FUNCTION(__asan_store1_noabort) +INTERFACE_FUNCTION(__asan_store2_noabort) +INTERFACE_FUNCTION(__asan_store4_noabort) +INTERFACE_FUNCTION(__asan_store8_noabort) +INTERFACE_FUNCTION(__asan_store16_noabort) +INTERFACE_FUNCTION(__asan_storeN_noabort) +INTERFACE_FUNCTION(__asan_unpoison_intra_object_redzone) +INTERFACE_FUNCTION(__asan_unpoison_memory_region) +INTERFACE_FUNCTION(__asan_unpoison_stack_memory) +INTERFACE_FUNCTION(__asan_unregister_globals) +INTERFACE_FUNCTION(__asan_unregister_image_globals) +INTERFACE_FUNCTION(__asan_version_mismatch_check_v8) +INTERFACE_FUNCTION(__sanitizer_finish_switch_fiber) +INTERFACE_FUNCTION(__sanitizer_print_stack_trace) +INTERFACE_FUNCTION(__sanitizer_ptr_cmp) +INTERFACE_FUNCTION(__sanitizer_ptr_sub) +INTERFACE_FUNCTION(__sanitizer_start_switch_fiber) +INTERFACE_FUNCTION(__sanitizer_unaligned_load16) +INTERFACE_FUNCTION(__sanitizer_unaligned_load32) +INTERFACE_FUNCTION(__sanitizer_unaligned_load64) +INTERFACE_FUNCTION(__sanitizer_unaligned_store16) +INTERFACE_FUNCTION(__sanitizer_unaligned_store32) +INTERFACE_FUNCTION(__sanitizer_unaligned_store64) +INTERFACE_WEAK_FUNCTION(__asan_default_options) +INTERFACE_WEAK_FUNCTION(__asan_default_suppressions) +INTERFACE_WEAK_FUNCTION(__asan_on_error) diff --git a/lib/asan/asan_interface_internal.h b/lib/asan/asan_interface_internal.h index 8cd424cc03e8..b18c31548860 100644 --- a/lib/asan/asan_interface_internal.h +++ b/lib/asan/asan_interface_internal.h @@ -165,12 +165,12 @@ extern "C" { void __asan_set_error_report_callback(void (*callback)(const char*)); SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE - /* OPTIONAL */ void __asan_on_error(); + void __asan_on_error(); SANITIZER_INTERFACE_ATTRIBUTE void __asan_print_accumulated_stats(); SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE - /* OPTIONAL */ const char* __asan_default_options(); + const char* __asan_default_options(); SANITIZER_INTERFACE_ATTRIBUTE extern uptr __asan_shadow_memory_dynamic_address; @@ -242,6 +242,9 @@ extern "C" { void __asan_alloca_poison(uptr addr, uptr size); SANITIZER_INTERFACE_ATTRIBUTE void __asan_allocas_unpoison(uptr top, uptr bottom); + + SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE + const char* __asan_default_suppressions(); } // extern "C" #endif // ASAN_INTERFACE_INTERNAL_H diff --git a/lib/asan/asan_internal.h b/lib/asan/asan_internal.h index 1dc678c0c357..3b70695249e4 100644 --- a/lib/asan/asan_internal.h +++ b/lib/asan/asan_internal.h @@ -64,9 +64,9 @@ void AsanInitFromRtl(); // asan_win.cc void InitializePlatformExceptionHandlers(); - -// asan_win.cc / asan_posix.cc -const char *DescribeSignalOrException(int signo); +// Returns whether an address is a valid allocated system heap block. +// 'addr' must point to the beginning of the block. +bool IsSystemHeapAddress(uptr addr); // asan_rtl.cc void NORETURN ShowStatsAndAbort(); diff --git a/lib/asan/asan_linux.cc b/lib/asan/asan_linux.cc index c051573dd494..50ef84c39a66 100644 --- a/lib/asan/asan_linux.cc +++ b/lib/asan/asan_linux.cc @@ -70,6 +70,7 @@ namespace __asan { void InitializePlatformInterceptors() {} void InitializePlatformExceptionHandlers() {} +bool IsSystemHeapAddress (uptr addr) { return false; } void *AsanDoesNotSupportStaticLinkage() { // This will fail to link with -static. @@ -110,7 +111,7 @@ static void ReportIncompatibleRT() { } void AsanCheckDynamicRTPrereqs() { - if (!ASAN_DYNAMIC) + if (!ASAN_DYNAMIC || !flags()->verify_asan_link_order) return; // Ensure that dynamic RT is the first DSO in the list diff --git a/lib/asan/asan_mac.cc b/lib/asan/asan_mac.cc index baf533ac96ac..3c93b26d9bf6 100644 --- a/lib/asan/asan_mac.cc +++ b/lib/asan/asan_mac.cc @@ -48,6 +48,7 @@ namespace __asan { void InitializePlatformInterceptors() {} void InitializePlatformExceptionHandlers() {} +bool IsSystemHeapAddress (uptr addr) { return false; } // No-op. Mac does not support static linkage anyway. void *AsanDoesNotSupportStaticLinkage() { @@ -138,7 +139,8 @@ void asan_register_worker_thread(int parent_tid, StackTrace *stack) { t = AsanThread::Create(/* start_routine */ nullptr, /* arg */ nullptr, parent_tid, stack, /* detached */ true); t->Init(); - asanThreadRegistry().StartThread(t->tid(), 0, 0); + asanThreadRegistry().StartThread(t->tid(), GetTid(), + /* workerthread */ true, 0); SetCurrentThread(t); } } diff --git a/lib/asan/asan_malloc_win.cc b/lib/asan/asan_malloc_win.cc index 5163c04f7e07..efa058243979 100644 --- a/lib/asan/asan_malloc_win.cc +++ b/lib/asan/asan_malloc_win.cc @@ -100,7 +100,7 @@ void *realloc(void *ptr, size_t size) { ALLOCATION_FUNCTION_ATTRIBUTE void *_realloc_dbg(void *ptr, size_t size, int) { - CHECK(!"_realloc_dbg should not exist!"); + UNREACHABLE("_realloc_dbg should not exist!"); return 0; } diff --git a/lib/asan/asan_mapping.h b/lib/asan/asan_mapping.h index d8e60a4b34a9..695740cd982f 100644 --- a/lib/asan/asan_mapping.h +++ b/lib/asan/asan_mapping.h @@ -191,7 +191,6 @@ static const u64 kWindowsShadowOffset32 = 3ULL << 28; // 0x30000000 #define SHADOW_GRANULARITY (1ULL << SHADOW_SCALE) #define MEM_TO_SHADOW(mem) (((mem) >> SHADOW_SCALE) + (SHADOW_OFFSET)) -#define SHADOW_TO_MEM(shadow) (((shadow) - SHADOW_OFFSET) << SHADOW_SCALE) #define kLowMemBeg 0 #define kLowMemEnd (SHADOW_OFFSET ? SHADOW_OFFSET - 1 : 0) diff --git a/lib/asan/asan_memory_profile.cc b/lib/asan/asan_memory_profile.cc index c2678b974fe6..05846c37cb6d 100644 --- a/lib/asan/asan_memory_profile.cc +++ b/lib/asan/asan_memory_profile.cc @@ -48,7 +48,7 @@ class HeapProfile { } } - void Print(uptr top_percent) { + void Print(uptr top_percent, uptr max_number_of_contexts) { InternalSort(&allocations_, allocations_.size(), [](const AllocationSite &a, const AllocationSite &b) { return a.total_size > b.total_size; @@ -57,12 +57,14 @@ class HeapProfile { uptr total_shown = 0; Printf("Live Heap Allocations: %zd bytes in %zd chunks; quarantined: " "%zd bytes in %zd chunks; %zd other chunks; total chunks: %zd; " - "showing top %zd%%\n", + "showing top %zd%% (at most %zd unique contexts)\n", total_allocated_user_size_, total_allocated_count_, total_quarantined_user_size_, total_quarantined_count_, total_other_count_, total_allocated_count_ + - total_quarantined_count_ + total_other_count_, top_percent); - for (uptr i = 0; i < allocations_.size(); i++) { + total_quarantined_count_ + total_other_count_, top_percent, + max_number_of_contexts); + for (uptr i = 0; i < Min(allocations_.size(), max_number_of_contexts); + i++) { auto &a = allocations_[i]; Printf("%zd byte(s) (%zd%%) in %zd allocation(s)\n", a.total_size, a.total_size * 100 / total_allocated_user_size_, a.count); @@ -103,16 +105,23 @@ static void MemoryProfileCB(const SuspendedThreadsList &suspended_threads_list, void *argument) { HeapProfile hp; __lsan::ForEachChunk(ChunkCallback, &hp); - hp.Print(reinterpret_cast<uptr>(argument)); + uptr *Arg = reinterpret_cast<uptr*>(argument); + hp.Print(Arg[0], Arg[1]); } } // namespace __asan +#endif // CAN_SANITIZE_LEAKS + extern "C" { SANITIZER_INTERFACE_ATTRIBUTE -void __sanitizer_print_memory_profile(uptr top_percent) { - __sanitizer::StopTheWorld(__asan::MemoryProfileCB, (void*)top_percent); +void __sanitizer_print_memory_profile(uptr top_percent, + uptr max_number_of_contexts) { +#if CAN_SANITIZE_LEAKS + uptr Arg[2]; + Arg[0] = top_percent; + Arg[1] = max_number_of_contexts; + __sanitizer::StopTheWorld(__asan::MemoryProfileCB, Arg); +#endif // CAN_SANITIZE_LEAKS } } // extern "C" - -#endif // CAN_SANITIZE_LEAKS diff --git a/lib/asan/asan_posix.cc b/lib/asan/asan_posix.cc index 8e5676309ae0..68fde9139232 100644 --- a/lib/asan/asan_posix.cc +++ b/lib/asan/asan_posix.cc @@ -33,19 +33,6 @@ namespace __asan { -const char *DescribeSignalOrException(int signo) { - switch (signo) { - case SIGFPE: - return "FPE"; - case SIGILL: - return "ILL"; - case SIGABRT: - return "ABRT"; - default: - return "SEGV"; - } -} - void AsanOnDeadlySignal(int signo, void *siginfo, void *context) { ScopedDeadlySignal signal_scope(GetCurrentThread()); int code = (int)((siginfo_t*)siginfo)->si_code; diff --git a/lib/asan/asan_report.cc b/lib/asan/asan_report.cc index 3ad48fa88b6f..f751b6184c6b 100644 --- a/lib/asan/asan_report.cc +++ b/lib/asan/asan_report.cc @@ -88,7 +88,8 @@ bool ParseFrameDescription(const char *frame_descr, char *p; // This string is created by the compiler and has the following form: // "n alloc_1 alloc_2 ... alloc_n" - // where alloc_i looks like "offset size len ObjectName". + // where alloc_i looks like "offset size len ObjectName" + // or "offset size len ObjectName:line". uptr n_objects = (uptr)internal_simple_strtoll(frame_descr, &p, 10); if (n_objects == 0) return false; @@ -101,7 +102,14 @@ bool ParseFrameDescription(const char *frame_descr, return false; } p++; - StackVarDescr var = {beg, size, p, len}; + char *colon_pos = internal_strchr(p, ':'); + uptr line = 0; + uptr name_len = len; + if (colon_pos != nullptr && colon_pos < p + len) { + name_len = colon_pos - p; + line = (uptr)internal_simple_strtoll(colon_pos + 1, nullptr, 10); + } + StackVarDescr var = {beg, size, p, name_len, line}; vars->push_back(var); p += len; } @@ -488,9 +496,6 @@ void __sanitizer_ptr_cmp(void *a, void *b) { } } // extern "C" -#if !SANITIZER_SUPPORTS_WEAK_HOOKS // Provide default implementation of __asan_on_error that does nothing // and may be overriden by user. -SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE NOINLINE -void __asan_on_error() {} -#endif +SANITIZER_INTERFACE_WEAK_DEF(void, __asan_on_error, void) {} diff --git a/lib/asan/asan_report.h b/lib/asan/asan_report.h index 5ebfda693d0c..5a3533a319af 100644 --- a/lib/asan/asan_report.h +++ b/lib/asan/asan_report.h @@ -23,6 +23,7 @@ struct StackVarDescr { uptr size; const char *name_pos; uptr name_len; + uptr line; }; // Returns the number of globals close to the provided address and copies diff --git a/lib/asan/asan_suppressions.cc b/lib/asan/asan_suppressions.cc index 62c868d25dbc..ac8aa023f6ba 100644 --- a/lib/asan/asan_suppressions.cc +++ b/lib/asan/asan_suppressions.cc @@ -31,15 +31,9 @@ static const char *kSuppressionTypes[] = { kInterceptorName, kInterceptorViaFunction, kInterceptorViaLibrary, kODRViolation}; -extern "C" { -#if SANITIZER_SUPPORTS_WEAK_HOOKS -SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE -const char *__asan_default_suppressions(); -#else -// No week hooks, provide empty implementation. -const char *__asan_default_suppressions() { return ""; } -#endif // SANITIZER_SUPPORTS_WEAK_HOOKS -} // extern "C" +SANITIZER_INTERFACE_WEAK_DEF(const char *, __asan_default_suppressions, void) { + return ""; +} void InitializeSuppressions() { CHECK_EQ(nullptr, suppression_ctx); diff --git a/lib/asan/asan_thread.cc b/lib/asan/asan_thread.cc index 537b53d9e0c3..aaa32d6ea6da 100644 --- a/lib/asan/asan_thread.cc +++ b/lib/asan/asan_thread.cc @@ -239,7 +239,8 @@ void AsanThread::Init() { thread_return_t AsanThread::ThreadStart( uptr os_id, atomic_uintptr_t *signal_thread_is_registered) { Init(); - asanThreadRegistry().StartThread(tid(), os_id, nullptr); + asanThreadRegistry().StartThread(tid(), os_id, /*workerthread*/ false, + nullptr); if (signal_thread_is_registered) atomic_store(signal_thread_is_registered, 1, memory_order_release); @@ -299,24 +300,27 @@ bool AsanThread::GetStackFrameAccessByAddr(uptr addr, return true; } uptr aligned_addr = addr & ~(SANITIZER_WORDSIZE/8 - 1); // align addr. + uptr mem_ptr = RoundDownTo(aligned_addr, SHADOW_GRANULARITY); u8 *shadow_ptr = (u8*)MemToShadow(aligned_addr); u8 *shadow_bottom = (u8*)MemToShadow(bottom); while (shadow_ptr >= shadow_bottom && *shadow_ptr != kAsanStackLeftRedzoneMagic) { shadow_ptr--; + mem_ptr -= SHADOW_GRANULARITY; } while (shadow_ptr >= shadow_bottom && *shadow_ptr == kAsanStackLeftRedzoneMagic) { shadow_ptr--; + mem_ptr -= SHADOW_GRANULARITY; } if (shadow_ptr < shadow_bottom) { return false; } - uptr* ptr = (uptr*)SHADOW_TO_MEM((uptr)(shadow_ptr + 1)); + uptr* ptr = (uptr*)(mem_ptr + SHADOW_GRANULARITY); CHECK(ptr[0] == kCurrentStackFrameMagic); access->offset = addr - (uptr)ptr; access->frame_pc = ptr[2]; diff --git a/lib/asan/asan_win.cc b/lib/asan/asan_win.cc index 78268d83e539..4ab535c42e5a 100644 --- a/lib/asan/asan_win.cc +++ b/lib/asan/asan_win.cc @@ -19,7 +19,6 @@ #include <stdlib.h> -#include "asan_globals_win.h" #include "asan_interceptors.h" #include "asan_internal.h" #include "asan_report.h" @@ -28,6 +27,8 @@ #include "asan_mapping.h" #include "sanitizer_common/sanitizer_libc.h" #include "sanitizer_common/sanitizer_mutex.h" +#include "sanitizer_common/sanitizer_win.h" +#include "sanitizer_common/sanitizer_win_defs.h" using namespace __asan; // NOLINT @@ -43,35 +44,50 @@ uptr __asan_get_shadow_memory_dynamic_address() { __asan_init(); return __asan_shadow_memory_dynamic_address; } - -// -------------------- A workaround for the absence of weak symbols ----- {{{ -// We don't have a direct equivalent of weak symbols when using MSVC, but we can -// use the /alternatename directive to tell the linker to default a specific -// symbol to a specific value, which works nicely for allocator hooks and -// __asan_default_options(). -void __sanitizer_default_malloc_hook(void *ptr, uptr size) { } -void __sanitizer_default_free_hook(void *ptr) { } -const char* __asan_default_default_options() { return ""; } -const char* __asan_default_default_suppressions() { return ""; } -void __asan_default_on_error() {} -// 64-bit msvc will not prepend an underscore for symbols. -#ifdef _WIN64 -#pragma comment(linker, "/alternatename:__sanitizer_malloc_hook=__sanitizer_default_malloc_hook") // NOLINT -#pragma comment(linker, "/alternatename:__sanitizer_free_hook=__sanitizer_default_free_hook") // NOLINT -#pragma comment(linker, "/alternatename:__asan_default_options=__asan_default_default_options") // NOLINT -#pragma comment(linker, "/alternatename:__asan_default_suppressions=__asan_default_default_suppressions") // NOLINT -#pragma comment(linker, "/alternatename:__asan_on_error=__asan_default_on_error") // NOLINT -#else -#pragma comment(linker, "/alternatename:___sanitizer_malloc_hook=___sanitizer_default_malloc_hook") // NOLINT -#pragma comment(linker, "/alternatename:___sanitizer_free_hook=___sanitizer_default_free_hook") // NOLINT -#pragma comment(linker, "/alternatename:___asan_default_options=___asan_default_default_options") // NOLINT -#pragma comment(linker, "/alternatename:___asan_default_suppressions=___asan_default_default_suppressions") // NOLINT -#pragma comment(linker, "/alternatename:___asan_on_error=___asan_default_on_error") // NOLINT -#endif -// }}} } // extern "C" // ---------------------- Windows-specific interceptors ---------------- {{{ +static LPTOP_LEVEL_EXCEPTION_FILTER default_seh_handler; +static LPTOP_LEVEL_EXCEPTION_FILTER user_seh_handler; + +extern "C" SANITIZER_INTERFACE_ATTRIBUTE +long __asan_unhandled_exception_filter(EXCEPTION_POINTERS *info) { + EXCEPTION_RECORD *exception_record = info->ExceptionRecord; + CONTEXT *context = info->ContextRecord; + + // FIXME: Handle EXCEPTION_STACK_OVERFLOW here. + + SignalContext sig = SignalContext::Create(exception_record, context); + ReportDeadlySignal(exception_record->ExceptionCode, sig); + UNREACHABLE("returned from reporting deadly signal"); +} + +// Wrapper SEH Handler. If the exception should be handled by asan, we call +// __asan_unhandled_exception_filter, otherwise, we execute the user provided +// exception handler or the default. +static long WINAPI SEHHandler(EXCEPTION_POINTERS *info) { + DWORD exception_code = info->ExceptionRecord->ExceptionCode; + if (__sanitizer::IsHandledDeadlyException(exception_code)) + return __asan_unhandled_exception_filter(info); + if (user_seh_handler) + return user_seh_handler(info); + // Bubble out to the default exception filter. + if (default_seh_handler) + return default_seh_handler(info); + return EXCEPTION_CONTINUE_SEARCH; +} + +INTERCEPTOR_WINAPI(LPTOP_LEVEL_EXCEPTION_FILTER, SetUnhandledExceptionFilter, + LPTOP_LEVEL_EXCEPTION_FILTER ExceptionFilter) { + CHECK(REAL(SetUnhandledExceptionFilter)); + if (ExceptionFilter == &SEHHandler || common_flags()->allow_user_segv_handler) + return REAL(SetUnhandledExceptionFilter)(ExceptionFilter); + // We record the user provided exception handler to be called for all the + // exceptions unhandled by asan. + Swap(ExceptionFilter, user_seh_handler); + return ExceptionFilter; +} + INTERCEPTOR_WINAPI(void, RtlRaiseException, EXCEPTION_RECORD *ExceptionRecord) { CHECK(REAL(RtlRaiseException)); // This is a noreturn function, unless it's one of the exceptions raised to @@ -144,6 +160,7 @@ namespace __asan { void InitializePlatformInterceptors() { ASAN_INTERCEPT_FUNC(CreateThread); + ASAN_INTERCEPT_FUNC(SetUnhandledExceptionFilter); #ifdef _WIN64 ASAN_INTERCEPT_FUNC(__C_specific_handler); @@ -260,60 +277,8 @@ void InitializePlatformExceptionHandlers() { #endif } -static LPTOP_LEVEL_EXCEPTION_FILTER default_seh_handler; - -// Check based on flags if we should report this exception. -static bool ShouldReportDeadlyException(unsigned code) { - switch (code) { - case EXCEPTION_ACCESS_VIOLATION: - case EXCEPTION_IN_PAGE_ERROR: - return common_flags()->handle_segv; - case EXCEPTION_BREAKPOINT: - case EXCEPTION_ILLEGAL_INSTRUCTION: { - return common_flags()->handle_sigill; - } - } - return false; -} - -// Return the textual name for this exception. -const char *DescribeSignalOrException(int signo) { - unsigned code = signo; - // Get the string description of the exception if this is a known deadly - // exception. - switch (code) { - case EXCEPTION_ACCESS_VIOLATION: - return "access-violation"; - case EXCEPTION_IN_PAGE_ERROR: - return "in-page-error"; - case EXCEPTION_BREAKPOINT: - return "breakpoint"; - case EXCEPTION_ILLEGAL_INSTRUCTION: - return "illegal-instruction"; - } - return nullptr; -} - -extern "C" SANITIZER_INTERFACE_ATTRIBUTE -long __asan_unhandled_exception_filter(EXCEPTION_POINTERS *info) { - EXCEPTION_RECORD *exception_record = info->ExceptionRecord; - CONTEXT *context = info->ContextRecord; - - // Continue the search if the signal wasn't deadly. - if (!ShouldReportDeadlyException(exception_record->ExceptionCode)) - return EXCEPTION_CONTINUE_SEARCH; - // FIXME: Handle EXCEPTION_STACK_OVERFLOW here. - - SignalContext sig = SignalContext::Create(exception_record, context); - ReportDeadlySignal(exception_record->ExceptionCode, sig); - UNREACHABLE("returned from reporting deadly signal"); -} - -static long WINAPI SEHHandler(EXCEPTION_POINTERS *info) { - __asan_unhandled_exception_filter(info); - - // Bubble out to the default exception filter. - return default_seh_handler(info); +bool IsSystemHeapAddress(uptr addr) { + return ::HeapValidate(GetProcessHeap(), 0, (void*)addr) != FALSE; } // We want to install our own exception handler (EH) to print helpful reports @@ -368,7 +333,7 @@ __declspec(allocate(".CRT$XLAB")) void (NTAPI *__asan_tls_init)(void *, unsigned long, void *) = asan_thread_init; #endif -ASAN_LINK_GLOBALS_WIN() +WIN_FORCE_LINK(__asan_dso_reg_hook) // }}} } // namespace __asan diff --git a/lib/asan/asan_win_dll_thunk.cc b/lib/asan/asan_win_dll_thunk.cc index 4764fd0a736c..189b4b141bfa 100644 --- a/lib/asan/asan_win_dll_thunk.cc +++ b/lib/asan/asan_win_dll_thunk.cc @@ -15,388 +15,41 @@ // See https://github.com/google/sanitizers/issues/209 for the details. //===----------------------------------------------------------------------===// -// Only compile this code when building asan_dll_thunk.lib -// Using #ifdef rather than relying on Makefiles etc. -// simplifies the build procedure. -#ifdef ASAN_DLL_THUNK +#ifdef SANITIZER_DLL_THUNK #include "asan_init_version.h" -#include "asan_globals_win.h" #include "interception/interception.h" +#include "sanitizer_common/sanitizer_win_defs.h" +#include "sanitizer_common/sanitizer_win_dll_thunk.h" #include "sanitizer_common/sanitizer_platform_interceptors.h" -#ifdef _M_IX86 -#define WINAPI __stdcall -#else -#define WINAPI -#endif - -// ---------- Function interception helper functions and macros ----------- {{{1 -extern "C" { -void *WINAPI GetModuleHandleA(const char *module_name); -void *WINAPI GetProcAddress(void *module, const char *proc_name); -void abort(); -} - -using namespace __sanitizer; - -static uptr getRealProcAddressOrDie(const char *name) { - uptr ret = - __interception::InternalGetProcAddress((void *)GetModuleHandleA(0), name); - if (!ret) - abort(); - return ret; -} - -// We need to intercept some functions (e.g. ASan interface, memory allocator -- -// let's call them "hooks") exported by the DLL thunk and forward the hooks to -// the runtime in the main module. -// However, we don't want to keep two lists of these hooks. -// To avoid that, the list of hooks should be defined using the -// INTERCEPT_WHEN_POSSIBLE macro. Then, all these hooks can be intercepted -// at once by calling INTERCEPT_HOOKS(). - -// Use macro+template magic to automatically generate the list of hooks. -// Each hook at line LINE defines a template class with a static -// FunctionInterceptor<LINE>::Execute() method intercepting the hook. -// The default implementation of FunctionInterceptor<LINE> is to call -// the Execute() method corresponding to the previous line. -template<int LINE> -struct FunctionInterceptor { - static void Execute() { FunctionInterceptor<LINE-1>::Execute(); } -}; - -// There shouldn't be any hooks with negative definition line number. -template<> -struct FunctionInterceptor<0> { - static void Execute() {} -}; - -#define INTERCEPT_WHEN_POSSIBLE(main_function, dll_function) \ - template <> struct FunctionInterceptor<__LINE__> { \ - static void Execute() { \ - uptr wrapper = getRealProcAddressOrDie(main_function); \ - if (!__interception::OverrideFunction((uptr)dll_function, wrapper, 0)) \ - abort(); \ - FunctionInterceptor<__LINE__ - 1>::Execute(); \ - } \ - }; - -// Special case of hooks -- ASan own interface functions. Those are only called -// after __asan_init, thus an empty implementation is sufficient. -#define INTERFACE_FUNCTION(name) \ - extern "C" __declspec(noinline) void name() { \ - volatile int prevent_icf = (__LINE__ << 8); (void)prevent_icf; \ - __debugbreak(); \ - } \ - INTERCEPT_WHEN_POSSIBLE(#name, name) - -// INTERCEPT_HOOKS must be used after the last INTERCEPT_WHEN_POSSIBLE. -#define INTERCEPT_HOOKS FunctionInterceptor<__LINE__>::Execute - -// We can't define our own version of strlen etc. because that would lead to -// link-time or even type mismatch errors. Instead, we can declare a function -// just to be able to get its address. Me may miss the first few calls to the -// functions since it can be called before __asan_init, but that would lead to -// false negatives in the startup code before user's global initializers, which -// isn't a big deal. -#define INTERCEPT_LIBRARY_FUNCTION(name) \ - extern "C" void name(); \ - INTERCEPT_WHEN_POSSIBLE(WRAPPER_NAME(name), name) - -// Disable compiler warnings that show up if we declare our own version -// of a compiler intrinsic (e.g. strlen). -#pragma warning(disable: 4391) -#pragma warning(disable: 4392) - -static void InterceptHooks(); -// }}} - -// ---------- Function wrapping helpers ----------------------------------- {{{1 -#define WRAP_V_V(name) \ - extern "C" void name() { \ - typedef decltype(name) *fntype; \ - static fntype fn = (fntype)getRealProcAddressOrDie(#name); \ - fn(); \ - } \ - INTERCEPT_WHEN_POSSIBLE(#name, name); - -#define WRAP_V_W(name) \ - extern "C" void name(void *arg) { \ - typedef decltype(name) *fntype; \ - static fntype fn = (fntype)getRealProcAddressOrDie(#name); \ - fn(arg); \ - } \ - INTERCEPT_WHEN_POSSIBLE(#name, name); - -#define WRAP_V_WW(name) \ - extern "C" void name(void *arg1, void *arg2) { \ - typedef decltype(name) *fntype; \ - static fntype fn = (fntype)getRealProcAddressOrDie(#name); \ - fn(arg1, arg2); \ - } \ - INTERCEPT_WHEN_POSSIBLE(#name, name); - -#define WRAP_V_WWW(name) \ - extern "C" void name(void *arg1, void *arg2, void *arg3) { \ - typedef decltype(name) *fntype; \ - static fntype fn = (fntype)getRealProcAddressOrDie(#name); \ - fn(arg1, arg2, arg3); \ - } \ - INTERCEPT_WHEN_POSSIBLE(#name, name); - -#define WRAP_W_V(name) \ - extern "C" void *name() { \ - typedef decltype(name) *fntype; \ - static fntype fn = (fntype)getRealProcAddressOrDie(#name); \ - return fn(); \ - } \ - INTERCEPT_WHEN_POSSIBLE(#name, name); - -#define WRAP_W_W(name) \ - extern "C" void *name(void *arg) { \ - typedef decltype(name) *fntype; \ - static fntype fn = (fntype)getRealProcAddressOrDie(#name); \ - return fn(arg); \ - } \ - INTERCEPT_WHEN_POSSIBLE(#name, name); - -#define WRAP_W_WW(name) \ - extern "C" void *name(void *arg1, void *arg2) { \ - typedef decltype(name) *fntype; \ - static fntype fn = (fntype)getRealProcAddressOrDie(#name); \ - return fn(arg1, arg2); \ - } \ - INTERCEPT_WHEN_POSSIBLE(#name, name); - -#define WRAP_W_WWW(name) \ - extern "C" void *name(void *arg1, void *arg2, void *arg3) { \ - typedef decltype(name) *fntype; \ - static fntype fn = (fntype)getRealProcAddressOrDie(#name); \ - return fn(arg1, arg2, arg3); \ - } \ - INTERCEPT_WHEN_POSSIBLE(#name, name); - -#define WRAP_W_WWWW(name) \ - extern "C" void *name(void *arg1, void *arg2, void *arg3, void *arg4) { \ - typedef decltype(name) *fntype; \ - static fntype fn = (fntype)getRealProcAddressOrDie(#name); \ - return fn(arg1, arg2, arg3, arg4); \ - } \ - INTERCEPT_WHEN_POSSIBLE(#name, name); - -#define WRAP_W_WWWWW(name) \ - extern "C" void *name(void *arg1, void *arg2, void *arg3, void *arg4, \ - void *arg5) { \ - typedef decltype(name) *fntype; \ - static fntype fn = (fntype)getRealProcAddressOrDie(#name); \ - return fn(arg1, arg2, arg3, arg4, arg5); \ - } \ - INTERCEPT_WHEN_POSSIBLE(#name, name); - -#define WRAP_W_WWWWWW(name) \ - extern "C" void *name(void *arg1, void *arg2, void *arg3, void *arg4, \ - void *arg5, void *arg6) { \ - typedef decltype(name) *fntype; \ - static fntype fn = (fntype)getRealProcAddressOrDie(#name); \ - return fn(arg1, arg2, arg3, arg4, arg5, arg6); \ - } \ - INTERCEPT_WHEN_POSSIBLE(#name, name); -// }}} - -// ----------------- ASan own interface functions -------------------- -// Don't use the INTERFACE_FUNCTION machinery for this function as we actually -// want to call it in the __asan_init interceptor. -WRAP_W_V(__asan_should_detect_stack_use_after_return) -WRAP_W_V(__asan_get_shadow_memory_dynamic_address) - -extern "C" { - int __asan_option_detect_stack_use_after_return; - uptr __asan_shadow_memory_dynamic_address; - - // Manually wrap __asan_init as we need to initialize - // __asan_option_detect_stack_use_after_return afterwards. - void __asan_init() { - typedef void (*fntype)(); - static fntype fn = 0; - // __asan_init is expected to be called by only one thread. - if (fn) return; - - fn = (fntype)getRealProcAddressOrDie("__asan_init"); - fn(); - __asan_option_detect_stack_use_after_return = - (__asan_should_detect_stack_use_after_return() != 0); - __asan_shadow_memory_dynamic_address = - (uptr)__asan_get_shadow_memory_dynamic_address(); - InterceptHooks(); - } -} - -extern "C" void __asan_version_mismatch_check() { - // Do nothing. -} - -INTERFACE_FUNCTION(__asan_handle_no_return) -INTERFACE_FUNCTION(__asan_unhandled_exception_filter) - -INTERFACE_FUNCTION(__asan_report_store1) -INTERFACE_FUNCTION(__asan_report_store2) -INTERFACE_FUNCTION(__asan_report_store4) -INTERFACE_FUNCTION(__asan_report_store8) -INTERFACE_FUNCTION(__asan_report_store16) -INTERFACE_FUNCTION(__asan_report_store_n) - -INTERFACE_FUNCTION(__asan_report_load1) -INTERFACE_FUNCTION(__asan_report_load2) -INTERFACE_FUNCTION(__asan_report_load4) -INTERFACE_FUNCTION(__asan_report_load8) -INTERFACE_FUNCTION(__asan_report_load16) -INTERFACE_FUNCTION(__asan_report_load_n) - -INTERFACE_FUNCTION(__asan_store1) -INTERFACE_FUNCTION(__asan_store2) -INTERFACE_FUNCTION(__asan_store4) -INTERFACE_FUNCTION(__asan_store8) -INTERFACE_FUNCTION(__asan_store16) -INTERFACE_FUNCTION(__asan_storeN) - -INTERFACE_FUNCTION(__asan_load1) -INTERFACE_FUNCTION(__asan_load2) -INTERFACE_FUNCTION(__asan_load4) -INTERFACE_FUNCTION(__asan_load8) -INTERFACE_FUNCTION(__asan_load16) -INTERFACE_FUNCTION(__asan_loadN) - -INTERFACE_FUNCTION(__asan_memcpy); -INTERFACE_FUNCTION(__asan_memset); -INTERFACE_FUNCTION(__asan_memmove); - -INTERFACE_FUNCTION(__asan_set_shadow_00); -INTERFACE_FUNCTION(__asan_set_shadow_f1); -INTERFACE_FUNCTION(__asan_set_shadow_f2); -INTERFACE_FUNCTION(__asan_set_shadow_f3); -INTERFACE_FUNCTION(__asan_set_shadow_f5); -INTERFACE_FUNCTION(__asan_set_shadow_f8); - -INTERFACE_FUNCTION(__asan_alloca_poison); -INTERFACE_FUNCTION(__asan_allocas_unpoison); +// ASan own interface functions. +#define INTERFACE_FUNCTION(Name) INTERCEPT_SANITIZER_FUNCTION(Name) +#define INTERFACE_WEAK_FUNCTION(Name) INTERCEPT_SANITIZER_WEAK_FUNCTION(Name) +#include "asan_interface.inc" -INTERFACE_FUNCTION(__asan_register_globals) -INTERFACE_FUNCTION(__asan_unregister_globals) +// Memory allocation functions. +INTERCEPT_WRAP_V_W(free) +INTERCEPT_WRAP_V_W(_free_base) +INTERCEPT_WRAP_V_WW(_free_dbg) -INTERFACE_FUNCTION(__asan_before_dynamic_init) -INTERFACE_FUNCTION(__asan_after_dynamic_init) +INTERCEPT_WRAP_W_W(malloc) +INTERCEPT_WRAP_W_W(_malloc_base) +INTERCEPT_WRAP_W_WWWW(_malloc_dbg) -INTERFACE_FUNCTION(__asan_poison_stack_memory) -INTERFACE_FUNCTION(__asan_unpoison_stack_memory) +INTERCEPT_WRAP_W_WW(calloc) +INTERCEPT_WRAP_W_WW(_calloc_base) +INTERCEPT_WRAP_W_WWWWW(_calloc_dbg) +INTERCEPT_WRAP_W_WWW(_calloc_impl) -INTERFACE_FUNCTION(__asan_poison_memory_region) -INTERFACE_FUNCTION(__asan_unpoison_memory_region) +INTERCEPT_WRAP_W_WW(realloc) +INTERCEPT_WRAP_W_WW(_realloc_base) +INTERCEPT_WRAP_W_WWW(_realloc_dbg) +INTERCEPT_WRAP_W_WWW(_recalloc) +INTERCEPT_WRAP_W_WWW(_recalloc_base) -INTERFACE_FUNCTION(__asan_address_is_poisoned) -INTERFACE_FUNCTION(__asan_region_is_poisoned) - -INTERFACE_FUNCTION(__asan_get_current_fake_stack) -INTERFACE_FUNCTION(__asan_addr_is_in_fake_stack) - -INTERFACE_FUNCTION(__asan_stack_malloc_0) -INTERFACE_FUNCTION(__asan_stack_malloc_1) -INTERFACE_FUNCTION(__asan_stack_malloc_2) -INTERFACE_FUNCTION(__asan_stack_malloc_3) -INTERFACE_FUNCTION(__asan_stack_malloc_4) -INTERFACE_FUNCTION(__asan_stack_malloc_5) -INTERFACE_FUNCTION(__asan_stack_malloc_6) -INTERFACE_FUNCTION(__asan_stack_malloc_7) -INTERFACE_FUNCTION(__asan_stack_malloc_8) -INTERFACE_FUNCTION(__asan_stack_malloc_9) -INTERFACE_FUNCTION(__asan_stack_malloc_10) - -INTERFACE_FUNCTION(__asan_stack_free_0) -INTERFACE_FUNCTION(__asan_stack_free_1) -INTERFACE_FUNCTION(__asan_stack_free_2) -INTERFACE_FUNCTION(__asan_stack_free_4) -INTERFACE_FUNCTION(__asan_stack_free_5) -INTERFACE_FUNCTION(__asan_stack_free_6) -INTERFACE_FUNCTION(__asan_stack_free_7) -INTERFACE_FUNCTION(__asan_stack_free_8) -INTERFACE_FUNCTION(__asan_stack_free_9) -INTERFACE_FUNCTION(__asan_stack_free_10) - -// FIXME: we might want to have a sanitizer_win_dll_thunk? -INTERFACE_FUNCTION(__sanitizer_annotate_contiguous_container) -INTERFACE_FUNCTION(__sanitizer_contiguous_container_find_bad_address) -INTERFACE_FUNCTION(__sanitizer_cov) -INTERFACE_FUNCTION(__sanitizer_cov_dump) -INTERFACE_FUNCTION(__sanitizer_dump_coverage) -INTERFACE_FUNCTION(__sanitizer_dump_trace_pc_guard_coverage) -INTERFACE_FUNCTION(__sanitizer_cov_indir_call16) -INTERFACE_FUNCTION(__sanitizer_cov_init) -INTERFACE_FUNCTION(__sanitizer_cov_module_init) -INTERFACE_FUNCTION(__sanitizer_cov_trace_basic_block) -INTERFACE_FUNCTION(__sanitizer_cov_trace_func_enter) -INTERFACE_FUNCTION(__sanitizer_cov_trace_pc_guard) -INTERFACE_FUNCTION(__sanitizer_cov_trace_pc_guard_init) -INTERFACE_FUNCTION(__sanitizer_cov_with_check) -INTERFACE_FUNCTION(__sanitizer_get_allocated_size) -INTERFACE_FUNCTION(__sanitizer_get_coverage_guards) -INTERFACE_FUNCTION(__sanitizer_get_current_allocated_bytes) -INTERFACE_FUNCTION(__sanitizer_get_estimated_allocated_size) -INTERFACE_FUNCTION(__sanitizer_get_free_bytes) -INTERFACE_FUNCTION(__sanitizer_get_heap_size) -INTERFACE_FUNCTION(__sanitizer_get_ownership) -INTERFACE_FUNCTION(__sanitizer_get_total_unique_caller_callee_pairs) -INTERFACE_FUNCTION(__sanitizer_get_total_unique_coverage) -INTERFACE_FUNCTION(__sanitizer_get_unmapped_bytes) -INTERFACE_FUNCTION(__sanitizer_maybe_open_cov_file) -INTERFACE_FUNCTION(__sanitizer_print_stack_trace) -INTERFACE_FUNCTION(__sanitizer_symbolize_pc) -INTERFACE_FUNCTION(__sanitizer_symbolize_global) -INTERFACE_FUNCTION(__sanitizer_ptr_cmp) -INTERFACE_FUNCTION(__sanitizer_ptr_sub) -INTERFACE_FUNCTION(__sanitizer_report_error_summary) -INTERFACE_FUNCTION(__sanitizer_reset_coverage) -INTERFACE_FUNCTION(__sanitizer_get_number_of_counters) -INTERFACE_FUNCTION(__sanitizer_update_counter_bitset_and_clear_counters) -INTERFACE_FUNCTION(__sanitizer_sandbox_on_notify) -INTERFACE_FUNCTION(__sanitizer_set_death_callback) -INTERFACE_FUNCTION(__sanitizer_set_report_path) -INTERFACE_FUNCTION(__sanitizer_set_report_fd) -INTERFACE_FUNCTION(__sanitizer_unaligned_load16) -INTERFACE_FUNCTION(__sanitizer_unaligned_load32) -INTERFACE_FUNCTION(__sanitizer_unaligned_load64) -INTERFACE_FUNCTION(__sanitizer_unaligned_store16) -INTERFACE_FUNCTION(__sanitizer_unaligned_store32) -INTERFACE_FUNCTION(__sanitizer_unaligned_store64) -INTERFACE_FUNCTION(__sanitizer_verify_contiguous_container) -INTERFACE_FUNCTION(__sanitizer_install_malloc_and_free_hooks) -INTERFACE_FUNCTION(__sanitizer_start_switch_fiber) -INTERFACE_FUNCTION(__sanitizer_finish_switch_fiber) -INTERFACE_FUNCTION(__sanitizer_get_module_and_offset_for_pc) - -// TODO(timurrrr): Add more interface functions on the as-needed basis. - -// ----------------- Memory allocation functions --------------------- -WRAP_V_W(free) -WRAP_V_W(_free_base) -WRAP_V_WW(_free_dbg) - -WRAP_W_W(malloc) -WRAP_W_W(_malloc_base) -WRAP_W_WWWW(_malloc_dbg) - -WRAP_W_WW(calloc) -WRAP_W_WW(_calloc_base) -WRAP_W_WWWWW(_calloc_dbg) -WRAP_W_WWW(_calloc_impl) - -WRAP_W_WW(realloc) -WRAP_W_WW(_realloc_base) -WRAP_W_WWW(_realloc_dbg) -WRAP_W_WWW(_recalloc) -WRAP_W_WWW(_recalloc_base) - -WRAP_W_W(_msize) -WRAP_W_W(_expand) -WRAP_W_W(_expand_dbg) +INTERCEPT_WRAP_W_W(_msize) +INTERCEPT_WRAP_W_W(_expand) +INTERCEPT_WRAP_W_W(_expand_dbg) // TODO(timurrrr): Might want to add support for _aligned_* allocation // functions to detect a bit more bugs. Those functions seem to wrap malloc(). @@ -405,20 +58,6 @@ WRAP_W_W(_expand_dbg) INTERCEPT_LIBRARY_FUNCTION(atoi); INTERCEPT_LIBRARY_FUNCTION(atol); - -#ifdef _WIN64 -INTERCEPT_LIBRARY_FUNCTION(__C_specific_handler); -#else -INTERCEPT_LIBRARY_FUNCTION(_except_handler3); - -// _except_handler4 checks -GS cookie which is different for each module, so we -// can't use INTERCEPT_LIBRARY_FUNCTION(_except_handler4). -INTERCEPTOR(int, _except_handler4, void *a, void *b, void *c, void *d) { - __asan_handle_no_return(); - return REAL(_except_handler4)(a, b, c, d); -} -#endif - INTERCEPT_LIBRARY_FUNCTION(frexp); INTERCEPT_LIBRARY_FUNCTION(longjmp); #if SANITIZER_INTERCEPT_MEMCHR @@ -443,41 +82,70 @@ INTERCEPT_LIBRARY_FUNCTION(strpbrk); INTERCEPT_LIBRARY_FUNCTION(strrchr); INTERCEPT_LIBRARY_FUNCTION(strspn); INTERCEPT_LIBRARY_FUNCTION(strstr); +INTERCEPT_LIBRARY_FUNCTION(strtok); INTERCEPT_LIBRARY_FUNCTION(strtol); INTERCEPT_LIBRARY_FUNCTION(wcslen); -// Must be after all the interceptor declarations due to the way INTERCEPT_HOOKS -// is defined. -void InterceptHooks() { - INTERCEPT_HOOKS(); -#ifndef _WIN64 - INTERCEPT_FUNCTION(_except_handler4); -#endif +#ifdef _WIN64 +INTERCEPT_LIBRARY_FUNCTION(__C_specific_handler); +#else +INTERCEPT_LIBRARY_FUNCTION(_except_handler3); +// _except_handler4 checks -GS cookie which is different for each module, so we +// can't use INTERCEPT_LIBRARY_FUNCTION(_except_handler4). +INTERCEPTOR(int, _except_handler4, void *a, void *b, void *c, void *d) { + __asan_handle_no_return(); + return REAL(_except_handler4)(a, b, c, d); } +#endif -// We want to call __asan_init before C/C++ initializers/constructors are -// executed, otherwise functions like memset might be invoked. -// For some strange reason, merely linking in asan_preinit.cc doesn't work -// as the callback is never called... Is link.exe doing something too smart? +// Window specific functions not included in asan_interface.inc. +INTERCEPT_WRAP_W_V(__asan_should_detect_stack_use_after_return) +INTERCEPT_WRAP_W_V(__asan_get_shadow_memory_dynamic_address) +INTERCEPT_WRAP_W_W(__asan_unhandled_exception_filter) -// In DLLs, the callbacks are expected to return 0, -// otherwise CRT initialization fails. -static int call_asan_init() { - __asan_init(); +using namespace __sanitizer; + +extern "C" { +int __asan_option_detect_stack_use_after_return; +uptr __asan_shadow_memory_dynamic_address; +} // extern "C" + +static int asan_dll_thunk_init() { + typedef void (*fntype)(); + static fntype fn = 0; + // asan_dll_thunk_init is expected to be called by only one thread. + if (fn) return 0; + + // Ensure all interception was executed. + __dll_thunk_init(); + + fn = (fntype) dllThunkGetRealAddrOrDie("__asan_init"); + fn(); + __asan_option_detect_stack_use_after_return = + (__asan_should_detect_stack_use_after_return() != 0); + __asan_shadow_memory_dynamic_address = + (uptr)__asan_get_shadow_memory_dynamic_address(); + +#ifndef _WIN64 + INTERCEPT_FUNCTION(_except_handler4); +#endif + // In DLLs, the callbacks are expected to return 0, + // otherwise CRT initialization fails. return 0; } + #pragma section(".CRT$XIB", long, read) // NOLINT -__declspec(allocate(".CRT$XIB")) int (*__asan_preinit)() = call_asan_init; +__declspec(allocate(".CRT$XIB")) int (*__asan_preinit)() = asan_dll_thunk_init; static void WINAPI asan_thread_init(void *mod, unsigned long reason, - void *reserved) { - if (reason == /*DLL_PROCESS_ATTACH=*/1) __asan_init(); + void *reserved) { + if (reason == /*DLL_PROCESS_ATTACH=*/1) asan_dll_thunk_init(); } #pragma section(".CRT$XLAB", long, read) // NOLINT __declspec(allocate(".CRT$XLAB")) void (WINAPI *__asan_tls_init)(void *, unsigned long, void *) = asan_thread_init; -ASAN_LINK_GLOBALS_WIN() +WIN_FORCE_LINK(__asan_dso_reg_hook) -#endif // ASAN_DLL_THUNK +#endif // SANITIZER_DLL_THUNK diff --git a/lib/asan/asan_win_dynamic_runtime_thunk.cc b/lib/asan/asan_win_dynamic_runtime_thunk.cc index 8e42f03c1a0d..416c73b23629 100644 --- a/lib/asan/asan_win_dynamic_runtime_thunk.cc +++ b/lib/asan/asan_win_dynamic_runtime_thunk.cc @@ -14,20 +14,24 @@ // using the default "import library" generated when linking the DLL RTL. // // This includes: +// - creating weak aliases to default implementation imported from asan dll. // - forwarding the detect_stack_use_after_return runtime option // - working around deficiencies of the MD runtime // - installing a custom SEH handler // //===----------------------------------------------------------------------===// -// Only compile this code when building asan_dynamic_runtime_thunk.lib -// Using #ifdef rather than relying on Makefiles etc. -// simplifies the build procedure. -#ifdef ASAN_DYNAMIC_RUNTIME_THUNK -#include "asan_globals_win.h" +#ifdef SANITIZER_DYNAMIC_RUNTIME_THUNK +#define SANITIZER_IMPORT_INTERFACE 1 +#include "sanitizer_common/sanitizer_win_defs.h" #define WIN32_LEAN_AND_MEAN #include <windows.h> +// Define weak alias for all weak functions imported from asan dll. +#define INTERFACE_FUNCTION(Name) +#define INTERFACE_WEAK_FUNCTION(Name) WIN_WEAK_IMPORT_DEF(Name) +#include "asan_interface.inc" + // First, declare CRT sections we'll be using in this file #pragma section(".CRT$XIB", long, read) // NOLINT #pragma section(".CRT$XID", long, read) // NOLINT @@ -122,6 +126,6 @@ __declspec(allocate(".CRT$XCAB")) int (*__asan_seh_interceptor)() = SetSEHFilter; } -ASAN_LINK_GLOBALS_WIN() +WIN_FORCE_LINK(__asan_dso_reg_hook) -#endif // ASAN_DYNAMIC_RUNTIME_THUNK +#endif // SANITIZER_DYNAMIC_RUNTIME_THUNK diff --git a/lib/asan/asan_win_weak_interception.cc b/lib/asan/asan_win_weak_interception.cc new file mode 100644 index 000000000000..ca26f914cf5f --- /dev/null +++ b/lib/asan/asan_win_weak_interception.cc @@ -0,0 +1,23 @@ +//===-- asan_win_weak_interception.cc -------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// This module should be included in Address Sanitizer when it is implemented as +// a shared library on Windows (dll), in order to delegate the calls of weak +// functions to the implementation in the main executable when a strong +// definition is provided. +//===----------------------------------------------------------------------===// +#ifdef SANITIZER_DYNAMIC +#include "sanitizer_common/sanitizer_win_weak_interception.h" +#include "asan_interface_internal.h" +// Check if strong definitions for weak functions are present in the main +// executable. If that is the case, override dll functions to point to strong +// implementations. +#define INTERFACE_FUNCTION(Name) +#define INTERFACE_WEAK_FUNCTION(Name) INTERCEPT_SANITIZER_WEAK_FUNCTION(Name) +#include "asan_interface.inc" +#endif // SANITIZER_DYNAMIC diff --git a/lib/asan/scripts/asan_symbolize.py b/lib/asan/scripts/asan_symbolize.py index d82c6773e306..1a56e44127c1 100755 --- a/lib/asan/scripts/asan_symbolize.py +++ b/lib/asan/scripts/asan_symbolize.py @@ -89,10 +89,12 @@ class LLVMSymbolizer(Symbolizer): for hint in self.dsym_hints: cmd.append('--dsym-hint=%s' % hint) if DEBUG: - print ' '.join(cmd) + print(' '.join(cmd)) try: result = subprocess.Popen(cmd, stdin=subprocess.PIPE, - stdout=subprocess.PIPE) + stdout=subprocess.PIPE, + bufsize=0, + universal_newlines=True) except OSError: result = None return result @@ -105,8 +107,8 @@ class LLVMSymbolizer(Symbolizer): try: symbolizer_input = '"%s" %s' % (binary, offset) if DEBUG: - print symbolizer_input - print >> self.pipe.stdin, symbolizer_input + print(symbolizer_input) + self.pipe.stdin.write("%s\n" % symbolizer_input) while True: function_name = self.pipe.stdout.readline().rstrip() if not function_name: @@ -151,9 +153,11 @@ class Addr2LineSymbolizer(Symbolizer): cmd += ['--demangle'] cmd += ['-e', self.binary] if DEBUG: - print ' '.join(cmd) + print(' '.join(cmd)) return subprocess.Popen(cmd, - stdin=subprocess.PIPE, stdout=subprocess.PIPE) + stdin=subprocess.PIPE, stdout=subprocess.PIPE, + bufsize=0, + universal_newlines=True) def symbolize(self, addr, binary, offset): """Overrides Symbolizer.symbolize.""" @@ -161,8 +165,8 @@ class Addr2LineSymbolizer(Symbolizer): return None lines = [] try: - print >> self.pipe.stdin, offset - print >> self.pipe.stdin, self.output_terminator + self.pipe.stdin.write("%s\n" % offset) + self.pipe.stdin.write("%s\n" % self.output_terminator) is_first_frame = True while True: function_name = self.pipe.stdout.readline().rstrip() @@ -219,7 +223,7 @@ class DarwinSymbolizer(Symbolizer): def open_atos(self): if DEBUG: - print 'atos -o %s -arch %s' % (self.binary, self.arch) + print('atos -o %s -arch %s' % (self.binary, self.arch)) cmdline = ['atos', '-o', self.binary, '-arch', self.arch] self.atos = UnbufferedLineConverter(cmdline, close_stderr=True) @@ -234,7 +238,7 @@ class DarwinSymbolizer(Symbolizer): # foo(type1, type2) (in object.name) (filename.cc:80) match = re.match('^(.*) \(in (.*)\) \((.*:\d*)\)$', atos_line) if DEBUG: - print 'atos_line: ', atos_line + print('atos_line: ', atos_line) if match: function_name = match.group(1) function_name = re.sub('\(.*?\)', '', function_name) @@ -348,7 +352,7 @@ class BreakpadSymbolizer(Symbolizer): function_name, file_name, line_no = res result = ['%s in %s %s:%d' % ( addr, function_name, file_name, line_no)] - print result + print(result) return result else: return None @@ -434,7 +438,7 @@ class SymbolizationLoop(object): self.frame_no = 0 for line in logfile: processed = self.process_line(line) - print '\n'.join(processed) + print('\n'.join(processed)) def process_line_echo(self, line): return [line.rstrip()] @@ -448,7 +452,7 @@ class SymbolizationLoop(object): if not match: return [self.current_line] if DEBUG: - print line + print(line) _, frameno_str, addr, binary, offset = match.groups() arch = "" # Arch can be embedded in the filename, e.g.: "libabc.dylib:x86_64h" diff --git a/lib/asan/tests/asan_interface_test.cc b/lib/asan/tests/asan_interface_test.cc index e4e9524e73b7..d13962b8f505 100644 --- a/lib/asan/tests/asan_interface_test.cc +++ b/lib/asan/tests/asan_interface_test.cc @@ -14,6 +14,7 @@ #include "sanitizer_common/sanitizer_internal_defs.h" #include <sanitizer/allocator_interface.h> #include <sanitizer/asan_interface.h> +#include <vector> TEST(AddressSanitizerInterface, GetEstimatedAllocatedSize) { EXPECT_EQ(0U, __sanitizer_get_estimated_allocated_size(0)); diff --git a/lib/asan/tests/asan_internal_interface_test.cc b/lib/asan/tests/asan_internal_interface_test.cc index ae4759478170..e247bb4299fa 100644 --- a/lib/asan/tests/asan_internal_interface_test.cc +++ b/lib/asan/tests/asan_internal_interface_test.cc @@ -12,6 +12,7 @@ //===----------------------------------------------------------------------===// #include "asan_interface_internal.h" #include "asan_test_utils.h" +#include <vector> TEST(AddressSanitizerInternalInterface, SetShadow) { std::vector<char> buffer(17, 0xff); diff --git a/lib/asan/tests/asan_mac_test_helpers.mm b/lib/asan/tests/asan_mac_test_helpers.mm index a7e4b9d1928b..3f8fa26d95b8 100644 --- a/lib/asan/tests/asan_mac_test_helpers.mm +++ b/lib/asan/tests/asan_mac_test_helpers.mm @@ -237,4 +237,5 @@ void TestNSURLDeallocation() { [[NSURL alloc] initWithString:@"Saved Application State" relativeToURL:base]; [u release]; + [base release]; } diff --git a/lib/asan/tests/asan_mem_test.cc b/lib/asan/tests/asan_mem_test.cc index 4a941faa0430..c3208868464e 100644 --- a/lib/asan/tests/asan_mem_test.cc +++ b/lib/asan/tests/asan_mem_test.cc @@ -11,6 +11,7 @@ // //===----------------------------------------------------------------------===// #include "asan_test_utils.h" +#include <vector> template<typename T> void MemSetOOBTestTemplate(size_t length) { @@ -76,7 +77,7 @@ TEST(AddressSanitizer, MemSetOOBTest) { // Strictly speaking we are not guaranteed to find such two pointers, // but given the structure of asan's allocator we will. static bool AllocateTwoAdjacentArrays(char **x1, char **x2, size_t size) { - vector<uintptr_t> v; + std::vector<uintptr_t> v; bool res = false; for (size_t i = 0; i < 1000U && !res; i++) { v.push_back(reinterpret_cast<uintptr_t>(new char[size])); diff --git a/lib/asan/tests/asan_noinst_test.cc b/lib/asan/tests/asan_noinst_test.cc index 65acb2839ba1..b3a235e478e3 100644 --- a/lib/asan/tests/asan_noinst_test.cc +++ b/lib/asan/tests/asan_noinst_test.cc @@ -97,6 +97,9 @@ TEST(AddressSanitizer, NoInstMallocTest) { MallocStress(ASAN_LOW_MEMORY ? 300000 : 1000000); } +#ifndef __powerpc64__ +// FIXME: This has not reliably worked on powerpc since r279664. Re-enable +// this once the problem is tracked down and fixed. TEST(AddressSanitizer, ThreadedMallocStressTest) { const int kNumThreads = 4; const int kNumIterations = (ASAN_LOW_MEMORY) ? 10000 : 100000; @@ -109,6 +112,7 @@ TEST(AddressSanitizer, ThreadedMallocStressTest) { PTHREAD_JOIN(t[i], 0); } } +#endif static void PrintShadow(const char *tag, uptr ptr, size_t size) { fprintf(stderr, "%s shadow: %lx size % 3ld: ", tag, (long)ptr, (long)size); @@ -206,6 +210,10 @@ void *ThreadedOneSizeMallocStress(void *unused) { return NULL; } +#ifndef __powerpc64__ +// FIXME: This has not reliably worked on powerpc since r279664. Re-enable +// this once the problem is tracked down and fixed. + TEST(AddressSanitizer, ThreadedOneSizeMallocStressTest) { const int kNumThreads = 4; pthread_t t[kNumThreads]; @@ -216,6 +224,7 @@ TEST(AddressSanitizer, ThreadedOneSizeMallocStressTest) { PTHREAD_JOIN(t[i], 0); } } +#endif TEST(AddressSanitizer, ShadowRegionIsPoisonedTest) { using __asan::kHighMemEnd; diff --git a/lib/asan/tests/asan_test.cc b/lib/asan/tests/asan_test.cc index 424a79e00a4a..7ac72955f487 100644 --- a/lib/asan/tests/asan_test.cc +++ b/lib/asan/tests/asan_test.cc @@ -337,8 +337,9 @@ void *ManyThreadsWorker(void *a) { return 0; } -#if !defined(__aarch64__) +#if !defined(__aarch64__) && !defined(__powerpc64__) // FIXME: Infinite loop in AArch64 (PR24389). +// FIXME: Also occasional hang on powerpc. Maybe same problem as on AArch64? TEST(AddressSanitizer, ManyThreadsTest) { const size_t kNumThreads = (SANITIZER_WORDSIZE == 32 || ASAN_AVOID_EXPENSIVE_TESTS) ? 30 : 1000; @@ -684,6 +685,7 @@ void *ThreadStackReuseFunc2(void *unused) { return 0; } +#if !defined(__thumb__) TEST(AddressSanitizer, ThreadStackReuseTest) { pthread_t t; PTHREAD_CREATE(&t, 0, ThreadStackReuseFunc1, 0); @@ -691,6 +693,7 @@ TEST(AddressSanitizer, ThreadStackReuseTest) { PTHREAD_CREATE(&t, 0, ThreadStackReuseFunc2, 0); PTHREAD_JOIN(t, 0); } +#endif #if defined(__SSE2__) #include <emmintrin.h> @@ -945,7 +948,7 @@ TEST(AddressSanitizer, ShadowGapTest) { char *addr = (char*)0x0000100000080000; # endif #endif - EXPECT_DEATH(*addr = 1, "AddressSanitizer: SEGV on unknown"); + EXPECT_DEATH(*addr = 1, "AddressSanitizer: (SEGV|BUS) on unknown"); } #endif // ASAN_NEEDS_SEGV @@ -1090,6 +1093,11 @@ TEST(AddressSanitizer, ThreadedStressStackReuseTest) { } } +// pthread_exit tries to perform unwinding stuff that leads to dlopen'ing +// libgcc_s.so. dlopen in its turn calls malloc to store "libgcc_s.so" string +// that confuses LSan on Thumb because it fails to understand that this +// allocation happens in dynamic linker and should be ignored. +#if !defined(__thumb__) static void *PthreadExit(void *a) { pthread_exit(0); return 0; @@ -1102,6 +1110,7 @@ TEST(AddressSanitizer, PthreadExitTest) { PTHREAD_JOIN(t, 0); } } +#endif // FIXME: Why does clang-cl define __EXCEPTIONS? #if defined(__EXCEPTIONS) && !defined(_WIN32) diff --git a/lib/asan/tests/asan_test_config.h b/lib/asan/tests/asan_test_config.h index 92f276307481..8493f41ef4dc 100644 --- a/lib/asan/tests/asan_test_config.h +++ b/lib/asan/tests/asan_test_config.h @@ -17,13 +17,9 @@ #ifndef ASAN_TEST_CONFIG_H #define ASAN_TEST_CONFIG_H -#include <vector> #include <string> -#include <map> using std::string; -using std::vector; -using std::map; #ifndef ASAN_UAR # error "please define ASAN_UAR" diff --git a/lib/builtins/CMakeLists.txt b/lib/builtins/CMakeLists.txt index 3cf78616ac07..161487e703d7 100644 --- a/lib/builtins/CMakeLists.txt +++ b/lib/builtins/CMakeLists.txt @@ -71,6 +71,7 @@ set(GENERIC_SOURCES extendsfdf2.c extendhfsf2.c ffsdi2.c + ffssi2.c ffsti2.c fixdfdi.c fixdfsi.c @@ -132,6 +133,7 @@ set(GENERIC_SOURCES negvdi2.c negvsi2.c negvti2.c + os_version_check.c paritydi2.c paritysi2.c parityti2.c @@ -174,15 +176,6 @@ if(COMPILER_RT_HAS_ATOMIC_KEYWORD AND NOT COMPILER_RT_EXCLUDE_ATOMIC_BUILTIN) atomic.c) endif() -set(MSVC_SOURCES - divsc3.c - divdc3.c - divxc3.c - mulsc3.c - muldc3.c - mulxc3.c) - - if(APPLE) set(GENERIC_SOURCES ${GENERIC_SOURCES} @@ -262,9 +255,9 @@ else () # MSVC x86_64/floatdidf.c x86_64/floatdisf.c x86_64/floatdixf.c - ${MSVC_SOURCES}) + ${GENERIC_SOURCES}) set(x86_64h_SOURCES ${x86_64_SOURCES}) - set(i386_SOURCES ${MSVC_SOURCES}) + set(i386_SOURCES ${GENERIC_SOURCES}) set(i686_SOURCES ${i386_SOURCES}) endif () # if (NOT MSVC) @@ -302,6 +295,13 @@ set(arm_SOURCES arm/umodsi3.S ${GENERIC_SOURCES}) +set(thumb1_SOURCES + arm/divsi3.S + arm/udivsi3.S + arm/comparesf2.S + arm/addsf3.S + ${GENERIC_SOURCES}) + set(arm_EABI_SOURCES arm/aeabi_cdcmp.S arm/aeabi_cdcmpeq_check_nan.c @@ -320,6 +320,7 @@ set(arm_EABI_SOURCES arm/aeabi_memset.S arm/aeabi_uidivmod.S arm/aeabi_uldivmod.S) + set(arm_Thumb1_JT_SOURCES arm/switch16.S arm/switch32.S @@ -401,6 +402,10 @@ elseif(NOT WIN32) ${arm_SOURCES} ${arm_EABI_SOURCES} ${arm_Thumb1_SOURCES}) + + set(thumb1_SOURCES + ${thumb1_SOURCES} + ${arm_EABI_SOURCES}) endif() set(aarch64_SOURCES @@ -431,7 +436,7 @@ set(armv7k_SOURCES ${arm_SOURCES}) set(arm64_SOURCES ${aarch64_SOURCES}) # macho_embedded archs -set(armv6m_SOURCES ${GENERIC_SOURCES}) +set(armv6m_SOURCES ${thumb1_SOURCES}) set(armv7m_SOURCES ${arm_SOURCES}) set(armv7em_SOURCES ${arm_SOURCES}) @@ -486,7 +491,7 @@ else () # Needed for clear_cache on debug mode, due to r7's usage in inline asm. # Release mode already sets it via -O2/3, Debug mode doesn't. if (${arch} STREQUAL "armhf") - list(APPEND BUILTIN_CFLAGS -fomit-frame-pointer) + list(APPEND BUILTIN_CFLAGS -fomit-frame-pointer -DCOMPILER_RT_ARMHF_TARGET) endif() add_compiler_rt_runtime(clang_rt.builtins diff --git a/lib/builtins/README.txt b/lib/builtins/README.txt index ad36e4e5279a..b3d083614ee0 100644 --- a/lib/builtins/README.txt +++ b/lib/builtins/README.txt @@ -45,6 +45,7 @@ si_int __ctzsi2(si_int a); // count trailing zeros si_int __ctzdi2(di_int a); // count trailing zeros si_int __ctzti2(ti_int a); // count trailing zeros +si_int __ffssi2(si_int a); // find least significant 1 bit si_int __ffsdi2(di_int a); // find least significant 1 bit si_int __ffsti2(ti_int a); // find least significant 1 bit diff --git a/lib/builtins/arm/addsf3.S b/lib/builtins/arm/addsf3.S new file mode 100644 index 000000000000..362b5c147ea6 --- /dev/null +++ b/lib/builtins/arm/addsf3.S @@ -0,0 +1,277 @@ +/*===-- addsf3.S - Adds two single precision floating pointer numbers-----===// + * + * The LLVM Compiler Infrastructure + * + * This file is dual licensed under the MIT and the University of Illinois Open + * Source Licenses. See LICENSE.TXT for details. + * + *===----------------------------------------------------------------------===// + * + * This file implements the __addsf3 (single precision floating pointer number + * addition with the IEEE-754 default rounding (to nearest, ties to even) + * function for the ARM Thumb1 ISA. + * + *===----------------------------------------------------------------------===*/ + +#include "../assembly.h" +#define significandBits 23 +#define typeWidth 32 + + .syntax unified + .text + .thumb + .p2align 2 + +DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_fadd, __addsf3) + +DEFINE_COMPILERRT_THUMB_FUNCTION(__addsf3) + push {r4, r5, r6, r7, lr} + // Get the absolute value of a and b. + lsls r2, r0, #1 + lsls r3, r1, #1 + lsrs r2, r2, #1 /* aAbs */ + beq LOCAL_LABEL(a_zero_nan_inf) + lsrs r3, r3, #1 /* bAbs */ + beq LOCAL_LABEL(zero_nan_inf) + + // Detect if a or b is infinity or Nan. + lsrs r6, r2, #(significandBits) + lsrs r7, r3, #(significandBits) + cmp r6, #0xFF + beq LOCAL_LABEL(zero_nan_inf) + cmp r7, #0xFF + beq LOCAL_LABEL(zero_nan_inf) + + // Swap Rep and Abs so that a and aAbs has the larger absolute value. + cmp r2, r3 + bhs LOCAL_LABEL(no_swap) + movs r4, r0 + movs r5, r2 + movs r0, r1 + movs r2, r3 + movs r1, r4 + movs r3, r5 +LOCAL_LABEL(no_swap): + + // Get the significands and shift them to give us round, guard and sticky. + lsls r4, r0, #(typeWidth - significandBits) + lsrs r4, r4, #(typeWidth - significandBits - 3) /* aSignificand << 3 */ + lsls r5, r1, #(typeWidth - significandBits) + lsrs r5, r5, #(typeWidth - significandBits - 3) /* bSignificand << 3 */ + + // Get the implicitBit. + movs r6, #1 + lsls r6, r6, #(significandBits + 3) + + // Get aExponent and set implicit bit if necessary. + lsrs r2, r2, #(significandBits) + beq LOCAL_LABEL(a_done_implicit_bit) + orrs r4, r6 +LOCAL_LABEL(a_done_implicit_bit): + + // Get bExponent and set implicit bit if necessary. + lsrs r3, r3, #(significandBits) + beq LOCAL_LABEL(b_done_implicit_bit) + orrs r5, r6 +LOCAL_LABEL(b_done_implicit_bit): + + // Get the difference in exponents. + subs r6, r2, r3 + beq LOCAL_LABEL(done_align) + + // If b is denormal, then a must be normal as align > 0, and we only need to + // right shift bSignificand by (align - 1) bits. + cmp r3, #0 + bne 1f + subs r6, r6, #1 +1: + + // No longer needs bExponent. r3 is dead here. + // Set sticky bits of b: sticky = bSignificand << (typeWidth - align). + movs r3, #(typeWidth) + subs r3, r3, r6 + movs r7, r5 + lsls r7, r3 + beq 1f + movs r7, #1 +1: + + // bSignificand = bSignificand >> align | sticky; + lsrs r5, r6 + orrs r5, r7 + bne LOCAL_LABEL(done_align) + movs r5, #1 // sticky; b is known to be non-zero. + +LOCAL_LABEL(done_align): + // isSubtraction = (aRep ^ bRep) >> 31; + movs r7, r0 + eors r7, r1 + lsrs r7, #31 + bne LOCAL_LABEL(do_substraction) + + // Same sign, do Addition. + + // aSignificand += bSignificand; + adds r4, r4, r5 + + // Check carry bit. + movs r6, #1 + lsls r6, r6, #(significandBits + 3 + 1) + movs r7, r4 + ands r7, r6 + beq LOCAL_LABEL(form_result) + // If the addition carried up, we need to right-shift the result and + // adjust the exponent. + movs r7, r4 + movs r6, #1 + ands r7, r6 // sticky = aSignificand & 1; + lsrs r4, #1 + orrs r4, r7 // result Significand + adds r2, #1 // result Exponent + // If we have overflowed the type, return +/- infinity. + cmp r2, 0xFF + beq LOCAL_LABEL(ret_inf) + +LOCAL_LABEL(form_result): + // Shift the sign, exponent and significand into place. + lsrs r0, #(typeWidth - 1) + lsls r0, #(typeWidth - 1) // Get Sign. + lsls r2, #(significandBits) + orrs r0, r2 + movs r1, r4 + lsls r4, #(typeWidth - significandBits - 3) + lsrs r4, #(typeWidth - significandBits) + orrs r0, r4 + + // Final rounding. The result may overflow to infinity, but that is the + // correct result in that case. + // roundGuardSticky = aSignificand & 0x7; + movs r2, #0x7 + ands r1, r2 + // if (roundGuardSticky > 0x4) result++; + + cmp r1, #0x4 + blt LOCAL_LABEL(done_round) + beq 1f + adds r0, #1 + pop {r4, r5, r6, r7, pc} +1: + + // if (roundGuardSticky == 0x4) result += result & 1; + movs r1, r0 + lsrs r1, #1 + bcc LOCAL_LABEL(done_round) + adds r0, r0, #1 +LOCAL_LABEL(done_round): + pop {r4, r5, r6, r7, pc} + +LOCAL_LABEL(do_substraction): + subs r4, r4, r5 // aSignificand -= bSignificand; + beq LOCAL_LABEL(ret_zero) + movs r6, r4 + cmp r2, 0 + beq LOCAL_LABEL(form_result) // if a's exp is 0, no need to normalize. + // If partial cancellation occured, we need to left-shift the result + // and adjust the exponent: + lsrs r6, r6, #(significandBits + 3) + bne LOCAL_LABEL(form_result) + + push {r0, r1, r2, r3} + movs r0, r4 + bl __clzsi2 + movs r5, r0 + pop {r0, r1, r2, r3} + // shift = rep_clz(aSignificand) - rep_clz(implicitBit << 3); + subs r5, r5, #(typeWidth - significandBits - 3 - 1) + // aSignificand <<= shift; aExponent -= shift; + lsls r4, r5 + subs r2, r2, r5 + bgt LOCAL_LABEL(form_result) + + // Do normalization if aExponent <= 0. + movs r6, #1 + subs r6, r6, r2 // 1 - aExponent; + movs r2, #0 // aExponent = 0; + movs r3, #(typeWidth) // bExponent is dead. + subs r3, r3, r6 + movs r7, r4 + lsls r7, r3 // stickyBit = (bool)(aSignificant << (typeWidth - align)) + beq 1f + movs r7, #1 +1: + lsrs r4, r6 /* aSignificand >> shift */ + orrs r4, r7 + b LOCAL_LABEL(form_result) + +LOCAL_LABEL(ret_zero): + movs r0, #0 + pop {r4, r5, r6, r7, pc} + + +LOCAL_LABEL(a_zero_nan_inf): + lsrs r3, r3, #1 + +LOCAL_LABEL(zero_nan_inf): + // Here r2 has aAbs, r3 has bAbs + movs r4, #0xFF + lsls r4, r4, #(significandBits) // Make +inf. + + cmp r2, r4 + bhi LOCAL_LABEL(a_is_nan) + cmp r3, r4 + bhi LOCAL_LABEL(b_is_nan) + + cmp r2, r4 + bne LOCAL_LABEL(a_is_rational) + // aAbs is INF. + eors r1, r0 // aRep ^ bRep. + movs r6, #1 + lsls r6, r6, #(typeWidth - 1) // get sign mask. + cmp r1, r6 // if they only differ on sign bit, it's -INF + INF + beq LOCAL_LABEL(a_is_nan) + pop {r4, r5, r6, r7, pc} + +LOCAL_LABEL(a_is_rational): + cmp r3, r4 + bne LOCAL_LABEL(b_is_rational) + movs r0, r1 + pop {r4, r5, r6, r7, pc} + +LOCAL_LABEL(b_is_rational): + // either a or b or both are zero. + adds r4, r2, r3 + beq LOCAL_LABEL(both_zero) + cmp r2, #0 // is absA 0 ? + beq LOCAL_LABEL(ret_b) + pop {r4, r5, r6, r7, pc} + +LOCAL_LABEL(both_zero): + ands r0, r1 // +0 + -0 = +0 + pop {r4, r5, r6, r7, pc} + +LOCAL_LABEL(ret_b): + movs r0, r1 + +LOCAL_LABEL(ret): + pop {r4, r5, r6, r7, pc} + +LOCAL_LABEL(b_is_nan): + movs r0, r1 +LOCAL_LABEL(a_is_nan): + movs r1, #1 + lsls r1, r1, #(significandBits -1) // r1 is quiet bit. + orrs r0, r1 + pop {r4, r5, r6, r7, pc} + +LOCAL_LABEL(ret_inf): + movs r4, #0xFF + lsls r4, r4, #(significandBits) + orrs r0, r4 + lsrs r0, r0, #(significandBits) + lsls r0, r0, #(significandBits) + pop {r4, r5, r6, r7, pc} + + +END_COMPILERRT_FUNCTION(__addsf3) + +NO_EXEC_STACK_DIRECTIVE diff --git a/lib/builtins/arm/aeabi_cdcmp.S b/lib/builtins/arm/aeabi_cdcmp.S index 8008f5fca262..b67814d9f20b 100644 --- a/lib/builtins/arm/aeabi_cdcmp.S +++ b/lib/builtins/arm/aeabi_cdcmp.S @@ -30,6 +30,19 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_cdcmpeq) push {r0-r3, lr} bl __aeabi_cdcmpeq_check_nan cmp r0, #1 +#if __ARM_ARCH_ISA_THUMB == 1 + beq 1f + // NaN has been ruled out, so __aeabi_cdcmple can't trap + mov r0, sp + ldm r0, {r0-r3} + bl __aeabi_cdcmple + pop {r0-r3, pc} +1: + // Z = 0, C = 1 + movs r0, #0xF + lsls r0, r0, #31 + pop {r0-r3, pc} +#else pop {r0-r3, lr} // NaN has been ruled out, so __aeabi_cdcmple can't trap @@ -37,6 +50,7 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_cdcmpeq) msr CPSR_f, #APSR_C JMP(lr) +#endif END_COMPILERRT_FUNCTION(__aeabi_cdcmpeq) @@ -59,6 +73,28 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_cdcmple) bl __aeabi_dcmplt cmp r0, #1 +#if __ARM_ARCH_ISA_THUMB == 1 + bne 1f + // Z = 0, C = 0 + movs r0, #1 + lsls r0, r0, #1 + pop {r0-r3, pc} +1: + mov r0, sp + ldm r0, {r0-r3} + bl __aeabi_dcmpeq + cmp r0, #1 + bne 2f + // Z = 1, C = 1 + movs r0, #2 + lsls r0, r0, #31 + pop {r0-r3, pc} +2: + // Z = 0, C = 1 + movs r0, #0xF + lsls r0, r0, #31 + pop {r0-r3, pc} +#else moveq ip, #0 beq 1f @@ -72,6 +108,7 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_cdcmple) msr CPSR_f, ip pop {r0-r3} POP_PC() +#endif END_COMPILERRT_FUNCTION(__aeabi_cdcmple) // int __aeabi_cdrcmple(double a, double b) { diff --git a/lib/builtins/arm/aeabi_cfcmp.S b/lib/builtins/arm/aeabi_cfcmp.S index 274baf7aecf2..e37aa3d06c4e 100644 --- a/lib/builtins/arm/aeabi_cfcmp.S +++ b/lib/builtins/arm/aeabi_cfcmp.S @@ -30,6 +30,19 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_cfcmpeq) push {r0-r3, lr} bl __aeabi_cfcmpeq_check_nan cmp r0, #1 +#if __ARM_ARCH_ISA_THUMB == 1 + beq 1f + // NaN has been ruled out, so __aeabi_cfcmple can't trap + mov r0, sp + ldm r0, {r0-r3} + bl __aeabi_cfcmple + pop {r0-r3, pc} +1: + // Z = 0, C = 1 + movs r0, #0xF + lsls r0, r0, #31 + pop {r0-r3, pc} +#else pop {r0-r3, lr} // NaN has been ruled out, so __aeabi_cfcmple can't trap @@ -37,6 +50,7 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_cfcmpeq) msr CPSR_f, #APSR_C JMP(lr) +#endif END_COMPILERRT_FUNCTION(__aeabi_cfcmpeq) @@ -59,6 +73,28 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_cfcmple) bl __aeabi_fcmplt cmp r0, #1 +#if __ARM_ARCH_ISA_THUMB == 1 + bne 1f + // Z = 0, C = 0 + movs r0, #1 + lsls r0, r0, #1 + pop {r0-r3, pc} +1: + mov r0, sp + ldm r0, {r0-r3} + bl __aeabi_fcmpeq + cmp r0, #1 + bne 2f + // Z = 1, C = 1 + movs r0, #2 + lsls r0, r0, #31 + pop {r0-r3, pc} +2: + // Z = 0, C = 1 + movs r0, #0xF + lsls r0, r0, #31 + pop {r0-r3, pc} +#else moveq ip, #0 beq 1f @@ -72,6 +108,7 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_cfcmple) msr CPSR_f, ip pop {r0-r3} POP_PC() +#endif END_COMPILERRT_FUNCTION(__aeabi_cfcmple) // int __aeabi_cfrcmple(float a, float b) { diff --git a/lib/builtins/arm/aeabi_dcmp.S b/lib/builtins/arm/aeabi_dcmp.S index 43e439268d9a..51539c0ac813 100644 --- a/lib/builtins/arm/aeabi_dcmp.S +++ b/lib/builtins/arm/aeabi_dcmp.S @@ -26,10 +26,10 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_dcmp ## cond) \ bl SYMBOL_NAME(__ ## cond ## df2) SEPARATOR \ cmp r0, #0 SEPARATOR \ b ## cond 1f SEPARATOR \ - mov r0, #0 SEPARATOR \ + movs r0, #0 SEPARATOR \ pop { r4, pc } SEPARATOR \ 1: SEPARATOR \ - mov r0, #1 SEPARATOR \ + movs r0, #1 SEPARATOR \ pop { r4, pc } SEPARATOR \ END_COMPILERRT_FUNCTION(__aeabi_dcmp ## cond) diff --git a/lib/builtins/arm/aeabi_idivmod.S b/lib/builtins/arm/aeabi_idivmod.S index b43ea699058d..0164b15dca18 100644 --- a/lib/builtins/arm/aeabi_idivmod.S +++ b/lib/builtins/arm/aeabi_idivmod.S @@ -26,7 +26,7 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_idivmod) push {r0, r1, lr} bl SYMBOL_NAME(__divsi3) pop {r1, r2, r3} // now r0 = quot, r1 = num, r2 = denom - muls r2, r2, r0 // r2 = quot * denom + muls r2, r0, r2 // r2 = quot * denom subs r1, r1, r2 JMP (r3) #else diff --git a/lib/builtins/arm/aeabi_ldivmod.S b/lib/builtins/arm/aeabi_ldivmod.S index 3dae14ef07ec..038ae5d723a3 100644 --- a/lib/builtins/arm/aeabi_ldivmod.S +++ b/lib/builtins/arm/aeabi_ldivmod.S @@ -23,23 +23,23 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__aeabi_ldivmod) - push {r11, lr} + push {r6, lr} sub sp, sp, #16 - add r12, sp, #8 - str r12, [sp] + add r6, sp, #8 + str r6, [sp] #if defined(__MINGW32__) - mov r12, r0 - mov r0, r2 - mov r2, r12 - mov r12, r1 - mov r1, r3 - mov r3, r12 + movs r6, r0 + movs r0, r2 + movs r2, r6 + movs r6, r1 + movs r1, r3 + movs r3, r6 #endif bl SYMBOL_NAME(__divmoddi4) ldr r2, [sp, #8] ldr r3, [sp, #12] add sp, sp, #16 - pop {r11, pc} + pop {r6, pc} END_COMPILERRT_FUNCTION(__aeabi_ldivmod) NO_EXEC_STACK_DIRECTIVE diff --git a/lib/builtins/arm/aeabi_memset.S b/lib/builtins/arm/aeabi_memset.S index 48edd89705be..633f592279b5 100644 --- a/lib/builtins/arm/aeabi_memset.S +++ b/lib/builtins/arm/aeabi_memset.S @@ -26,7 +26,7 @@ DEFINE_AEABI_FUNCTION_ALIAS(__aeabi_memset8, __aeabi_memset) DEFINE_COMPILERRT_FUNCTION(__aeabi_memclr) mov r2, r1 - mov r1, #0 + movs r1, #0 b memset END_COMPILERRT_FUNCTION(__aeabi_memclr) diff --git a/lib/builtins/arm/aeabi_uidivmod.S b/lib/builtins/arm/aeabi_uidivmod.S index 7098bc6ff92e..a627fc740a02 100644 --- a/lib/builtins/arm/aeabi_uidivmod.S +++ b/lib/builtins/arm/aeabi_uidivmod.S @@ -29,7 +29,7 @@ DEFINE_COMPILERRT_FUNCTION(__aeabi_uidivmod) push {r0, r1, lr} bl SYMBOL_NAME(__aeabi_uidiv) pop {r1, r2, r3} - muls r2, r2, r0 // r2 = quot * denom + muls r2, r0, r2 // r2 = quot * denom subs r1, r1, r2 JMP (r3) LOCAL_LABEL(case_denom_larger): diff --git a/lib/builtins/arm/aeabi_uldivmod.S b/lib/builtins/arm/aeabi_uldivmod.S index bc26e5674ca0..be343b6bc826 100644 --- a/lib/builtins/arm/aeabi_uldivmod.S +++ b/lib/builtins/arm/aeabi_uldivmod.S @@ -23,23 +23,23 @@ .syntax unified .p2align 2 DEFINE_COMPILERRT_FUNCTION(__aeabi_uldivmod) - push {r11, lr} + push {r6, lr} sub sp, sp, #16 - add r12, sp, #8 - str r12, [sp] + add r6, sp, #8 + str r6, [sp] #if defined(__MINGW32__) - mov r12, r0 - mov r0, r2 - mov r2, r12 - mov r12, r1 - mov r1, r3 - mov r3, r12 + movs r6, r0 + movs r0, r2 + movs r2, r6 + movs r6, r1 + movs r1, r3 + movs r3, r6 #endif bl SYMBOL_NAME(__udivmoddi4) ldr r2, [sp, #8] ldr r3, [sp, #12] add sp, sp, #16 - pop {r11, pc} + pop {r6, pc} END_COMPILERRT_FUNCTION(__aeabi_uldivmod) NO_EXEC_STACK_DIRECTIVE diff --git a/lib/builtins/arm/comparesf2.S b/lib/builtins/arm/comparesf2.S index a5b7e36487d6..ef7091bf3c8f 100644 --- a/lib/builtins/arm/comparesf2.S +++ b/lib/builtins/arm/comparesf2.S @@ -69,7 +69,7 @@ DEFINE_COMPILERRT_FUNCTION(__eqsf2) // the subsequent operations. #if __ARM_ARCH_ISA_THUMB == 1 lsrs r6, r3, #1 - orrs r6, r2, r6 + orrs r6, r2 #else orrs r12, r2, r3, lsr #1 #endif @@ -194,7 +194,7 @@ DEFINE_COMPILERRT_FUNCTION(__gtsf2) lsls r2, r0, #1 lsls r3, r1, #1 lsrs r6, r3, #1 - orrs r6, r2, r6 + orrs r6, r2 beq 1f movs r6, r0 eors r6, r1 diff --git a/lib/builtins/arm/udivsi3.S b/lib/builtins/arm/udivsi3.S index fcc472b4f3d9..b97b3080bff4 100644 --- a/lib/builtins/arm/udivsi3.S +++ b/lib/builtins/arm/udivsi3.S @@ -37,7 +37,16 @@ DEFINE_COMPILERRT_FUNCTION(__udivsi3) beq LOCAL_LABEL(divby0) udiv r0, r0, r1 bx lr -#else + +LOCAL_LABEL(divby0): + mov r0, #0 +# ifdef __ARM_EABI__ + b __aeabi_idiv0 +# else + JMP(lr) +# endif + +#else /* ! __ARM_ARCH_EXT_IDIV__ */ cmp r1, #1 bcc LOCAL_LABEL(divby0) #if __ARM_ARCH_ISA_THUMB == 1 @@ -186,9 +195,12 @@ LOCAL_LABEL(skip_1): LOCAL_LABEL(divby0): movs r0, #0 # if defined(__ARM_EABI__) + push {r7, lr} bl __aeabi_idiv0 // due to relocation limit, can't use b. -# endif + pop {r7, pc} +# else JMP(lr) +# endif #if __ARM_ARCH_ISA_THUMB == 1 @@ -252,16 +264,6 @@ LOCAL_LABEL(div0block): JMP(lr) #endif /* __ARM_ARCH_EXT_IDIV__ */ -#if __ARM_ARCH_EXT_IDIV__ -LOCAL_LABEL(divby0): - mov r0, #0 -# ifdef __ARM_EABI__ - b __aeabi_idiv0 -# else - JMP(lr) -# endif -#endif - END_COMPILERRT_FUNCTION(__udivsi3) NO_EXEC_STACK_DIRECTIVE diff --git a/lib/builtins/clear_cache.c b/lib/builtins/clear_cache.c index 4c2ac3b1eb05..25570fc2157a 100644 --- a/lib/builtins/clear_cache.c +++ b/lib/builtins/clear_cache.c @@ -82,10 +82,6 @@ uintptr_t GetCurrentProcess(void); #endif #endif -#if defined(__linux__) && defined(__arm__) - #include <asm/unistd.h> -#endif - /* * The compiler generates calls to __clear_cache() when creating * trampoline functions on the stack for use with nested functions. @@ -94,7 +90,7 @@ uintptr_t GetCurrentProcess(void); */ void __clear_cache(void *start, void *end) { -#if __i386__ || __x86_64__ +#if __i386__ || __x86_64__ || defined(_M_IX86) || defined(_M_X64) /* * Intel processors have a unified instruction and data cache * so there is nothing to do @@ -108,6 +104,15 @@ void __clear_cache(void *start, void *end) { sysarch(ARM_SYNC_ICACHE, &arg); #elif defined(__linux__) + /* + * We used to include asm/unistd.h for the __ARM_NR_cacheflush define, but + * it also brought many other unused defines, as well as a dependency on + * kernel headers to be installed. + * + * This value is stable at least since Linux 3.13 and should remain so for + * compatibility reasons, warranting it's re-definition here. + */ + #define __ARM_NR_cacheflush 0x0f0002 register int start_reg __asm("r0") = (int) (intptr_t) start; const register int end_reg __asm("r1") = (int) (intptr_t) end; const register int flags __asm("r2") = 0; diff --git a/lib/builtins/cpu_model.c b/lib/builtins/cpu_model.c index 9a3737020a4e..5ff6baf43876 100644 --- a/lib/builtins/cpu_model.c +++ b/lib/builtins/cpu_model.c @@ -27,6 +27,10 @@ #include <intrin.h> #endif +#ifndef __has_attribute +#define __has_attribute(attr) 0 +#endif + enum VendorSignatures { SIG_INTEL = 0x756e6547 /* Genu */, SIG_AMD = 0x68747541 /* Auth */ @@ -720,14 +724,17 @@ static unsigned getAvailableFeatures(unsigned int ECX, unsigned int EDX, return Features; } -#ifdef HAVE_INIT_PRIORITY -#define CONSTRUCTOR_PRIORITY (101) +#if defined(HAVE_INIT_PRIORITY) +#define CONSTRUCTOR_ATTRIBUTE __attribute__((__constructor__ 101)) +#elif __has_attribute(__constructor__) +#define CONSTRUCTOR_ATTRIBUTE __attribute__((__constructor__)) #else -#define CONSTRUCTOR_PRIORITY +// FIXME: For MSVC, we should make a function pointer global in .CRT$X?? so that +// this runs during initialization. +#define CONSTRUCTOR_ATTRIBUTE #endif -int __cpu_indicator_init(void) - __attribute__((constructor CONSTRUCTOR_PRIORITY)); +int __cpu_indicator_init(void) CONSTRUCTOR_ATTRIBUTE; struct __processor_model { unsigned int __cpu_vendor; @@ -742,7 +749,7 @@ struct __processor_model { the priority set. However, it still runs after ifunc initializers and needs to be called explicitly there. */ -int __attribute__((constructor CONSTRUCTOR_PRIORITY)) +int CONSTRUCTOR_ATTRIBUTE __cpu_indicator_init(void) { unsigned int EAX, EBX, ECX, EDX; unsigned int MaxLeaf = 5; diff --git a/lib/builtins/divtc3.c b/lib/builtins/divtc3.c index 04693df471ff..16e538ba4a33 100644 --- a/lib/builtins/divtc3.c +++ b/lib/builtins/divtc3.c @@ -17,7 +17,7 @@ /* Returns: the quotient of (a + ib) / (c + id) */ -COMPILER_RT_ABI long double _Complex +COMPILER_RT_ABI Lcomplex __divtc3(long double __a, long double __b, long double __c, long double __d) { int __ilogbw = 0; @@ -29,31 +29,31 @@ __divtc3(long double __a, long double __b, long double __c, long double __d) __d = crt_scalbnl(__d, -__ilogbw); } long double __denom = __c * __c + __d * __d; - long double _Complex z; - __real__ z = crt_scalbnl((__a * __c + __b * __d) / __denom, -__ilogbw); - __imag__ z = crt_scalbnl((__b * __c - __a * __d) / __denom, -__ilogbw); - if (crt_isnan(__real__ z) && crt_isnan(__imag__ z)) + Lcomplex z; + COMPLEX_REAL(z) = crt_scalbnl((__a * __c + __b * __d) / __denom, -__ilogbw); + COMPLEX_IMAGINARY(z) = crt_scalbnl((__b * __c - __a * __d) / __denom, -__ilogbw); + if (crt_isnan(COMPLEX_REAL(z)) && crt_isnan(COMPLEX_IMAGINARY(z))) { if ((__denom == 0.0) && (!crt_isnan(__a) || !crt_isnan(__b))) { - __real__ z = crt_copysignl(CRT_INFINITY, __c) * __a; - __imag__ z = crt_copysignl(CRT_INFINITY, __c) * __b; + COMPLEX_REAL(z) = crt_copysignl(CRT_INFINITY, __c) * __a; + COMPLEX_IMAGINARY(z) = crt_copysignl(CRT_INFINITY, __c) * __b; } else if ((crt_isinf(__a) || crt_isinf(__b)) && crt_isfinite(__c) && crt_isfinite(__d)) { __a = crt_copysignl(crt_isinf(__a) ? 1.0 : 0.0, __a); __b = crt_copysignl(crt_isinf(__b) ? 1.0 : 0.0, __b); - __real__ z = CRT_INFINITY * (__a * __c + __b * __d); - __imag__ z = CRT_INFINITY * (__b * __c - __a * __d); + COMPLEX_REAL(z) = CRT_INFINITY * (__a * __c + __b * __d); + COMPLEX_IMAGINARY(z) = CRT_INFINITY * (__b * __c - __a * __d); } else if (crt_isinf(__logbw) && __logbw > 0.0 && crt_isfinite(__a) && crt_isfinite(__b)) { __c = crt_copysignl(crt_isinf(__c) ? 1.0 : 0.0, __c); __d = crt_copysignl(crt_isinf(__d) ? 1.0 : 0.0, __d); - __real__ z = 0.0 * (__a * __c + __b * __d); - __imag__ z = 0.0 * (__b * __c - __a * __d); + COMPLEX_REAL(z) = 0.0 * (__a * __c + __b * __d); + COMPLEX_IMAGINARY(z) = 0.0 * (__b * __c - __a * __d); } } return z; diff --git a/lib/builtins/ffssi2.c b/lib/builtins/ffssi2.c new file mode 100644 index 000000000000..e5180eff5e08 --- /dev/null +++ b/lib/builtins/ffssi2.c @@ -0,0 +1,29 @@ +/* ===-- ffssi2.c - Implement __ffssi2 -------------------------------------=== + * + * The LLVM Compiler Infrastructure + * + * This file is dual licensed under the MIT and the University of Illinois Open + * Source Licenses. See LICENSE.TXT for details. + * + * ===----------------------------------------------------------------------=== + * + * This file implements __ffssi2 for the compiler_rt library. + * + * ===----------------------------------------------------------------------=== + */ + +#include "int_lib.h" + +/* Returns: the index of the least significant 1-bit in a, or + * the value zero if a is zero. The least significant bit is index one. + */ + +COMPILER_RT_ABI si_int +__ffssi2(si_int a) +{ + if (a == 0) + { + return 0; + } + return __builtin_ctz(a) + 1; +} diff --git a/lib/builtins/int_lib.h b/lib/builtins/int_lib.h index 39eee18d9149..8a202dde70f1 100644 --- a/lib/builtins/int_lib.h +++ b/lib/builtins/int_lib.h @@ -32,7 +32,11 @@ #if __ARM_EABI__ # define ARM_EABI_FNALIAS(aeabi_name, name) \ void __aeabi_##aeabi_name() __attribute__((alias("__" #name))); -# define COMPILER_RT_ABI __attribute__((pcs("aapcs"))) +# ifdef COMPILER_RT_ARMHF_TARGET +# define COMPILER_RT_ABI +# else +# define COMPILER_RT_ABI __attribute__((pcs("aapcs"))) +# endif #else # define ARM_EABI_FNALIAS(aeabi_name, name) # define COMPILER_RT_ABI diff --git a/lib/builtins/os_version_check.c b/lib/builtins/os_version_check.c new file mode 100644 index 000000000000..74ade2f5b966 --- /dev/null +++ b/lib/builtins/os_version_check.c @@ -0,0 +1,178 @@ +/* ===-- os_version_check.c - OS version checking -------------------------=== + * + * The LLVM Compiler Infrastructure + * + * This file is dual licensed under the MIT and the University of Illinois Open + * Source Licenses. See LICENSE.TXT for details. + * + * ===----------------------------------------------------------------------=== + * + * This file implements the function __isOSVersionAtLeast, used by + * Objective-C's @available + * + * ===----------------------------------------------------------------------=== + */ + +#ifdef __APPLE__ + +#include <CoreFoundation/CoreFoundation.h> +#include <dispatch/dispatch.h> +#include <TargetConditionals.h> +#include <dlfcn.h> +#include <stdint.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +/* These three variables hold the host's OS version. */ +static int32_t GlobalMajor, GlobalMinor, GlobalSubminor; +static dispatch_once_t DispatchOnceCounter; + +/* Find and parse the SystemVersion.plist file. */ +static void parseSystemVersionPList(void *Unused) { + (void)Unused; + /* Load CoreFoundation dynamically */ + const void *NullAllocator = dlsym(RTLD_DEFAULT, "kCFAllocatorNull"); + if (!NullAllocator) + return; + const CFAllocatorRef kCFAllocatorNull = + *(const CFAllocatorRef *)NullAllocator; + typeof(CFDataCreateWithBytesNoCopy) *CFDataCreateWithBytesNoCopyFunc = + (typeof(CFDataCreateWithBytesNoCopy) *)dlsym( + RTLD_DEFAULT, "CFDataCreateWithBytesNoCopy"); + if (!CFDataCreateWithBytesNoCopyFunc) + return; + typeof(CFPropertyListCreateWithData) *CFPropertyListCreateWithDataFunc = + (typeof(CFPropertyListCreateWithData) *)dlsym( + RTLD_DEFAULT, "CFPropertyListCreateWithData"); + /* CFPropertyListCreateWithData was introduced only in macOS 10.6+, so it + * will be NULL on earlier OS versions. */ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + typeof(CFPropertyListCreateFromXMLData) *CFPropertyListCreateFromXMLDataFunc = + (typeof(CFPropertyListCreateFromXMLData) *)dlsym( + RTLD_DEFAULT, "CFPropertyListCreateFromXMLData"); +#pragma clang diagnostic pop + /* CFPropertyListCreateFromXMLDataFunc is deprecated in macOS 10.10, so it + * might be NULL in future OS versions. */ + if (!CFPropertyListCreateWithDataFunc && !CFPropertyListCreateFromXMLDataFunc) + return; + typeof(CFStringCreateWithCStringNoCopy) *CFStringCreateWithCStringNoCopyFunc = + (typeof(CFStringCreateWithCStringNoCopy) *)dlsym( + RTLD_DEFAULT, "CFStringCreateWithCStringNoCopy"); + if (!CFStringCreateWithCStringNoCopyFunc) + return; + typeof(CFDictionaryGetValue) *CFDictionaryGetValueFunc = + (typeof(CFDictionaryGetValue) *)dlsym(RTLD_DEFAULT, + "CFDictionaryGetValue"); + if (!CFDictionaryGetValueFunc) + return; + typeof(CFGetTypeID) *CFGetTypeIDFunc = + (typeof(CFGetTypeID) *)dlsym(RTLD_DEFAULT, "CFGetTypeID"); + if (!CFGetTypeIDFunc) + return; + typeof(CFStringGetTypeID) *CFStringGetTypeIDFunc = + (typeof(CFStringGetTypeID) *)dlsym(RTLD_DEFAULT, "CFStringGetTypeID"); + if (!CFStringGetTypeIDFunc) + return; + typeof(CFStringGetCString) *CFStringGetCStringFunc = + (typeof(CFStringGetCString) *)dlsym(RTLD_DEFAULT, "CFStringGetCString"); + if (!CFStringGetCStringFunc) + return; + typeof(CFRelease) *CFReleaseFunc = + (typeof(CFRelease) *)dlsym(RTLD_DEFAULT, "CFRelease"); + if (!CFReleaseFunc) + return; + + char *PListPath = "/System/Library/CoreServices/SystemVersion.plist"; + +#if TARGET_OS_SIMULATOR + char *PListPathPrefix = getenv("IPHONE_SIMULATOR_ROOT"); + if (!PListPathPrefix) + return; + char FullPath[strlen(PListPathPrefix) + strlen(PListPath) + 1]; + strcpy(FullPath, PListPathPrefix); + strcat(FullPath, PListPath); + PListPath = FullPath; +#endif + FILE *PropertyList = fopen(PListPath, "r"); + if (!PropertyList) + return; + + /* Dynamically allocated stuff. */ + CFDictionaryRef PListRef = NULL; + CFDataRef FileContentsRef = NULL; + UInt8 *PListBuf = NULL; + + fseek(PropertyList, 0, SEEK_END); + long PListFileSize = ftell(PropertyList); + if (PListFileSize < 0) + goto Fail; + rewind(PropertyList); + + PListBuf = malloc((size_t)PListFileSize); + if (!PListBuf) + goto Fail; + + size_t NumRead = fread(PListBuf, 1, (size_t)PListFileSize, PropertyList); + if (NumRead != (size_t)PListFileSize) + goto Fail; + + /* Get the file buffer into CF's format. We pass in a null allocator here * + * because we free PListBuf ourselves */ + FileContentsRef = (*CFDataCreateWithBytesNoCopyFunc)( + NULL, PListBuf, (CFIndex)NumRead, kCFAllocatorNull); + if (!FileContentsRef) + goto Fail; + + if (CFPropertyListCreateWithDataFunc) + PListRef = (*CFPropertyListCreateWithDataFunc)( + NULL, FileContentsRef, kCFPropertyListImmutable, NULL, NULL); + else + PListRef = (*CFPropertyListCreateFromXMLDataFunc)( + NULL, FileContentsRef, kCFPropertyListImmutable, NULL); + if (!PListRef) + goto Fail; + + CFStringRef ProductVersion = (*CFStringCreateWithCStringNoCopyFunc)( + NULL, "ProductVersion", kCFStringEncodingASCII, kCFAllocatorNull); + if (!ProductVersion) + goto Fail; + CFTypeRef OpaqueValue = (*CFDictionaryGetValueFunc)(PListRef, ProductVersion); + (*CFReleaseFunc)(ProductVersion); + if (!OpaqueValue || + (*CFGetTypeIDFunc)(OpaqueValue) != (*CFStringGetTypeIDFunc)()) + goto Fail; + + char VersionStr[32]; + if (!(*CFStringGetCStringFunc)((CFStringRef)OpaqueValue, VersionStr, + sizeof(VersionStr), kCFStringEncodingUTF8)) + goto Fail; + sscanf(VersionStr, "%d.%d.%d", &GlobalMajor, &GlobalMinor, &GlobalSubminor); + +Fail: + if (PListRef) + (*CFReleaseFunc)(PListRef); + if (FileContentsRef) + (*CFReleaseFunc)(FileContentsRef); + free(PListBuf); + fclose(PropertyList); +} + +int32_t __isOSVersionAtLeast(int32_t Major, int32_t Minor, int32_t Subminor) { + /* Populate the global version variables, if they haven't already. */ + dispatch_once_f(&DispatchOnceCounter, NULL, parseSystemVersionPList); + + if (Major < GlobalMajor) return 1; + if (Major > GlobalMajor) return 0; + if (Minor < GlobalMinor) return 1; + if (Minor > GlobalMinor) return 0; + return Subminor <= GlobalSubminor; +} + +#else + +/* Silence an empty translation unit warning. */ +typedef int unused; + +#endif diff --git a/lib/builtins/x86_64/floatdidf.c b/lib/builtins/x86_64/floatdidf.c index 388404e5e089..dead0ed42c65 100644 --- a/lib/builtins/x86_64/floatdidf.c +++ b/lib/builtins/x86_64/floatdidf.c @@ -4,7 +4,7 @@ /* double __floatdidf(di_int a); */ -#ifdef __x86_64__ +#if defined(__x86_64__) || defined(_M_X64) #include "../int_lib.h" diff --git a/lib/builtins/x86_64/floatdisf.c b/lib/builtins/x86_64/floatdisf.c index 96c3728e92c3..99d5621c6327 100644 --- a/lib/builtins/x86_64/floatdisf.c +++ b/lib/builtins/x86_64/floatdisf.c @@ -2,7 +2,7 @@ * License. See LICENSE.TXT for details. */ -#ifdef __x86_64__ +#if defined(__x86_64__) || defined(_M_X64) #include "../int_lib.h" diff --git a/lib/cfi/cfi.cc b/lib/cfi/cfi.cc index d463ca8daf50..f720230a70be 100644 --- a/lib/cfi/cfi.cc +++ b/lib/cfi/cfi.cc @@ -188,12 +188,14 @@ uptr find_cfi_check_in_dso(dl_phdr_info *info) { } } if (!dynamic) return 0; - uptr strtab = 0, symtab = 0; + uptr strtab = 0, symtab = 0, strsz = 0; for (const ElfW(Dyn) *p = dynamic; p->d_tag != PT_NULL; ++p) { if (p->d_tag == DT_SYMTAB) symtab = p->d_un.d_ptr; else if (p->d_tag == DT_STRTAB) strtab = p->d_un.d_ptr; + else if (p->d_tag == DT_STRSZ) + strsz = p->d_un.d_ptr; } if (symtab > strtab) { @@ -209,7 +211,8 @@ uptr find_cfi_check_in_dso(dl_phdr_info *info) { if (phdr->p_type == PT_LOAD) { uptr beg = info->dlpi_addr + phdr->p_vaddr; uptr end = beg + phdr->p_memsz; - if (strtab >= beg && strtab < end && symtab >= beg && symtab < end) + if (strtab >= beg && strtab + strsz < end && symtab >= beg && + symtab < end) break; } } @@ -222,9 +225,14 @@ uptr find_cfi_check_in_dso(dl_phdr_info *info) { for (const ElfW(Sym) *p = (const ElfW(Sym) *)symtab; (ElfW(Addr))p < strtab; ++p) { + // There is no reliable way to find the end of the symbol table. In + // lld-produces files, there are other sections between symtab and strtab. + // Stop looking when the symbol name is not inside strtab. + if (p->st_name >= strsz) break; char *name = (char*)(strtab + p->st_name); if (strcmp(name, "__cfi_check") == 0) { - assert(p->st_info == ELF32_ST_INFO(STB_GLOBAL, STT_FUNC)); + assert(p->st_info == ELF32_ST_INFO(STB_GLOBAL, STT_FUNC) || + p->st_info == ELF32_ST_INFO(STB_WEAK, STT_FUNC)); uptr addr = info->dlpi_addr + p->st_value; return addr; } diff --git a/lib/esan/esan_interceptors.cpp b/lib/esan/esan_interceptors.cpp index 9ae5482a3cad..9740f4dae8fa 100644 --- a/lib/esan/esan_interceptors.cpp +++ b/lib/esan/esan_interceptors.cpp @@ -304,20 +304,6 @@ INTERCEPTOR(int, unlink, char *path) { return REAL(unlink)(path); } -INTERCEPTOR(uptr, fread, void *ptr, uptr size, uptr nmemb, void *f) { - void *ctx; - COMMON_INTERCEPTOR_ENTER(ctx, fread, ptr, size, nmemb, f); - COMMON_INTERCEPTOR_WRITE_RANGE(ctx, ptr, size * nmemb); - return REAL(fread)(ptr, size, nmemb, f); -} - -INTERCEPTOR(uptr, fwrite, const void *p, uptr size, uptr nmemb, void *f) { - void *ctx; - COMMON_INTERCEPTOR_ENTER(ctx, fwrite, p, size, nmemb, f); - COMMON_INTERCEPTOR_READ_RANGE(ctx, p, size * nmemb); - return REAL(fwrite)(p, size, nmemb, f); -} - INTERCEPTOR(int, puts, const char *s) { void *ctx; COMMON_INTERCEPTOR_ENTER(ctx, puts, s); diff --git a/lib/interception/interception_win.cc b/lib/interception/interception_win.cc index 91abecf6de5f..e4f3d358f40c 100644 --- a/lib/interception/interception_win.cc +++ b/lib/interception/interception_win.cc @@ -878,6 +878,8 @@ uptr InternalGetProcAddress(void *module, const char *func_name) { IMAGE_DATA_DIRECTORY *export_directory = &headers->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_EXPORT]; + if (export_directory->Size == 0) + return 0; RVAPtr<IMAGE_EXPORT_DIRECTORY> exports(module, export_directory->VirtualAddress); RVAPtr<DWORD> functions(module, exports->AddressOfFunctions); diff --git a/lib/interception/tests/interception_win_test.cc b/lib/interception/tests/interception_win_test.cc index 684ee0303559..a705768d6d5d 100644 --- a/lib/interception/tests/interception_win_test.cc +++ b/lib/interception/tests/interception_win_test.cc @@ -613,6 +613,13 @@ TEST(Interception, PatchableFunctionPadding) { EXPECT_FALSE(TestFunctionPatching(kUnpatchableCode6, override, prefix)); } +TEST(Interception, EmptyExportTable) { + // We try to get a pointer to a function from an executable that doesn't + // export any symbol (empty export table). + uptr FunPtr = InternalGetProcAddress((void *)GetModuleHandleA(0), "example"); + EXPECT_EQ(0U, FunPtr); +} + } // namespace __interception #endif // SANITIZER_WINDOWS diff --git a/lib/lsan/CMakeLists.txt b/lib/lsan/CMakeLists.txt index b782f2421dc2..55c825f5c6ea 100644 --- a/lib/lsan/CMakeLists.txt +++ b/lib/lsan/CMakeLists.txt @@ -5,12 +5,15 @@ append_rtti_flag(OFF LSAN_CFLAGS) set(LSAN_COMMON_SOURCES lsan_common.cc - lsan_common_linux.cc) + lsan_common_linux.cc + lsan_common_mac.cc) set(LSAN_SOURCES lsan.cc lsan_allocator.cc + lsan_linux.cc lsan_interceptors.cc + lsan_malloc_mac.cc lsan_preinit.cc lsan_thread.cc) @@ -24,16 +27,34 @@ add_compiler_rt_object_libraries(RTLSanCommon if(COMPILER_RT_HAS_LSAN) add_compiler_rt_component(lsan) - foreach(arch ${LSAN_SUPPORTED_ARCH}) + if(APPLE) + add_weak_symbols("lsan" WEAK_SYMBOL_LINK_FLAGS) + add_weak_symbols("sanitizer_common" WEAK_SYMBOL_LINK_FLAGS) + add_compiler_rt_runtime(clang_rt.lsan - STATIC - ARCHS ${arch} + SHARED + OS ${SANITIZER_COMMON_SUPPORTED_OS} + ARCHS ${LSAN_SUPPORTED_ARCH} SOURCES ${LSAN_SOURCES} - $<TARGET_OBJECTS:RTInterception.${arch}> - $<TARGET_OBJECTS:RTSanitizerCommon.${arch}> - $<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}> - $<TARGET_OBJECTS:RTLSanCommon.${arch}> + OBJECT_LIBS RTLSanCommon + RTInterception + RTSanitizerCommon + RTSanitizerCommonLibc CFLAGS ${LSAN_CFLAGS} + LINK_FLAGS ${WEAK_SYMBOL_LINK_FLAGS} PARENT_TARGET lsan) - endforeach() + else() + foreach(arch ${LSAN_SUPPORTED_ARCH}) + add_compiler_rt_runtime(clang_rt.lsan + STATIC + ARCHS ${arch} + SOURCES ${LSAN_SOURCES} + $<TARGET_OBJECTS:RTInterception.${arch}> + $<TARGET_OBJECTS:RTSanitizerCommon.${arch}> + $<TARGET_OBJECTS:RTSanitizerCommonLibc.${arch}> + $<TARGET_OBJECTS:RTLSanCommon.${arch}> + CFLAGS ${LSAN_CFLAGS} + PARENT_TARGET lsan) + endforeach() + endif() endif() diff --git a/lib/lsan/lsan.cc b/lib/lsan/lsan.cc index c7c34299147d..6c4767d61252 100644 --- a/lib/lsan/lsan.cc +++ b/lib/lsan/lsan.cc @@ -76,6 +76,7 @@ extern "C" void __lsan_init() { InitializeFlags(); InitCommonLsan(); InitializeAllocator(); + ReplaceSystemMalloc(); InitTlsSize(); InitializeInterceptors(); InitializeThreadRegistry(); diff --git a/lib/lsan/lsan.h b/lib/lsan/lsan.h index ec5eb93dc155..1061d2fcfde7 100644 --- a/lib/lsan/lsan.h +++ b/lib/lsan/lsan.h @@ -41,6 +41,13 @@ namespace __lsan { void InitializeInterceptors(); +void ReplaceSystemMalloc(); + +#define ENSURE_LSAN_INITED do { \ + CHECK(!lsan_init_is_running); \ + if (!lsan_inited) \ + __lsan_init(); \ +} while (0) } // namespace __lsan diff --git a/lib/lsan/lsan_allocator.cc b/lib/lsan/lsan_allocator.cc index c805a39e1cc5..011979eee396 100644 --- a/lib/lsan/lsan_allocator.cc +++ b/lib/lsan/lsan_allocator.cc @@ -24,44 +24,18 @@ extern "C" void *memset(void *ptr, int value, uptr num); namespace __lsan { - -struct ChunkMetadata { - u8 allocated : 8; // Must be first. - ChunkTag tag : 2; - uptr requested_size : 54; - u32 stack_trace_id; -}; - -#if defined(__mips64) || defined(__aarch64__) +#if defined(__i386__) || defined(__arm__) +static const uptr kMaxAllowedMallocSize = 1UL << 30; +#elif defined(__mips64) || defined(__aarch64__) static const uptr kMaxAllowedMallocSize = 4UL << 30; -static const uptr kRegionSizeLog = 20; -static const uptr kNumRegions = SANITIZER_MMAP_RANGE_SIZE >> kRegionSizeLog; -typedef TwoLevelByteMap<(kNumRegions >> 12), 1 << 12> ByteMap; -typedef CompactSizeClassMap SizeClassMap; -typedef SizeClassAllocator32<0, SANITIZER_MMAP_RANGE_SIZE, - sizeof(ChunkMetadata), SizeClassMap, kRegionSizeLog, ByteMap> - PrimaryAllocator; #else static const uptr kMaxAllowedMallocSize = 8UL << 30; - -struct AP64 { // Allocator64 parameters. Deliberately using a short name. - static const uptr kSpaceBeg = 0x600000000000ULL; - static const uptr kSpaceSize = 0x40000000000ULL; // 4T. - static const uptr kMetadataSize = sizeof(ChunkMetadata); - typedef DefaultSizeClassMap SizeClassMap; - typedef NoOpMapUnmapCallback MapUnmapCallback; - static const uptr kFlags = 0; -}; - -typedef SizeClassAllocator64<AP64> PrimaryAllocator; #endif -typedef SizeClassAllocatorLocalCache<PrimaryAllocator> AllocatorCache; typedef LargeMmapAllocator<> SecondaryAllocator; typedef CombinedAllocator<PrimaryAllocator, AllocatorCache, SecondaryAllocator> Allocator; static Allocator allocator; -static THREADLOCAL AllocatorCache cache; void InitializeAllocator() { allocator.InitLinkerInitialized( @@ -70,7 +44,7 @@ void InitializeAllocator() { } void AllocatorThreadFinish() { - allocator.SwallowCache(&cache); + allocator.SwallowCache(GetAllocatorCache()); } static ChunkMetadata *Metadata(const void *p) { @@ -102,7 +76,7 @@ void *Allocate(const StackTrace &stack, uptr size, uptr alignment, Report("WARNING: LeakSanitizer failed to allocate %zu bytes\n", size); return nullptr; } - void *p = allocator.Allocate(&cache, size, alignment, false); + void *p = allocator.Allocate(GetAllocatorCache(), size, alignment, false); // Do not rely on the allocator to clear the memory (it's slow). if (cleared && allocator.FromPrimary(p)) memset(p, 0, size); @@ -116,7 +90,7 @@ void Deallocate(void *p) { if (&__sanitizer_free_hook) __sanitizer_free_hook(p); RunFreeHooks(p); RegisterDeallocation(p); - allocator.Deallocate(&cache, p); + allocator.Deallocate(GetAllocatorCache(), p); } void *Reallocate(const StackTrace &stack, void *p, uptr new_size, @@ -124,17 +98,17 @@ void *Reallocate(const StackTrace &stack, void *p, uptr new_size, RegisterDeallocation(p); if (new_size > kMaxAllowedMallocSize) { Report("WARNING: LeakSanitizer failed to allocate %zu bytes\n", new_size); - allocator.Deallocate(&cache, p); + allocator.Deallocate(GetAllocatorCache(), p); return nullptr; } - p = allocator.Reallocate(&cache, p, new_size, alignment); + p = allocator.Reallocate(GetAllocatorCache(), p, new_size, alignment); RegisterAllocation(stack, p, new_size); return p; } void GetAllocatorCacheRange(uptr *begin, uptr *end) { - *begin = (uptr)&cache; - *end = *begin + sizeof(cache); + *begin = (uptr)GetAllocatorCache(); + *end = *begin + sizeof(AllocatorCache); } uptr GetMallocUsableSize(const void *p) { @@ -143,6 +117,37 @@ uptr GetMallocUsableSize(const void *p) { return m->requested_size; } +void *lsan_memalign(uptr alignment, uptr size, const StackTrace &stack) { + return Allocate(stack, size, alignment, kAlwaysClearMemory); +} + +void *lsan_malloc(uptr size, const StackTrace &stack) { + return Allocate(stack, size, 1, kAlwaysClearMemory); +} + +void lsan_free(void *p) { + Deallocate(p); +} + +void *lsan_realloc(void *p, uptr size, const StackTrace &stack) { + return Reallocate(stack, p, size, 1); +} + +void *lsan_calloc(uptr nmemb, uptr size, const StackTrace &stack) { + size *= nmemb; + return Allocate(stack, size, 1, true); +} + +void *lsan_valloc(uptr size, const StackTrace &stack) { + if (size == 0) + size = GetPageSizeCached(); + return Allocate(stack, size, GetPageSizeCached(), kAlwaysClearMemory); +} + +uptr lsan_mz_size(const void *p) { + return GetMallocUsableSize(p); +} + ///// Interface to the common LSan module. ///// void LockAllocator() { diff --git a/lib/lsan/lsan_allocator.h b/lib/lsan/lsan_allocator.h index f564601193bd..e5def17d4ee9 100644 --- a/lib/lsan/lsan_allocator.h +++ b/lib/lsan/lsan_allocator.h @@ -15,8 +15,10 @@ #ifndef LSAN_ALLOCATOR_H #define LSAN_ALLOCATOR_H +#include "sanitizer_common/sanitizer_allocator.h" #include "sanitizer_common/sanitizer_common.h" #include "sanitizer_common/sanitizer_internal_defs.h" +#include "lsan_common.h" namespace __lsan { @@ -34,6 +36,53 @@ void GetAllocatorCacheRange(uptr *begin, uptr *end); void AllocatorThreadFinish(); void InitializeAllocator(); +const bool kAlwaysClearMemory = true; + +struct ChunkMetadata { + u8 allocated : 8; // Must be first. + ChunkTag tag : 2; +#if SANITIZER_WORDSIZE == 64 + uptr requested_size : 54; +#else + uptr requested_size : 32; + uptr padding : 22; +#endif + u32 stack_trace_id; +}; + +#if defined(__mips64) || defined(__aarch64__) || defined(__i386__) || \ + defined(__arm__) +static const uptr kRegionSizeLog = 20; +static const uptr kNumRegions = SANITIZER_MMAP_RANGE_SIZE >> kRegionSizeLog; +typedef TwoLevelByteMap<(kNumRegions >> 12), 1 << 12> ByteMap; +typedef CompactSizeClassMap SizeClassMap; +typedef SizeClassAllocator32<0, SANITIZER_MMAP_RANGE_SIZE, + sizeof(ChunkMetadata), SizeClassMap, kRegionSizeLog, ByteMap> + PrimaryAllocator; +#elif defined(__x86_64__) +struct AP64 { // Allocator64 parameters. Deliberately using a short name. + static const uptr kSpaceBeg = 0x600000000000ULL; + static const uptr kSpaceSize = 0x40000000000ULL; // 4T. + static const uptr kMetadataSize = sizeof(ChunkMetadata); + typedef DefaultSizeClassMap SizeClassMap; + typedef NoOpMapUnmapCallback MapUnmapCallback; + static const uptr kFlags = 0; +}; + +typedef SizeClassAllocator64<AP64> PrimaryAllocator; +#endif +typedef SizeClassAllocatorLocalCache<PrimaryAllocator> AllocatorCache; + +AllocatorCache *GetAllocatorCache(); + +void *lsan_memalign(uptr alignment, uptr size, const StackTrace &stack); +void *lsan_malloc(uptr size, const StackTrace &stack); +void lsan_free(void *p); +void *lsan_realloc(void *p, uptr size, const StackTrace &stack); +void *lsan_calloc(uptr nmemb, uptr size, const StackTrace &stack); +void *lsan_valloc(uptr size, const StackTrace &stack); +uptr lsan_mz_size(const void *p); + } // namespace __lsan #endif // LSAN_ALLOCATOR_H diff --git a/lib/lsan/lsan_common.cc b/lib/lsan/lsan_common.cc index f0554526b76f..6cc73749812b 100644 --- a/lib/lsan/lsan_common.cc +++ b/lib/lsan/lsan_common.cc @@ -32,20 +32,15 @@ namespace __lsan { // also to protect the global list of root regions. BlockingMutex global_mutex(LINKER_INITIALIZED); -__attribute__((tls_model("initial-exec"))) -THREADLOCAL int disable_counter; -bool DisabledInThisThread() { return disable_counter > 0; } -void DisableInThisThread() { disable_counter++; } -void EnableInThisThread() { - if (!disable_counter && common_flags()->detect_leaks) { +Flags lsan_flags; + +void DisableCounterUnderflow() { + if (common_flags()->detect_leaks) { Report("Unmatched call to __lsan_enable().\n"); Die(); } - disable_counter--; } -Flags lsan_flags; - void Flags::SetDefaults() { #define LSAN_FLAG(Type, Name, DefaultValue, Description) Name = DefaultValue; #include "lsan_flags.inc" @@ -180,6 +175,23 @@ void ScanRangeForPointers(uptr begin, uptr end, } } +// Scans a global range for pointers +void ScanGlobalRange(uptr begin, uptr end, Frontier *frontier) { + uptr allocator_begin = 0, allocator_end = 0; + GetAllocatorGlobalRange(&allocator_begin, &allocator_end); + if (begin <= allocator_begin && allocator_begin < end) { + CHECK_LE(allocator_begin, allocator_end); + CHECK_LE(allocator_end, end); + if (begin < allocator_begin) + ScanRangeForPointers(begin, allocator_begin, frontier, "GLOBAL", + kReachable); + if (allocator_end < end) + ScanRangeForPointers(allocator_end, end, frontier, "GLOBAL", kReachable); + } else { + ScanRangeForPointers(begin, end, frontier, "GLOBAL", kReachable); + } +} + void ForEachExtraStackRangeCb(uptr begin, uptr end, void* arg) { Frontier *frontier = reinterpret_cast<Frontier *>(arg); ScanRangeForPointers(begin, end, frontier, "FAKE STACK", kReachable); @@ -206,11 +218,13 @@ static void ProcessThreads(SuspendedThreadsList const &suspended_threads, continue; } uptr sp; - bool have_registers = - (suspended_threads.GetRegistersAndSP(i, registers.data(), &sp) == 0); - if (!have_registers) { - Report("Unable to get registers from thread %d.\n"); - // If unable to get SP, consider the entire stack to be reachable. + PtraceRegistersStatus have_registers = + suspended_threads.GetRegistersAndSP(i, registers.data(), &sp); + if (have_registers != REGISTERS_AVAILABLE) { + Report("Unable to get registers from thread %d.\n", os_id); + // If unable to get SP, consider the entire stack to be reachable unless + // GetRegistersAndSP failed with ESRCH. + if (have_registers == REGISTERS_UNAVAILABLE_FATAL) continue; sp = stack_begin; } @@ -258,7 +272,7 @@ static void ProcessThreads(SuspendedThreadsList const &suspended_threads, if (tls_end > cache_end) ScanRangeForPointers(cache_end, tls_end, frontier, "TLS", kReachable); } - if (dtls) { + if (dtls && !DTLSInDestruction(dtls)) { for (uptr j = 0; j < dtls->dtv_size; ++j) { uptr dtls_beg = dtls->dtv[j].beg; uptr dtls_end = dtls_beg + dtls->dtv[j].size; @@ -268,6 +282,10 @@ static void ProcessThreads(SuspendedThreadsList const &suspended_threads, kReachable); } } + } else { + // We are handling a thread with DTLS under destruction. Log about + // this and continue. + LOG_THREADS("Thread %d has DTLS under destruction.\n", os_id); } } } diff --git a/lib/lsan/lsan_common.h b/lib/lsan/lsan_common.h index 890ce6562c82..919be0ec2662 100644 --- a/lib/lsan/lsan_common.h +++ b/lib/lsan/lsan_common.h @@ -22,8 +22,23 @@ #include "sanitizer_common/sanitizer_stoptheworld.h" #include "sanitizer_common/sanitizer_symbolizer.h" -#if (SANITIZER_LINUX && !SANITIZER_ANDROID) && (SANITIZER_WORDSIZE == 64) \ - && (defined(__x86_64__) || defined(__mips64) || defined(__aarch64__)) +// LeakSanitizer relies on some Glibc's internals (e.g. TLS machinery) thus +// supported for Linux only. Also, LSan doesn't like 32 bit architectures +// because of "small" (4 bytes) pointer size that leads to high false negative +// ratio on large leaks. But we still want to have it for some 32 bit arches +// (e.g. x86), see https://github.com/google/sanitizers/issues/403. +// To enable LeakSanitizer on new architecture, one need to implement +// internal_clone function as well as (probably) adjust TLS machinery for +// new architecture inside sanitizer library. +#if (SANITIZER_LINUX && !SANITIZER_ANDROID || SANITIZER_MAC) && \ + (SANITIZER_WORDSIZE == 64) && \ + (defined(__x86_64__) || defined(__mips64) || defined(__aarch64__)) +#define CAN_SANITIZE_LEAKS 1 +#elif defined(__i386__) && \ + (SANITIZER_LINUX && !SANITIZER_ANDROID || SANITIZER_MAC) +#define CAN_SANITIZE_LEAKS 1 +#elif defined(__arm__) && \ + SANITIZER_LINUX && !SANITIZER_ANDROID #define CAN_SANITIZE_LEAKS 1 #else #define CAN_SANITIZE_LEAKS 0 @@ -44,6 +59,8 @@ enum ChunkTag { kIgnored = 3 }; +const u32 kInvalidTid = (u32) -1; + struct Flags { #define LSAN_FLAG(Type, Name, DefaultValue, Description) Type Name; #include "lsan_flags.inc" @@ -107,6 +124,7 @@ void DoStopTheWorld(StopTheWorldCallback callback, void* argument); void ScanRangeForPointers(uptr begin, uptr end, Frontier *frontier, const char *region_type, ChunkTag tag); +void ScanGlobalRange(uptr begin, uptr end, Frontier *frontier); enum IgnoreObjectResult { kIgnoreObjectSuccess, @@ -117,6 +135,7 @@ enum IgnoreObjectResult { // Functions called from the parent tool. void InitCommonLsan(); void DoLeakCheck(); +void DisableCounterUnderflow(); bool DisabledInThisThread(); // Used to implement __lsan::ScopedDisabler. @@ -129,13 +148,36 @@ struct ScopedInterceptorDisabler { ~ScopedInterceptorDisabler() { EnableInThisThread(); } }; +// According to Itanium C++ ABI array cookie is a one word containing +// size of allocated array. +static inline bool IsItaniumABIArrayCookie(uptr chunk_beg, uptr chunk_size, + uptr addr) { + return chunk_size == sizeof(uptr) && chunk_beg + chunk_size == addr && + *reinterpret_cast<uptr *>(chunk_beg) == 0; +} + +// According to ARM C++ ABI array cookie consists of two words: +// struct array_cookie { +// std::size_t element_size; // element_size != 0 +// std::size_t element_count; +// }; +static inline bool IsARMABIArrayCookie(uptr chunk_beg, uptr chunk_size, + uptr addr) { + return chunk_size == 2 * sizeof(uptr) && chunk_beg + chunk_size == addr && + *reinterpret_cast<uptr *>(chunk_beg + sizeof(uptr)) == 0; +} + // Special case for "new T[0]" where T is a type with DTOR. -// new T[0] will allocate one word for the array size (0) and store a pointer -// to the end of allocated chunk. +// new T[0] will allocate a cookie (one or two words) for the array size (0) +// and store a pointer to the end of allocated chunk. The actual cookie layout +// varies between platforms according to their C++ ABI implementation. inline bool IsSpecialCaseOfOperatorNew0(uptr chunk_beg, uptr chunk_size, uptr addr) { - return chunk_size == sizeof(uptr) && chunk_beg + chunk_size == addr && - *reinterpret_cast<uptr *>(chunk_beg) == 0; +#if defined(__arm__) + return IsARMABIArrayCookie(chunk_beg, chunk_size, addr); +#else + return IsItaniumABIArrayCookie(chunk_beg, chunk_size, addr); +#endif } // The following must be implemented in the parent tool. diff --git a/lib/lsan/lsan_common_linux.cc b/lib/lsan/lsan_common_linux.cc index f6154d8b97d1..0d1e998a5cfe 100644 --- a/lib/lsan/lsan_common_linux.cc +++ b/lib/lsan/lsan_common_linux.cc @@ -34,6 +34,17 @@ static bool IsLinker(const char* full_name) { return LibraryNameIs(full_name, kLinkerName); } +__attribute__((tls_model("initial-exec"))) +THREADLOCAL int disable_counter; +bool DisabledInThisThread() { return disable_counter > 0; } +void DisableInThisThread() { disable_counter++; } +void EnableInThisThread() { + if (disable_counter == 0) { + DisableCounterUnderflow(); + } + disable_counter--; +} + void InitializePlatformSpecificModules() { ListOfModules modules; modules.init(); @@ -67,20 +78,7 @@ static int ProcessGlobalRegionsCallback(struct dl_phdr_info *info, size_t size, continue; uptr begin = info->dlpi_addr + phdr->p_vaddr; uptr end = begin + phdr->p_memsz; - uptr allocator_begin = 0, allocator_end = 0; - GetAllocatorGlobalRange(&allocator_begin, &allocator_end); - if (begin <= allocator_begin && allocator_begin < end) { - CHECK_LE(allocator_begin, allocator_end); - CHECK_LE(allocator_end, end); - if (begin < allocator_begin) - ScanRangeForPointers(begin, allocator_begin, frontier, "GLOBAL", - kReachable); - if (allocator_end < end) - ScanRangeForPointers(allocator_end, end, frontier, "GLOBAL", - kReachable); - } else { - ScanRangeForPointers(begin, end, frontier, "GLOBAL", kReachable); - } + ScanGlobalRange(begin, end, frontier); } return 0; } diff --git a/lib/lsan/lsan_common_mac.cc b/lib/lsan/lsan_common_mac.cc new file mode 100644 index 000000000000..022e73937895 --- /dev/null +++ b/lib/lsan/lsan_common_mac.cc @@ -0,0 +1,126 @@ +//=-- lsan_common_mac.cc --------------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file is a part of LeakSanitizer. +// Implementation of common leak checking functionality. Darwin-specific code. +// +//===----------------------------------------------------------------------===// + +#include "sanitizer_common/sanitizer_platform.h" +#include "lsan_common.h" + +#if CAN_SANITIZE_LEAKS && SANITIZER_MAC + +#include "sanitizer_common/sanitizer_allocator_internal.h" +#include "lsan_allocator.h" + +#include <pthread.h> + +namespace __lsan { + +typedef struct { + int disable_counter; + u32 current_thread_id; + AllocatorCache cache; +} thread_local_data_t; + +static pthread_key_t key; +static pthread_once_t key_once = PTHREAD_ONCE_INIT; + +// The main thread destructor requires the current thread id, +// so we can't destroy it until it's been used and reset to invalid tid +void restore_tid_data(void *ptr) { + thread_local_data_t *data = (thread_local_data_t *)ptr; + if (data->current_thread_id != kInvalidTid) + pthread_setspecific(key, data); +} + +static void make_tls_key() { + CHECK_EQ(pthread_key_create(&key, restore_tid_data), 0); +} + +static thread_local_data_t *get_tls_val(bool alloc) { + pthread_once(&key_once, make_tls_key); + + thread_local_data_t *ptr = (thread_local_data_t *)pthread_getspecific(key); + if (ptr == NULL && alloc) { + ptr = (thread_local_data_t *)InternalAlloc(sizeof(*ptr)); + ptr->disable_counter = 0; + ptr->current_thread_id = kInvalidTid; + ptr->cache = AllocatorCache(); + pthread_setspecific(key, ptr); + } + + return ptr; +} + +bool DisabledInThisThread() { + thread_local_data_t *data = get_tls_val(false); + return data ? data->disable_counter > 0 : false; +} + +void DisableInThisThread() { ++get_tls_val(true)->disable_counter; } + +void EnableInThisThread() { + int *disable_counter = &get_tls_val(true)->disable_counter; + if (*disable_counter == 0) { + DisableCounterUnderflow(); + } + --*disable_counter; +} + +u32 GetCurrentThread() { + thread_local_data_t *data = get_tls_val(false); + CHECK(data); + return data->current_thread_id; +} + +void SetCurrentThread(u32 tid) { get_tls_val(true)->current_thread_id = tid; } + +AllocatorCache *GetAllocatorCache() { return &get_tls_val(true)->cache; } + +// Required on Linux for initialization of TLS behavior, but should not be +// required on Darwin. +void InitializePlatformSpecificModules() { + if (flags()->use_tls) { + Report("use_tls=1 is not supported on Darwin.\n"); + Die(); + } +} + +// Scans global variables for heap pointers. +void ProcessGlobalRegions(Frontier *frontier) { + MemoryMappingLayout memory_mapping(false); + InternalMmapVector<LoadedModule> modules(/*initial_capacity*/ 128); + memory_mapping.DumpListOfModules(&modules); + for (uptr i = 0; i < modules.size(); ++i) { + // Even when global scanning is disabled, we still need to scan + // system libraries for stashed pointers + if (!flags()->use_globals && modules[i].instrumented()) continue; + + for (const __sanitizer::LoadedModule::AddressRange &range : + modules[i].ranges()) { + if (range.executable) continue; + + ScanGlobalRange(range.beg, range.end, frontier); + } + } +} + +void ProcessPlatformSpecificAllocations(Frontier *frontier) { + CHECK(0 && "unimplemented"); +} + +void DoStopTheWorld(StopTheWorldCallback callback, void *argument) { + CHECK(0 && "unimplemented"); +} + +} // namespace __lsan + +#endif // CAN_SANITIZE_LEAKS && SANITIZER_MAC diff --git a/lib/lsan/lsan_flags.inc b/lib/lsan/lsan_flags.inc index e390e2ae5a1b..8135bdcff01a 100644 --- a/lib/lsan/lsan_flags.inc +++ b/lib/lsan/lsan_flags.inc @@ -30,7 +30,7 @@ LSAN_FLAG(bool, use_globals, true, "Root set: include global variables (.data and .bss)") LSAN_FLAG(bool, use_stacks, true, "Root set: include thread stacks") LSAN_FLAG(bool, use_registers, true, "Root set: include thread registers") -LSAN_FLAG(bool, use_tls, true, +LSAN_FLAG(bool, use_tls, !SANITIZER_MAC, "Root set: include TLS and thread-specific storage") LSAN_FLAG(bool, use_root_regions, true, "Root set: include regions added via __lsan_register_root_region().") diff --git a/lib/lsan/lsan_interceptors.cc b/lib/lsan/lsan_interceptors.cc index 12190175949f..fe1f49bcdeba 100644 --- a/lib/lsan/lsan_interceptors.cc +++ b/lib/lsan/lsan_interceptors.cc @@ -21,12 +21,15 @@ #include "sanitizer_common/sanitizer_linux.h" #include "sanitizer_common/sanitizer_platform_interceptors.h" #include "sanitizer_common/sanitizer_platform_limits_posix.h" +#include "sanitizer_common/sanitizer_posix.h" #include "sanitizer_common/sanitizer_tls_get_addr.h" #include "lsan.h" #include "lsan_allocator.h" #include "lsan_common.h" #include "lsan_thread.h" +#include <stddef.h> + using namespace __lsan; extern "C" { @@ -37,29 +40,22 @@ int pthread_key_create(unsigned *key, void (*destructor)(void* v)); int pthread_setspecific(unsigned key, const void *v); } -#define ENSURE_LSAN_INITED do { \ - CHECK(!lsan_init_is_running); \ - if (!lsan_inited) \ - __lsan_init(); \ -} while (0) - ///// Malloc/free interceptors. ///// -const bool kAlwaysClearMemory = true; - namespace std { struct nothrow_t; } +#if !SANITIZER_MAC INTERCEPTOR(void*, malloc, uptr size) { ENSURE_LSAN_INITED; GET_STACK_TRACE_MALLOC; - return Allocate(stack, size, 1, kAlwaysClearMemory); + return lsan_malloc(size, stack); } INTERCEPTOR(void, free, void *p) { ENSURE_LSAN_INITED; - Deallocate(p); + lsan_free(p); } INTERCEPTOR(void*, calloc, uptr nmemb, uptr size) { @@ -77,28 +73,42 @@ INTERCEPTOR(void*, calloc, uptr nmemb, uptr size) { if (CallocShouldReturnNullDueToOverflow(size, nmemb)) return nullptr; ENSURE_LSAN_INITED; GET_STACK_TRACE_MALLOC; - size *= nmemb; - return Allocate(stack, size, 1, true); + return lsan_calloc(nmemb, size, stack); } INTERCEPTOR(void*, realloc, void *q, uptr size) { ENSURE_LSAN_INITED; GET_STACK_TRACE_MALLOC; - return Reallocate(stack, q, size, 1); + return lsan_realloc(q, size, stack); +} + +INTERCEPTOR(int, posix_memalign, void **memptr, uptr alignment, uptr size) { + ENSURE_LSAN_INITED; + GET_STACK_TRACE_MALLOC; + *memptr = lsan_memalign(alignment, size, stack); + // FIXME: Return ENOMEM if user requested more than max alloc size. + return 0; +} + +INTERCEPTOR(void*, valloc, uptr size) { + ENSURE_LSAN_INITED; + GET_STACK_TRACE_MALLOC; + return lsan_valloc(size, stack); } +#endif #if SANITIZER_INTERCEPT_MEMALIGN INTERCEPTOR(void*, memalign, uptr alignment, uptr size) { ENSURE_LSAN_INITED; GET_STACK_TRACE_MALLOC; - return Allocate(stack, size, alignment, kAlwaysClearMemory); + return lsan_memalign(alignment, size, stack); } #define LSAN_MAYBE_INTERCEPT_MEMALIGN INTERCEPT_FUNCTION(memalign) INTERCEPTOR(void *, __libc_memalign, uptr alignment, uptr size) { ENSURE_LSAN_INITED; GET_STACK_TRACE_MALLOC; - void *res = Allocate(stack, size, alignment, kAlwaysClearMemory); + void *res = lsan_memalign(alignment, size, stack); DTLS_on_libc_memalign(res, size); return res; } @@ -108,32 +118,27 @@ INTERCEPTOR(void *, __libc_memalign, uptr alignment, uptr size) { #define LSAN_MAYBE_INTERCEPT___LIBC_MEMALIGN #endif // SANITIZER_INTERCEPT_MEMALIGN +#if SANITIZER_INTERCEPT_ALIGNED_ALLOC INTERCEPTOR(void*, aligned_alloc, uptr alignment, uptr size) { ENSURE_LSAN_INITED; GET_STACK_TRACE_MALLOC; - return Allocate(stack, size, alignment, kAlwaysClearMemory); -} - -INTERCEPTOR(int, posix_memalign, void **memptr, uptr alignment, uptr size) { - ENSURE_LSAN_INITED; - GET_STACK_TRACE_MALLOC; - *memptr = Allocate(stack, size, alignment, kAlwaysClearMemory); - // FIXME: Return ENOMEM if user requested more than max alloc size. - return 0; -} - -INTERCEPTOR(void*, valloc, uptr size) { - ENSURE_LSAN_INITED; - GET_STACK_TRACE_MALLOC; - if (size == 0) - size = GetPageSizeCached(); - return Allocate(stack, size, GetPageSizeCached(), kAlwaysClearMemory); + return lsan_memalign(alignment, size, stack); } +#define LSAN_MAYBE_INTERCEPT_ALIGNED_ALLOC INTERCEPT_FUNCTION(aligned_alloc) +#else +#define LSAN_MAYBE_INTERCEPT_ALIGNED_ALLOC +#endif +#if SANITIZER_INTERCEPT_MALLOC_USABLE_SIZE INTERCEPTOR(uptr, malloc_usable_size, void *ptr) { ENSURE_LSAN_INITED; return GetMallocUsableSize(ptr); } +#define LSAN_MAYBE_INTERCEPT_MALLOC_USABLE_SIZE \ + INTERCEPT_FUNCTION(malloc_usable_size) +#else +#define LSAN_MAYBE_INTERCEPT_MALLOC_USABLE_SIZE +#endif #if SANITIZER_INTERCEPT_MALLOPT_AND_MALLINFO struct fake_mallinfo { @@ -186,13 +191,13 @@ INTERCEPTOR(void, cfree, void *p) ALIAS(WRAPPER_NAME(free)); return Allocate(stack, size, 1, kAlwaysClearMemory); INTERCEPTOR_ATTRIBUTE -void *operator new(uptr size) { OPERATOR_NEW_BODY; } +void *operator new(size_t size) { OPERATOR_NEW_BODY; } INTERCEPTOR_ATTRIBUTE -void *operator new[](uptr size) { OPERATOR_NEW_BODY; } +void *operator new[](size_t size) { OPERATOR_NEW_BODY; } INTERCEPTOR_ATTRIBUTE -void *operator new(uptr size, std::nothrow_t const&) { OPERATOR_NEW_BODY; } +void *operator new(size_t size, std::nothrow_t const&) { OPERATOR_NEW_BODY; } INTERCEPTOR_ATTRIBUTE -void *operator new[](uptr size, std::nothrow_t const&) { OPERATOR_NEW_BODY; } +void *operator new[](size_t size, std::nothrow_t const&) { OPERATOR_NEW_BODY; } #define OPERATOR_DELETE_BODY \ ENSURE_LSAN_INITED; \ @@ -277,7 +282,8 @@ INTERCEPTOR(int, pthread_create, void *th, void *attr, res = REAL(pthread_create)(th, attr, __lsan_thread_start_func, &p); } if (res == 0) { - int tid = ThreadCreate(GetCurrentThread(), *(uptr *)th, detached); + int tid = ThreadCreate(GetCurrentThread(), *(uptr *)th, + IsStateDetached(detached)); CHECK_NE(tid, 0); atomic_store(&p.tid, tid, memory_order_release); while (atomic_load(&p.tid, memory_order_acquire) != 0) @@ -307,11 +313,11 @@ void InitializeInterceptors() { INTERCEPT_FUNCTION(realloc); LSAN_MAYBE_INTERCEPT_MEMALIGN; LSAN_MAYBE_INTERCEPT___LIBC_MEMALIGN; - INTERCEPT_FUNCTION(aligned_alloc); + LSAN_MAYBE_INTERCEPT_ALIGNED_ALLOC; INTERCEPT_FUNCTION(posix_memalign); INTERCEPT_FUNCTION(valloc); LSAN_MAYBE_INTERCEPT_PVALLOC; - INTERCEPT_FUNCTION(malloc_usable_size); + LSAN_MAYBE_INTERCEPT_MALLOC_USABLE_SIZE; LSAN_MAYBE_INTERCEPT_MALLINFO; LSAN_MAYBE_INTERCEPT_MALLOPT; INTERCEPT_FUNCTION(pthread_create); diff --git a/lib/lsan/lsan_linux.cc b/lib/lsan/lsan_linux.cc new file mode 100644 index 000000000000..c9749c745655 --- /dev/null +++ b/lib/lsan/lsan_linux.cc @@ -0,0 +1,33 @@ +//=-- lsan_linux.cc -------------------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file is a part of LeakSanitizer. Linux-specific code. +// +//===----------------------------------------------------------------------===// + +#include "sanitizer_common/sanitizer_platform.h" + +#if SANITIZER_LINUX + +#include "lsan_allocator.h" + +namespace __lsan { + +static THREADLOCAL u32 current_thread_tid = kInvalidTid; +u32 GetCurrentThread() { return current_thread_tid; } +void SetCurrentThread(u32 tid) { current_thread_tid = tid; } + +static THREADLOCAL AllocatorCache allocator_cache; +AllocatorCache *GetAllocatorCache() { return &allocator_cache; } + +void ReplaceSystemMalloc() {} + +} // namespace __lsan + +#endif // SANITIZER_LINUX diff --git a/lib/lsan/lsan_malloc_mac.cc b/lib/lsan/lsan_malloc_mac.cc new file mode 100644 index 000000000000..9c1dacc055bd --- /dev/null +++ b/lib/lsan/lsan_malloc_mac.cc @@ -0,0 +1,55 @@ +//===-- lsan_malloc_mac.cc ------------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file is a part of LeakSanitizer (LSan), a memory leak detector. +// +// Mac-specific malloc interception. +//===----------------------------------------------------------------------===// + +#include "sanitizer_common/sanitizer_platform.h" +#if SANITIZER_MAC + +#include "lsan.h" +#include "lsan_allocator.h" +#include "lsan_thread.h" + +using namespace __lsan; +#define COMMON_MALLOC_ZONE_NAME "lsan" +#define COMMON_MALLOC_ENTER() ENSURE_LSAN_INITED +#define COMMON_MALLOC_SANITIZER_INITIALIZED lsan_inited +#define COMMON_MALLOC_FORCE_LOCK() +#define COMMON_MALLOC_FORCE_UNLOCK() +#define COMMON_MALLOC_MEMALIGN(alignment, size) \ + GET_STACK_TRACE_MALLOC; \ + void *p = lsan_memalign(alignment, size, stack) +#define COMMON_MALLOC_MALLOC(size) \ + GET_STACK_TRACE_MALLOC; \ + void *p = lsan_malloc(size, stack) +#define COMMON_MALLOC_REALLOC(ptr, size) \ + GET_STACK_TRACE_MALLOC; \ + void *p = lsan_realloc(ptr, size, stack) +#define COMMON_MALLOC_CALLOC(count, size) \ + GET_STACK_TRACE_MALLOC; \ + void *p = lsan_calloc(count, size, stack) +#define COMMON_MALLOC_VALLOC(size) \ + GET_STACK_TRACE_MALLOC; \ + void *p = lsan_valloc(size, stack) +#define COMMON_MALLOC_FREE(ptr) \ + lsan_free(ptr) +#define COMMON_MALLOC_SIZE(ptr) \ + uptr size = lsan_mz_size(ptr) +#define COMMON_MALLOC_FILL_STATS(zone, stats) +#define COMMON_MALLOC_REPORT_UNKNOWN_REALLOC(ptr, zone_ptr, zone_name) \ + (void)zone_name; \ + Report("mz_realloc(%p) -- attempting to realloc unallocated memory.\n", ptr); +#define COMMON_MALLOC_NAMESPACE __lsan + +#include "sanitizer_common/sanitizer_malloc_mac.inc" + +#endif // SANITIZER_MAC diff --git a/lib/lsan/lsan_thread.cc b/lib/lsan/lsan_thread.cc index 5dff4f748106..09eeb9c24982 100644 --- a/lib/lsan/lsan_thread.cc +++ b/lib/lsan/lsan_thread.cc @@ -19,13 +19,11 @@ #include "sanitizer_common/sanitizer_thread_registry.h" #include "sanitizer_common/sanitizer_tls_get_addr.h" #include "lsan_allocator.h" +#include "lsan_common.h" namespace __lsan { -const u32 kInvalidTid = (u32) -1; - static ThreadRegistry *thread_registry; -static THREADLOCAL u32 current_thread_tid = kInvalidTid; static ThreadContextBase *CreateThreadContext(u32 tid) { void *mem = MmapOrDie(sizeof(ThreadContext), "ThreadContext"); @@ -41,14 +39,6 @@ void InitializeThreadRegistry() { ThreadRegistry(CreateThreadContext, kMaxThreads, kThreadQuarantineSize); } -u32 GetCurrentThread() { - return current_thread_tid; -} - -void SetCurrentThread(u32 tid) { - current_thread_tid = tid; -} - ThreadContext::ThreadContext(int tid) : ThreadContextBase(tid), stack_begin_(0), @@ -97,11 +87,12 @@ void ThreadStart(u32 tid, uptr os_id) { args.tls_end = args.tls_begin + tls_size; GetAllocatorCacheRange(&args.cache_begin, &args.cache_end); args.dtls = DTLS_Get(); - thread_registry->StartThread(tid, os_id, &args); + thread_registry->StartThread(tid, os_id, /*workerthread*/ false, &args); } void ThreadFinish() { thread_registry->FinishThread(GetCurrentThread()); + SetCurrentThread(kInvalidTid); } ThreadContext *CurrentThreadContext() { diff --git a/lib/lsan/weak_symbols.txt b/lib/lsan/weak_symbols.txt new file mode 100644 index 000000000000..da4f994da865 --- /dev/null +++ b/lib/lsan/weak_symbols.txt @@ -0,0 +1,2 @@ +___lsan_default_suppressions +___lsan_is_turned_off diff --git a/lib/msan/msan_interceptors.cc b/lib/msan/msan_interceptors.cc index 6447bb1b270e..15543bd912d6 100644 --- a/lib/msan/msan_interceptors.cc +++ b/lib/msan/msan_interceptors.cc @@ -123,14 +123,6 @@ static void *AllocateFromLocalPool(uptr size_in_bytes) { #define CHECK_UNPOISONED_STRING(x, n) \ CHECK_UNPOISONED_STRING_OF_LEN((x), internal_strlen(x), (n)) -INTERCEPTOR(SIZE_T, fread, void *ptr, SIZE_T size, SIZE_T nmemb, void *file) { - ENSURE_MSAN_INITED(); - SIZE_T res = REAL(fread)(ptr, size, nmemb, file); - if (res > 0) - __msan_unpoison(ptr, res *size); - return res; -} - #if !SANITIZER_FREEBSD INTERCEPTOR(SIZE_T, fread_unlocked, void *ptr, SIZE_T size, SIZE_T nmemb, void *file) { @@ -580,6 +572,13 @@ INTERCEPTOR(SIZE_T, wcslen, const wchar_t *s) { return res; } +INTERCEPTOR(SIZE_T, wcsnlen, const wchar_t *s, SIZE_T n) { + ENSURE_MSAN_INITED(); + SIZE_T res = REAL(wcsnlen)(s, n); + CHECK_UNPOISONED(s, sizeof(wchar_t) * Min(res + 1, n)); + return res; +} + // wchar_t *wcschr(const wchar_t *wcs, wchar_t wc); INTERCEPTOR(wchar_t *, wcschr, void *s, wchar_t wc, void *ps) { ENSURE_MSAN_INITED(); @@ -597,6 +596,18 @@ INTERCEPTOR(wchar_t *, wcscpy, wchar_t *dest, const wchar_t *src) { return res; } +INTERCEPTOR(wchar_t *, wcsncpy, wchar_t *dest, const wchar_t *src, + SIZE_T n) { // NOLINT + ENSURE_MSAN_INITED(); + GET_STORE_STACK_TRACE; + SIZE_T copy_size = REAL(wcsnlen)(src, n); + if (copy_size < n) copy_size++; // trailing \0 + wchar_t *res = REAL(wcsncpy)(dest, src, n); // NOLINT + CopyShadowAndOrigin(dest, src, copy_size * sizeof(wchar_t), &stack); + __msan_unpoison(dest + copy_size, (n - copy_size) * sizeof(wchar_t)); + return res; +} + // wchar_t *wmemcpy(wchar_t *dest, const wchar_t *src, SIZE_T n); INTERCEPTOR(wchar_t *, wmemcpy, wchar_t *dest, const wchar_t *src, SIZE_T n) { ENSURE_MSAN_INITED(); @@ -1565,8 +1576,10 @@ void InitializeInterceptors() { INTERCEPT_FUNCTION(mbtowc); INTERCEPT_FUNCTION(mbrtowc); INTERCEPT_FUNCTION(wcslen); + INTERCEPT_FUNCTION(wcsnlen); INTERCEPT_FUNCTION(wcschr); INTERCEPT_FUNCTION(wcscpy); + INTERCEPT_FUNCTION(wcsncpy); INTERCEPT_FUNCTION(wcscmp); INTERCEPT_FUNCTION(getenv); INTERCEPT_FUNCTION(setenv); diff --git a/lib/msan/tests/CMakeLists.txt b/lib/msan/tests/CMakeLists.txt index 8e911dc10bed..65fbc732df25 100644 --- a/lib/msan/tests/CMakeLists.txt +++ b/lib/msan/tests/CMakeLists.txt @@ -35,6 +35,7 @@ set(MSAN_UNITTEST_COMMON_CFLAGS -Wno-zero-length-array -Wno-uninitialized -Werror=sign-compare + -Wno-gnu-zero-variadic-macro-arguments ) set(MSAN_UNITTEST_INSTRUMENTED_CFLAGS ${MSAN_UNITTEST_COMMON_CFLAGS} diff --git a/lib/msan/tests/msan_test.cc b/lib/msan/tests/msan_test.cc index 9ec1e28374db..dd81c4d798f6 100644 --- a/lib/msan/tests/msan_test.cc +++ b/lib/msan/tests/msan_test.cc @@ -175,10 +175,16 @@ void ExpectPoisonedWithOrigin(const T& t, unsigned origin) { } #define EXPECT_NOT_POISONED(x) EXPECT_EQ(true, TestForNotPoisoned((x))) +#define EXPECT_NOT_POISONED2(data, size) \ + EXPECT_EQ(true, TestForNotPoisoned((data), (size))) + +bool TestForNotPoisoned(const void *data, size_t size) { + return __msan_test_shadow(data, size) == -1; +} template<typename T> bool TestForNotPoisoned(const T& t) { - return __msan_test_shadow((void*)&t, sizeof(t)) == -1; + return TestForNotPoisoned((void *)&t, sizeof(t)); } static U8 poisoned_array[100]; @@ -879,92 +885,203 @@ TEST(MemorySanitizer, bind_getsockname) { close(sock); } -TEST(MemorySanitizer, accept) { - int listen_socket = socket(AF_INET, SOCK_STREAM, 0); +class SocketAddr { + public: + virtual ~SocketAddr() = default; + virtual struct sockaddr *ptr() = 0; + virtual size_t size() const = 0; + + template <class... Args> + static std::unique_ptr<SocketAddr> Create(int family, Args... args); +}; + +class SocketAddr4 : public SocketAddr { + public: + SocketAddr4() { EXPECT_POISONED(sai_); } + explicit SocketAddr4(uint16_t port) { + memset(&sai_, 0, sizeof(sai_)); + sai_.sin_family = AF_INET; + sai_.sin_port = port; + sai_.sin_addr.s_addr = htonl(INADDR_LOOPBACK); + } + + sockaddr *ptr() override { return reinterpret_cast<sockaddr *>(&sai_); } + + size_t size() const override { return sizeof(sai_); } + + private: + sockaddr_in sai_; +}; + +class SocketAddr6 : public SocketAddr { + public: + SocketAddr6() { EXPECT_POISONED(sai_); } + explicit SocketAddr6(uint16_t port) { + memset(&sai_, 0, sizeof(sai_)); + sai_.sin6_family = AF_INET6; + sai_.sin6_port = port; + sai_.sin6_addr = in6addr_loopback; + } + + sockaddr *ptr() override { return reinterpret_cast<sockaddr *>(&sai_); } + + size_t size() const override { return sizeof(sai_); } + + private: + sockaddr_in6 sai_; +}; + +template <class... Args> +std::unique_ptr<SocketAddr> SocketAddr::Create(int family, Args... args) { + if (family == AF_INET) + return std::unique_ptr<SocketAddr>(new SocketAddr4(args...)); + return std::unique_ptr<SocketAddr>(new SocketAddr6(args...)); +} + +class MemorySanitizerIpTest : public ::testing::TestWithParam<int> { + public: + void SetUp() override { + ASSERT_TRUE(GetParam() == AF_INET || GetParam() == AF_INET6); + } + + template <class... Args> + std::unique_ptr<SocketAddr> CreateSockAddr(Args... args) const { + return SocketAddr::Create(GetParam(), args...); + } + + int CreateSocket(int socket_type) const { + return socket(GetParam(), socket_type, 0); + } +}; + +std::vector<int> GetAvailableIpSocketFamilies() { + std::vector<int> result; + + for (int i : {AF_INET, AF_INET6}) { + int s = socket(i, SOCK_STREAM, 0); + if (s > 0) { + auto sai = SocketAddr::Create(i, 0); + if (bind(s, sai->ptr(), sai->size()) == 0) result.push_back(i); + close(s); + } + } + + return result; +} + +INSTANTIATE_TEST_CASE_P(IpTests, MemorySanitizerIpTest, + ::testing::ValuesIn(GetAvailableIpSocketFamilies())); + +TEST_P(MemorySanitizerIpTest, accept) { + int listen_socket = CreateSocket(SOCK_STREAM); ASSERT_LT(0, listen_socket); - struct sockaddr_in sai; - memset(&sai, 0, sizeof(sai)); - sai.sin_family = AF_INET; - sai.sin_port = 0; - sai.sin_addr.s_addr = htonl(INADDR_LOOPBACK); - int res = bind(listen_socket, (struct sockaddr *)&sai, sizeof(sai)); + auto sai = CreateSockAddr(0); + int res = bind(listen_socket, sai->ptr(), sai->size()); ASSERT_EQ(0, res); res = listen(listen_socket, 1); ASSERT_EQ(0, res); - socklen_t sz = sizeof(sai); - res = getsockname(listen_socket, (struct sockaddr *)&sai, &sz); + socklen_t sz = sai->size(); + res = getsockname(listen_socket, sai->ptr(), &sz); ASSERT_EQ(0, res); - ASSERT_EQ(sizeof(sai), sz); + ASSERT_EQ(sai->size(), sz); - int connect_socket = socket(AF_INET, SOCK_STREAM, 0); + int connect_socket = CreateSocket(SOCK_STREAM); ASSERT_LT(0, connect_socket); res = fcntl(connect_socket, F_SETFL, O_NONBLOCK); ASSERT_EQ(0, res); - res = connect(connect_socket, (struct sockaddr *)&sai, sizeof(sai)); + res = connect(connect_socket, sai->ptr(), sai->size()); // On FreeBSD this connection completes immediately. if (res != 0) { ASSERT_EQ(-1, res); ASSERT_EQ(EINPROGRESS, errno); } - __msan_poison(&sai, sizeof(sai)); - int new_sock = accept(listen_socket, (struct sockaddr *)&sai, &sz); + __msan_poison(sai->ptr(), sai->size()); + int new_sock = accept(listen_socket, sai->ptr(), &sz); ASSERT_LT(0, new_sock); - ASSERT_EQ(sizeof(sai), sz); - EXPECT_NOT_POISONED(sai); + ASSERT_EQ(sai->size(), sz); + EXPECT_NOT_POISONED2(sai->ptr(), sai->size()); - __msan_poison(&sai, sizeof(sai)); - res = getpeername(new_sock, (struct sockaddr *)&sai, &sz); + __msan_poison(sai->ptr(), sai->size()); + res = getpeername(new_sock, sai->ptr(), &sz); ASSERT_EQ(0, res); - ASSERT_EQ(sizeof(sai), sz); - EXPECT_NOT_POISONED(sai); + ASSERT_EQ(sai->size(), sz); + EXPECT_NOT_POISONED2(sai->ptr(), sai->size()); close(new_sock); close(connect_socket); close(listen_socket); } -TEST(MemorySanitizer, getaddrinfo) { - struct addrinfo *ai; - struct addrinfo hints; - memset(&hints, 0, sizeof(hints)); - hints.ai_family = AF_INET; - int res = getaddrinfo("localhost", NULL, &hints, &ai); +TEST_P(MemorySanitizerIpTest, recvmsg) { + int server_socket = CreateSocket(SOCK_DGRAM); + ASSERT_LT(0, server_socket); + + auto sai = CreateSockAddr(0); + int res = bind(server_socket, sai->ptr(), sai->size()); ASSERT_EQ(0, res); - EXPECT_NOT_POISONED(*ai); - ASSERT_EQ(sizeof(sockaddr_in), ai->ai_addrlen); - EXPECT_NOT_POISONED(*(sockaddr_in*)ai->ai_addr); -} -TEST(MemorySanitizer, getnameinfo) { - struct sockaddr_in sai; - memset(&sai, 0, sizeof(sai)); - sai.sin_family = AF_INET; - sai.sin_port = 80; - sai.sin_addr.s_addr = htonl(INADDR_LOOPBACK); - char host[500]; - char serv[500]; - int res = getnameinfo((struct sockaddr *)&sai, sizeof(sai), host, - sizeof(host), serv, sizeof(serv), 0); + socklen_t sz = sai->size(); + res = getsockname(server_socket, sai->ptr(), &sz); ASSERT_EQ(0, res); - EXPECT_NOT_POISONED(host[0]); - EXPECT_POISONED(host[sizeof(host) - 1]); + ASSERT_EQ(sai->size(), sz); - ASSERT_NE(0U, strlen(host)); - EXPECT_NOT_POISONED(serv[0]); - EXPECT_POISONED(serv[sizeof(serv) - 1]); - ASSERT_NE(0U, strlen(serv)); + int client_socket = CreateSocket(SOCK_DGRAM); + ASSERT_LT(0, client_socket); + + auto client_sai = CreateSockAddr(0); + res = bind(client_socket, client_sai->ptr(), client_sai->size()); + ASSERT_EQ(0, res); + + sz = client_sai->size(); + res = getsockname(client_socket, client_sai->ptr(), &sz); + ASSERT_EQ(0, res); + ASSERT_EQ(client_sai->size(), sz); + + const char *s = "message text"; + struct iovec iov; + iov.iov_base = (void *)s; + iov.iov_len = strlen(s) + 1; + struct msghdr msg; + memset(&msg, 0, sizeof(msg)); + msg.msg_name = sai->ptr(); + msg.msg_namelen = sai->size(); + msg.msg_iov = &iov; + msg.msg_iovlen = 1; + res = sendmsg(client_socket, &msg, 0); + ASSERT_LT(0, res); + + char buf[1000]; + struct iovec recv_iov; + recv_iov.iov_base = (void *)&buf; + recv_iov.iov_len = sizeof(buf); + auto recv_sai = CreateSockAddr(); + struct msghdr recv_msg; + memset(&recv_msg, 0, sizeof(recv_msg)); + recv_msg.msg_name = recv_sai->ptr(); + recv_msg.msg_namelen = recv_sai->size(); + recv_msg.msg_iov = &recv_iov; + recv_msg.msg_iovlen = 1; + res = recvmsg(server_socket, &recv_msg, 0); + ASSERT_LT(0, res); + + ASSERT_EQ(recv_sai->size(), recv_msg.msg_namelen); + EXPECT_NOT_POISONED2(recv_sai->ptr(), recv_sai->size()); + EXPECT_STREQ(s, buf); + + close(server_socket); + close(client_socket); } #define EXPECT_HOSTENT_NOT_POISONED(he) \ do { \ EXPECT_NOT_POISONED(*(he)); \ - ASSERT_NE((void *) 0, (he)->h_name); \ - ASSERT_NE((void *) 0, (he)->h_aliases); \ - ASSERT_NE((void *) 0, (he)->h_addr_list); \ + ASSERT_NE((void *)0, (he)->h_name); \ + ASSERT_NE((void *)0, (he)->h_aliases); \ + ASSERT_NE((void *)0, (he)->h_addr_list); \ EXPECT_NOT_POISONED(strlen((he)->h_name)); \ char **p = (he)->h_aliases; \ while (*p) { \ @@ -993,76 +1110,38 @@ TEST(MemorySanitizer, gethostbyname) { EXPECT_HOSTENT_NOT_POISONED(he); } -#endif // MSAN_TEST_DISABLE_GETHOSTBYNAME +#endif // MSAN_TEST_DISABLE_GETHOSTBYNAME -TEST(MemorySanitizer, recvmsg) { - int server_socket = socket(AF_INET, SOCK_DGRAM, 0); - ASSERT_LT(0, server_socket); +TEST(MemorySanitizer, getaddrinfo) { + struct addrinfo *ai; + struct addrinfo hints; + memset(&hints, 0, sizeof(hints)); + hints.ai_family = AF_INET; + int res = getaddrinfo("localhost", NULL, &hints, &ai); + ASSERT_EQ(0, res); + EXPECT_NOT_POISONED(*ai); + ASSERT_EQ(sizeof(sockaddr_in), ai->ai_addrlen); + EXPECT_NOT_POISONED(*(sockaddr_in *)ai->ai_addr); +} +TEST(MemorySanitizer, getnameinfo) { struct sockaddr_in sai; memset(&sai, 0, sizeof(sai)); sai.sin_family = AF_INET; - sai.sin_port = 0; + sai.sin_port = 80; sai.sin_addr.s_addr = htonl(INADDR_LOOPBACK); - int res = bind(server_socket, (struct sockaddr *)&sai, sizeof(sai)); - ASSERT_EQ(0, res); - - socklen_t sz = sizeof(sai); - res = getsockname(server_socket, (struct sockaddr *)&sai, &sz); - ASSERT_EQ(0, res); - ASSERT_EQ(sizeof(sai), sz); - - - int client_socket = socket(AF_INET, SOCK_DGRAM, 0); - ASSERT_LT(0, client_socket); - - struct sockaddr_in client_sai; - memset(&client_sai, 0, sizeof(client_sai)); - client_sai.sin_family = AF_INET; - client_sai.sin_port = 0; - client_sai.sin_addr.s_addr = htonl(INADDR_LOOPBACK); - res = bind(client_socket, (struct sockaddr *)&client_sai, sizeof(client_sai)); - ASSERT_EQ(0, res); - - sz = sizeof(client_sai); - res = getsockname(client_socket, (struct sockaddr *)&client_sai, &sz); + char host[500]; + char serv[500]; + int res = getnameinfo((struct sockaddr *)&sai, sizeof(sai), host, + sizeof(host), serv, sizeof(serv), 0); ASSERT_EQ(0, res); - ASSERT_EQ(sizeof(client_sai), sz); - - const char *s = "message text"; - struct iovec iov; - iov.iov_base = (void *)s; - iov.iov_len = strlen(s) + 1; - struct msghdr msg; - memset(&msg, 0, sizeof(msg)); - msg.msg_name = &sai; - msg.msg_namelen = sizeof(sai); - msg.msg_iov = &iov; - msg.msg_iovlen = 1; - res = sendmsg(client_socket, &msg, 0); - ASSERT_LT(0, res); - - - char buf[1000]; - struct iovec recv_iov; - recv_iov.iov_base = (void *)&buf; - recv_iov.iov_len = sizeof(buf); - struct sockaddr_in recv_sai; - struct msghdr recv_msg; - memset(&recv_msg, 0, sizeof(recv_msg)); - recv_msg.msg_name = &recv_sai; - recv_msg.msg_namelen = sizeof(recv_sai); - recv_msg.msg_iov = &recv_iov; - recv_msg.msg_iovlen = 1; - res = recvmsg(server_socket, &recv_msg, 0); - ASSERT_LT(0, res); - - ASSERT_EQ(sizeof(recv_sai), recv_msg.msg_namelen); - EXPECT_NOT_POISONED(*(struct sockaddr_in *)recv_msg.msg_name); - EXPECT_STREQ(s, buf); + EXPECT_NOT_POISONED(host[0]); + EXPECT_POISONED(host[sizeof(host) - 1]); - close(server_socket); - close(client_socket); + ASSERT_NE(0U, strlen(host)); + EXPECT_NOT_POISONED(serv[0]); + EXPECT_POISONED(serv[sizeof(serv) - 1]); + ASSERT_NE(0U, strlen(serv)); } TEST(MemorySanitizer, gethostbyname2) { @@ -3502,6 +3581,21 @@ TEST(MemorySanitizer, getgroups) { EXPECT_NOT_POISONED(gids[i]); } +TEST(MemorySanitizer, getgroups_zero) { + gid_t group; + int n = getgroups(0, &group); + ASSERT_GE(n, 0); +} + +TEST(MemorySanitizer, getgroups_negative) { + gid_t group; + int n = getgroups(-1, 0); + ASSERT_EQ(-1, n); + + n = getgroups(-1, 0); + ASSERT_EQ(-1, n); +} + TEST(MemorySanitizer, wordexp) { wordexp_t w; int res = wordexp("a b c", &w, 0); @@ -3602,6 +3696,18 @@ TEST(MemorySanitizer, ICmpVectorRelational) { EXPECT_POISONED(_mm_cmpgt_epi16(poisoned(_mm_set1_epi16(6), _mm_set1_epi16(0xF)), poisoned(_mm_set1_epi16(7), _mm_set1_epi16(0)))); } + +TEST(MemorySanitizer, stmxcsr_ldmxcsr) { + U4 x = _mm_getcsr(); + EXPECT_NOT_POISONED(x); + + _mm_setcsr(x); + + __msan_poison(&x, sizeof(x)); + U4 origin = __LINE__; + __msan_set_origin(&x, sizeof(x), origin); + EXPECT_UMR_O(_mm_setcsr(x), origin); +} #endif // Volatile bitfield store is implemented as load-mask-store diff --git a/lib/profile/InstrProfData.inc b/lib/profile/InstrProfData.inc index f7c22d10763c..be0dd4ad04bf 100644 --- a/lib/profile/InstrProfData.inc +++ b/lib/profile/InstrProfData.inc @@ -153,7 +153,17 @@ INSTR_PROF_RAW_HEADER(uint64_t, ValueKindLast, IPVK_Last) VALUE_PROF_FUNC_PARAM(uint64_t, TargetValue, Type::getInt64Ty(Ctx)) \ INSTR_PROF_COMMA VALUE_PROF_FUNC_PARAM(void *, Data, Type::getInt8PtrTy(Ctx)) INSTR_PROF_COMMA +#ifndef VALUE_RANGE_PROF VALUE_PROF_FUNC_PARAM(uint32_t, CounterIndex, Type::getInt32Ty(Ctx)) +#else /* VALUE_RANGE_PROF */ +VALUE_PROF_FUNC_PARAM(uint32_t, CounterIndex, Type::getInt32Ty(Ctx)) \ + INSTR_PROF_COMMA +VALUE_PROF_FUNC_PARAM(uint64_t, PreciseRangeStart, Type::getInt64Ty(Ctx)) \ + INSTR_PROF_COMMA +VALUE_PROF_FUNC_PARAM(uint64_t, PreciseRangeLast, Type::getInt64Ty(Ctx)) \ + INSTR_PROF_COMMA +VALUE_PROF_FUNC_PARAM(uint64_t, LargeValue, Type::getInt64Ty(Ctx)) +#endif /*VALUE_RANGE_PROF */ #undef VALUE_PROF_FUNC_PARAM #undef INSTR_PROF_COMMA /* VALUE_PROF_FUNC_PARAM end */ @@ -174,13 +184,15 @@ VALUE_PROF_FUNC_PARAM(uint32_t, CounterIndex, Type::getInt32Ty(Ctx)) * name hash and the function address. */ VALUE_PROF_KIND(IPVK_IndirectCallTarget, 0) +/* For memory intrinsic functions size profiling. */ +VALUE_PROF_KIND(IPVK_MemOPSize, 1) /* These two kinds must be the last to be * declared. This is to make sure the string * array created with the template can be * indexed with the kind value. */ VALUE_PROF_KIND(IPVK_First, IPVK_IndirectCallTarget) -VALUE_PROF_KIND(IPVK_Last, IPVK_IndirectCallTarget) +VALUE_PROF_KIND(IPVK_Last, IPVK_MemOPSize) #undef VALUE_PROF_KIND /* VALUE_PROF_KIND end */ @@ -234,6 +246,31 @@ COVMAP_HEADER(uint32_t, Int32Ty, Version, \ /* COVMAP_HEADER end. */ +#ifdef INSTR_PROF_SECT_ENTRY +#define INSTR_PROF_DATA_DEFINED +INSTR_PROF_SECT_ENTRY(IPSK_data, \ + INSTR_PROF_QUOTE(INSTR_PROF_DATA_COMMON), \ + INSTR_PROF_QUOTE(INSTR_PROF_DATA_COFF), "__DATA,") +INSTR_PROF_SECT_ENTRY(IPSK_cnts, \ + INSTR_PROF_QUOTE(INSTR_PROF_CNTS_COMMON), \ + INSTR_PROF_QUOTE(INSTR_PROF_CNTS_COFF), "__DATA,") +INSTR_PROF_SECT_ENTRY(IPSK_name, \ + INSTR_PROF_QUOTE(INSTR_PROF_NAME_COMMON), \ + INSTR_PROF_QUOTE(INSTR_PROF_NAME_COFF), "__DATA,") +INSTR_PROF_SECT_ENTRY(IPSK_vals, \ + INSTR_PROF_QUOTE(INSTR_PROF_VALS_COMMON), \ + INSTR_PROF_QUOTE(INSTR_PROF_VALS_COFF), "__DATA,") +INSTR_PROF_SECT_ENTRY(IPSK_vnodes, \ + INSTR_PROF_QUOTE(INSTR_PROF_VNODES_COMMON), \ + INSTR_PROF_QUOTE(INSTR_PROF_VNODES_COFF), "__DATA,") +INSTR_PROF_SECT_ENTRY(IPSK_covmap, \ + INSTR_PROF_QUOTE(INSTR_PROF_COVMAP_COMMON), \ + INSTR_PROF_QUOTE(INSTR_PROF_COVMAP_COFF), "__LLVM_COV,") + +#undef INSTR_PROF_SECT_ENTRY +#endif + + #ifdef INSTR_PROF_VALUE_PROF_DATA #define INSTR_PROF_DATA_DEFINED @@ -610,17 +647,47 @@ serializeValueProfDataFrom(ValueProfRecordClosure *Closure, * specified via command line. */ #define INSTR_PROF_PROFILE_NAME_VAR __llvm_profile_filename +/* section name strings common to all targets other + than WIN32 */ +#define INSTR_PROF_DATA_COMMON __llvm_prf_data +#define INSTR_PROF_NAME_COMMON __llvm_prf_names +#define INSTR_PROF_CNTS_COMMON __llvm_prf_cnts +#define INSTR_PROF_VALS_COMMON __llvm_prf_vals +#define INSTR_PROF_VNODES_COMMON __llvm_prf_vnds +#define INSTR_PROF_COVMAP_COMMON __llvm_covmap +/* Win32 */ +#define INSTR_PROF_DATA_COFF .lprfd +#define INSTR_PROF_NAME_COFF .lprfn +#define INSTR_PROF_CNTS_COFF .lprfc +#define INSTR_PROF_VALS_COFF .lprfv +#define INSTR_PROF_VNODES_COFF .lprfnd +#define INSTR_PROF_COVMAP_COFF .lcovmap + +#ifdef _WIN32 /* Runtime section names and name strings. */ -#define INSTR_PROF_DATA_SECT_NAME __llvm_prf_data -#define INSTR_PROF_NAME_SECT_NAME __llvm_prf_names -#define INSTR_PROF_CNTS_SECT_NAME __llvm_prf_cnts +#define INSTR_PROF_DATA_SECT_NAME INSTR_PROF_DATA_COFF +#define INSTR_PROF_NAME_SECT_NAME INSTR_PROF_NAME_COFF +#define INSTR_PROF_CNTS_SECT_NAME INSTR_PROF_CNTS_COFF /* Array of pointers. Each pointer points to a list * of value nodes associated with one value site. */ -#define INSTR_PROF_VALS_SECT_NAME __llvm_prf_vals +#define INSTR_PROF_VALS_SECT_NAME INSTR_PROF_VALS_COFF /* Value profile nodes section. */ -#define INSTR_PROF_VNODES_SECT_NAME __llvm_prf_vnds -#define INSTR_PROF_COVMAP_SECT_NAME __llvm_covmap +#define INSTR_PROF_VNODES_SECT_NAME INSTR_PROF_VNODES_COFF +#define INSTR_PROF_COVMAP_SECT_NAME INSTR_PROF_COVMAP_COFF +#else +/* Runtime section names and name strings. */ +#define INSTR_PROF_DATA_SECT_NAME INSTR_PROF_DATA_COMMON +#define INSTR_PROF_NAME_SECT_NAME INSTR_PROF_NAME_COMMON +#define INSTR_PROF_CNTS_SECT_NAME INSTR_PROF_CNTS_COMMON +/* Array of pointers. Each pointer points to a list + * of value nodes associated with one value site. + */ +#define INSTR_PROF_VALS_SECT_NAME INSTR_PROF_VALS_COMMON +/* Value profile nodes section. */ +#define INSTR_PROF_VNODES_SECT_NAME INSTR_PROF_VNODES_COMMON +#define INSTR_PROF_COVMAP_SECT_NAME INSTR_PROF_COVMAP_COMMON +#endif #define INSTR_PROF_DATA_SECT_NAME_STR \ INSTR_PROF_QUOTE(INSTR_PROF_DATA_SECT_NAME) @@ -649,6 +716,9 @@ serializeValueProfDataFrom(ValueProfRecordClosure *Closure, #define INSTR_PROF_VALUE_PROF_FUNC __llvm_profile_instrument_target #define INSTR_PROF_VALUE_PROF_FUNC_STR \ INSTR_PROF_QUOTE(INSTR_PROF_VALUE_PROF_FUNC) +#define INSTR_PROF_VALUE_RANGE_PROF_FUNC __llvm_profile_instrument_range +#define INSTR_PROF_VALUE_RANGE_PROF_FUNC_STR \ + INSTR_PROF_QUOTE(INSTR_PROF_VALUE_RANGE_PROF_FUNC) /* InstrProfile per-function control data alignment. */ #define INSTR_PROF_DATA_ALIGNMENT 8 diff --git a/lib/profile/InstrProfilingFile.c b/lib/profile/InstrProfilingFile.c index f82080c98aac..dfcbe52d7e4f 100644 --- a/lib/profile/InstrProfilingFile.c +++ b/lib/profile/InstrProfilingFile.c @@ -172,6 +172,16 @@ static int doProfileMerging(FILE *ProfileFile) { return 0; } +/* Create the directory holding the file, if needed. */ +static void createProfileDir(const char *Filename) { + size_t Length = strlen(Filename); + if (lprofFindFirstDirSeparator(Filename)) { + char *Copy = (char *)COMPILER_RT_ALLOCA(Length + 1); + strncpy(Copy, Filename, Length + 1); + __llvm_profile_recursive_mkdir(Copy); + } +} + /* Open the profile data for merging. It opens the file in r+b mode with * file locking. If the file has content which is compatible with the * current process, it also reads in the profile data in the file and merge @@ -184,6 +194,7 @@ static FILE *openFileForMerging(const char *ProfileFileName) { FILE *ProfileFile; int rc; + createProfileDir(ProfileFileName); ProfileFile = lprofOpenFileEx(ProfileFileName); if (!ProfileFile) return NULL; @@ -233,18 +244,13 @@ static void truncateCurrentFile(void) { if (!Filename) return; - /* Create the directory holding the file, if needed. */ - if (lprofFindFirstDirSeparator(Filename)) { - char *Copy = (char *)COMPILER_RT_ALLOCA(Length + 1); - strncpy(Copy, Filename, Length + 1); - __llvm_profile_recursive_mkdir(Copy); - } - /* By pass file truncation to allow online raw profile * merging. */ if (lprofCurFilename.MergePoolSize) return; + createProfileDir(Filename); + /* Truncate the file. Later we'll reopen and append. */ File = fopen(Filename, "w"); if (!File) @@ -524,6 +530,7 @@ int __llvm_profile_write_file(void) { int rc, Length; const char *Filename; char *FilenameBuf; + int PDeathSig = 0; if (lprofProfileDumped()) { PROF_NOTE("Profile data not written to file: %s.\n", @@ -550,10 +557,18 @@ int __llvm_profile_write_file(void) { return -1; } + // Temporarily suspend getting SIGKILL when the parent exits. + PDeathSig = lprofSuspendSigKill(); + /* Write profile data to the file. */ rc = writeFile(Filename); if (rc) PROF_ERR("Failed to write file \"%s\": %s\n", Filename, strerror(errno)); + + // Restore SIGKILL. + if (PDeathSig == 1) + lprofRestoreSigKill(); + return rc; } diff --git a/lib/profile/InstrProfilingUtil.c b/lib/profile/InstrProfilingUtil.c index 321c7192cc60..fb68f30a5e1f 100644 --- a/lib/profile/InstrProfilingUtil.c +++ b/lib/profile/InstrProfilingUtil.c @@ -29,6 +29,11 @@ #include <stdlib.h> #include <string.h> +#if defined(__linux__) +#include <signal.h> +#include <sys/prctl.h> +#endif + COMPILER_RT_VISIBILITY void __llvm_profile_recursive_mkdir(char *path) { int i; @@ -219,3 +224,21 @@ COMPILER_RT_VISIBILITY const char *lprofFindLastDirSeparator(const char *Path) { #endif return Sep; } + +COMPILER_RT_VISIBILITY int lprofSuspendSigKill() { +#if defined(__linux__) + int PDeachSig = 0; + /* Temporarily suspend getting SIGKILL upon exit of the parent process. */ + if (prctl(PR_GET_PDEATHSIG, &PDeachSig) == 0 && PDeachSig == SIGKILL) + prctl(PR_SET_PDEATHSIG, 0); + return (PDeachSig == SIGKILL); +#else + return 0; +#endif +} + +COMPILER_RT_VISIBILITY void lprofRestoreSigKill() { +#if defined(__linux__) + prctl(PR_SET_PDEATHSIG, SIGKILL); +#endif +} diff --git a/lib/profile/InstrProfilingUtil.h b/lib/profile/InstrProfilingUtil.h index a80fde77e16a..9698599606e0 100644 --- a/lib/profile/InstrProfilingUtil.h +++ b/lib/profile/InstrProfilingUtil.h @@ -51,4 +51,12 @@ int lprofGetHostName(char *Name, int Len); unsigned lprofBoolCmpXchg(void **Ptr, void *OldV, void *NewV); void *lprofPtrFetchAdd(void **Mem, long ByteIncr); +/* Temporarily suspend SIGKILL. Return value of 1 means a restore is needed. + * Other return values mean no restore is needed. + */ +int lprofSuspendSigKill(); + +/* Restore previously suspended SIGKILL. */ +void lprofRestoreSigKill(); + #endif /* PROFILE_INSTRPROFILINGUTIL_H */ diff --git a/lib/profile/InstrProfilingValue.c b/lib/profile/InstrProfilingValue.c index 6648f8923584..44263da80097 100644 --- a/lib/profile/InstrProfilingValue.c +++ b/lib/profile/InstrProfilingValue.c @@ -220,6 +220,35 @@ __llvm_profile_instrument_target(uint64_t TargetValue, void *Data, } /* + * The target values are partitioned into multiple regions/ranges. There is one + * contiguous region which is precise -- every value in the range is tracked + * individually. A value outside the precise region will be collapsed into one + * value depending on the region it falls in. + * + * There are three regions: + * 1. (-inf, PreciseRangeStart) and (PreciseRangeLast, LargeRangeValue) belong + * to one region -- all values here should be mapped to one value of + * "PreciseRangeLast + 1". + * 2. [PreciseRangeStart, PreciseRangeLast] + * 3. Large values: [LargeValue, +inf) maps to one value of LargeValue. + * + * The range for large values is optional. The default value of INT64_MIN + * indicates it is not specified. + */ +COMPILER_RT_VISIBILITY void __llvm_profile_instrument_range( + uint64_t TargetValue, void *Data, uint32_t CounterIndex, + int64_t PreciseRangeStart, int64_t PreciseRangeLast, int64_t LargeValue) { + + if (LargeValue != INT64_MIN && (int64_t)TargetValue >= LargeValue) + TargetValue = LargeValue; + else if ((int64_t)TargetValue < PreciseRangeStart || + (int64_t)TargetValue > PreciseRangeLast) + TargetValue = PreciseRangeLast + 1; + + __llvm_profile_instrument_target(TargetValue, Data, CounterIndex); +} + +/* * A wrapper struct that represents value profile runtime data. * Like InstrProfRecord class which is used by profiling host tools, * ValueProfRuntimeRecord also implements the abstract intefaces defined in diff --git a/lib/sanitizer_common/CMakeLists.txt b/lib/sanitizer_common/CMakeLists.txt index c70b8be6d8e2..6cdc91897cd8 100644 --- a/lib/sanitizer_common/CMakeLists.txt +++ b/lib/sanitizer_common/CMakeLists.txt @@ -25,6 +25,7 @@ set(SANITIZER_SOURCES_NOTERMINATION sanitizer_stackdepot.cc sanitizer_stacktrace.cc sanitizer_stacktrace_printer.cc + sanitizer_stoptheworld_mac.cc sanitizer_suppressions.cc sanitizer_symbolizer.cc sanitizer_symbolizer_libbacktrace.cc @@ -56,6 +57,7 @@ set(SANITIZER_LIBCDEP_SOURCES sanitizer_coverage_libcdep.cc sanitizer_coverage_libcdep_new.cc sanitizer_coverage_mapping_libcdep.cc + sanitizer_coverage_win_sections.cc sanitizer_linux_libcdep.cc sanitizer_posix_libcdep.cc sanitizer_stacktrace_libcdep.cc @@ -126,7 +128,10 @@ set(SANITIZER_HEADERS sanitizer_syscall_generic.inc sanitizer_syscall_linux_x86_64.inc sanitizer_syscall_linux_aarch64.inc - sanitizer_thread_registry.h) + sanitizer_thread_registry.h + sanitizer_win.h) + +include_directories(..) set(SANITIZER_COMMON_DEFINITIONS) @@ -184,6 +189,55 @@ add_compiler_rt_object_libraries(RTSanitizerCommonLibc CFLAGS ${SANITIZER_CFLAGS} DEFS ${SANITIZER_COMMON_DEFINITIONS}) +if(WIN32) + add_compiler_rt_object_libraries(SanitizerCommonWeakInterception + ${SANITIZER_COMMON_SUPPORTED_OS} + ARCHS ${SANITIZER_COMMON_SUPPORTED_ARCH} + SOURCES sanitizer_win_weak_interception.cc + CFLAGS ${SANITIZER_CFLAGS} -DSANITIZER_DYNAMIC + DEFS ${SANITIZER_COMMON_DEFINITIONS}) + add_compiler_rt_object_libraries(SancovWeakInterception + ${SANITIZER_COMMON_SUPPORTED_OS} + ARCHS ${SANITIZER_COMMON_SUPPORTED_ARCH} + SOURCES sanitizer_coverage_win_weak_interception.cc + CFLAGS ${SANITIZER_CFLAGS} -DSANITIZER_DYNAMIC + DEFS ${SANITIZER_COMMON_DEFINITIONS}) + + add_compiler_rt_object_libraries(SanitizerCommonDllThunk + ${SANITIZER_COMMON_SUPPORTED_OS} + ARCHS ${SANITIZER_COMMON_SUPPORTED_ARCH} + SOURCES sanitizer_win_dll_thunk.cc + CFLAGS ${SANITIZER_CFLAGS} -DSANITIZER_DLL_THUNK + DEFS ${SANITIZER_COMMON_DEFINITIONS}) + add_compiler_rt_object_libraries(SancovDllThunk + ${SANITIZER_COMMON_SUPPORTED_OS} + ARCHS ${SANITIZER_COMMON_SUPPORTED_ARCH} + SOURCES sanitizer_coverage_win_dll_thunk.cc + sanitizer_coverage_win_sections.cc + CFLAGS ${SANITIZER_CFLAGS} -DSANITIZER_DLL_THUNK + DEFS ${SANITIZER_COMMON_DEFINITIONS}) + + set(DYNAMIC_RUNTIME_THUNK_CFLAGS "-DSANITIZER_DYNAMIC_RUNTIME_THUNK") + if(MSVC) + list(APPEND DYNAMIC_RUNTIME_THUNK_CFLAGS "-Zl") + elseif(CMAKE_C_COMPILER_ID MATCHES Clang) + list(APPEND DYNAMIC_RUNTIME_THUNK_CFLAGS "-nodefaultlibs") + endif() + add_compiler_rt_object_libraries(SanitizerCommonDynamicRuntimeThunk + ${SANITIZER_COMMON_SUPPORTED_OS} + ARCHS ${SANITIZER_COMMON_SUPPORTED_ARCH} + SOURCES sanitizer_win_dynamic_runtime_thunk.cc + CFLAGS ${SANITIZER_CFLAGS} ${DYNAMIC_RUNTIME_THUNK_CFLAGS} + DEFS ${SANITIZER_COMMON_DEFINITIONS}) + add_compiler_rt_object_libraries(SancovDynamicRuntimeThunk + ${SANITIZER_COMMON_SUPPORTED_OS} + ARCHS ${SANITIZER_COMMON_SUPPORTED_ARCH} + SOURCES sanitizer_coverage_win_dynamic_runtime_thunk.cc + sanitizer_coverage_win_sections.cc + CFLAGS ${SANITIZER_CFLAGS} ${DYNAMIC_RUNTIME_THUNK_CFLAGS} + DEFS ${SANITIZER_COMMON_DEFINITIONS}) +endif() + # Unit tests for common sanitizer runtime. if(COMPILER_RT_INCLUDE_TESTS) add_subdirectory(tests) diff --git a/lib/sanitizer_common/sancov_flags.cc b/lib/sanitizer_common/sancov_flags.cc index 08fd2a4366a8..9abb5b5c5988 100644 --- a/lib/sanitizer_common/sancov_flags.cc +++ b/lib/sanitizer_common/sancov_flags.cc @@ -15,10 +15,9 @@ #include "sanitizer_flag_parser.h" #include "sanitizer_platform.h" -#if !SANITIZER_LINUX -// other platforms do not have weak symbols out of the box. -extern "C" const char* __sancov_default_options() { return ""; } -#endif +SANITIZER_INTERFACE_WEAK_DEF(const char*, __sancov_default_options, void) { + return ""; +} using namespace __sanitizer; diff --git a/lib/sanitizer_common/sancov_flags.h b/lib/sanitizer_common/sancov_flags.h index 5fbd7ad06a95..627d9a3df6f4 100644 --- a/lib/sanitizer_common/sancov_flags.h +++ b/lib/sanitizer_common/sancov_flags.h @@ -32,9 +32,9 @@ inline SancovFlags* sancov_flags() { return &sancov_flags_dont_use_directly; } void InitializeSancovFlags(); +} // namespace __sancov + extern "C" SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE const char* __sancov_default_options(); -} // namespace __sancov - #endif diff --git a/lib/sanitizer_common/sanitizer_allocator_interface.h b/lib/sanitizer_common/sanitizer_allocator_interface.h index 5ff6edba0a1a..13910e719e78 100644 --- a/lib/sanitizer_common/sanitizer_allocator_interface.h +++ b/lib/sanitizer_common/sanitizer_allocator_interface.h @@ -34,13 +34,12 @@ SANITIZER_INTERFACE_ATTRIBUTE int __sanitizer_install_malloc_and_free_hooks( void (*free_hook)(const void *)); SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE - /* OPTIONAL */ void __sanitizer_malloc_hook(void *ptr, uptr size); + void __sanitizer_malloc_hook(void *ptr, uptr size); SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE - /* OPTIONAL */ void __sanitizer_free_hook(void *ptr); + void __sanitizer_free_hook(void *ptr); - -SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE - void __sanitizer_print_memory_profile(int top_percent); +SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE void +__sanitizer_print_memory_profile(uptr top_percent, uptr max_number_of_contexts); } // extern "C" #endif // SANITIZER_ALLOCATOR_INTERFACE_H diff --git a/lib/sanitizer_common/sanitizer_allocator_local_cache.h b/lib/sanitizer_common/sanitizer_allocator_local_cache.h index e1172e0c2820..d6c66604ec86 100644 --- a/lib/sanitizer_common/sanitizer_allocator_local_cache.h +++ b/lib/sanitizer_common/sanitizer_allocator_local_cache.h @@ -45,10 +45,10 @@ struct SizeClassAllocator64LocalCache { void *Allocate(SizeClassAllocator *allocator, uptr class_id) { CHECK_NE(class_id, 0UL); CHECK_LT(class_id, kNumClasses); - stats_.Add(AllocatorStatAllocated, Allocator::ClassIdToSize(class_id)); PerClass *c = &per_class_[class_id]; if (UNLIKELY(c->count == 0)) Refill(c, allocator, class_id); + stats_.Add(AllocatorStatAllocated, c->class_size); CHECK_GT(c->count, 0); CompactPtrT chunk = c->chunks[--c->count]; void *res = reinterpret_cast<void *>(allocator->CompactPtrToPointer( @@ -62,8 +62,8 @@ struct SizeClassAllocator64LocalCache { // If the first allocator call on a new thread is a deallocation, then // max_count will be zero, leading to check failure. InitCache(); - stats_.Sub(AllocatorStatAllocated, Allocator::ClassIdToSize(class_id)); PerClass *c = &per_class_[class_id]; + stats_.Sub(AllocatorStatAllocated, c->class_size); CHECK_NE(c->max_count, 0UL); if (UNLIKELY(c->count == c->max_count)) Drain(c, allocator, class_id, c->max_count / 2); @@ -85,6 +85,7 @@ struct SizeClassAllocator64LocalCache { struct PerClass { u32 count; u32 max_count; + uptr class_size; CompactPtrT chunks[2 * SizeClassMap::kMaxNumCachedHint]; }; PerClass per_class_[kNumClasses]; @@ -96,13 +97,14 @@ struct SizeClassAllocator64LocalCache { for (uptr i = 0; i < kNumClasses; i++) { PerClass *c = &per_class_[i]; c->max_count = 2 * SizeClassMap::MaxCachedHint(i); + c->class_size = Allocator::ClassIdToSize(i); } } NOINLINE void Refill(PerClass *c, SizeClassAllocator *allocator, uptr class_id) { InitCache(); - uptr num_requested_chunks = SizeClassMap::MaxCachedHint(class_id); + uptr num_requested_chunks = c->max_count / 2; allocator->GetFromAllocator(&stats_, class_id, c->chunks, num_requested_chunks); c->count = num_requested_chunks; @@ -141,10 +143,10 @@ struct SizeClassAllocator32LocalCache { void *Allocate(SizeClassAllocator *allocator, uptr class_id) { CHECK_NE(class_id, 0UL); CHECK_LT(class_id, kNumClasses); - stats_.Add(AllocatorStatAllocated, Allocator::ClassIdToSize(class_id)); PerClass *c = &per_class_[class_id]; if (UNLIKELY(c->count == 0)) Refill(allocator, class_id); + stats_.Add(AllocatorStatAllocated, c->class_size); void *res = c->batch[--c->count]; PREFETCH(c->batch[c->count - 1]); return res; @@ -156,8 +158,8 @@ struct SizeClassAllocator32LocalCache { // If the first allocator call on a new thread is a deallocation, then // max_count will be zero, leading to check failure. InitCache(); - stats_.Sub(AllocatorStatAllocated, Allocator::ClassIdToSize(class_id)); PerClass *c = &per_class_[class_id]; + stats_.Sub(AllocatorStatAllocated, c->class_size); CHECK_NE(c->max_count, 0UL); if (UNLIKELY(c->count == c->max_count)) Drain(allocator, class_id); @@ -177,6 +179,7 @@ struct SizeClassAllocator32LocalCache { struct PerClass { uptr count; uptr max_count; + uptr class_size; void *batch[2 * TransferBatch::kMaxNumCached]; }; PerClass per_class_[kNumClasses]; @@ -188,6 +191,7 @@ struct SizeClassAllocator32LocalCache { for (uptr i = 0; i < kNumClasses; i++) { PerClass *c = &per_class_[i]; c->max_count = 2 * TransferBatch::MaxCached(i); + c->class_size = Allocator::ClassIdToSize(i); } } diff --git a/lib/sanitizer_common/sanitizer_common.cc b/lib/sanitizer_common/sanitizer_common.cc index 9824a5198b52..3ef366f4f328 100644 --- a/lib/sanitizer_common/sanitizer_common.cc +++ b/lib/sanitizer_common/sanitizer_common.cc @@ -199,23 +199,24 @@ const char *StripModuleName(const char *module) { return module; } -void ReportErrorSummary(const char *error_message) { +void ReportErrorSummary(const char *error_message, const char *alt_tool_name) { if (!common_flags()->print_summary) return; InternalScopedString buff(kMaxSummaryLength); - buff.append("SUMMARY: %s: %s", SanitizerToolName, error_message); + buff.append("SUMMARY: %s: %s", + alt_tool_name ? alt_tool_name : SanitizerToolName, error_message); __sanitizer_report_error_summary(buff.data()); } #if !SANITIZER_GO -void ReportErrorSummary(const char *error_type, const AddressInfo &info) { - if (!common_flags()->print_summary) - return; +void ReportErrorSummary(const char *error_type, const AddressInfo &info, + const char *alt_tool_name) { + if (!common_flags()->print_summary) return; InternalScopedString buff(kMaxSummaryLength); buff.append("%s ", error_type); RenderFrame(&buff, "%L %F", 0, info, common_flags()->symbolize_vs_style, common_flags()->strip_path_prefix); - ReportErrorSummary(buff.data()); + ReportErrorSummary(buff.data(), alt_tool_name); } #endif @@ -489,7 +490,8 @@ void __sanitizer_set_report_fd(void *fd) { report_file.fd_pid = internal_getpid(); } -void __sanitizer_report_error_summary(const char *error_summary) { +SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_report_error_summary, + const char *error_summary) { Printf("%s\n", error_summary); } @@ -504,11 +506,4 @@ int __sanitizer_install_malloc_and_free_hooks(void (*malloc_hook)(const void *, void (*free_hook)(const void *)) { return InstallMallocFreeHooks(malloc_hook, free_hook); } - -#if !SANITIZER_GO && !SANITIZER_SUPPORTS_WEAK_HOOKS -SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE -void __sanitizer_print_memory_profile(int top_percent) { - (void)top_percent; -} -#endif } // extern "C" diff --git a/lib/sanitizer_common/sanitizer_common.h b/lib/sanitizer_common/sanitizer_common.h index 2dabb5066ecf..9d367ca80144 100644 --- a/lib/sanitizer_common/sanitizer_common.h +++ b/lib/sanitizer_common/sanitizer_common.h @@ -382,6 +382,7 @@ void SetSoftRssLimitExceededCallback(void (*Callback)(bool exceeded)); typedef void (*SignalHandlerType)(int, void *, void *); bool IsHandledDeadlySignal(int signum); void InstallDeadlySignalHandlers(SignalHandlerType handler); +const char *DescribeSignalOrException(int signo); // Alternative signal stack (POSIX-only). void SetAlternateSignalStack(); void UnsetAlternateSignalStack(); @@ -391,12 +392,16 @@ const int kMaxSummaryLength = 1024; // Construct a one-line string: // SUMMARY: SanitizerToolName: error_message // and pass it to __sanitizer_report_error_summary. -void ReportErrorSummary(const char *error_message); +// If alt_tool_name is provided, it's used in place of SanitizerToolName. +void ReportErrorSummary(const char *error_message, + const char *alt_tool_name = nullptr); // Same as above, but construct error_message as: // error_type file:line[:column][ function] -void ReportErrorSummary(const char *error_type, const AddressInfo &info); +void ReportErrorSummary(const char *error_type, const AddressInfo &info, + const char *alt_tool_name = nullptr); // Same as above, but obtains AddressInfo by symbolizing top stack trace frame. -void ReportErrorSummary(const char *error_type, const StackTrace *trace); +void ReportErrorSummary(const char *error_type, const StackTrace *trace, + const char *alt_tool_name = nullptr); // Math #if SANITIZER_WINDOWS && !defined(__clang__) && !defined(__GNUC__) @@ -910,6 +915,8 @@ struct StackDepotStats { // indicate that sanitizer allocator should not attempt to release memory to OS. const s32 kReleaseToOSIntervalNever = -1; +void CheckNoDeepBind(const char *filename, int flag); + } // namespace __sanitizer inline void *operator new(__sanitizer::operator_new_size_type size, diff --git a/lib/sanitizer_common/sanitizer_common_interceptors.inc b/lib/sanitizer_common/sanitizer_common_interceptors.inc index ca571d1a9fd5..7b4e6d27df3d 100644 --- a/lib/sanitizer_common/sanitizer_common_interceptors.inc +++ b/lib/sanitizer_common/sanitizer_common_interceptors.inc @@ -24,7 +24,8 @@ // COMMON_INTERCEPTOR_SET_THREAD_NAME // COMMON_INTERCEPTOR_ON_DLOPEN // COMMON_INTERCEPTOR_ON_EXIT -// COMMON_INTERCEPTOR_MUTEX_LOCK +// COMMON_INTERCEPTOR_MUTEX_PRE_LOCK +// COMMON_INTERCEPTOR_MUTEX_POST_LOCK // COMMON_INTERCEPTOR_MUTEX_UNLOCK // COMMON_INTERCEPTOR_MUTEX_REPAIR // COMMON_INTERCEPTOR_SET_PTHREAD_NAME @@ -44,15 +45,9 @@ #include <stdarg.h> #if SANITIZER_INTERCEPTOR_HOOKS -#define CALL_WEAK_INTERCEPTOR_HOOK(f, ...) \ - do { \ - if (f) \ - f(__VA_ARGS__); \ - } while (false); -#define DECLARE_WEAK_INTERCEPTOR_HOOK(f, ...) \ - extern "C" { \ - SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE void f(__VA_ARGS__); \ - } // extern "C" +#define CALL_WEAK_INTERCEPTOR_HOOK(f, ...) f(__VA_ARGS__); +#define DECLARE_WEAK_INTERCEPTOR_HOOK(f, ...) \ + SANITIZER_INTERFACE_WEAK_DEF(void, f, __VA_ARGS__) {} #else #define DECLARE_WEAK_INTERCEPTOR_HOOK(f, ...) #define CALL_WEAK_INTERCEPTOR_HOOK(f, ...) @@ -95,8 +90,12 @@ bool PlatformHasDifferentMemcpyAndMemmove(); #define COMMON_INTERCEPTOR_FD_ACCESS(ctx, fd) {} #endif -#ifndef COMMON_INTERCEPTOR_MUTEX_LOCK -#define COMMON_INTERCEPTOR_MUTEX_LOCK(ctx, m) {} +#ifndef COMMON_INTERCEPTOR_MUTEX_PRE_LOCK +#define COMMON_INTERCEPTOR_MUTEX_PRE_LOCK(ctx, m) {} +#endif + +#ifndef COMMON_INTERCEPTOR_MUTEX_POST_LOCK +#define COMMON_INTERCEPTOR_MUTEX_POST_LOCK(ctx, m) {} #endif #ifndef COMMON_INTERCEPTOR_MUTEX_UNLOCK @@ -148,7 +147,8 @@ bool PlatformHasDifferentMemcpyAndMemmove(); COMMON_INTERCEPTOR_READ_STRING_OF_LEN((ctx), (s), REAL(strlen)(s), (n)) #ifndef COMMON_INTERCEPTOR_ON_DLOPEN -#define COMMON_INTERCEPTOR_ON_DLOPEN(filename, flag) {} +#define COMMON_INTERCEPTOR_ON_DLOPEN(filename, flag) \ + CheckNoDeepBind(filename, flag); #endif #ifndef COMMON_INTERCEPTOR_GET_TLS_RANGE @@ -500,6 +500,52 @@ INTERCEPTOR(char*, strcasestr, const char *s1, const char *s2) { #define INIT_STRCASESTR #endif +#if SANITIZER_INTERCEPT_STRTOK + +INTERCEPTOR(char*, strtok, char *str, const char *delimiters) { + void *ctx; + COMMON_INTERCEPTOR_ENTER(ctx, strtok, str, delimiters); + if (!common_flags()->intercept_strtok) { + return REAL(strtok)(str, delimiters); + } + if (common_flags()->strict_string_checks) { + // If strict_string_checks is enabled, we check the whole first argument + // string on the first call (strtok saves this string in a static buffer + // for subsequent calls). We do not need to check strtok's result. + // As the delimiters can change, we check them every call. + if (str != nullptr) { + COMMON_INTERCEPTOR_READ_RANGE(ctx, str, REAL(strlen)(str) + 1); + } + COMMON_INTERCEPTOR_READ_RANGE(ctx, delimiters, + REAL(strlen)(delimiters) + 1); + return REAL(strtok)(str, delimiters); + } else { + // However, when strict_string_checks is disabled we cannot check the + // whole string on the first call. Instead, we check the result string + // which is guaranteed to be a NULL-terminated substring of the first + // argument. We also conservatively check one character of str and the + // delimiters. + if (str != nullptr) { + COMMON_INTERCEPTOR_READ_STRING(ctx, str, 1); + } + COMMON_INTERCEPTOR_READ_RANGE(ctx, delimiters, 1); + char *result = REAL(strtok)(str, delimiters); + if (result != nullptr) { + COMMON_INTERCEPTOR_READ_RANGE(ctx, result, REAL(strlen)(result) + 1); + } else if (str != nullptr) { + // No delimiter were found, it's safe to assume that the entire str was + // scanned. + COMMON_INTERCEPTOR_READ_RANGE(ctx, str, REAL(strlen)(str) + 1); + } + return result; + } +} + +#define INIT_STRTOK COMMON_INTERCEPT_FUNCTION(strtok) +#else +#define INIT_STRTOK +#endif + #if SANITIZER_INTERCEPT_MEMMEM DECLARE_WEAK_INTERCEPTOR_HOOK(__sanitizer_weak_hook_memmem, uptr called_pc, const void *s1, SIZE_T len1, const void *s2, @@ -842,6 +888,23 @@ INTERCEPTOR(SSIZE_T, read, int fd, void *ptr, SIZE_T count) { #define INIT_READ #endif +#if SANITIZER_INTERCEPT_FREAD +INTERCEPTOR(SIZE_T, fread, void *ptr, SIZE_T size, SIZE_T nmemb, void *file) { + // libc file streams can call user-supplied functions, see fopencookie. + void *ctx; + COMMON_INTERCEPTOR_ENTER(ctx, fread, ptr, size, nmemb, file); + // FIXME: under ASan the call below may write to freed memory and corrupt + // its metadata. See + // https://github.com/google/sanitizers/issues/321. + SIZE_T res = REAL(fread)(ptr, size, nmemb, file); + if (res > 0) COMMON_INTERCEPTOR_WRITE_RANGE(ctx, ptr, res * size); + return res; +} +#define INIT_FREAD COMMON_INTERCEPT_FUNCTION(fread) +#else +#define INIT_FREAD +#endif + #if SANITIZER_INTERCEPT_PREAD INTERCEPTOR(SSIZE_T, pread, int fd, void *ptr, SIZE_T count, OFF_T offset) { void *ctx; @@ -942,6 +1005,20 @@ INTERCEPTOR(SSIZE_T, write, int fd, void *ptr, SIZE_T count) { #define INIT_WRITE #endif +#if SANITIZER_INTERCEPT_FWRITE +INTERCEPTOR(SIZE_T, fwrite, const void *p, uptr size, uptr nmemb, void *file) { + // libc file streams can call user-supplied functions, see fopencookie. + void *ctx; + COMMON_INTERCEPTOR_ENTER(ctx, fwrite, p, size, nmemb, file); + SIZE_T res = REAL(fwrite)(p, size, nmemb, file); + if (res > 0) COMMON_INTERCEPTOR_READ_RANGE(ctx, p, res * size); + return res; +} +#define INIT_FWRITE COMMON_INTERCEPT_FUNCTION(fwrite) +#else +#define INIT_FWRITE +#endif + #if SANITIZER_INTERCEPT_PWRITE INTERCEPTOR(SSIZE_T, pwrite, int fd, void *ptr, SIZE_T count, OFF_T offset) { void *ctx; @@ -3251,6 +3328,30 @@ INTERCEPTOR(char *, strerror, int errnum) { #endif #if SANITIZER_INTERCEPT_STRERROR_R +// There are 2 versions of strerror_r: +// * POSIX version returns 0 on success, negative error code on failure, +// writes message to buf. +// * GNU version returns message pointer, which points to either buf or some +// static storage. +#if ((_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && !_GNU_SOURCE) || \ + SANITIZER_MAC +// POSIX version. Spec is not clear on whether buf is NULL-terminated. +// At least on OSX, buf contents are valid even when the call fails. +INTERCEPTOR(int, strerror_r, int errnum, char *buf, SIZE_T buflen) { + void *ctx; + COMMON_INTERCEPTOR_ENTER(ctx, strerror_r, errnum, buf, buflen); + // FIXME: under ASan the call below may write to freed memory and corrupt + // its metadata. See + // https://github.com/google/sanitizers/issues/321. + int res = REAL(strerror_r)(errnum, buf, buflen); + + SIZE_T sz = internal_strnlen(buf, buflen); + if (sz < buflen) ++sz; + COMMON_INTERCEPTOR_WRITE_RANGE(ctx, buf, sz); + return res; +} +#else +// GNU version. INTERCEPTOR(char *, strerror_r, int errnum, char *buf, SIZE_T buflen) { void *ctx; COMMON_INTERCEPTOR_ENTER(ctx, strerror_r, errnum, buf, buflen); @@ -3258,24 +3359,11 @@ INTERCEPTOR(char *, strerror_r, int errnum, char *buf, SIZE_T buflen) { // its metadata. See // https://github.com/google/sanitizers/issues/321. char *res = REAL(strerror_r)(errnum, buf, buflen); - // There are 2 versions of strerror_r: - // * POSIX version returns 0 on success, negative error code on failure, - // writes message to buf. - // * GNU version returns message pointer, which points to either buf or some - // static storage. - SIZE_T posix_res = (SIZE_T)res; - if (posix_res < 1024 || posix_res > (SIZE_T) - 1024) { - // POSIX version. Spec is not clear on whether buf is NULL-terminated. - // At least on OSX, buf contents are valid even when the call fails. - SIZE_T sz = internal_strnlen(buf, buflen); - if (sz < buflen) ++sz; - COMMON_INTERCEPTOR_WRITE_RANGE(ctx, buf, sz); - } else { - // GNU version. - COMMON_INTERCEPTOR_WRITE_RANGE(ctx, res, REAL(strlen)(res) + 1); - } + COMMON_INTERCEPTOR_WRITE_RANGE(ctx, res, REAL(strlen)(res) + 1); return res; } +#endif //(_POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600) && !_GNU_SOURCE || + //SANITIZER_MAC #define INIT_STRERROR_R COMMON_INTERCEPT_FUNCTION(strerror_r); #else #define INIT_STRERROR_R @@ -3414,7 +3502,8 @@ INTERCEPTOR(int, getgroups, int size, u32 *lst) { // its metadata. See // https://github.com/google/sanitizers/issues/321. int res = REAL(getgroups)(size, lst); - if (res && lst) COMMON_INTERCEPTOR_WRITE_RANGE(ctx, lst, res * sizeof(*lst)); + if (res >= 0 && lst && size > 0) + COMMON_INTERCEPTOR_WRITE_RANGE(ctx, lst, res * sizeof(*lst)); return res; } #define INIT_GETGROUPS COMMON_INTERCEPT_FUNCTION(getgroups); @@ -3669,11 +3758,12 @@ INTERCEPTOR(void, _exit, int status) { INTERCEPTOR(int, pthread_mutex_lock, void *m) { void *ctx; COMMON_INTERCEPTOR_ENTER(ctx, pthread_mutex_lock, m); + COMMON_INTERCEPTOR_MUTEX_PRE_LOCK(ctx, m); int res = REAL(pthread_mutex_lock)(m); if (res == errno_EOWNERDEAD) COMMON_INTERCEPTOR_MUTEX_REPAIR(ctx, m); if (res == 0 || res == errno_EOWNERDEAD) - COMMON_INTERCEPTOR_MUTEX_LOCK(ctx, m); + COMMON_INTERCEPTOR_MUTEX_POST_LOCK(ctx, m); if (res == errno_EINVAL) COMMON_INTERCEPTOR_MUTEX_INVALID(ctx, m); return res; @@ -4547,7 +4637,7 @@ INTERCEPTOR(SIZE_T, iconv, void *cd, char **inbuf, SIZE_T *inbytesleft, // its metadata. See // https://github.com/google/sanitizers/issues/321. SIZE_T res = REAL(iconv)(cd, inbuf, inbytesleft, outbuf, outbytesleft); - if (res != (SIZE_T) - 1 && outbuf && *outbuf > outbuf_orig) { + if (outbuf && *outbuf > outbuf_orig) { SIZE_T sz = (char *)*outbuf - (char *)outbuf_orig; COMMON_INTERCEPTOR_WRITE_RANGE(ctx, outbuf_orig, sz); } @@ -4614,11 +4704,15 @@ void *__tls_get_addr_opt(void *arg); // descriptor offset as an argument instead of a pointer. GOT address // is passed in r12, so it's necessary to write it in assembly. This is // the function used by the compiler. -#define INIT_TLS_GET_ADDR COMMON_INTERCEPT_FUNCTION(__tls_get_addr_internal) +extern "C" uptr __tls_get_offset_wrapper(void *arg, uptr (*fn)(void *arg)); +#define INIT_TLS_GET_ADDR COMMON_INTERCEPT_FUNCTION(__tls_get_offset) +DEFINE_REAL(uptr, __tls_get_offset, void *arg) +extern "C" uptr __tls_get_offset(void *arg); +extern "C" uptr __interceptor___tls_get_offset(void *arg); INTERCEPTOR(uptr, __tls_get_addr_internal, void *arg) { void *ctx; COMMON_INTERCEPTOR_ENTER(ctx, __tls_get_addr_internal, arg); - uptr res = REAL(__tls_get_addr_internal)(arg); + uptr res = __tls_get_offset_wrapper(arg, REAL(__tls_get_offset)); uptr tp = reinterpret_cast<uptr>(__builtin_thread_pointer()); void *ptr = reinterpret_cast<void *>(res + tp); uptr tls_begin, tls_end; @@ -4630,32 +4724,43 @@ INTERCEPTOR(uptr, __tls_get_addr_internal, void *arg) { } return res; } -// We need a protected symbol aliasing the above, so that we can jump +// We need a hidden symbol aliasing the above, so that we can jump // directly to it from the assembly below. extern "C" __attribute__((alias("__interceptor___tls_get_addr_internal"), - visibility("protected"))) -uptr __interceptor___tls_get_addr_internal_protected(void *arg); + visibility("hidden"))) +uptr __tls_get_addr_hidden(void *arg); // Now carefully intercept __tls_get_offset. asm( ".text\n" - ".global __tls_get_offset\n" - "__tls_get_offset:\n" // The __intercept_ version has to exist, so that gen_dynamic_list.py // exports our symbol. + ".weak __tls_get_offset\n" + ".type __tls_get_offset, @function\n" + "__tls_get_offset:\n" ".global __interceptor___tls_get_offset\n" + ".type __interceptor___tls_get_offset, @function\n" "__interceptor___tls_get_offset:\n" #ifdef __s390x__ "la %r2, 0(%r2,%r12)\n" - "jg __interceptor___tls_get_addr_internal_protected\n" + "jg __tls_get_addr_hidden\n" #else "basr %r3,0\n" "0: la %r2,0(%r2,%r12)\n" "l %r4,1f-0b(%r3)\n" "b 0(%r4,%r3)\n" - "1: .long __interceptor___tls_get_addr_internal_protected - 0b\n" + "1: .long __tls_get_addr_hidden - 0b\n" #endif - ".type __tls_get_offset, @function\n" - ".size __tls_get_offset, .-__tls_get_offset\n" + ".size __interceptor___tls_get_offset, .-__interceptor___tls_get_offset\n" +// Assembly wrapper to call REAL(__tls_get_offset)(arg) + ".type __tls_get_offset_wrapper, @function\n" + "__tls_get_offset_wrapper:\n" +#ifdef __s390x__ + "sgr %r2,%r12\n" +#else + "sr %r2,%r12\n" +#endif + "br %r3\n" + ".size __tls_get_offset_wrapper, .-__tls_get_offset_wrapper\n" ); #endif // SANITIZER_S390 #else @@ -6026,6 +6131,21 @@ INTERCEPTOR(void *, getutxline, void *ut) { #define INIT_UTMPX #endif +#if SANITIZER_INTERCEPT_GETLOADAVG +INTERCEPTOR(int, getloadavg, double *loadavg, int nelem) { + void *ctx; + COMMON_INTERCEPTOR_ENTER(ctx, getloadavg, loadavg, nelem); + int res = REAL(getloadavg)(loadavg, nelem); + if (res > 0) + COMMON_INTERCEPTOR_WRITE_RANGE(ctx, loadavg, res * sizeof(*loadavg)); + return res; +} +#define INIT_GETLOADAVG \ + COMMON_INTERCEPT_FUNCTION(getloadavg); +#else +#define INIT_GETLOADAVG +#endif + static void InitializeCommonInterceptors() { static u64 metadata_mem[sizeof(MetadataHashMap) / sizeof(u64) + 1]; interceptor_metadata_map = new((void *)&metadata_mem) MetadataHashMap(); @@ -6043,6 +6163,7 @@ static void InitializeCommonInterceptors() { INIT_STRCHRNUL; INIT_STRRCHR; INIT_STRSPN; + INIT_STRTOK; INIT_STRPBRK; INIT_MEMSET; INIT_MEMMOVE; @@ -6052,12 +6173,14 @@ static void InitializeCommonInterceptors() { INIT_MEMRCHR; INIT_MEMMEM; INIT_READ; + INIT_FREAD; INIT_PREAD; INIT_PREAD64; INIT_READV; INIT_PREADV; INIT_PREADV64; INIT_WRITE; + INIT_FWRITE; INIT_PWRITE; INIT_PWRITE64; INIT_WRITEV; @@ -6224,4 +6347,5 @@ static void InitializeCommonInterceptors() { // FIXME: add other *stat interceptors. INIT_UTMP; INIT_UTMPX; + INIT_GETLOADAVG; } diff --git a/lib/sanitizer_common/sanitizer_common_interface.inc b/lib/sanitizer_common/sanitizer_common_interface.inc new file mode 100644 index 000000000000..550427c906a6 --- /dev/null +++ b/lib/sanitizer_common/sanitizer_common_interface.inc @@ -0,0 +1,39 @@ +//===-- sanitizer_common_interface.inc ------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// Sanitizer Common interface list. +//===----------------------------------------------------------------------===// +INTERFACE_FUNCTION(__sanitizer_annotate_contiguous_container) +INTERFACE_FUNCTION(__sanitizer_contiguous_container_find_bad_address) +INTERFACE_FUNCTION(__sanitizer_set_death_callback) +INTERFACE_FUNCTION(__sanitizer_set_report_path) +INTERFACE_FUNCTION(__sanitizer_set_report_fd) +INTERFACE_FUNCTION(__sanitizer_verify_contiguous_container) +INTERFACE_WEAK_FUNCTION(__sanitizer_report_error_summary) +INTERFACE_WEAK_FUNCTION(__sanitizer_sandbox_on_notify) +// Sanitizer weak hooks +INTERFACE_WEAK_FUNCTION(__sanitizer_weak_hook_memcmp) +INTERFACE_WEAK_FUNCTION(__sanitizer_weak_hook_strcmp) +INTERFACE_WEAK_FUNCTION(__sanitizer_weak_hook_strncmp) +INTERFACE_WEAK_FUNCTION(__sanitizer_weak_hook_strstr) +// Stacktrace interface. +INTERFACE_FUNCTION(__sanitizer_get_module_and_offset_for_pc) +INTERFACE_FUNCTION(__sanitizer_symbolize_global) +INTERFACE_FUNCTION(__sanitizer_symbolize_pc) +// Allocator interface. +INTERFACE_FUNCTION(__sanitizer_get_allocated_size) +INTERFACE_FUNCTION(__sanitizer_get_current_allocated_bytes) +INTERFACE_FUNCTION(__sanitizer_get_estimated_allocated_size) +INTERFACE_FUNCTION(__sanitizer_get_free_bytes) +INTERFACE_FUNCTION(__sanitizer_get_heap_size) +INTERFACE_FUNCTION(__sanitizer_get_ownership) +INTERFACE_FUNCTION(__sanitizer_get_unmapped_bytes) +INTERFACE_FUNCTION(__sanitizer_install_malloc_and_free_hooks) +INTERFACE_FUNCTION(__sanitizer_print_memory_profile) +INTERFACE_WEAK_FUNCTION(__sanitizer_free_hook) +INTERFACE_WEAK_FUNCTION(__sanitizer_malloc_hook) diff --git a/lib/sanitizer_common/sanitizer_common_interface_posix.inc b/lib/sanitizer_common/sanitizer_common_interface_posix.inc new file mode 100644 index 000000000000..bbc725a9d4d1 --- /dev/null +++ b/lib/sanitizer_common/sanitizer_common_interface_posix.inc @@ -0,0 +1,14 @@ +//===-- sanitizer_common_interface_posix.inc ------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// Sanitizer Common interface list only available for Posix systems. +//===----------------------------------------------------------------------===// +INTERFACE_WEAK_FUNCTION(__sanitizer_symbolize_code) +INTERFACE_WEAK_FUNCTION(__sanitizer_symbolize_data) +INTERFACE_WEAK_FUNCTION(__sanitizer_symbolize_demangle) +INTERFACE_WEAK_FUNCTION(__sanitizer_symbolize_flush) diff --git a/lib/sanitizer_common/sanitizer_common_libcdep.cc b/lib/sanitizer_common/sanitizer_common_libcdep.cc index 49ca961f3cb0..cf200512de84 100644 --- a/lib/sanitizer_common/sanitizer_common_libcdep.cc +++ b/lib/sanitizer_common/sanitizer_common_libcdep.cc @@ -47,7 +47,8 @@ void SetSandboxingCallback(void (*f)()) { sandboxing_callback = f; } -void ReportErrorSummary(const char *error_type, const StackTrace *stack) { +void ReportErrorSummary(const char *error_type, const StackTrace *stack, + const char *alt_tool_name) { #if !SANITIZER_GO if (!common_flags()->print_summary) return; @@ -59,7 +60,7 @@ void ReportErrorSummary(const char *error_type, const StackTrace *stack) { // Maybe sometimes we need to choose another frame (e.g. skip memcpy/etc). uptr pc = StackTrace::GetPreviousInstructionPc(stack->trace[0]); SymbolizedStack *frame = Symbolizer::GetOrInit()->SymbolizePC(pc); - ReportErrorSummary(error_type, frame->info); + ReportErrorSummary(error_type, frame->info, alt_tool_name); frame->ClearAll(); #endif } @@ -123,7 +124,7 @@ void BackgroundThread(void *arg) { if (heap_profile && current_rss_mb > rss_during_last_reported_profile * 1.1) { Printf("\n\nHEAP PROFILE at RSS %zdMb\n", current_rss_mb); - __sanitizer_print_memory_profile(90); + __sanitizer_print_memory_profile(90, 20); rss_during_last_reported_profile = current_rss_mb; } } @@ -162,8 +163,8 @@ void MaybeStartBackgroudThread() { } // namespace __sanitizer -void NOINLINE -__sanitizer_sandbox_on_notify(__sanitizer_sandbox_arguments *args) { +SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_sandbox_on_notify, + __sanitizer_sandbox_arguments *args) { __sanitizer::PrepareForSandboxing(args); if (__sanitizer::sandboxing_callback) __sanitizer::sandboxing_callback(); diff --git a/lib/sanitizer_common/sanitizer_coverage_interface.inc b/lib/sanitizer_common/sanitizer_coverage_interface.inc new file mode 100644 index 000000000000..ae691bd9dd27 --- /dev/null +++ b/lib/sanitizer_common/sanitizer_coverage_interface.inc @@ -0,0 +1,40 @@ +//===-- sanitizer_coverage_interface.inc ----------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// Sanitizer Coverage interface list. +//===----------------------------------------------------------------------===// +INTERFACE_FUNCTION(__sanitizer_cov) +INTERFACE_FUNCTION(__sanitizer_cov_dump) +INTERFACE_FUNCTION(__sanitizer_cov_indir_call16) +INTERFACE_FUNCTION(__sanitizer_cov_init) +INTERFACE_FUNCTION(__sanitizer_cov_module_init) +INTERFACE_FUNCTION(__sanitizer_cov_trace_basic_block) +INTERFACE_FUNCTION(__sanitizer_cov_trace_func_enter) +INTERFACE_FUNCTION(__sanitizer_cov_with_check) +INTERFACE_FUNCTION(__sanitizer_dump_coverage) +INTERFACE_FUNCTION(__sanitizer_dump_trace_pc_guard_coverage) +INTERFACE_FUNCTION(__sanitizer_get_coverage_guards) +INTERFACE_FUNCTION(__sanitizer_get_number_of_counters) +INTERFACE_FUNCTION(__sanitizer_get_total_unique_caller_callee_pairs) +INTERFACE_FUNCTION(__sanitizer_get_total_unique_coverage) +INTERFACE_FUNCTION(__sanitizer_maybe_open_cov_file) +INTERFACE_FUNCTION(__sanitizer_reset_coverage) +INTERFACE_FUNCTION(__sanitizer_update_counter_bitset_and_clear_counters) +INTERFACE_WEAK_FUNCTION(__sancov_default_options) +INTERFACE_WEAK_FUNCTION(__sanitizer_cov_trace_cmp) +INTERFACE_WEAK_FUNCTION(__sanitizer_cov_trace_cmp1) +INTERFACE_WEAK_FUNCTION(__sanitizer_cov_trace_cmp2) +INTERFACE_WEAK_FUNCTION(__sanitizer_cov_trace_cmp4) +INTERFACE_WEAK_FUNCTION(__sanitizer_cov_trace_cmp8) +INTERFACE_WEAK_FUNCTION(__sanitizer_cov_trace_div4) +INTERFACE_WEAK_FUNCTION(__sanitizer_cov_trace_div8) +INTERFACE_WEAK_FUNCTION(__sanitizer_cov_trace_gep) +INTERFACE_WEAK_FUNCTION(__sanitizer_cov_trace_pc_guard) +INTERFACE_WEAK_FUNCTION(__sanitizer_cov_trace_pc_guard_init) +INTERFACE_WEAK_FUNCTION(__sanitizer_cov_trace_pc_indir) +INTERFACE_WEAK_FUNCTION(__sanitizer_cov_trace_switch) diff --git a/lib/sanitizer_common/sanitizer_coverage_libcdep.cc b/lib/sanitizer_common/sanitizer_coverage_libcdep.cc index 5945ebbe90b2..e934af3ed975 100644 --- a/lib/sanitizer_common/sanitizer_coverage_libcdep.cc +++ b/lib/sanitizer_common/sanitizer_coverage_libcdep.cc @@ -171,7 +171,11 @@ class CoverageData { // - not thread-safe; // - does not support long traces; // - not tuned for performance. - static const uptr kTrEventArrayMaxSize = FIRST_32_SECOND_64(1 << 22, 1 << 30); + // Windows doesn't do overcommit (committed virtual memory costs swap), so + // programs can't reliably map such large amounts of virtual memory. + // TODO(etienneb): Find a way to support coverage of larger executable +static const uptr kTrEventArrayMaxSize = + (SANITIZER_WORDSIZE == 32 || SANITIZER_WINDOWS) ? 1 << 22 : 1 << 30; u32 *tr_event_array; uptr tr_event_array_size; u32 *tr_event_pointer; @@ -415,8 +419,7 @@ void CoverageData::Add(uptr pc, u32 *guard) { uptr idx = -guard_value - 1; if (idx >= atomic_load(&pc_array_index, memory_order_acquire)) return; // May happen after fork when pc_array_index becomes 0. - CHECK_LT(idx * sizeof(uptr), - atomic_load(&pc_array_size, memory_order_acquire)); + CHECK_LT(idx, atomic_load(&pc_array_size, memory_order_acquire)); uptr counter = atomic_fetch_add(&coverage_counter, 1, memory_order_relaxed); pc_array[idx] = BundlePcAndCounter(pc, counter); } @@ -940,7 +943,8 @@ SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_cov_with_check(u32 *guard) { atomic_uint32_t *atomic_guard = reinterpret_cast<atomic_uint32_t*>(guard); if (static_cast<s32>( __sanitizer::atomic_load(atomic_guard, memory_order_relaxed)) < 0) - __sanitizer_cov(guard); + coverage_data.Add(StackTrace::GetPreviousInstructionPc(GET_CALLER_PC()), + guard); } SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_cov_indir_call16(uptr callee, uptr callee_cache16[]) { @@ -954,9 +958,7 @@ SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_cov_init() { } SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_cov_dump() { coverage_data.DumpAll(); -#if SANITIZER_LINUX __sanitizer_dump_trace_pc_guard_coverage(); -#endif } SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_cov_module_init(s32 *guards, uptr npcs, u8 *counters, @@ -1018,27 +1020,16 @@ SANITIZER_INTERFACE_ATTRIBUTE uptr __sanitizer_update_counter_bitset_and_clear_counters(u8 *bitset) { return coverage_data.Update8bitCounterBitsetAndClearCounters(bitset); } + // Default empty implementations (weak). Users should redefine them. -#if !SANITIZER_WINDOWS // weak does not work on Windows. -SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE -void __sanitizer_cov_trace_cmp() {} -SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE -void __sanitizer_cov_trace_cmp1() {} -SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE -void __sanitizer_cov_trace_cmp2() {} -SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE -void __sanitizer_cov_trace_cmp4() {} -SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE -void __sanitizer_cov_trace_cmp8() {} -SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE -void __sanitizer_cov_trace_switch() {} -SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE -void __sanitizer_cov_trace_div4() {} -SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE -void __sanitizer_cov_trace_div8() {} -SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE -void __sanitizer_cov_trace_gep() {} -SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE -void __sanitizer_cov_trace_pc_indir() {} -#endif // !SANITIZER_WINDOWS +SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_cov_trace_cmp, void) {} +SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_cov_trace_cmp1, void) {} +SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_cov_trace_cmp2, void) {} +SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_cov_trace_cmp4, void) {} +SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_cov_trace_cmp8, void) {} +SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_cov_trace_switch, void) {} +SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_cov_trace_div4, void) {} +SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_cov_trace_div8, void) {} +SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_cov_trace_gep, void) {} +SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_cov_trace_pc_indir, void) {} } // extern "C" diff --git a/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cc b/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cc index df6d10f81762..73c36082bc67 100644 --- a/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cc +++ b/lib/sanitizer_common/sanitizer_coverage_libcdep_new.cc @@ -156,14 +156,13 @@ SANITIZER_INTERFACE_ATTRIBUTE void __sanitizer_dump_coverage( // NOLINT return __sancov::SanitizerDumpCoverage(pcs, len); } -SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE void -__sanitizer_cov_trace_pc_guard(u32* guard) { +SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_cov_trace_pc_guard, u32* guard) { if (!*guard) return; __sancov::pc_guard_controller.TracePcGuard(guard, GET_CALLER_PC() - 1); } -SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE void -__sanitizer_cov_trace_pc_guard_init(u32* start, u32* end) { +SANITIZER_INTERFACE_WEAK_DEF(void, __sanitizer_cov_trace_pc_guard_init, + u32* start, u32* end) { if (start == end || *start) return; __sancov::pc_guard_controller.InitTracePcGuard(start, end); } diff --git a/lib/sanitizer_common/sanitizer_coverage_win_dll_thunk.cc b/lib/sanitizer_common/sanitizer_coverage_win_dll_thunk.cc new file mode 100644 index 000000000000..d5e459f2c020 --- /dev/null +++ b/lib/sanitizer_common/sanitizer_coverage_win_dll_thunk.cc @@ -0,0 +1,21 @@ +//===-- sanitizer_coverage_win_dll_thunk.cc -------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file defines a family of thunks that should be statically linked into +// the DLLs that have instrumentation in order to delegate the calls to the +// shared runtime that lives in the main binary. +// See https://github.com/google/sanitizers/issues/209 for the details. +//===----------------------------------------------------------------------===// +#ifdef SANITIZER_DLL_THUNK +#include "sanitizer_win_dll_thunk.h" +// Sanitizer Coverage interface functions. +#define INTERFACE_FUNCTION(Name) INTERCEPT_SANITIZER_FUNCTION(Name) +#define INTERFACE_WEAK_FUNCTION(Name) INTERCEPT_SANITIZER_WEAK_FUNCTION(Name) +#include "sanitizer_coverage_interface.inc" +#endif // SANITIZER_DLL_THUNK diff --git a/lib/sanitizer_common/sanitizer_coverage_win_dynamic_runtime_thunk.cc b/lib/sanitizer_common/sanitizer_coverage_win_dynamic_runtime_thunk.cc new file mode 100644 index 000000000000..988a2065ffa9 --- /dev/null +++ b/lib/sanitizer_common/sanitizer_coverage_win_dynamic_runtime_thunk.cc @@ -0,0 +1,21 @@ +//===-- sanitizer_coverage_win_dynamic_runtime_thunk.cc -------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file defines things that need to be present in the application modules +// to interact with Sanitizer Coverage, when it is included in a dll. +// +//===----------------------------------------------------------------------===// +#ifdef SANITIZER_DYNAMIC_RUNTIME_THUNK +#define SANITIZER_IMPORT_INTERFACE 1 +#include "sanitizer_win_defs.h" +// Define weak alias for all weak functions imported from sanitizer coverage. +#define INTERFACE_FUNCTION(Name) +#define INTERFACE_WEAK_FUNCTION(Name) WIN_WEAK_IMPORT_DEF(Name) +#include "sanitizer_coverage_interface.inc" +#endif // SANITIZER_DYNAMIC_RUNTIME_THUNK diff --git a/lib/sanitizer_common/sanitizer_coverage_win_sections.cc b/lib/sanitizer_common/sanitizer_coverage_win_sections.cc new file mode 100644 index 000000000000..4b0bbf1ed1e5 --- /dev/null +++ b/lib/sanitizer_common/sanitizer_coverage_win_sections.cc @@ -0,0 +1,22 @@ +//===-- sanitizer_coverage_win_sections.cc --------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file defines delimiters for Sanitizer Coverage's section. +//===----------------------------------------------------------------------===// + +#include "sanitizer_platform.h" +#if SANITIZER_WINDOWS +#include <stdint.h> +#pragma section(".SCOV$A", read, write) // NOLINT +#pragma section(".SCOV$Z", read, write) // NOLINT +extern "C" { +__declspec(allocate(".SCOV$A")) uint32_t __start___sancov_guards = 0; +__declspec(allocate(".SCOV$Z")) uint32_t __stop___sancov_guards = 0; +} +#endif // SANITIZER_WINDOWS diff --git a/lib/sanitizer_common/sanitizer_coverage_win_weak_interception.cc b/lib/sanitizer_common/sanitizer_coverage_win_weak_interception.cc new file mode 100644 index 000000000000..0926f460b3cd --- /dev/null +++ b/lib/sanitizer_common/sanitizer_coverage_win_weak_interception.cc @@ -0,0 +1,24 @@ +//===-- sanitizer_coverage_win_weak_interception.cc -----------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// This module should be included in Sanitizer Coverage when it implemented as a +// shared library on Windows (dll), in order to delegate the calls of weak +// functions to the implementation in the main executable when a strong +// definition is provided. +//===----------------------------------------------------------------------===// +#ifdef SANITIZER_DYNAMIC +#include "sanitizer_win_weak_interception.h" +#include "sanitizer_interface_internal.h" +#include "sancov_flags.h" +// Check if strong definitions for weak functions are present in the main +// executable. If that is the case, override dll functions to point to strong +// implementations. +#define INTERFACE_FUNCTION(Name) +#define INTERFACE_WEAK_FUNCTION(Name) INTERCEPT_SANITIZER_WEAK_FUNCTION(Name) +#include "sanitizer_coverage_interface.inc" +#endif // SANITIZER_DYNAMIC diff --git a/lib/sanitizer_common/sanitizer_flags.inc b/lib/sanitizer_common/sanitizer_flags.inc index d7fa34a58081..40f8b6204cda 100644 --- a/lib/sanitizer_common/sanitizer_flags.inc +++ b/lib/sanitizer_common/sanitizer_flags.inc @@ -62,7 +62,7 @@ COMMON_FLAG( COMMON_FLAG( int, verbosity, 0, "Verbosity level (0 - silent, 1 - a bit of output, 2+ - more output).") -COMMON_FLAG(bool, detect_leaks, true, "Enable memory leak detection.") +COMMON_FLAG(bool, detect_leaks, !SANITIZER_MAC, "Enable memory leak detection.") COMMON_FLAG( bool, leak_check_at_exit, true, "Invoke leak checking in an atexit handler. Has no effect if " @@ -79,7 +79,9 @@ COMMON_FLAG(int, print_module_map, 0, "exits, 2 = print after each report.") COMMON_FLAG(bool, check_printf, true, "Check printf arguments.") COMMON_FLAG(bool, handle_segv, true, - "If set, registers the tool's custom SIGSEGV/SIGBUS handler.") + "If set, registers the tool's custom SIGSEGV handler.") +COMMON_FLAG(bool, handle_sigbus, true, + "If set, registers the tool's custom SIGBUS handler.") COMMON_FLAG(bool, handle_abort, false, "If set, registers the tool's custom SIGABRT handler.") COMMON_FLAG(bool, handle_sigill, false, @@ -190,6 +192,9 @@ COMMON_FLAG(bool, intercept_strstr, true, COMMON_FLAG(bool, intercept_strspn, true, "If set, uses custom wrappers for strspn and strcspn function " "to find more errors.") +COMMON_FLAG(bool, intercept_strtok, true, + "If set, uses a custom wrapper for the strtok function " + "to find more errors.") COMMON_FLAG(bool, intercept_strpbrk, true, "If set, uses custom wrappers for strpbrk function " "to find more errors.") diff --git a/lib/sanitizer_common/sanitizer_interface_internal.h b/lib/sanitizer_common/sanitizer_interface_internal.h index 174d5e92ba44..b28d8f08e7a3 100644 --- a/lib/sanitizer_common/sanitizer_interface_internal.h +++ b/lib/sanitizer_common/sanitizer_interface_internal.h @@ -69,6 +69,32 @@ extern "C" { int __sanitizer_get_module_and_offset_for_pc( __sanitizer::uptr pc, char *module_path, __sanitizer::uptr module_path_len, __sanitizer::uptr *pc_offset); - } // extern "C" + + SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE + void __sanitizer_cov_trace_cmp(); + SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE + void __sanitizer_cov_trace_cmp1(); + SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE + void __sanitizer_cov_trace_cmp2(); + SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE + void __sanitizer_cov_trace_cmp4(); + SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE + void __sanitizer_cov_trace_cmp8(); + SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE + void __sanitizer_cov_trace_switch(); + SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE + void __sanitizer_cov_trace_div4(); + SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE + void __sanitizer_cov_trace_div8(); + SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE + void __sanitizer_cov_trace_gep(); + SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE + void __sanitizer_cov_trace_pc_indir(); + SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE + void __sanitizer_cov_trace_pc_guard(__sanitizer::u32*); + SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE + void __sanitizer_cov_trace_pc_guard_init(__sanitizer::u32*, + __sanitizer::u32*); +} // extern "C" #endif // SANITIZER_INTERFACE_INTERNAL_H diff --git a/lib/sanitizer_common/sanitizer_internal_defs.h b/lib/sanitizer_common/sanitizer_internal_defs.h index 5338f79423cc..ea5022e31bc3 100644 --- a/lib/sanitizer_common/sanitizer_internal_defs.h +++ b/lib/sanitizer_common/sanitizer_internal_defs.h @@ -21,8 +21,11 @@ // Only use SANITIZER_*ATTRIBUTE* before the function return type! #if SANITIZER_WINDOWS +#if SANITIZER_IMPORT_INTERFACE +# define SANITIZER_INTERFACE_ATTRIBUTE __declspec(dllimport) +#else # define SANITIZER_INTERFACE_ATTRIBUTE __declspec(dllexport) -// FIXME find out what we need on Windows, if anything. +#endif # define SANITIZER_WEAK_ATTRIBUTE #elif SANITIZER_GO # define SANITIZER_INTERFACE_ATTRIBUTE @@ -32,11 +35,46 @@ # define SANITIZER_WEAK_ATTRIBUTE __attribute__((weak)) #endif -#if (SANITIZER_LINUX || SANITIZER_MAC || SANITIZER_WINDOWS) && !SANITIZER_GO +//--------------------------- WEAK FUNCTIONS ---------------------------------// +// When working with weak functions, to simplify the code and make it more +// portable, when possible define a default implementation using this macro: +// +// SANITIZER_INTERFACE_WEAK_DEF(<return_type>, <name>, <parameter list>) +// +// For example: +// SANITIZER_INTERFACE_WEAK_DEF(bool, compare, int a, int b) { return a > b; } +// +#if SANITIZER_WINDOWS +#include "sanitizer_win_defs.h" +# define SANITIZER_INTERFACE_WEAK_DEF(ReturnType, Name, ...) \ + WIN_WEAK_EXPORT_DEF(ReturnType, Name, __VA_ARGS__) +#else +# define SANITIZER_INTERFACE_WEAK_DEF(ReturnType, Name, ...) \ + extern "C" SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE \ + ReturnType Name(__VA_ARGS__) +#endif + +// SANITIZER_SUPPORTS_WEAK_HOOKS means that we support real weak functions that +// will evaluate to a null pointer when not defined. +#if (SANITIZER_LINUX || SANITIZER_MAC) && !SANITIZER_GO # define SANITIZER_SUPPORTS_WEAK_HOOKS 1 #else # define SANITIZER_SUPPORTS_WEAK_HOOKS 0 #endif +// For some weak hooks that will be called very often and we want to avoid the +// overhead of executing the default implementation when it is not necessary, +// we can use the flag SANITIZER_SUPPORTS_WEAK_HOOKS to only define the default +// implementation for platforms that doesn't support weak symbols. For example: +// +// #if !SANITIZER_SUPPORT_WEAK_HOOKS +// SANITIZER_INTERFACE_WEAK_DEF(bool, compare_hook, int a, int b) { +// return a > b; +// } +// #endif +// +// And then use it as: if (compare_hook) compare_hook(a, b); +//----------------------------------------------------------------------------// + // We can use .preinit_array section on Linux to call sanitizer initialization // functions very early in the process startup (unless PIC macro is defined). @@ -289,7 +327,12 @@ void NORETURN CheckFailed(const char *file, int line, const char *cond, enum LinkerInitialized { LINKER_INITIALIZED = 0 }; #if !defined(_MSC_VER) || defined(__clang__) +#if SANITIZER_S390_31 +#define GET_CALLER_PC() \ + (__sanitizer::uptr) __builtin_extract_return_addr(__builtin_return_address(0)) +#else #define GET_CALLER_PC() (__sanitizer::uptr) __builtin_return_address(0) +#endif #define GET_CURRENT_FRAME() (__sanitizer::uptr) __builtin_frame_address(0) inline void Trap() { __builtin_trap(); diff --git a/lib/sanitizer_common/sanitizer_linux.cc b/lib/sanitizer_common/sanitizer_linux.cc index 7328a5c0ac18..0b5473d95336 100644 --- a/lib/sanitizer_common/sanitizer_linux.cc +++ b/lib/sanitizer_common/sanitizer_linux.cc @@ -77,6 +77,20 @@ extern char **environ; // provided by crt1 #include <sys/signal.h> #endif +#ifndef __GLIBC_PREREQ +#define __GLIBC_PREREQ(x, y) 0 +#endif + +#if SANITIZER_LINUX && __GLIBC_PREREQ(2, 16) +# define SANITIZER_USE_GETAUXVAL 1 +#else +# define SANITIZER_USE_GETAUXVAL 0 +#endif + +#if SANITIZER_USE_GETAUXVAL +#include <sys/auxv.h> +#endif + #if SANITIZER_LINUX // <linux/time.h> struct kernel_timeval { @@ -805,6 +819,8 @@ uptr GetPageSize() { return 4096; #elif SANITIZER_LINUX && (defined(__x86_64__) || defined(__i386__)) return EXEC_PAGESIZE; +#elif SANITIZER_USE_GETAUXVAL + return getauxval(AT_PAGESZ); #else return sysconf(_SC_PAGESIZE); // EXEC_PAGESIZE may not be trustworthy. #endif @@ -1097,36 +1113,50 @@ uptr internal_clone(int (*fn)(void *), void *child_stack, int flags, void *arg, uptr internal_clone(int (*fn)(void *), void *child_stack, int flags, void *arg, int *parent_tidptr, void *newtls, int *child_tidptr) { long long res; -/* Stack frame offsets. */ -#if _CALL_ELF != 2 -#define FRAME_MIN_SIZE 112 -#define FRAME_TOC_SAVE 40 +// Stack frame structure. +#if SANITIZER_PPC64V1 +// Back chain == 0 (SP + 112) +// Frame (112 bytes): +// Parameter save area (SP + 48), 8 doublewords +// TOC save area (SP + 40) +// Link editor doubleword (SP + 32) +// Compiler doubleword (SP + 24) +// LR save area (SP + 16) +// CR save area (SP + 8) +// Back chain (SP + 0) +# define FRAME_SIZE 112 +# define FRAME_TOC_SAVE_OFFSET 40 +#elif SANITIZER_PPC64V2 +// Back chain == 0 (SP + 32) +// Frame (32 bytes): +// TOC save area (SP + 24) +// LR save area (SP + 16) +// CR save area (SP + 8) +// Back chain (SP + 0) +# define FRAME_SIZE 32 +# define FRAME_TOC_SAVE_OFFSET 24 #else -#define FRAME_MIN_SIZE 32 -#define FRAME_TOC_SAVE 24 +# error "Unsupported PPC64 ABI" #endif if (!fn || !child_stack) return -EINVAL; CHECK_EQ(0, (uptr)child_stack % 16); - child_stack = (char *)child_stack - 2 * sizeof(unsigned long long); - ((unsigned long long *)child_stack)[0] = (uptr)fn; - ((unsigned long long *)child_stack)[1] = (uptr)arg; register int (*__fn)(void *) __asm__("r3") = fn; register void *__cstack __asm__("r4") = child_stack; register int __flags __asm__("r5") = flags; - register void * __arg __asm__("r6") = arg; - register int * __ptidptr __asm__("r7") = parent_tidptr; - register void * __newtls __asm__("r8") = newtls; - register int * __ctidptr __asm__("r9") = child_tidptr; + register void *__arg __asm__("r6") = arg; + register int *__ptidptr __asm__("r7") = parent_tidptr; + register void *__newtls __asm__("r8") = newtls; + register int *__ctidptr __asm__("r9") = child_tidptr; __asm__ __volatile__( - /* fn, arg, child_stack are saved acrVoss the syscall */ + /* fn and arg are saved across the syscall */ "mr 28, %5\n\t" - "mr 29, %6\n\t" "mr 27, %8\n\t" /* syscall + r0 == __NR_clone r3 == flags r4 == child_stack r5 == parent_tidptr @@ -1144,15 +1174,21 @@ uptr internal_clone(int (*fn)(void *), void *child_stack, int flags, void *arg, "crandc cr1*4+eq, cr1*4+eq, cr0*4+so\n\t" "bne- cr1, 1f\n\t" + /* Set up stack frame */ + "li 29, 0\n\t" + "stdu 29, -8(1)\n\t" + "stdu 1, -%12(1)\n\t" /* Do the function call */ "std 2, %13(1)\n\t" -#if _CALL_ELF != 2 +#if SANITIZER_PPC64V1 "ld 0, 0(28)\n\t" "ld 2, 8(28)\n\t" "mtctr 0\n\t" -#else +#elif SANITIZER_PPC64V2 "mr 12, 28\n\t" "mtctr 12\n\t" +#else +# error "Unsupported PPC64 ABI" #endif "mr 3, 27\n\t" "bctrl\n\t" @@ -1166,13 +1202,151 @@ uptr internal_clone(int (*fn)(void *), void *child_stack, int flags, void *arg, "1:\n\t" "mr %0, 3\n\t" : "=r" (res) - : "0" (-1), "i" (EINVAL), - "i" (__NR_clone), "i" (__NR_exit), - "r" (__fn), "r" (__cstack), "r" (__flags), - "r" (__arg), "r" (__ptidptr), "r" (__newtls), - "r" (__ctidptr), "i" (FRAME_MIN_SIZE), "i" (FRAME_TOC_SAVE) - : "cr0", "cr1", "memory", "ctr", - "r0", "r29", "r27", "r28"); + : "0" (-1), + "i" (EINVAL), + "i" (__NR_clone), + "i" (__NR_exit), + "r" (__fn), + "r" (__cstack), + "r" (__flags), + "r" (__arg), + "r" (__ptidptr), + "r" (__newtls), + "r" (__ctidptr), + "i" (FRAME_SIZE), + "i" (FRAME_TOC_SAVE_OFFSET) + : "cr0", "cr1", "memory", "ctr", "r0", "r27", "r28", "r29"); + return res; +} +#elif defined(__i386__) && SANITIZER_LINUX +uptr internal_clone(int (*fn)(void *), void *child_stack, int flags, void *arg, + int *parent_tidptr, void *newtls, int *child_tidptr) { + int res; + if (!fn || !child_stack) + return -EINVAL; + CHECK_EQ(0, (uptr)child_stack % 16); + child_stack = (char *)child_stack - 7 * sizeof(unsigned int); + ((unsigned int *)child_stack)[0] = (uptr)flags; + ((unsigned int *)child_stack)[1] = (uptr)0; + ((unsigned int *)child_stack)[2] = (uptr)fn; + ((unsigned int *)child_stack)[3] = (uptr)arg; + __asm__ __volatile__( + /* %eax = syscall(%eax = SYSCALL(clone), + * %ebx = flags, + * %ecx = child_stack, + * %edx = parent_tidptr, + * %esi = new_tls, + * %edi = child_tidptr) + */ + + /* Obtain flags */ + "movl (%%ecx), %%ebx\n" + /* Do the system call */ + "pushl %%ebx\n" + "pushl %%esi\n" + "pushl %%edi\n" + /* Remember the flag value. */ + "movl %%ebx, (%%ecx)\n" + "int $0x80\n" + "popl %%edi\n" + "popl %%esi\n" + "popl %%ebx\n" + + /* if (%eax != 0) + * return; + */ + + "test %%eax,%%eax\n" + "jnz 1f\n" + + /* terminate the stack frame */ + "xorl %%ebp,%%ebp\n" + /* Call FN. */ + "call *%%ebx\n" +#ifdef PIC + "call here\n" + "here:\n" + "popl %%ebx\n" + "addl $_GLOBAL_OFFSET_TABLE_+[.-here], %%ebx\n" +#endif + /* Call exit */ + "movl %%eax, %%ebx\n" + "movl %2, %%eax\n" + "int $0x80\n" + "1:\n" + : "=a" (res) + : "a"(SYSCALL(clone)), "i"(SYSCALL(exit)), + "c"(child_stack), + "d"(parent_tidptr), + "S"(newtls), + "D"(child_tidptr) + : "memory"); + return res; +} +#elif defined(__arm__) && SANITIZER_LINUX +uptr internal_clone(int (*fn)(void *), void *child_stack, int flags, void *arg, + int *parent_tidptr, void *newtls, int *child_tidptr) { + unsigned int res; + if (!fn || !child_stack) + return -EINVAL; + child_stack = (char *)child_stack - 2 * sizeof(unsigned int); + ((unsigned int *)child_stack)[0] = (uptr)fn; + ((unsigned int *)child_stack)[1] = (uptr)arg; + register int r0 __asm__("r0") = flags; + register void *r1 __asm__("r1") = child_stack; + register int *r2 __asm__("r2") = parent_tidptr; + register void *r3 __asm__("r3") = newtls; + register int *r4 __asm__("r4") = child_tidptr; + register int r7 __asm__("r7") = __NR_clone; + +#if __ARM_ARCH > 4 || defined (__ARM_ARCH_4T__) +# define ARCH_HAS_BX +#endif +#if __ARM_ARCH > 4 +# define ARCH_HAS_BLX +#endif + +#ifdef ARCH_HAS_BX +# ifdef ARCH_HAS_BLX +# define BLX(R) "blx " #R "\n" +# else +# define BLX(R) "mov lr, pc; bx " #R "\n" +# endif +#else +# define BLX(R) "mov lr, pc; mov pc," #R "\n" +#endif + + __asm__ __volatile__( + /* %r0 = syscall(%r7 = SYSCALL(clone), + * %r0 = flags, + * %r1 = child_stack, + * %r2 = parent_tidptr, + * %r3 = new_tls, + * %r4 = child_tidptr) + */ + + /* Do the system call */ + "swi 0x0\n" + + /* if (%r0 != 0) + * return %r0; + */ + "cmp r0, #0\n" + "bne 1f\n" + + /* In the child, now. Call "fn(arg)". */ + "ldr r0, [sp, #4]\n" + "ldr ip, [sp], #8\n" + BLX(ip) + /* Call _exit(%r0). */ + "mov r7, %7\n" + "swi 0x0\n" + "1:\n" + "mov %0, r0\n" + : "=r"(res) + : "r"(r0), "r"(r1), "r"(r2), "r"(r3), "r"(r4), "r"(r7), + "i"(__NR_exit) + : "memory"); return res; } #endif // defined(__x86_64__) && SANITIZER_LINUX @@ -1227,7 +1401,9 @@ bool IsHandledDeadlySignal(int signum) { return true; if (common_flags()->handle_sigfpe && signum == SIGFPE) return true; - return (signum == SIGSEGV || signum == SIGBUS) && common_flags()->handle_segv; + if (common_flags()->handle_segv && signum == SIGSEGV) + return true; + return common_flags()->handle_sigbus && signum == SIGBUS; } #if !SANITIZER_GO @@ -1395,6 +1571,21 @@ void MaybeReexec() { void PrintModuleMap() { } +void CheckNoDeepBind(const char *filename, int flag) { +#ifdef RTLD_DEEPBIND + if (flag & RTLD_DEEPBIND) { + Report( + "You are trying to dlopen a %s shared library with RTLD_DEEPBIND flag" + " which is incompatibe with sanitizer runtime " + "(see https://github.com/google/sanitizers/issues/611 for details" + "). If you want to run %s library under sanitizers please remove " + "RTLD_DEEPBIND from dlopen flags.\n", + filename, filename); + Die(); + } +#endif +} + uptr FindAvailableMemoryRange(uptr size, uptr alignment, uptr left_padding) { UNREACHABLE("FindAvailableMemoryRange is not available"); return 0; diff --git a/lib/sanitizer_common/sanitizer_linux.h b/lib/sanitizer_common/sanitizer_linux.h index d4d0f47eed02..14047b4803f8 100644 --- a/lib/sanitizer_common/sanitizer_linux.h +++ b/lib/sanitizer_common/sanitizer_linux.h @@ -48,7 +48,8 @@ int internal_sigaction_syscall(int signum, const void *act, void *oldact); #endif void internal_sigdelset(__sanitizer_sigset_t *set, int signum); #if defined(__x86_64__) || defined(__mips__) || defined(__aarch64__) \ - || defined(__powerpc64__) || defined(__s390__) + || defined(__powerpc64__) || defined(__s390__) || defined(__i386__) \ + || defined(__arm__) uptr internal_clone(int (*fn)(void *), void *child_stack, int flags, void *arg, int *parent_tidptr, void *newtls, int *child_tidptr); #endif diff --git a/lib/sanitizer_common/sanitizer_linux_libcdep.cc b/lib/sanitizer_common/sanitizer_linux_libcdep.cc index f99f0b5948de..6fde671f882d 100644 --- a/lib/sanitizer_common/sanitizer_linux_libcdep.cc +++ b/lib/sanitizer_common/sanitizer_linux_libcdep.cc @@ -183,8 +183,8 @@ void InitTlsSize() { } #endif // !SANITIZER_FREEBSD && !SANITIZER_ANDROID && !SANITIZER_GO #if (defined(__x86_64__) || defined(__i386__) || defined(__mips__) \ - || defined(__aarch64__) || defined(__powerpc64__) || defined(__s390__)) \ - && SANITIZER_LINUX && !SANITIZER_ANDROID + || defined(__aarch64__) || defined(__powerpc64__) || defined(__s390__) \ + || defined(__arm__)) && SANITIZER_LINUX && !SANITIZER_ANDROID // sizeof(struct pthread) from glibc. static atomic_uintptr_t kThreadDescriptorSize; @@ -192,14 +192,14 @@ uptr ThreadDescriptorSize() { uptr val = atomic_load(&kThreadDescriptorSize, memory_order_relaxed); if (val) return val; -#if defined(__x86_64__) || defined(__i386__) +#if defined(__x86_64__) || defined(__i386__) || defined(__arm__) #ifdef _CS_GNU_LIBC_VERSION char buf[64]; uptr len = confstr(_CS_GNU_LIBC_VERSION, buf, sizeof(buf)); if (len < sizeof(buf) && internal_strncmp(buf, "glibc 2.", 8) == 0) { char *end; int minor = internal_simple_strtoll(buf + 8, &end, 10); - if (end != buf + 8 && (*end == '\0' || *end == '.')) { + if (end != buf + 8 && (*end == '\0' || *end == '.' || *end == '-')) { int patch = 0; if (*end == '.') // strtoll will return 0 if no valid conversion could be performed @@ -208,6 +208,9 @@ uptr ThreadDescriptorSize() { /* sizeof(struct pthread) values from various glibc versions. */ if (SANITIZER_X32) val = 1728; // Assume only one particular version for x32. + // For ARM sizeof(struct pthread) changed in Glibc 2.23. + else if (SANITIZER_ARM) + val = minor <= 22 ? 1120 : 1216; else if (minor <= 3) val = FIRST_32_SECOND_64(1104, 1696); else if (minor == 4) @@ -270,9 +273,7 @@ static uptr TlsPreTcbSize() { # endif const uptr kTlsAlign = 16; const uptr kTlsPreTcbSize = - (ThreadDescriptorSize() + kTcbHead + kTlsAlign - 1) & ~(kTlsAlign - 1); - InitTlsSize(); - g_tls_size = (g_tls_size + kTlsPreTcbSize + kTlsAlign -1) & ~(kTlsAlign - 1); + RoundUpTo(ThreadDescriptorSize() + kTcbHead, kTlsAlign); return kTlsPreTcbSize; } #endif @@ -295,7 +296,7 @@ uptr ThreadSelf() { rdhwr %0,$29;\ .set pop" : "=r" (thread_pointer)); descr_addr = thread_pointer - kTlsTcbOffset - TlsPreTcbSize(); -# elif defined(__aarch64__) +# elif defined(__aarch64__) || defined(__arm__) descr_addr = reinterpret_cast<uptr>(__builtin_thread_pointer()) - ThreadDescriptorSize(); # elif defined(__s390__) @@ -344,7 +345,8 @@ static void GetTls(uptr *addr, uptr *size) { *size = GetTlsSize(); *addr -= *size; *addr += ThreadDescriptorSize(); -# elif defined(__mips__) || defined(__aarch64__) || defined(__powerpc64__) +# elif defined(__mips__) || defined(__aarch64__) || defined(__powerpc64__) \ + || defined(__arm__) *addr = ThreadSelf(); *size = GetTlsSize(); # else @@ -379,6 +381,8 @@ uptr GetTlsSize() { uptr addr, size; GetTls(&addr, &size); return size; +#elif defined(__mips__) || defined(__powerpc64__) + return RoundUpTo(g_tls_size + TlsPreTcbSize(), 16); #else return g_tls_size; #endif diff --git a/lib/sanitizer_common/sanitizer_linux_s390.cc b/lib/sanitizer_common/sanitizer_linux_s390.cc index 053fd174b2bf..c2b03b27e66c 100644 --- a/lib/sanitizer_common/sanitizer_linux_s390.cc +++ b/lib/sanitizer_common/sanitizer_linux_s390.cc @@ -136,6 +136,18 @@ static bool FixedCVE_2016_2143() { if (ptr[0] == '.') patch = internal_simple_strtoll(ptr+1, &ptr, 10); if (major < 3) { + if (major == 2 && minor == 6 && patch == 32 && ptr[0] == '-' && + internal_strstr(ptr, ".el6")) { + // Check RHEL6 + int r1 = internal_simple_strtoll(ptr+1, &ptr, 10); + if (r1 >= 657) // 2.6.32-657.el6 or later + return true; + if (r1 == 642 && ptr[0] == '.') { + int r2 = internal_simple_strtoll(ptr+1, &ptr, 10); + if (r2 >= 9) // 2.6.32-642.9.1.el6 or later + return true; + } + } // <3.0 is bad. return false; } else if (major == 3) { @@ -145,6 +157,18 @@ static bool FixedCVE_2016_2143() { // 3.12.58+ is OK. if (minor == 12 && patch >= 58) return true; + if (minor == 10 && patch == 0 && ptr[0] == '-' && + internal_strstr(ptr, ".el7")) { + // Check RHEL7 + int r1 = internal_simple_strtoll(ptr+1, &ptr, 10); + if (r1 >= 426) // 3.10.0-426.el7 or later + return true; + if (r1 == 327 && ptr[0] == '.') { + int r2 = internal_simple_strtoll(ptr+1, &ptr, 10); + if (r2 >= 27) // 3.10.0-327.27.1.el7 or later + return true; + } + } // Otherwise, bad. return false; } else if (major == 4) { diff --git a/lib/sanitizer_common/sanitizer_list.h b/lib/sanitizer_common/sanitizer_list.h index c78cb4cdf8e0..598ce51d848b 100644 --- a/lib/sanitizer_common/sanitizer_list.h +++ b/lib/sanitizer_common/sanitizer_list.h @@ -70,6 +70,17 @@ struct IntrusiveList { size_--; } + void extract(Item *prev, Item *x) { + CHECK(!empty()); + CHECK_NE(prev, nullptr); + CHECK_NE(x, nullptr); + CHECK_EQ(prev->next, x); + prev->next = x->next; + if (last_ == x) + last_ = prev; + size_--; + } + Item *front() { return first_; } const Item *front() const { return first_; } Item *back() { return last_; } diff --git a/lib/sanitizer_common/sanitizer_mac.cc b/lib/sanitizer_common/sanitizer_mac.cc index b4f8ab5e3a9e..34af4e91876e 100644 --- a/lib/sanitizer_common/sanitizer_mac.cc +++ b/lib/sanitizer_common/sanitizer_mac.cc @@ -93,20 +93,22 @@ namespace __sanitizer { #include "sanitizer_syscall_generic.inc" -// Direct syscalls, don't call libmalloc hooks. +// Direct syscalls, don't call libmalloc hooks (but not available on 10.6). extern "C" void *__mmap(void *addr, size_t len, int prot, int flags, int fildes, - off_t off); -extern "C" int __munmap(void *, size_t); + off_t off) SANITIZER_WEAK_ATTRIBUTE; +extern "C" int __munmap(void *, size_t) SANITIZER_WEAK_ATTRIBUTE; // ---------------------- sanitizer_libc.h uptr internal_mmap(void *addr, size_t length, int prot, int flags, int fd, u64 offset) { if (fd == -1) fd = VM_MAKE_TAG(VM_MEMORY_ANALYSIS_TOOL); - return (uptr)__mmap(addr, length, prot, flags, fd, offset); + if (&__mmap) return (uptr)__mmap(addr, length, prot, flags, fd, offset); + return (uptr)mmap(addr, length, prot, flags, fd, offset); } uptr internal_munmap(void *addr, uptr length) { - return __munmap(addr, length); + if (&__munmap) return __munmap(addr, length); + return munmap(addr, length); } int internal_mprotect(void *addr, uptr length, int prot) { @@ -192,17 +194,19 @@ uptr internal_sigprocmask(int how, __sanitizer_sigset_t *set, return sigprocmask(how, set, oldset); } -// Doesn't call pthread_atfork() handlers. -extern "C" pid_t __fork(void); +// Doesn't call pthread_atfork() handlers (but not available on 10.6). +extern "C" pid_t __fork(void) SANITIZER_WEAK_ATTRIBUTE; int internal_fork() { - return __fork(); + if (&__fork) + return __fork(); + return fork(); } int internal_forkpty(int *amaster) { int master, slave; if (openpty(&master, &slave, nullptr, nullptr, nullptr) == -1) return -1; - int pid = __fork(); + int pid = internal_fork(); if (pid == -1) { close(master); close(slave); @@ -344,20 +348,16 @@ BlockingMutex::BlockingMutex() { void BlockingMutex::Lock() { CHECK(sizeof(OSSpinLock) <= sizeof(opaque_storage_)); CHECK_EQ(OS_SPINLOCK_INIT, 0); - CHECK_NE(owner_, (uptr)pthread_self()); + CHECK_EQ(owner_, 0); OSSpinLockLock((OSSpinLock*)&opaque_storage_); - CHECK(!owner_); - owner_ = (uptr)pthread_self(); } void BlockingMutex::Unlock() { - CHECK(owner_ == (uptr)pthread_self()); - owner_ = 0; OSSpinLockUnlock((OSSpinLock*)&opaque_storage_); } void BlockingMutex::CheckLocked() { - CHECK_EQ((uptr)pthread_self(), owner_); + CHECK_NE(*(OSSpinLock*)&opaque_storage_, 0); } u64 NanoTime() { @@ -402,7 +402,11 @@ bool IsHandledDeadlySignal(int signum) { return true; if (common_flags()->handle_sigill && signum == SIGILL) return true; - return (signum == SIGSEGV || signum == SIGBUS) && common_flags()->handle_segv; + if (common_flags()->handle_sigfpe && signum == SIGFPE) + return true; + if (common_flags()->handle_segv && signum == SIGSEGV) + return true; + return common_flags()->handle_sigbus && signum == SIGBUS; } MacosVersion cached_macos_version = MACOS_VERSION_UNINITIALIZED; @@ -884,6 +888,10 @@ void PrintModuleMap() { Printf("End of module map.\n"); } +void CheckNoDeepBind(const char *filename, int flag) { + // Do nothing. +} + } // namespace __sanitizer #endif // SANITIZER_MAC diff --git a/lib/sanitizer_common/sanitizer_malloc_mac.inc b/lib/sanitizer_common/sanitizer_malloc_mac.inc index 6fbee07c16cc..5699c59043e9 100644 --- a/lib/sanitizer_common/sanitizer_malloc_mac.inc +++ b/lib/sanitizer_common/sanitizer_malloc_mac.inc @@ -59,6 +59,9 @@ INTERCEPTOR(void, malloc_destroy_zone, malloc_zone_t *zone) { uptr allocated_size = RoundUpTo(sizeof(sanitizer_zone), page_size); mprotect(zone, allocated_size, PROT_READ | PROT_WRITE); } + if (zone->zone_name) { + COMMON_MALLOC_FREE((void *)zone->zone_name); + } COMMON_MALLOC_FREE(zone); } diff --git a/lib/sanitizer_common/sanitizer_mutex.h b/lib/sanitizer_common/sanitizer_mutex.h index d06fc45ff931..1759bf13f689 100644 --- a/lib/sanitizer_common/sanitizer_mutex.h +++ b/lib/sanitizer_common/sanitizer_mutex.h @@ -83,6 +83,14 @@ class BlockingMutex { BlockingMutex(); void Lock(); void Unlock(); + + // This function does not guarantee an explicit check that the calling thread + // is the thread which owns the mutex. This behavior, while more strictly + // correct, causes problems in cases like StopTheWorld, where a parent thread + // owns the mutex but a child checks that it is locked. Rather than + // maintaining complex state to work around those situations, the check only + // checks that the mutex is owned, and assumes callers to be generally + // well-behaved. void CheckLocked(); private: uptr opaque_storage_[10]; diff --git a/lib/sanitizer_common/sanitizer_platform.h b/lib/sanitizer_common/sanitizer_platform.h index d9a8e8df1573..1a6410878579 100644 --- a/lib/sanitizer_common/sanitizer_platform.h +++ b/lib/sanitizer_common/sanitizer_platform.h @@ -162,6 +162,12 @@ # define SANITIZER_PPC64V2 0 #endif +#if defined(__arm__) +# define SANITIZER_ARM 1 +#else +# define SANITIZER_ARM 0 +#endif + // By default we allow to use SizeClassAllocator64 on 64-bit platform. // But in some cases (e.g. AArch64's 39-bit address space) SizeClassAllocator64 // does not work well and we need to fallback to SizeClassAllocator32. diff --git a/lib/sanitizer_common/sanitizer_platform_interceptors.h b/lib/sanitizer_common/sanitizer_platform_interceptors.h index 62875d11a1de..a583e989c315 100644 --- a/lib/sanitizer_common/sanitizer_platform_interceptors.h +++ b/lib/sanitizer_common/sanitizer_platform_interceptors.h @@ -17,9 +17,11 @@ #include "sanitizer_internal_defs.h" #if !SANITIZER_WINDOWS +# define SI_WINDOWS 0 # define SI_NOT_WINDOWS 1 # include "sanitizer_platform_limits_posix.h" #else +# define SI_WINDOWS 1 # define SI_NOT_WINDOWS 0 #endif @@ -72,6 +74,7 @@ #define SANITIZER_INTERCEPT_STRCMP 1 #define SANITIZER_INTERCEPT_STRSTR 1 #define SANITIZER_INTERCEPT_STRCASESTR SI_NOT_WINDOWS +#define SANITIZER_INTERCEPT_STRTOK 1 #define SANITIZER_INTERCEPT_STRCHR 1 #define SANITIZER_INTERCEPT_STRCHRNUL SI_UNIX_NOT_MAC #define SANITIZER_INTERCEPT_STRRCHR 1 @@ -83,8 +86,16 @@ #define SANITIZER_INTERCEPT_MEMMOVE 1 #define SANITIZER_INTERCEPT_MEMCPY 1 #define SANITIZER_INTERCEPT_MEMCMP 1 +#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && \ + __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1070 +# define SI_MAC_DEPLOYMENT_BELOW_10_7 1 +#else +# define SI_MAC_DEPLOYMENT_BELOW_10_7 0 +#endif +// memmem on Darwin doesn't exist on 10.6 // FIXME: enable memmem on Windows. -#define SANITIZER_INTERCEPT_MEMMEM SI_NOT_WINDOWS +#define SANITIZER_INTERCEPT_MEMMEM \ + SI_NOT_WINDOWS && !SI_MAC_DEPLOYMENT_BELOW_10_7 #define SANITIZER_INTERCEPT_MEMCHR 1 #define SANITIZER_INTERCEPT_MEMRCHR SI_FREEBSD || SI_LINUX @@ -93,6 +104,9 @@ #define SANITIZER_INTERCEPT_WRITE SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_PWRITE SI_NOT_WINDOWS +#define SANITIZER_INTERCEPT_FREAD SI_NOT_WINDOWS +#define SANITIZER_INTERCEPT_FWRITE SI_NOT_WINDOWS + #define SANITIZER_INTERCEPT_PREAD64 SI_LINUX_NOT_ANDROID #define SANITIZER_INTERCEPT_PWRITE64 SI_LINUX_NOT_ANDROID @@ -302,7 +316,7 @@ #define SANITIZER_INTERCEPT_CTERMID SI_LINUX || SI_MAC || SI_FREEBSD #define SANITIZER_INTERCEPT_CTERMID_R SI_MAC || SI_FREEBSD -#define SANITIZER_INTERCEPTOR_HOOKS SI_LINUX +#define SANITIZER_INTERCEPTOR_HOOKS SI_LINUX || SI_MAC || SI_WINDOWS #define SANITIZER_INTERCEPT_RECV_RECVFROM SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_SEND_SENDTO SI_NOT_WINDOWS #define SANITIZER_INTERCEPT_EVENTFD_READ_WRITE SI_LINUX @@ -316,9 +330,14 @@ #define SANITIZER_INTERCEPT_UTMP SI_NOT_WINDOWS && !SI_MAC && !SI_FREEBSD #define SANITIZER_INTERCEPT_UTMPX SI_LINUX_NOT_ANDROID || SI_MAC || SI_FREEBSD +#define SANITIZER_INTERCEPT_GETLOADAVG \ + SI_LINUX_NOT_ANDROID || SI_MAC || SI_FREEBSD + #define SANITIZER_INTERCEPT_MALLOPT_AND_MALLINFO (!SI_FREEBSD && !SI_MAC) #define SANITIZER_INTERCEPT_MEMALIGN (!SI_FREEBSD && !SI_MAC) #define SANITIZER_INTERCEPT_PVALLOC (!SI_FREEBSD && !SI_MAC) #define SANITIZER_INTERCEPT_CFREE (!SI_FREEBSD && !SI_MAC) +#define SANITIZER_INTERCEPT_ALIGNED_ALLOC (!SI_MAC) +#define SANITIZER_INTERCEPT_MALLOC_USABLE_SIZE (!SI_MAC) #endif // #ifndef SANITIZER_PLATFORM_INTERCEPTORS_H diff --git a/lib/sanitizer_common/sanitizer_posix.cc b/lib/sanitizer_common/sanitizer_posix.cc index c70d5a40cb46..9916f4d38538 100644 --- a/lib/sanitizer_common/sanitizer_posix.cc +++ b/lib/sanitizer_common/sanitizer_posix.cc @@ -358,6 +358,22 @@ SignalContext SignalContext::Create(void *siginfo, void *context) { return SignalContext(context, addr, pc, sp, bp, is_memory_access, write_flag); } +const char *DescribeSignalOrException(int signo) { + switch (signo) { + case SIGFPE: + return "FPE"; + case SIGILL: + return "ILL"; + case SIGABRT: + return "ABRT"; + case SIGSEGV: + return "SEGV"; + case SIGBUS: + return "BUS"; + } + return "UNKNOWN SIGNAL"; +} + } // namespace __sanitizer #endif // SANITIZER_POSIX diff --git a/lib/sanitizer_common/sanitizer_posix.h b/lib/sanitizer_common/sanitizer_posix.h index 7f862cd9e393..e7d37cbf0882 100644 --- a/lib/sanitizer_common/sanitizer_posix.h +++ b/lib/sanitizer_common/sanitizer_posix.h @@ -87,6 +87,9 @@ bool internal_sigismember(__sanitizer_sigset_t *set, int signum); uptr internal_execve(const char *filename, char *const argv[], char *const envp[]); + +bool IsStateDetached(int state); + } // namespace __sanitizer #endif // SANITIZER_POSIX_H diff --git a/lib/sanitizer_common/sanitizer_posix_libcdep.cc b/lib/sanitizer_common/sanitizer_posix_libcdep.cc index dd62140b5e07..8d688f3778b5 100644 --- a/lib/sanitizer_common/sanitizer_posix_libcdep.cc +++ b/lib/sanitizer_common/sanitizer_posix_libcdep.cc @@ -418,6 +418,10 @@ int WaitForProcess(pid_t pid) { return process_status; } +bool IsStateDetached(int state) { + return state == PTHREAD_CREATE_DETACHED; +} + } // namespace __sanitizer #endif // SANITIZER_POSIX diff --git a/lib/sanitizer_common/sanitizer_printf.cc b/lib/sanitizer_common/sanitizer_printf.cc index c8317be6043f..99b7ff1b55cf 100644 --- a/lib/sanitizer_common/sanitizer_printf.cc +++ b/lib/sanitizer_common/sanitizer_printf.cc @@ -214,15 +214,11 @@ void SetPrintfAndReportCallback(void (*callback)(const char *)) { } // Can be overriden in frontend. -#if SANITIZER_SUPPORTS_WEAK_HOOKS -SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE -void OnPrint(const char *str) { - (void)str; -} -#elif SANITIZER_GO && defined(TSAN_EXTERNAL_HOOKS) -void OnPrint(const char *str); +#if SANITIZER_GO && defined(TSAN_EXTERNAL_HOOKS) +// Implementation must be defined in frontend. +extern "C" void OnPrint(const char *str); #else -void OnPrint(const char *str) { +SANITIZER_INTERFACE_WEAK_DEF(void, OnPrint, const char *str) { (void)str; } #endif diff --git a/lib/sanitizer_common/sanitizer_quarantine.h b/lib/sanitizer_common/sanitizer_quarantine.h index 1a0d9545b7e1..db38867ced28 100644 --- a/lib/sanitizer_common/sanitizer_quarantine.h +++ b/lib/sanitizer_common/sanitizer_quarantine.h @@ -31,6 +31,40 @@ struct QuarantineBatch { uptr size; uptr count; void *batch[kSize]; + + void init(void *ptr, uptr size) { + count = 1; + batch[0] = ptr; + this->size = size + sizeof(QuarantineBatch); // Account for the batch size. + } + + // The total size of quarantined nodes recorded in this batch. + uptr quarantined_size() const { + return size - sizeof(QuarantineBatch); + } + + void push_back(void *ptr, uptr size) { + CHECK_LT(count, kSize); + batch[count++] = ptr; + this->size += size; + } + + bool can_merge(const QuarantineBatch* const from) const { + return count + from->count <= kSize; + } + + void merge(QuarantineBatch* const from) { + CHECK_LE(count + from->count, kSize); + CHECK_GE(size, sizeof(QuarantineBatch)); + + for (uptr i = 0; i < from->count; ++i) + batch[count + i] = from->batch[i]; + count += from->count; + size += from->quarantined_size(); + + from->count = 0; + from->size = sizeof(QuarantineBatch); + } }; COMPILER_CHECK(sizeof(QuarantineBatch) <= (1 << 13)); // 8Kb. @@ -69,7 +103,7 @@ class Quarantine { if (cache_size) { c->Enqueue(cb, ptr, size); } else { - // cache_size == 0 only when size == 0 (see Init). + // GetCacheSize() == 0 only when GetSize() == 0 (see Init). cb.Recycle(ptr); } // Check cache size anyway to accommodate for runtime cache_size change. @@ -88,6 +122,8 @@ class Quarantine { void PrintStats() const { // It assumes that the world is stopped, just as the allocator's PrintStats. + Printf("Quarantine limits: global: %zdMb; thread local: %zdKb\n", + GetSize() >> 20, GetCacheSize() >> 10); cache_.PrintStats(); } @@ -108,9 +144,27 @@ class Quarantine { uptr min_size = atomic_load(&min_size_, memory_order_relaxed); { SpinMutexLock l(&cache_mutex_); + // Go over the batches and merge partially filled ones to + // save some memory, otherwise batches themselves (since the memory used + // by them is counted against quarantine limit) can overcome the actual + // user's quarantined chunks, which diminishes the purpose of the + // quarantine. + uptr cache_size = cache_.Size(); + uptr overhead_size = cache_.OverheadSize(); + CHECK_GE(cache_size, overhead_size); + // Do the merge only when overhead exceeds this predefined limit (might + // require some tuning). It saves us merge attempt when the batch list + // quarantine is unlikely to contain batches suitable for merge. + const uptr kOverheadThresholdPercents = 100; + if (cache_size > overhead_size && + overhead_size * (100 + kOverheadThresholdPercents) > + cache_size * kOverheadThresholdPercents) { + cache_.MergeBatches(&tmp); + } + // Extract enough chunks from the quarantine to get below the max + // quarantine size and leave some leeway for the newly quarantined chunks. while (cache_.Size() > min_size) { - QuarantineBatch *b = cache_.DequeueBatch(); - tmp.EnqueueBatch(b); + tmp.EnqueueBatch(cache_.DequeueBatch()); } } recycle_mutex_.Unlock(); @@ -145,26 +199,33 @@ class QuarantineCache { list_.clear(); } + // Total memory used, including internal accounting. uptr Size() const { return atomic_load(&size_, memory_order_relaxed); } + // Memory used for internal accounting. + uptr OverheadSize() const { + return list_.size() * sizeof(QuarantineBatch); + } + void Enqueue(Callback cb, void *ptr, uptr size) { if (list_.empty() || list_.back()->count == QuarantineBatch::kSize) { - AllocBatch(cb); - size += sizeof(QuarantineBatch); // Count the batch in Quarantine size. + QuarantineBatch *b = (QuarantineBatch *)cb.Allocate(sizeof(*b)); + CHECK(b); + b->init(ptr, size); + EnqueueBatch(b); + } else { + list_.back()->push_back(ptr, size); + SizeAdd(size); } - QuarantineBatch *b = list_.back(); - CHECK(b); - b->batch[b->count++] = ptr; - b->size += size; - SizeAdd(size); } - void Transfer(QuarantineCache *c) { - list_.append_back(&c->list_); - SizeAdd(c->Size()); - atomic_store(&c->size_, 0, memory_order_relaxed); + void Transfer(QuarantineCache *from_cache) { + list_.append_back(&from_cache->list_); + SizeAdd(from_cache->Size()); + + atomic_store(&from_cache->size_, 0, memory_order_relaxed); } void EnqueueBatch(QuarantineBatch *b) { @@ -181,19 +242,51 @@ class QuarantineCache { return b; } + void MergeBatches(QuarantineCache *to_deallocate) { + uptr extracted_size = 0; + QuarantineBatch *current = list_.front(); + while (current && current->next) { + if (current->can_merge(current->next)) { + QuarantineBatch *extracted = current->next; + // Move all the chunks into the current batch. + current->merge(extracted); + CHECK_EQ(extracted->count, 0); + CHECK_EQ(extracted->size, sizeof(QuarantineBatch)); + // Remove the next batch from the list and account for its size. + list_.extract(current, extracted); + extracted_size += extracted->size; + // Add it to deallocation list. + to_deallocate->EnqueueBatch(extracted); + } else { + current = current->next; + } + } + SizeSub(extracted_size); + } + void PrintStats() const { uptr batch_count = 0; - uptr total_quarantine_bytes = 0; + uptr total_overhead_bytes = 0; + uptr total_bytes = 0; uptr total_quarantine_chunks = 0; for (List::ConstIterator it = list_.begin(); it != list_.end(); ++it) { batch_count++; - total_quarantine_bytes += (*it).size; + total_bytes += (*it).size; + total_overhead_bytes += (*it).size - (*it).quarantined_size(); total_quarantine_chunks += (*it).count; } - Printf("Global quarantine stats: batches: %zd; bytes: %zd; chunks: %zd " - "(capacity: %zd chunks)\n", - batch_count, total_quarantine_bytes, total_quarantine_chunks, - batch_count * QuarantineBatch::kSize); + uptr quarantine_chunks_capacity = batch_count * QuarantineBatch::kSize; + int chunks_usage_percent = quarantine_chunks_capacity == 0 ? + 0 : total_quarantine_chunks * 100 / quarantine_chunks_capacity; + uptr total_quarantined_bytes = total_bytes - total_overhead_bytes; + int memory_overhead_percent = total_quarantined_bytes == 0 ? + 0 : total_overhead_bytes * 100 / total_quarantined_bytes; + Printf("Global quarantine stats: batches: %zd; bytes: %zd (user: %zd); " + "chunks: %zd (capacity: %zd); %d%% chunks used; %d%% memory overhead" + "\n", + batch_count, total_bytes, total_quarantined_bytes, + total_quarantine_chunks, quarantine_chunks_capacity, + chunks_usage_percent, memory_overhead_percent); } private: @@ -208,15 +301,6 @@ class QuarantineCache { void SizeSub(uptr sub) { atomic_store(&size_, Size() - sub, memory_order_relaxed); } - - NOINLINE QuarantineBatch* AllocBatch(Callback cb) { - QuarantineBatch *b = (QuarantineBatch *)cb.Allocate(sizeof(*b)); - CHECK(b); - b->count = 0; - b->size = 0; - list_.push_back(b); - return b; - } }; } // namespace __sanitizer diff --git a/lib/sanitizer_common/sanitizer_stoptheworld.h b/lib/sanitizer_common/sanitizer_stoptheworld.h index aa6f5d833a4d..41752d8f66e7 100644 --- a/lib/sanitizer_common/sanitizer_stoptheworld.h +++ b/lib/sanitizer_common/sanitizer_stoptheworld.h @@ -20,6 +20,12 @@ namespace __sanitizer { typedef int SuspendedThreadID; +enum PtraceRegistersStatus { + REGISTERS_UNAVAILABLE_FATAL = -1, + REGISTERS_UNAVAILABLE = 0, + REGISTERS_AVAILABLE = 1 +}; + // Holds the list of suspended threads and provides an interface to dump their // register contexts. class SuspendedThreadsList { @@ -30,7 +36,8 @@ class SuspendedThreadsList { CHECK_LT(index, thread_ids_.size()); return thread_ids_[index]; } - int GetRegistersAndSP(uptr index, uptr *buffer, uptr *sp) const; + PtraceRegistersStatus GetRegistersAndSP(uptr index, uptr *buffer, + uptr *sp) const; // The buffer in GetRegistersAndSP should be at least this big. static uptr RegisterCount(); uptr thread_count() const { return thread_ids_.size(); } diff --git a/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc b/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc index eb4c403d3de0..6e4baeecaffd 100644 --- a/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc +++ b/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cc @@ -16,7 +16,8 @@ #if SANITIZER_LINUX && (defined(__x86_64__) || defined(__mips__) || \ defined(__aarch64__) || defined(__powerpc64__) || \ - defined(__s390__)) + defined(__s390__) || defined(__i386__) || \ + defined(__arm__)) #include "sanitizer_stoptheworld.h" @@ -493,9 +494,9 @@ typedef _user_regs_struct regs_struct; #error "Unsupported architecture" #endif // SANITIZER_ANDROID && defined(__arm__) -int SuspendedThreadsList::GetRegistersAndSP(uptr index, - uptr *buffer, - uptr *sp) const { +PtraceRegistersStatus SuspendedThreadsList::GetRegistersAndSP(uptr index, + uptr *buffer, + uptr *sp) const { pid_t tid = GetThreadID(index); regs_struct regs; int pterrno; @@ -513,12 +514,16 @@ int SuspendedThreadsList::GetRegistersAndSP(uptr index, if (isErr) { VReport(1, "Could not get registers from thread %d (errno %d).\n", tid, pterrno); - return -1; + // ESRCH means that the given thread is not suspended or already dead. + // Therefore it's unsafe to inspect its data (e.g. walk through stack) and + // we should notify caller about this. + return pterrno == ESRCH ? REGISTERS_UNAVAILABLE_FATAL + : REGISTERS_UNAVAILABLE; } *sp = regs.REG_SP; internal_memcpy(buffer, ®s, sizeof(regs)); - return 0; + return REGISTERS_AVAILABLE; } uptr SuspendedThreadsList::RegisterCount() { @@ -528,4 +533,4 @@ uptr SuspendedThreadsList::RegisterCount() { #endif // SANITIZER_LINUX && (defined(__x86_64__) || defined(__mips__) // || defined(__aarch64__) || defined(__powerpc64__) - // || defined(__s390__) + // || defined(__s390__) || defined(__i386__) || defined(__arm__) diff --git a/lib/sanitizer_common/sanitizer_stoptheworld_mac.cc b/lib/sanitizer_common/sanitizer_stoptheworld_mac.cc new file mode 100644 index 000000000000..047472a657a6 --- /dev/null +++ b/lib/sanitizer_common/sanitizer_stoptheworld_mac.cc @@ -0,0 +1,40 @@ +//===-- sanitizer_stoptheworld_mac.cc -------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// See sanitizer_stoptheworld.h for details. +// +//===----------------------------------------------------------------------===// + +#include "sanitizer_platform.h" + +#if SANITIZER_MAC && (defined(__x86_64__) || defined(__aarch64__) || \ + defined(__mips64) || defined(__i386)) + +#include "sanitizer_stoptheworld.h" + +namespace __sanitizer { +void StopTheWorld(StopTheWorldCallback callback, void *argument) { + CHECK(0 && "unimplemented"); +} + +PtraceRegistersStatus SuspendedThreadsList::GetRegistersAndSP(uptr index, + uptr *buffer, + uptr *sp) const { + CHECK(0 && "unimplemented"); + return REGISTERS_UNAVAILABLE_FATAL; +} + +uptr SuspendedThreadsList::RegisterCount() { + CHECK(0 && "unimplemented"); + return 0; +} +} // namespace __sanitizer + +#endif // SANITIZER_MAC && (defined(__x86_64__) || defined(__aarch64__)) || + // defined(__mips64) || defined(__i386)) diff --git a/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc b/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc index 7c377a729638..614470a633d0 100644 --- a/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc +++ b/lib/sanitizer_common/sanitizer_symbolizer_libcdep.cc @@ -356,11 +356,19 @@ const char *LLVMSymbolizer::FormatAndSendCommand(bool is_data, CHECK(module_name); const char *is_data_str = is_data ? "DATA " : ""; if (arch == kModuleArchUnknown) { - internal_snprintf(buffer_, kBufferSize, "%s\"%s\" 0x%zx\n", is_data_str, - module_name, module_offset); + if (internal_snprintf(buffer_, kBufferSize, "%s\"%s\" 0x%zx\n", is_data_str, + module_name, + module_offset) >= static_cast<int>(kBufferSize)) { + Report("WARNING: Command buffer too small"); + return nullptr; + } } else { - internal_snprintf(buffer_, kBufferSize, "%s\"%s:%s\" 0x%zx\n", is_data_str, - module_name, ModuleArchToString(arch), module_offset); + if (internal_snprintf(buffer_, kBufferSize, "%s\"%s:%s\" 0x%zx\n", + is_data_str, module_name, ModuleArchToString(arch), + module_offset) >= static_cast<int>(kBufferSize)) { + Report("WARNING: Command buffer too small"); + return nullptr; + } } return symbolizer_process_->SendCommand(buffer_); } @@ -377,7 +385,23 @@ SymbolizerProcess::SymbolizerProcess(const char *path, bool use_forkpty) CHECK_NE(path_[0], '\0'); } +static bool IsSameModule(const char* path) { + if (const char* ProcessName = GetProcessName()) { + if (const char* SymbolizerName = StripModuleName(path)) { + return !internal_strcmp(ProcessName, SymbolizerName); + } + } + return false; +} + const char *SymbolizerProcess::SendCommand(const char *command) { + if (failed_to_start_) + return nullptr; + if (IsSameModule(path_)) { + Report("WARNING: Symbolizer was blocked from starting itself!\n"); + failed_to_start_ = true; + return nullptr; + } for (; times_restarted_ < kMaxTimesRestarted; times_restarted_++) { // Start or restart symbolizer if we failed to send command to it. if (const char *res = SendCommandImpl(command)) @@ -426,6 +450,11 @@ bool SymbolizerProcess::ReadFromSymbolizer(char *buffer, uptr max_length) { read_len += just_read; if (ReachedEndOfOutput(buffer, read_len)) break; + if (read_len + 1 == max_length) { + Report("WARNING: Symbolizer buffer too small"); + read_len = 0; + break; + } } buffer[read_len] = '\0'; return true; diff --git a/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc b/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc index f50d8b1840ab..d3c77b510d35 100644 --- a/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc +++ b/lib/sanitizer_common/sanitizer_symbolizer_posix_libcdep.cc @@ -424,7 +424,6 @@ class InternalSymbolizer : public SymbolizerTool { InternalSymbolizer() { } static const int kBufferSize = 16 * 1024; - static const int kMaxDemangledNameSize = 1024; char buffer_[kBufferSize]; }; #else // SANITIZER_SUPPORTS_WEAK_HOOKS diff --git a/lib/sanitizer_common/sanitizer_thread_registry.cc b/lib/sanitizer_common/sanitizer_thread_registry.cc index c2b75e652ce9..c5b2e0946282 100644 --- a/lib/sanitizer_common/sanitizer_thread_registry.cc +++ b/lib/sanitizer_common/sanitizer_thread_registry.cc @@ -19,7 +19,7 @@ namespace __sanitizer { ThreadContextBase::ThreadContextBase(u32 tid) : tid(tid), unique_id(0), reuse_count(), os_id(0), user_id(0), status(ThreadStatusInvalid), - detached(false), parent_tid(0), next(0) { + detached(false), workerthread(false), parent_tid(0), next(0) { name[0] = '\0'; } @@ -59,9 +59,10 @@ void ThreadContextBase::SetFinished() { OnFinished(); } -void ThreadContextBase::SetStarted(uptr _os_id, void *arg) { +void ThreadContextBase::SetStarted(uptr _os_id, bool _workerthread, void *arg) { status = ThreadStatusRunning; os_id = _os_id; + workerthread = _workerthread; OnStarted(arg); } @@ -266,14 +267,15 @@ void ThreadRegistry::FinishThread(u32 tid) { } } -void ThreadRegistry::StartThread(u32 tid, uptr os_id, void *arg) { +void ThreadRegistry::StartThread(u32 tid, uptr os_id, bool workerthread, + void *arg) { BlockingMutexLock l(&mtx_); running_threads_++; CHECK_LT(tid, n_contexts_); ThreadContextBase *tctx = threads_[tid]; CHECK_NE(tctx, 0); CHECK_EQ(ThreadStatusCreated, tctx->status); - tctx->SetStarted(os_id, arg); + tctx->SetStarted(os_id, workerthread, arg); } void ThreadRegistry::QuarantinePush(ThreadContextBase *tctx) { diff --git a/lib/sanitizer_common/sanitizer_thread_registry.h b/lib/sanitizer_common/sanitizer_thread_registry.h index a27bbb376e85..17b1d5d90962 100644 --- a/lib/sanitizer_common/sanitizer_thread_registry.h +++ b/lib/sanitizer_common/sanitizer_thread_registry.h @@ -45,6 +45,7 @@ class ThreadContextBase { ThreadStatus status; bool detached; + bool workerthread; u32 parent_tid; ThreadContextBase *next; // For storing thread contexts in a list. @@ -54,7 +55,7 @@ class ThreadContextBase { void SetDead(); void SetJoined(void *arg); void SetFinished(); - void SetStarted(uptr _os_id, void *arg); + void SetStarted(uptr _os_id, bool _workerthread, void *arg); void SetCreated(uptr _user_id, u64 _unique_id, bool _detached, u32 _parent_tid, void *arg); void Reset(); @@ -115,7 +116,7 @@ class ThreadRegistry { void DetachThread(u32 tid, void *arg); void JoinThread(u32 tid, void *arg); void FinishThread(u32 tid); - void StartThread(u32 tid, uptr os_id, void *arg); + void StartThread(u32 tid, uptr os_id, bool workerthread, void *arg); private: const ThreadContextFactory context_factory_; diff --git a/lib/sanitizer_common/sanitizer_tls_get_addr.cc b/lib/sanitizer_common/sanitizer_tls_get_addr.cc index 77c1947d52da..29db37b8a464 100644 --- a/lib/sanitizer_common/sanitizer_tls_get_addr.cc +++ b/lib/sanitizer_common/sanitizer_tls_get_addr.cc @@ -136,11 +136,19 @@ void DTLS_on_libc_memalign(void *ptr, uptr size) { DTLS *DTLS_Get() { return &dtls; } +bool DTLSInDestruction(DTLS *dtls) { + return dtls->dtv_size == kDestroyedThread; +} + #else void DTLS_on_libc_memalign(void *ptr, uptr size) {} DTLS::DTV *DTLS_on_tls_get_addr(void *arg, void *res) { return 0; } DTLS *DTLS_Get() { return 0; } void DTLS_Destroy() {} +bool DTLSInDestruction(DTLS *dtls) { + UNREACHABLE("dtls is unsupported on this platform!"); +} + #endif // SANITIZER_INTERCEPT_TLS_GET_ADDR } // namespace __sanitizer diff --git a/lib/sanitizer_common/sanitizer_tls_get_addr.h b/lib/sanitizer_common/sanitizer_tls_get_addr.h index 58d47634d382..199a3b2e9c61 100644 --- a/lib/sanitizer_common/sanitizer_tls_get_addr.h +++ b/lib/sanitizer_common/sanitizer_tls_get_addr.h @@ -55,6 +55,8 @@ DTLS::DTV *DTLS_on_tls_get_addr(void *arg, void *res, uptr static_tls_begin, void DTLS_on_libc_memalign(void *ptr, uptr size); DTLS *DTLS_Get(); void DTLS_Destroy(); // Make sure to call this before the thread is destroyed. +// Returns true if DTLS of suspended thread is in destruction process. +bool DTLSInDestruction(DTLS *dtls); } // namespace __sanitizer diff --git a/lib/sanitizer_common/sanitizer_win.cc b/lib/sanitizer_common/sanitizer_win.cc index 9682d2921420..b1a2a53a3fbf 100644 --- a/lib/sanitizer_common/sanitizer_win.cc +++ b/lib/sanitizer_common/sanitizer_win.cc @@ -30,6 +30,7 @@ #include "sanitizer_procmaps.h" #include "sanitizer_stacktrace.h" #include "sanitizer_symbolizer.h" +#include "sanitizer_win_defs.h" // A macro to tell the compiler that this part of the code cannot be reached, // if the compiler supports this feature. Since we're using this in @@ -835,6 +836,59 @@ bool IsHandledDeadlySignal(int signum) { return false; } +// Check based on flags if we should handle this exception. +bool IsHandledDeadlyException(DWORD exceptionCode) { + switch (exceptionCode) { + case EXCEPTION_ACCESS_VIOLATION: + case EXCEPTION_ARRAY_BOUNDS_EXCEEDED: + case EXCEPTION_STACK_OVERFLOW: + case EXCEPTION_DATATYPE_MISALIGNMENT: + case EXCEPTION_IN_PAGE_ERROR: + return common_flags()->handle_segv; + case EXCEPTION_ILLEGAL_INSTRUCTION: + case EXCEPTION_PRIV_INSTRUCTION: + case EXCEPTION_BREAKPOINT: + return common_flags()->handle_sigill; + case EXCEPTION_FLT_DENORMAL_OPERAND: + case EXCEPTION_FLT_DIVIDE_BY_ZERO: + case EXCEPTION_FLT_INEXACT_RESULT: + case EXCEPTION_FLT_INVALID_OPERATION: + case EXCEPTION_FLT_OVERFLOW: + case EXCEPTION_FLT_STACK_CHECK: + case EXCEPTION_FLT_UNDERFLOW: + case EXCEPTION_INT_DIVIDE_BY_ZERO: + case EXCEPTION_INT_OVERFLOW: + return common_flags()->handle_sigfpe; + } + return false; +} + +const char *DescribeSignalOrException(int signo) { + unsigned code = signo; + // Get the string description of the exception if this is a known deadly + // exception. + switch (code) { + case EXCEPTION_ACCESS_VIOLATION: return "access-violation"; + case EXCEPTION_ARRAY_BOUNDS_EXCEEDED: return "array-bounds-exceeded"; + case EXCEPTION_STACK_OVERFLOW: return "stack-overflow"; + case EXCEPTION_DATATYPE_MISALIGNMENT: return "datatype-misalignment"; + case EXCEPTION_IN_PAGE_ERROR: return "in-page-error"; + case EXCEPTION_ILLEGAL_INSTRUCTION: return "illegal-instruction"; + case EXCEPTION_PRIV_INSTRUCTION: return "priv-instruction"; + case EXCEPTION_BREAKPOINT: return "breakpoint"; + case EXCEPTION_FLT_DENORMAL_OPERAND: return "flt-denormal-operand"; + case EXCEPTION_FLT_DIVIDE_BY_ZERO: return "flt-divide-by-zero"; + case EXCEPTION_FLT_INEXACT_RESULT: return "flt-inexact-result"; + case EXCEPTION_FLT_INVALID_OPERATION: return "flt-invalid-operation"; + case EXCEPTION_FLT_OVERFLOW: return "flt-overflow"; + case EXCEPTION_FLT_STACK_CHECK: return "flt-stack-check"; + case EXCEPTION_FLT_UNDERFLOW: return "flt-underflow"; + case EXCEPTION_INT_DIVIDE_BY_ZERO: return "int-divide-by-zero"; + case EXCEPTION_INT_OVERFLOW: return "int-overflow"; + } + return "unknown exception"; +} + bool IsAccessibleMemoryRange(uptr beg, uptr size) { SYSTEM_INFO si; GetNativeSystemInfo(&si); @@ -936,21 +990,10 @@ int WaitForProcess(pid_t pid) { return -1; } // FIXME implement on this platform. void GetMemoryProfile(fill_profile_f cb, uptr *stats, uptr stats_size) { } +void CheckNoDeepBind(const char *filename, int flag) { + // Do nothing. +} } // namespace __sanitizer -#if !SANITIZER_GO -// Workaround to implement weak hooks on Windows. COFF doesn't directly support -// weak symbols, but it does support /alternatename, which is similar. If the -// user does not override the hook, we will use this default definition instead -// of null. -extern "C" void __sanitizer_print_memory_profile(int top_percent) {} - -#ifdef _WIN64 -#pragma comment(linker, "/alternatename:__sanitizer_print_memory_profile=__sanitizer_default_print_memory_profile") // NOLINT -#else -#pragma comment(linker, "/alternatename:___sanitizer_print_memory_profile=___sanitizer_default_print_memory_profile") // NOLINT -#endif -#endif - #endif // _WIN32 diff --git a/lib/sanitizer_common/sanitizer_win.h b/lib/sanitizer_common/sanitizer_win.h new file mode 100644 index 000000000000..23e01ab75049 --- /dev/null +++ b/lib/sanitizer_common/sanitizer_win.h @@ -0,0 +1,26 @@ +//===-- sanitizer_win.h -----------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// Windows-specific declarations. +// +//===----------------------------------------------------------------------===// +#ifndef SANITIZER_WIN_H +#define SANITIZER_WIN_H + +#include "sanitizer_platform.h" +#if SANITIZER_WINDOWS +#include "sanitizer_internal_defs.h" + +namespace __sanitizer { +// Check based on flags if we should handle the exception. +bool IsHandledDeadlyException(DWORD exceptionCode); +} // namespace __sanitizer + +#endif // SANITIZER_WINDOWS +#endif // SANITIZER_WIN_H diff --git a/lib/sanitizer_common/sanitizer_win_defs.h b/lib/sanitizer_common/sanitizer_win_defs.h new file mode 100644 index 000000000000..077ff9ccc8df --- /dev/null +++ b/lib/sanitizer_common/sanitizer_win_defs.h @@ -0,0 +1,153 @@ +//===-- sanitizer_win_defs.h ------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// Common definitions for Windows-specific code. +// +//===----------------------------------------------------------------------===// +#ifndef SANITIZER_WIN_DEFS_H +#define SANITIZER_WIN_DEFS_H + +#include "sanitizer_platform.h" +#if SANITIZER_WINDOWS + +#ifndef WINAPI +#ifdef _M_IX86 +#define WINAPI __stdcall +#else +#define WINAPI +#endif +#endif + +#if defined(_WIN64) +#define WIN_SYM_PREFIX +#else +#define WIN_SYM_PREFIX "_" +#endif + +// Intermediate macro to ensure the parameter is expanded before stringified. +#define STRINGIFY_(A) #A +#define STRINGIFY(A) STRINGIFY_(A) + +// ----------------- A workaround for the absence of weak symbols -------------- +// We don't have a direct equivalent of weak symbols when using MSVC, but we can +// use the /alternatename directive to tell the linker to default a specific +// symbol to a specific value. +// Take into account that this is a pragma directive for the linker, so it will +// be ignored by the compiler and the function will be marked as UNDEF in the +// symbol table of the resulting object file. The linker won't find the default +// implementation until it links with that object file. +// So, suppose we provide a default implementation "fundef" for "fun", and this +// is compiled into the object file "test.obj" including the pragma directive. +// If we have some code with references to "fun" and we link that code with +// "test.obj", it will work because the linker always link object files. +// But, if "test.obj" is included in a static library, like "test.lib", then the +// liker will only link to "test.obj" if necessary. If we only included the +// definition of "fun", it won't link to "test.obj" (from test.lib) because +// "fun" appears as UNDEF, so it doesn't resolve the symbol "fun", and will +// result in a link error (the linker doesn't find the pragma directive). +// So, a workaround is to force linkage with the modules that include weak +// definitions, with the following macro: WIN_FORCE_LINK() + +#define WIN_WEAK_ALIAS(Name, Default) \ + __pragma(comment(linker, "/alternatename:" WIN_SYM_PREFIX STRINGIFY(Name) "="\ + WIN_SYM_PREFIX STRINGIFY(Default))) + +#define WIN_FORCE_LINK(Name) \ + __pragma(comment(linker, "/include:" WIN_SYM_PREFIX STRINGIFY(Name))) + +#define WIN_EXPORT(ExportedName, Name) \ + __pragma(comment(linker, "/export:" WIN_SYM_PREFIX STRINGIFY(ExportedName) \ + "=" WIN_SYM_PREFIX STRINGIFY(Name))) + +// We cannot define weak functions on Windows, but we can use WIN_WEAK_ALIAS() +// which defines an alias to a default implementation, and only works when +// linking statically. +// So, to define a weak function "fun", we define a default implementation with +// a different name "fun__def" and we create a "weak alias" fun = fun__def. +// Then, users can override it just defining "fun". +// We impose "extern "C"" because otherwise WIN_WEAK_ALIAS() will fail because +// of name mangling. + +// Dummy name for default implementation of weak function. +# define WEAK_DEFAULT_NAME(Name) Name##__def +// Name for exported implementation of weak function. +# define WEAK_EXPORT_NAME(Name) Name##__dll + +// Use this macro when you need to define and export a weak function from a +// library. For example: +// WIN_WEAK_EXPORT_DEF(bool, compare, int a, int b) { return a > b; } +# define WIN_WEAK_EXPORT_DEF(ReturnType, Name, ...) \ + WIN_WEAK_ALIAS(Name, WEAK_DEFAULT_NAME(Name)) \ + WIN_EXPORT(WEAK_EXPORT_NAME(Name), Name) \ + extern "C" ReturnType Name(__VA_ARGS__); \ + extern "C" ReturnType WEAK_DEFAULT_NAME(Name)(__VA_ARGS__) + +// Use this macro when you need to import a weak function from a library. It +// defines a weak alias to the imported function from the dll. For example: +// WIN_WEAK_IMPORT_DEF(compare) +# define WIN_WEAK_IMPORT_DEF(Name) \ + WIN_WEAK_ALIAS(Name, WEAK_EXPORT_NAME(Name)) + +// So, for Windows we provide something similar to weak symbols in Linux, with +// some differences: +// + A default implementation must always be provided. +// +// + When linking statically it works quite similarly. For example: +// +// // libExample.cc +// WIN_WEAK_EXPORT_DEF(bool, compare, int a, int b) { return a > b; } +// +// // client.cc +// // We can use the default implementation from the library: +// compare(1, 2); +// // Or we can override it: +// extern "C" bool compare (int a, int b) { return a >= b; } +// +// And it will work fine. If we don't override the function, we need to ensure +// that the linker includes the object file with the default implementation. +// We can do so with the linker option "-wholearchive:". +// +// + When linking dynamically with a library (dll), weak functions are exported +// with "__dll" suffix. Clients can use the macro WIN_WEAK_IMPORT_DEF(fun) +// which defines a "weak alias" fun = fun__dll. +// +// // libExample.cc +// WIN_WEAK_EXPORT_DEF(bool, compare, int a, int b) { return a > b; } +// +// // client.cc +// WIN_WEAK_IMPORT_DEF(compare) +// // We can use the default implementation from the library: +// compare(1, 2); +// // Or we can override it: +// extern "C" bool compare (int a, int b) { return a >= b; } +// +// But if we override the function, the dlls don't have access to it (which +// is different in linux). If that is desired, the strong definition must be +// exported and interception can be used from the rest of the dlls. +// +// // libExample.cc +// WIN_WEAK_EXPORT_DEF(bool, compare, int a, int b) { return a > b; } +// // When initialized, check if the main executable defined "compare". +// int libExample_init() { +// uptr fnptr = __interception::InternalGetProcAddress( +// (void *)GetModuleHandleA(0), "compare"); +// if (fnptr && !__interception::OverrideFunction((uptr)compare, fnptr, 0)) +// abort(); +// return 0; +// } +// +// // client.cc +// WIN_WEAK_IMPORT_DEF(compare) +// // We override and export compare: +// extern "C" __declspec(dllexport) bool compare (int a, int b) { +// return a >= b; +// } +// +#endif // SANITIZER_WINDOWS +#endif // SANITIZER_WIN_DEFS_H diff --git a/lib/sanitizer_common/sanitizer_win_dll_thunk.cc b/lib/sanitizer_common/sanitizer_win_dll_thunk.cc new file mode 100644 index 000000000000..4fb4650be478 --- /dev/null +++ b/lib/sanitizer_common/sanitizer_win_dll_thunk.cc @@ -0,0 +1,102 @@ +//===-- sanitizer_win_dll_thunk.cc ----------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// This file defines a family of thunks that should be statically linked into +// the DLLs that have instrumentation in order to delegate the calls to the +// shared runtime that lives in the main binary. +// See https://github.com/google/sanitizers/issues/209 for the details. +//===----------------------------------------------------------------------===// + +#ifdef SANITIZER_DLL_THUNK +#include "sanitizer_win_defs.h" +#include "sanitizer_win_dll_thunk.h" +#include "interception/interception.h" + +extern "C" { +void *WINAPI GetModuleHandleA(const char *module_name); +void abort(); +} + +namespace __sanitizer { +uptr dllThunkGetRealAddrOrDie(const char *name) { + uptr ret = + __interception::InternalGetProcAddress((void *)GetModuleHandleA(0), name); + if (!ret) + abort(); + return ret; +} + +int dllThunkIntercept(const char* main_function, uptr dll_function) { + uptr wrapper = dllThunkGetRealAddrOrDie(main_function); + if (!__interception::OverrideFunction(dll_function, wrapper, 0)) + abort(); + return 0; +} + +int dllThunkInterceptWhenPossible(const char* main_function, + const char* default_function, uptr dll_function) { + uptr wrapper = __interception::InternalGetProcAddress( + (void *)GetModuleHandleA(0), main_function); + if (!wrapper) + wrapper = dllThunkGetRealAddrOrDie(default_function); + if (!__interception::OverrideFunction(dll_function, wrapper, 0)) + abort(); + return 0; +} +} // namespace __sanitizer + +// Include Sanitizer Common interface. +#define INTERFACE_FUNCTION(Name) INTERCEPT_SANITIZER_FUNCTION(Name) +#define INTERFACE_WEAK_FUNCTION(Name) INTERCEPT_SANITIZER_WEAK_FUNCTION(Name) +#include "sanitizer_common_interface.inc" + +#pragma section(".DLLTH$A", read) // NOLINT +#pragma section(".DLLTH$Z", read) // NOLINT + +typedef void (*DllThunkCB)(); +extern "C" { +__declspec(allocate(".DLLTH$A")) DllThunkCB __start_dll_thunk; +__declspec(allocate(".DLLTH$Z")) DllThunkCB __stop_dll_thunk; +} + +// Disable compiler warnings that show up if we declare our own version +// of a compiler intrinsic (e.g. strlen). +#pragma warning(disable: 4391) +#pragma warning(disable: 4392) + +extern "C" int __dll_thunk_init() { + static bool flag = false; + // __dll_thunk_init is expected to be called by only one thread. + if (flag) return 0; + flag = true; + + for (DllThunkCB *it = &__start_dll_thunk; it < &__stop_dll_thunk; ++it) + if (*it) + (*it)(); + + // In DLLs, the callbacks are expected to return 0, + // otherwise CRT initialization fails. + return 0; +} + +// We want to call dll_thunk_init before C/C++ initializers / constructors are +// executed, otherwise functions like memset might be invoked. +#pragma section(".CRT$XIB", long, read) // NOLINT +__declspec(allocate(".CRT$XIB")) int (*__dll_thunk_preinit)() = + __dll_thunk_init; + +static void WINAPI dll_thunk_thread_init(void *mod, unsigned long reason, + void *reserved) { + if (reason == /*DLL_PROCESS_ATTACH=*/1) __dll_thunk_init(); +} + +#pragma section(".CRT$XLAB", long, read) // NOLINT +__declspec(allocate(".CRT$XLAB")) void (WINAPI *__dll_thunk_tls_init)(void *, + unsigned long, void *) = dll_thunk_thread_init; + +#endif // SANITIZER_DLL_THUNK diff --git a/lib/sanitizer_common/sanitizer_win_dll_thunk.h b/lib/sanitizer_common/sanitizer_win_dll_thunk.h new file mode 100644 index 000000000000..2f9ebdaa6e76 --- /dev/null +++ b/lib/sanitizer_common/sanitizer_win_dll_thunk.h @@ -0,0 +1,182 @@ +//===-- sanitizer_win_dll_thunk.h -----------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// This header provide helper macros to delegate calls to the shared runtime +// that lives in the main executable. It should be included to dll_thunks that +// will be linked to the dlls, when the sanitizer is a static library included +// in the main executable. +//===----------------------------------------------------------------------===// +#ifndef SANITIZER_WIN_DLL_THUNK_H +#define SANITIZER_WIN_DLL_THUNK_H +#include "sanitizer_internal_defs.h" + +namespace __sanitizer { +uptr dllThunkGetRealAddrOrDie(const char *name); + +int dllThunkIntercept(const char* main_function, uptr dll_function); + +int dllThunkInterceptWhenPossible(const char* main_function, + const char* default_function, uptr dll_function); +} + +extern "C" int __dll_thunk_init(); + +// ----------------- Function interception helper macros -------------------- // +// Override dll_function with main_function from main executable. +#define INTERCEPT_OR_DIE(main_function, dll_function) \ + static int intercept_##dll_function() { \ + return __sanitizer::dllThunkIntercept(main_function, (__sanitizer::uptr) \ + dll_function); \ + } \ + __pragma(section(".DLLTH$M", long, read)) \ + __declspec(allocate(".DLLTH$M")) int (*__dll_thunk_##dll_function)() = \ + intercept_##dll_function; + +// Try to override dll_function with main_function from main executable. +// If main_function is not present, override dll_function with default_function. +#define INTERCEPT_WHEN_POSSIBLE(main_function, default_function, dll_function) \ + static int intercept_##dll_function() { \ + return __sanitizer::dllThunkInterceptWhenPossible(main_function, \ + default_function, (__sanitizer::uptr)dll_function); \ + } \ + __pragma(section(".DLLTH$M", long, read)) \ + __declspec(allocate(".DLLTH$M")) int (*__dll_thunk_##dll_function)() = \ + intercept_##dll_function; + +// -------------------- Function interception macros ------------------------ // +// Special case of hooks -- ASan own interface functions. Those are only called +// after __asan_init, thus an empty implementation is sufficient. +#define INTERCEPT_SANITIZER_FUNCTION(name) \ + extern "C" __declspec(noinline) void name() { \ + volatile int prevent_icf = (__LINE__ << 8) ^ __COUNTER__; \ + static const char function_name[] = #name; \ + for (const char* ptr = &function_name[0]; *ptr; ++ptr) \ + prevent_icf ^= *ptr; \ + (void)prevent_icf; \ + __debugbreak(); \ + } \ + INTERCEPT_OR_DIE(#name, name) + +// Special case of hooks -- Weak functions, could be redefined in the main +// executable, but that is not necessary, so we shouldn't die if we can not find +// a reference. Instead, when the function is not present in the main executable +// we consider the default impl provided by asan library. +#define INTERCEPT_SANITIZER_WEAK_FUNCTION(name) \ + extern "C" __declspec(noinline) void name() { \ + volatile int prevent_icf = (__LINE__ << 8) ^ __COUNTER__; \ + static const char function_name[] = #name; \ + for (const char* ptr = &function_name[0]; *ptr; ++ptr) \ + prevent_icf ^= *ptr; \ + (void)prevent_icf; \ + __debugbreak(); \ + } \ + INTERCEPT_WHEN_POSSIBLE(#name, STRINGIFY(WEAK_EXPORT_NAME(name)), name) + +// We can't define our own version of strlen etc. because that would lead to +// link-time or even type mismatch errors. Instead, we can declare a function +// just to be able to get its address. Me may miss the first few calls to the +// functions since it can be called before __dll_thunk_init, but that would lead +// to false negatives in the startup code before user's global initializers, +// which isn't a big deal. +#define INTERCEPT_LIBRARY_FUNCTION(name) \ + extern "C" void name(); \ + INTERCEPT_OR_DIE(WRAPPER_NAME(name), name) + +// Use these macros for functions that could be called before __dll_thunk_init() +// is executed and don't lead to errors if defined (free, malloc, etc). +#define INTERCEPT_WRAP_V_V(name) \ + extern "C" void name() { \ + typedef decltype(name) *fntype; \ + static fntype fn = (fntype)__sanitizer::dllThunkGetRealAddrOrDie(#name); \ + fn(); \ + } \ + INTERCEPT_OR_DIE(#name, name); + +#define INTERCEPT_WRAP_V_W(name) \ + extern "C" void name(void *arg) { \ + typedef decltype(name) *fntype; \ + static fntype fn = (fntype)__sanitizer::dllThunkGetRealAddrOrDie(#name); \ + fn(arg); \ + } \ + INTERCEPT_OR_DIE(#name, name); + +#define INTERCEPT_WRAP_V_WW(name) \ + extern "C" void name(void *arg1, void *arg2) { \ + typedef decltype(name) *fntype; \ + static fntype fn = (fntype)__sanitizer::dllThunkGetRealAddrOrDie(#name); \ + fn(arg1, arg2); \ + } \ + INTERCEPT_OR_DIE(#name, name); + +#define INTERCEPT_WRAP_V_WWW(name) \ + extern "C" void name(void *arg1, void *arg2, void *arg3) { \ + typedef decltype(name) *fntype; \ + static fntype fn = (fntype)__sanitizer::dllThunkGetRealAddrOrDie(#name); \ + fn(arg1, arg2, arg3); \ + } \ + INTERCEPT_OR_DIE(#name, name); + +#define INTERCEPT_WRAP_W_V(name) \ + extern "C" void *name() { \ + typedef decltype(name) *fntype; \ + static fntype fn = (fntype)__sanitizer::dllThunkGetRealAddrOrDie(#name); \ + return fn(); \ + } \ + INTERCEPT_OR_DIE(#name, name); + +#define INTERCEPT_WRAP_W_W(name) \ + extern "C" void *name(void *arg) { \ + typedef decltype(name) *fntype; \ + static fntype fn = (fntype)__sanitizer::dllThunkGetRealAddrOrDie(#name); \ + return fn(arg); \ + } \ + INTERCEPT_OR_DIE(#name, name); + +#define INTERCEPT_WRAP_W_WW(name) \ + extern "C" void *name(void *arg1, void *arg2) { \ + typedef decltype(name) *fntype; \ + static fntype fn = (fntype)__sanitizer::dllThunkGetRealAddrOrDie(#name); \ + return fn(arg1, arg2); \ + } \ + INTERCEPT_OR_DIE(#name, name); + +#define INTERCEPT_WRAP_W_WWW(name) \ + extern "C" void *name(void *arg1, void *arg2, void *arg3) { \ + typedef decltype(name) *fntype; \ + static fntype fn = (fntype)__sanitizer::dllThunkGetRealAddrOrDie(#name); \ + return fn(arg1, arg2, arg3); \ + } \ + INTERCEPT_OR_DIE(#name, name); + +#define INTERCEPT_WRAP_W_WWWW(name) \ + extern "C" void *name(void *arg1, void *arg2, void *arg3, void *arg4) { \ + typedef decltype(name) *fntype; \ + static fntype fn = (fntype)__sanitizer::dllThunkGetRealAddrOrDie(#name); \ + return fn(arg1, arg2, arg3, arg4); \ + } \ + INTERCEPT_OR_DIE(#name, name); + +#define INTERCEPT_WRAP_W_WWWWW(name) \ + extern "C" void *name(void *arg1, void *arg2, void *arg3, void *arg4, \ + void *arg5) { \ + typedef decltype(name) *fntype; \ + static fntype fn = (fntype)__sanitizer::dllThunkGetRealAddrOrDie(#name); \ + return fn(arg1, arg2, arg3, arg4, arg5); \ + } \ + INTERCEPT_OR_DIE(#name, name); + +#define INTERCEPT_WRAP_W_WWWWWW(name) \ + extern "C" void *name(void *arg1, void *arg2, void *arg3, void *arg4, \ + void *arg5, void *arg6) { \ + typedef decltype(name) *fntype; \ + static fntype fn = (fntype)__sanitizer::dllThunkGetRealAddrOrDie(#name); \ + return fn(arg1, arg2, arg3, arg4, arg5, arg6); \ + } \ + INTERCEPT_OR_DIE(#name, name); + +#endif // SANITIZER_WIN_DLL_THUNK_H diff --git a/lib/sanitizer_common/sanitizer_win_dynamic_runtime_thunk.cc b/lib/sanitizer_common/sanitizer_win_dynamic_runtime_thunk.cc new file mode 100644 index 000000000000..f8f916473bf2 --- /dev/null +++ b/lib/sanitizer_common/sanitizer_win_dynamic_runtime_thunk.cc @@ -0,0 +1,21 @@ +//===-- santizer_win_dynamic_runtime_thunk.cc -----------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file defines things that need to be present in the application modules +// to interact with Sanitizer Common, when it is included in a dll. +// +//===----------------------------------------------------------------------===// +#ifdef SANITIZER_DYNAMIC_RUNTIME_THUNK +#define SANITIZER_IMPORT_INTERFACE 1 +#include "sanitizer_win_defs.h" +// Define weak alias for all weak functions imported from sanitizer common. +#define INTERFACE_FUNCTION(Name) +#define INTERFACE_WEAK_FUNCTION(Name) WIN_WEAK_IMPORT_DEF(Name) +#include "sanitizer_common_interface.inc" +#endif // SANITIZER_DYNAMIC_RUNTIME_THUNK diff --git a/lib/sanitizer_common/sanitizer_win_weak_interception.cc b/lib/sanitizer_common/sanitizer_win_weak_interception.cc new file mode 100644 index 000000000000..364319398198 --- /dev/null +++ b/lib/sanitizer_common/sanitizer_win_weak_interception.cc @@ -0,0 +1,94 @@ +//===-- sanitizer_win_weak_interception.cc --------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// This module should be included in the sanitizer when it is implemented as a +// shared library on Windows (dll), in order to delegate the calls of weak +// functions to the implementation in the main executable when a strong +// definition is provided. +//===----------------------------------------------------------------------===// + +#include "sanitizer_common/sanitizer_platform.h" +#if SANITIZER_WINDOWS && SANITIZER_DYNAMIC +#include "sanitizer_win_weak_interception.h" +#include "sanitizer_allocator_interface.h" +#include "sanitizer_interface_internal.h" +#include "sanitizer_win_defs.h" +#include "interception/interception.h" + +extern "C" { +void *WINAPI GetModuleHandleA(const char *module_name); +void abort(); +} + +namespace __sanitizer { +// Try to get a pointer to real_function in the main module and override +// dll_function with that pointer. If the function isn't found, nothing changes. +int interceptWhenPossible(uptr dll_function, const char *real_function) { + uptr real = __interception::InternalGetProcAddress( + (void *)GetModuleHandleA(0), real_function); + if (real && !__interception::OverrideFunction((uptr)dll_function, real, 0)) + abort(); + return 0; +} +} // namespace __sanitizer + +// Declare weak hooks. +extern "C" { +void __sanitizer_weak_hook_memcmp(uptr called_pc, const void *s1, + const void *s2, uptr n, int result); +void __sanitizer_weak_hook_strcmp(uptr called_pc, const char *s1, + const char *s2, int result); +void __sanitizer_weak_hook_strncmp(uptr called_pc, const char *s1, + const char *s2, uptr n, int result); +void __sanitizer_weak_hook_strstr(uptr called_pc, const char *s1, + const char *s2, char *result); +} + +// Include Sanitizer Common interface. +#define INTERFACE_FUNCTION(Name) +#define INTERFACE_WEAK_FUNCTION(Name) INTERCEPT_SANITIZER_WEAK_FUNCTION(Name) +#include "sanitizer_common_interface.inc" + +#pragma section(".WEAK$A", read) // NOLINT +#pragma section(".WEAK$Z", read) // NOLINT + +typedef void (*InterceptCB)(); +extern "C" { +__declspec(allocate(".WEAK$A")) InterceptCB __start_weak_list; +__declspec(allocate(".WEAK$Z")) InterceptCB __stop_weak_list; +} + +static int weak_intercept_init() { + static bool flag = false; + // weak_interception_init is expected to be called by only one thread. + if (flag) return 0; + flag = true; + + for (InterceptCB *it = &__start_weak_list; it < &__stop_weak_list; ++it) + if (*it) + (*it)(); + + // In DLLs, the callbacks are expected to return 0, + // otherwise CRT initialization fails. + return 0; +} + +#pragma section(".CRT$XIB", long, read) // NOLINT +__declspec(allocate(".CRT$XIB")) int (*__weak_intercept_preinit)() = + weak_intercept_init; + +static void WINAPI weak_intercept_thread_init(void *mod, unsigned long reason, + void *reserved) { + if (reason == /*DLL_PROCESS_ATTACH=*/1) weak_intercept_init(); +} + +#pragma section(".CRT$XLAB", long, read) // NOLINT +__declspec(allocate(".CRT$XLAB")) void(WINAPI *__weak_intercept_tls_init)( + void *, unsigned long, void *) = weak_intercept_thread_init; + +#endif // SANITIZER_WINDOWS && SANITIZER_DYNAMIC diff --git a/lib/sanitizer_common/sanitizer_win_weak_interception.h b/lib/sanitizer_common/sanitizer_win_weak_interception.h new file mode 100644 index 000000000000..5b122971d2d0 --- /dev/null +++ b/lib/sanitizer_common/sanitizer_win_weak_interception.h @@ -0,0 +1,33 @@ +//===-- sanitizer_win_weak_interception.h ---------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// This header provide helper macros to delegate calls of weak functions to the +// implementation in the main executable when a strong definition is present. +//===----------------------------------------------------------------------===// +#ifndef SANITIZER_WIN_WEAK_INTERCEPTION_H +#define SANITIZER_WIN_WEAK_INTERCEPTION_H +#include "sanitizer_internal_defs.h" + +namespace __sanitizer { +int interceptWhenPossible(uptr dll_function, const char *real_function); +} + +// ----------------- Function interception helper macros -------------------- // +// Weak functions, could be redefined in the main executable, but that is not +// necessary, so we shouldn't die if we can not find a reference. +#define INTERCEPT_WEAK(Name) interceptWhenPossible((uptr) Name, #Name); + +#define INTERCEPT_SANITIZER_WEAK_FUNCTION(Name) \ + static int intercept_##Name() { \ + return __sanitizer::interceptWhenPossible((__sanitizer::uptr) Name, #Name);\ + } \ + __pragma(section(".WEAK$M", long, read)) \ + __declspec(allocate(".WEAK$M")) int (*__weak_intercept_##Name)() = \ + intercept_##Name; + +#endif // SANITIZER_WIN_WEAK_INTERCEPTION_H diff --git a/lib/sanitizer_common/scripts/sancov.py b/lib/sanitizer_common/scripts/sancov.py index e19afdb717ec..e2eba36a802f 100755 --- a/lib/sanitizer_common/scripts/sancov.py +++ b/lib/sanitizer_common/scripts/sancov.py @@ -14,12 +14,14 @@ import sys prog_name = "" def Usage(): - print >> sys.stderr, "Usage: \n" + \ - " " + prog_name + " merge FILE [FILE...] > OUTPUT\n" \ - " " + prog_name + " print FILE [FILE...]\n" \ - " " + prog_name + " unpack FILE [FILE...]\n" \ - " " + prog_name + " rawunpack FILE [FILE ...]\n" \ - " " + prog_name + " missing BINARY < LIST_OF_PCS\n" + sys.stderr.write( + "Usage: \n" + \ + " " + prog_name + " merge FILE [FILE...] > OUTPUT\n" \ + " " + prog_name + " print FILE [FILE...]\n" \ + " " + prog_name + " unpack FILE [FILE...]\n" \ + " " + prog_name + " rawunpack FILE [FILE ...]\n" \ + " " + prog_name + " missing BINARY < LIST_OF_PCS\n" \ + "\n") exit(1) def CheckBits(bits): @@ -68,16 +70,19 @@ def ReadOneFile(path): raise Exception('File %s is short (< 8 bytes)' % path) bits = ReadMagicAndReturnBitness(f, path) size -= 8 - s = struct.unpack_from(TypeCodeForStruct(bits) * (size * 8 / bits), f.read(size)) - print >>sys.stderr, "%s: read %d %d-bit PCs from %s" % (prog_name, size * 8 / bits, bits, path) + w = size * 8 // bits + s = struct.unpack_from(TypeCodeForStruct(bits) * (w), f.read(size)) + sys.stderr.write( + "%s: read %d %d-bit PCs from %s\n" % (prog_name, w, bits, path)) return s def Merge(files): s = set() for f in files: s = s.union(set(ReadOneFile(f))) - print >> sys.stderr, "%s: %d files merged; %d PCs total" % \ - (prog_name, len(files), len(s)) + sys.stderr.write( + "%s: %d files merged; %d PCs total\n" % (prog_name, len(files), len(s)) + ) return sorted(s) def PrintFiles(files): @@ -85,10 +90,9 @@ def PrintFiles(files): s = Merge(files) else: # If there is just on file, print the PCs in order. s = ReadOneFile(files[0]) - print >> sys.stderr, "%s: 1 file merged; %d PCs total" % \ - (prog_name, len(s)) + sys.stderr.write("%s: 1 file merged; %d PCs total\n" % (prog_name, len(s))) for i in s: - print "0x%x" % i + print("0x%x" % i) def MergeAndPrint(files): if sys.stdout.isatty(): @@ -97,27 +101,27 @@ def MergeAndPrint(files): bits = 32 if max(s) > 0xFFFFFFFF: bits = 64 - array.array('I', MagicForBits(bits)).tofile(sys.stdout) + stdout_buf = getattr(sys.stdout, 'buffer', sys.stdout) + array.array('I', MagicForBits(bits)).tofile(stdout_buf) a = struct.pack(TypeCodeForStruct(bits) * len(s), *s) - sys.stdout.write(a) + stdout_buf.write(a) def UnpackOneFile(path): with open(path, mode="rb") as f: - print >> sys.stderr, "%s: unpacking %s" % (prog_name, path) + sys.stderr.write("%s: unpacking %s\n" % (prog_name, path)) while True: header = f.read(12) if not header: return if len(header) < 12: break pid, module_length, blob_size = struct.unpack('iII', header) - module = f.read(module_length) + module = f.read(module_length).decode('utf-8') blob = f.read(blob_size) assert(len(module) == module_length) assert(len(blob) == blob_size) extracted_file = "%s.%d.sancov" % (module, pid) - print >> sys.stderr, "%s: extracting %s" % \ - (prog_name, extracted_file) + sys.stderr.write("%s: extracting %s\n" % (prog_name, extracted_file)) # The packed file may contain multiple blobs for the same pid/module # pair. Append to the end of the file instead of overwriting. with open(extracted_file, 'ab') as f2: @@ -133,7 +137,7 @@ def Unpack(files): def UnpackOneRawFile(path, map_path): mem_map = [] with open(map_path, mode="rt") as f_map: - print >> sys.stderr, "%s: reading map %s" % (prog_name, map_path) + sys.stderr.write("%s: reading map %s\n" % (prog_name, map_path)) bits = int(f_map.readline()) if bits != 32 and bits != 64: raise Exception('Wrong bits size in the map') @@ -147,12 +151,12 @@ def UnpackOneRawFile(path, map_path): mem_map_keys = [m[0] for m in mem_map] with open(path, mode="rb") as f: - print >> sys.stderr, "%s: unpacking %s" % (prog_name, path) + sys.stderr.write("%s: unpacking %s\n" % (prog_name, path)) f.seek(0, 2) size = f.tell() f.seek(0, 0) - pcs = struct.unpack_from(TypeCodeForStruct(bits) * (size * 8 / bits), f.read(size)) + pcs = struct.unpack_from(TypeCodeForStruct(bits) * (size * 8 // bits), f.read(size)) mem_map_pcs = [[] for i in range(0, len(mem_map))] for pc in pcs: @@ -161,7 +165,7 @@ def UnpackOneRawFile(path, map_path): (start, end, base, module_path) = mem_map[map_idx] assert pc >= start if pc >= end: - print >> sys.stderr, "warning: %s: pc %x outside of any known mapping" % (prog_name, pc) + sys.stderr.write("warning: %s: pc %x outside of any known mapping\n" % (prog_name, pc)) continue mem_map_pcs[map_idx].append(pc - base) @@ -169,7 +173,7 @@ def UnpackOneRawFile(path, map_path): if len(pc_list) == 0: continue assert path.endswith('.sancov.raw') dst_path = module_path + '.' + os.path.basename(path)[:-4] - print >> sys.stderr, "%s: writing %d PCs to %s" % (prog_name, len(pc_list), dst_path) + sys.stderr.write("%s: writing %d PCs to %s\n" % (prog_name, len(pc_list), dst_path)) sorted_pc_list = sorted(pc_list) pc_buffer = struct.pack(TypeCodeForStruct(bits) * len(pc_list), *sorted_pc_list) with open(dst_path, 'ab+') as f2: @@ -204,18 +208,19 @@ def PrintMissing(binary): if not os.path.isfile(binary): raise Exception('File not found: %s' % binary) instrumented = GetInstrumentedPCs(binary) - print >> sys.stderr, "%s: found %d instrumented PCs in %s" % (prog_name, - len(instrumented), - binary) + sys.stderr.write("%s: found %d instrumented PCs in %s\n" % (prog_name, + len(instrumented), + binary)) covered = set(int(line, 16) for line in sys.stdin) - print >> sys.stderr, "%s: read %d PCs from stdin" % (prog_name, len(covered)) + sys.stderr.write("%s: read %d PCs from stdin\n" % (prog_name, len(covered))) missing = instrumented - covered - print >> sys.stderr, "%s: %d PCs missing from coverage" % (prog_name, len(missing)) + sys.stderr.write("%s: %d PCs missing from coverage\n" % (prog_name, len(missing))) if (len(missing) > len(instrumented) - len(covered)): - print >> sys.stderr, \ - "%s: WARNING: stdin contains PCs not found in binary" % prog_name + sys.stderr.write( + "%s: WARNING: stdin contains PCs not found in binary\n" % prog_name + ) for pc in sorted(missing): - print "0x%x" % pc + print("0x%x" % pc) if __name__ == '__main__': prog_name = sys.argv[0] diff --git a/lib/sanitizer_common/symbolizer/sanitizer_symbolize.cc b/lib/sanitizer_common/symbolizer/sanitizer_symbolize.cc index bd315a0c9bd4..b25a53d73cb5 100644 --- a/lib/sanitizer_common/symbolizer/sanitizer_symbolize.cc +++ b/lib/sanitizer_common/symbolizer/sanitizer_symbolize.cc @@ -18,8 +18,9 @@ #include "llvm/DebugInfo/Symbolize/Symbolize.h" static llvm::symbolize::LLVMSymbolizer *getDefaultSymbolizer() { - static llvm::symbolize::LLVMSymbolizer DefaultSymbolizer; - return &DefaultSymbolizer; + static llvm::symbolize::LLVMSymbolizer *DefaultSymbolizer = + new llvm::symbolize::LLVMSymbolizer(); + return DefaultSymbolizer; } namespace __sanitizer { @@ -41,8 +42,8 @@ bool __sanitizer_symbolize_code(const char *ModuleName, uint64_t ModuleOffset, getDefaultSymbolizer()->symbolizeInlinedCode(ModuleName, ModuleOffset); Printer << (ResOrErr ? ResOrErr.get() : llvm::DIInliningInfo()); } - __sanitizer::internal_snprintf(Buffer, MaxLength, "%s", Result.c_str()); - return true; + return __sanitizer::internal_snprintf(Buffer, MaxLength, "%s", + Result.c_str()) < MaxLength; } bool __sanitizer_symbolize_data(const char *ModuleName, uint64_t ModuleOffset, @@ -55,8 +56,8 @@ bool __sanitizer_symbolize_data(const char *ModuleName, uint64_t ModuleOffset, getDefaultSymbolizer()->symbolizeData(ModuleName, ModuleOffset); Printer << (ResOrErr ? ResOrErr.get() : llvm::DIGlobal()); } - __sanitizer::internal_snprintf(Buffer, MaxLength, "%s", Result.c_str()); - return true; + return __sanitizer::internal_snprintf(Buffer, MaxLength, "%s", + Result.c_str()) < MaxLength; } void __sanitizer_symbolize_flush() { getDefaultSymbolizer()->flush(); } @@ -65,8 +66,10 @@ int __sanitizer_symbolize_demangle(const char *Name, char *Buffer, int MaxLength) { std::string Result = llvm::symbolize::LLVMSymbolizer::DemangleName(Name, nullptr); - __sanitizer::internal_snprintf(Buffer, MaxLength, "%s", Result.c_str()); - return static_cast<int>(Result.size() + 1); + return __sanitizer::internal_snprintf(Buffer, MaxLength, "%s", + Result.c_str()) < MaxLength + ? static_cast<int>(Result.size() + 1) + : 0; } } // extern "C" diff --git a/lib/sanitizer_common/symbolizer/sanitizer_wrappers.cc b/lib/sanitizer_common/symbolizer/sanitizer_wrappers.cc index 0a796d91a3d0..66d089a0e6c0 100644 --- a/lib/sanitizer_common/symbolizer/sanitizer_wrappers.cc +++ b/lib/sanitizer_common/symbolizer/sanitizer_wrappers.cc @@ -172,4 +172,28 @@ LLVM_SYMBOLIZER_INTERCEPTOR4(pread, ssize_t(int, void *, size_t, off_t)) LLVM_SYMBOLIZER_INTERCEPTOR4(pread64, ssize_t(int, void *, size_t, off64_t)) LLVM_SYMBOLIZER_INTERCEPTOR2(realpath, char *(const char *, char *)) +LLVM_SYMBOLIZER_INTERCEPTOR1(pthread_cond_broadcast, int(pthread_cond_t *)) +LLVM_SYMBOLIZER_INTERCEPTOR2(pthread_cond_wait, + int(pthread_cond_t *, pthread_mutex_t *)) +LLVM_SYMBOLIZER_INTERCEPTOR1(pthread_mutex_lock, int(pthread_mutex_t *)) +LLVM_SYMBOLIZER_INTERCEPTOR1(pthread_mutex_unlock, int(pthread_mutex_t *)) +LLVM_SYMBOLIZER_INTERCEPTOR1(pthread_mutex_destroy, int(pthread_mutex_t *)) +LLVM_SYMBOLIZER_INTERCEPTOR2(pthread_mutex_init, + int(pthread_mutex_t *, + const pthread_mutexattr_t *)) +LLVM_SYMBOLIZER_INTERCEPTOR1(pthread_mutexattr_destroy, + int(pthread_mutexattr_t *)) +LLVM_SYMBOLIZER_INTERCEPTOR1(pthread_mutexattr_init, int(pthread_mutexattr_t *)) +LLVM_SYMBOLIZER_INTERCEPTOR2(pthread_mutexattr_settype, + int(pthread_mutexattr_t *, int)) +LLVM_SYMBOLIZER_INTERCEPTOR1(pthread_getspecific, void *(pthread_key_t)) +LLVM_SYMBOLIZER_INTERCEPTOR2(pthread_key_create, + int(pthread_key_t *, void (*)(void *))) +LLVM_SYMBOLIZER_INTERCEPTOR2(pthread_once, + int(pthread_once_t *, void (*)(void))) +LLVM_SYMBOLIZER_INTERCEPTOR2(pthread_setspecific, + int(pthread_key_t, const void *)) +LLVM_SYMBOLIZER_INTERCEPTOR3(pthread_sigmask, + int(int, const sigset_t *, sigset_t *)) + } // extern "C" diff --git a/lib/sanitizer_common/symbolizer/scripts/ar_to_bc.sh b/lib/sanitizer_common/symbolizer/scripts/ar_to_bc.sh new file mode 100755 index 000000000000..788cef85a581 --- /dev/null +++ b/lib/sanitizer_common/symbolizer/scripts/ar_to_bc.sh @@ -0,0 +1,39 @@ +#!/bin/bash + +function usage() { + echo "Usage: $0 INPUT... OUTPUT" + exit 1 +} + +if [ "$#" -le 1 ]; then + usage +fi + +AR=$(readlink -f $AR) +LINK=$(readlink -f $LINK) + +INPUTS= +OUTPUT= +for ARG in $@; do + INPUTS="$INPUTS $OUTPUT" + OUTPUT=$(readlink -f $ARG) +done + +echo Inputs: $INPUTS +echo Output: $OUTPUT + +SCRATCH_DIR=$(mktemp -d) +ln -s $INPUTS $SCRATCH_DIR/ + +pushd $SCRATCH_DIR + +for INPUT in *; do + for OBJ in $($AR t $INPUT); do + $AR x $INPUT $OBJ + mv -f $OBJ $(basename $INPUT).$OBJ + done +done + +$LINK *.o -o $OUTPUT + +rm -rf $SCRATCH_DIR diff --git a/lib/sanitizer_common/symbolizer/scripts/build_symbolizer.sh b/lib/sanitizer_common/symbolizer/scripts/build_symbolizer.sh index 07239eb50587..4a0fb03c4c70 100755 --- a/lib/sanitizer_common/symbolizer/scripts/build_symbolizer.sh +++ b/lib/sanitizer_common/symbolizer/scripts/build_symbolizer.sh @@ -58,9 +58,9 @@ cd $BUILD_DIR CC=$CLANG_DIR/clang CXX=$CLANG_DIR/clang++ TBLGEN=$CLANG_DIR/llvm-tblgen -LINK=$CLANG_DIR/llvm-link OPT=$CLANG_DIR/opt -AR=$CLANG_DIR/llvm-ar +export AR=$CLANG_DIR/llvm-ar +export LINK=$CLANG_DIR/llvm-link for F in $CC $CXX $TBLGEN $LINK $OPT $AR; do if [[ ! -x "$F" ]]; then @@ -136,29 +136,26 @@ rm -rf ${SYMBOLIZER_BUILD} mkdir ${SYMBOLIZER_BUILD} cd ${SYMBOLIZER_BUILD} -for A in $LIBCXX_BUILD/lib/libc++.a \ - $LIBCXX_BUILD/lib/libc++abi.a \ - $LLVM_BUILD/lib/libLLVMSymbolize.a \ - $LLVM_BUILD/lib/libLLVMObject.a \ - $LLVM_BUILD/lib/libLLVMDebugInfoDWARF.a \ - $LLVM_BUILD/lib/libLLVMSupport.a \ - $LLVM_BUILD/lib/libLLVMDebugInfoPDB.a \ - $LLVM_BUILD/lib/libLLVMMC.a \ - $ZLIB_BUILD/libz.a ; do - for O in $($AR t $A); do - $AR x $A $O - mv -f $O "$(basename $A).$O" # Rename to avoid collisions between libs. - done -done - echo "Compiling..." SYMBOLIZER_FLAGS="$FLAGS -std=c++11 -I${LLVM_SRC}/include -I${LLVM_BUILD}/include -I${LIBCXX_BUILD}/include/c++/v1" $CXX $SYMBOLIZER_FLAGS ${SRC_DIR}/sanitizer_symbolize.cc ${SRC_DIR}/sanitizer_wrappers.cc -c +$AR rc symbolizer.a sanitizer_symbolize.o sanitizer_wrappers.o SYMBOLIZER_API_LIST=__sanitizer_symbolize_code,__sanitizer_symbolize_data,__sanitizer_symbolize_flush,__sanitizer_symbolize_demangle # Merge all the object files together and copy the resulting library back. -$LINK *.o -o all.bc +$SCRIPT_DIR/ar_to_bc.sh $LIBCXX_BUILD/lib/libc++.a \ + $LIBCXX_BUILD/lib/libc++abi.a \ + $LLVM_BUILD/lib/libLLVMSymbolize.a \ + $LLVM_BUILD/lib/libLLVMObject.a \ + $LLVM_BUILD/lib/libLLVMDebugInfoDWARF.a \ + $LLVM_BUILD/lib/libLLVMSupport.a \ + $LLVM_BUILD/lib/libLLVMDebugInfoPDB.a \ + $LLVM_BUILD/lib/libLLVMMC.a \ + $ZLIB_BUILD/libz.a \ + symbolizer.a \ + all.bc + echo "Optimizing..." $OPT -internalize -internalize-public-api-list=${SYMBOLIZER_API_LIST} all.bc -o opt.bc $CC $FLAGS -fno-lto -c opt.bc -o symbolizer.o diff --git a/lib/sanitizer_common/symbolizer/scripts/global_symbols.txt b/lib/sanitizer_common/symbolizer/scripts/global_symbols.txt index 033acf7f202a..737f9459d240 100644 --- a/lib/sanitizer_common/symbolizer/scripts/global_symbols.txt +++ b/lib/sanitizer_common/symbolizer/scripts/global_symbols.txt @@ -37,6 +37,7 @@ clock_gettime U cfgetospeed U dl_iterate_phdr U dlsym U +dup U dup2 U environ U execv U diff --git a/lib/sanitizer_common/tests/CMakeLists.txt b/lib/sanitizer_common/tests/CMakeLists.txt index 20698b9a8a96..b310f93743ac 100644 --- a/lib/sanitizer_common/tests/CMakeLists.txt +++ b/lib/sanitizer_common/tests/CMakeLists.txt @@ -26,6 +26,7 @@ set(SANITIZER_UNITTESTS sanitizer_posix_test.cc sanitizer_printf_test.cc sanitizer_procmaps_test.cc + sanitizer_quarantine_test.cc sanitizer_stackdepot_test.cc sanitizer_stacktrace_printer_test.cc sanitizer_stacktrace_test.cc diff --git a/lib/sanitizer_common/tests/sanitizer_allocator_test.cc b/lib/sanitizer_common/tests/sanitizer_allocator_test.cc index 8df5efda674e..e14517fca518 100644 --- a/lib/sanitizer_common/tests/sanitizer_allocator_test.cc +++ b/lib/sanitizer_common/tests/sanitizer_allocator_test.cc @@ -23,6 +23,7 @@ #include <stdlib.h> #include <algorithm> #include <vector> +#include <random> #include <set> using namespace __sanitizer; @@ -539,6 +540,7 @@ void TestCombinedAllocator() { Allocator; Allocator *a = new Allocator; a->Init(/* may_return_null */ true, kReleaseToOSIntervalNever); + std::mt19937 r; AllocatorCache cache; memset(&cache, 0, sizeof(cache)); @@ -570,7 +572,7 @@ void TestCombinedAllocator() { allocated.push_back(x); } - random_shuffle(allocated.begin(), allocated.end()); + std::shuffle(allocated.begin(), allocated.end(), r); for (uptr i = 0; i < kNumAllocs; i++) { void *x = allocated[i]; diff --git a/lib/sanitizer_common/tests/sanitizer_bitvector_test.cc b/lib/sanitizer_common/tests/sanitizer_bitvector_test.cc index 706b4c58968e..dec5459b2515 100644 --- a/lib/sanitizer_common/tests/sanitizer_bitvector_test.cc +++ b/lib/sanitizer_common/tests/sanitizer_bitvector_test.cc @@ -19,6 +19,7 @@ #include <algorithm> #include <vector> +#include <random> #include <set> using namespace __sanitizer; @@ -75,6 +76,7 @@ void Print(const set<uptr> &s) { template <class BV> void TestBitVector(uptr expected_size) { + std::mt19937 r; BV bv, bv1, t_bv; EXPECT_EQ(expected_size, BV::kSize); bv.clear(); @@ -112,7 +114,7 @@ void TestBitVector(uptr expected_size) { for (uptr it = 0; it < 30; it++) { // iota for (size_t j = 0; j < bits.size(); j++) bits[j] = j; - random_shuffle(bits.begin(), bits.end()); + std::shuffle(bits.begin(), bits.end(), r); set<uptr> s, s1, t_s; bv.clear(); bv1.clear(); diff --git a/lib/sanitizer_common/tests/sanitizer_list_test.cc b/lib/sanitizer_common/tests/sanitizer_list_test.cc index fbe53c0375c0..ede9771cb249 100644 --- a/lib/sanitizer_common/tests/sanitizer_list_test.cc +++ b/lib/sanitizer_common/tests/sanitizer_list_test.cc @@ -125,6 +125,22 @@ TEST(SanitizerCommon, IntrusiveList) { CHECK(l.empty()); l.CheckConsistency(); + l.push_back(x); + l.push_back(y); + l.push_back(z); + l.extract(x, y); + CHECK_EQ(l.size(), 2); + CHECK_EQ(l.front(), x); + CHECK_EQ(l.back(), z); + l.CheckConsistency(); + l.extract(x, z); + CHECK_EQ(l.size(), 1); + CHECK_EQ(l.front(), x); + CHECK_EQ(l.back(), x); + l.CheckConsistency(); + l.pop_front(); + CHECK(l.empty()); + List l1, l2; l1.clear(); l2.clear(); diff --git a/lib/sanitizer_common/tests/sanitizer_quarantine_test.cc b/lib/sanitizer_common/tests/sanitizer_quarantine_test.cc new file mode 100644 index 000000000000..23ed5f97ae27 --- /dev/null +++ b/lib/sanitizer_common/tests/sanitizer_quarantine_test.cc @@ -0,0 +1,180 @@ +//===-- sanitizer_quarantine_test.cc --------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file is a part of ThreadSanitizer/AddressSanitizer runtime. +// +//===----------------------------------------------------------------------===// +#include "sanitizer_common/sanitizer_common.h" +#include "sanitizer_common/sanitizer_quarantine.h" +#include "gtest/gtest.h" + +#include <stdlib.h> + +namespace __sanitizer { + +struct QuarantineCallback { + void Recycle(void *m) {} + void *Allocate(uptr size) { + return malloc(size); + } + void Deallocate(void *p) { + free(p); + } +}; + +typedef QuarantineCache<QuarantineCallback> Cache; + +static void* kFakePtr = reinterpret_cast<void*>(0xFA83FA83); +static const size_t kBlockSize = 8; + +static QuarantineCallback cb; + +static void DeallocateCache(Cache *cache) { + while (QuarantineBatch *batch = cache->DequeueBatch()) + cb.Deallocate(batch); +} + +TEST(SanitizerCommon, QuarantineBatchMerge) { + // Verify the trivial case. + QuarantineBatch into; + into.init(kFakePtr, 4UL); + QuarantineBatch from; + from.init(kFakePtr, 8UL); + + into.merge(&from); + + ASSERT_EQ(into.count, 2UL); + ASSERT_EQ(into.batch[0], kFakePtr); + ASSERT_EQ(into.batch[1], kFakePtr); + ASSERT_EQ(into.size, 12UL + sizeof(QuarantineBatch)); + ASSERT_EQ(into.quarantined_size(), 12UL); + + ASSERT_EQ(from.count, 0UL); + ASSERT_EQ(from.size, sizeof(QuarantineBatch)); + ASSERT_EQ(from.quarantined_size(), 0UL); + + // Merge the batch to the limit. + for (uptr i = 2; i < QuarantineBatch::kSize; ++i) + from.push_back(kFakePtr, 8UL); + ASSERT_TRUE(into.count + from.count == QuarantineBatch::kSize); + ASSERT_TRUE(into.can_merge(&from)); + + into.merge(&from); + ASSERT_TRUE(into.count == QuarantineBatch::kSize); + + // No more space, not even for one element. + from.init(kFakePtr, 8UL); + + ASSERT_FALSE(into.can_merge(&from)); +} + +TEST(SanitizerCommon, QuarantineCacheMergeBatchesEmpty) { + Cache cache; + Cache to_deallocate; + cache.MergeBatches(&to_deallocate); + + ASSERT_EQ(to_deallocate.Size(), 0UL); + ASSERT_EQ(to_deallocate.DequeueBatch(), nullptr); +} + +TEST(SanitizerCommon, QuarantineCacheMergeBatchesOneBatch) { + Cache cache; + cache.Enqueue(cb, kFakePtr, kBlockSize); + ASSERT_EQ(kBlockSize + sizeof(QuarantineBatch), cache.Size()); + + Cache to_deallocate; + cache.MergeBatches(&to_deallocate); + + // Nothing to merge, nothing to deallocate. + ASSERT_EQ(kBlockSize + sizeof(QuarantineBatch), cache.Size()); + + ASSERT_EQ(to_deallocate.Size(), 0UL); + ASSERT_EQ(to_deallocate.DequeueBatch(), nullptr); + + DeallocateCache(&cache); +} + +TEST(SanitizerCommon, QuarantineCacheMergeBatchesSmallBatches) { + // Make a cache with two batches small enough to merge. + Cache from; + from.Enqueue(cb, kFakePtr, kBlockSize); + Cache cache; + cache.Enqueue(cb, kFakePtr, kBlockSize); + + cache.Transfer(&from); + ASSERT_EQ(kBlockSize * 2 + sizeof(QuarantineBatch) * 2, cache.Size()); + + Cache to_deallocate; + cache.MergeBatches(&to_deallocate); + + // Batches merged, one batch to deallocate. + ASSERT_EQ(kBlockSize * 2 + sizeof(QuarantineBatch), cache.Size()); + ASSERT_EQ(to_deallocate.Size(), sizeof(QuarantineBatch)); + + DeallocateCache(&cache); + DeallocateCache(&to_deallocate); +} + +TEST(SanitizerCommon, QuarantineCacheMergeBatchesTooBigToMerge) { + const uptr kNumBlocks = QuarantineBatch::kSize - 1; + + // Make a cache with two batches small enough to merge. + Cache from; + Cache cache; + for (uptr i = 0; i < kNumBlocks; ++i) { + from.Enqueue(cb, kFakePtr, kBlockSize); + cache.Enqueue(cb, kFakePtr, kBlockSize); + } + cache.Transfer(&from); + ASSERT_EQ(kBlockSize * kNumBlocks * 2 + + sizeof(QuarantineBatch) * 2, cache.Size()); + + Cache to_deallocate; + cache.MergeBatches(&to_deallocate); + + // Batches cannot be merged. + ASSERT_EQ(kBlockSize * kNumBlocks * 2 + + sizeof(QuarantineBatch) * 2, cache.Size()); + ASSERT_EQ(to_deallocate.Size(), 0UL); + + DeallocateCache(&cache); +} + +TEST(SanitizerCommon, QuarantineCacheMergeBatchesALotOfBatches) { + const uptr kNumBatchesAfterMerge = 3; + const uptr kNumBlocks = QuarantineBatch::kSize * kNumBatchesAfterMerge; + const uptr kNumBatchesBeforeMerge = kNumBlocks; + + // Make a cache with many small batches. + Cache cache; + for (uptr i = 0; i < kNumBlocks; ++i) { + Cache from; + from.Enqueue(cb, kFakePtr, kBlockSize); + cache.Transfer(&from); + } + + ASSERT_EQ(kBlockSize * kNumBlocks + + sizeof(QuarantineBatch) * kNumBatchesBeforeMerge, cache.Size()); + + Cache to_deallocate; + cache.MergeBatches(&to_deallocate); + + // All blocks should fit into 3 batches. + ASSERT_EQ(kBlockSize * kNumBlocks + + sizeof(QuarantineBatch) * kNumBatchesAfterMerge, cache.Size()); + + ASSERT_EQ(to_deallocate.Size(), + sizeof(QuarantineBatch) * + (kNumBatchesBeforeMerge - kNumBatchesAfterMerge)); + + DeallocateCache(&cache); + DeallocateCache(&to_deallocate); +} + +} // namespace __sanitizer diff --git a/lib/sanitizer_common/tests/sanitizer_thread_registry_test.cc b/lib/sanitizer_common/tests/sanitizer_thread_registry_test.cc index 1132bfdf62e3..f8b8c12d4ac3 100644 --- a/lib/sanitizer_common/tests/sanitizer_thread_registry_test.cc +++ b/lib/sanitizer_common/tests/sanitizer_thread_registry_test.cc @@ -67,7 +67,7 @@ static void MarkUidAsPresent(ThreadContextBase *tctx, void *arg) { static void TestRegistry(ThreadRegistry *registry, bool has_quarantine) { // Create and start a main thread. EXPECT_EQ(0U, registry->CreateThread(get_uid(0), true, -1, 0)); - registry->StartThread(0, 0, 0); + registry->StartThread(0, 0, false, 0); // Create a bunch of threads. for (u32 i = 1; i <= 10; i++) { EXPECT_EQ(i, registry->CreateThread(get_uid(i), is_detached(i), 0, 0)); @@ -75,7 +75,7 @@ static void TestRegistry(ThreadRegistry *registry, bool has_quarantine) { CheckThreadQuantity(registry, 11, 1, 11); // Start some of them. for (u32 i = 1; i <= 5; i++) { - registry->StartThread(i, 0, 0); + registry->StartThread(i, 0, false, 0); } CheckThreadQuantity(registry, 11, 6, 11); // Finish, create and start more threads. @@ -85,7 +85,7 @@ static void TestRegistry(ThreadRegistry *registry, bool has_quarantine) { registry->JoinThread(i, 0); } for (u32 i = 6; i <= 10; i++) { - registry->StartThread(i, 0, 0); + registry->StartThread(i, 0, false, 0); } std::vector<u32> new_tids; for (u32 i = 11; i <= 15; i++) { @@ -112,7 +112,7 @@ static void TestRegistry(ThreadRegistry *registry, bool has_quarantine) { } for (u32 i = 0; i < new_tids.size(); i++) { u32 tid = new_tids[i]; - registry->StartThread(tid, 0, 0); + registry->StartThread(tid, 0, false, 0); registry->DetachThread(tid, 0); registry->FinishThread(tid); } @@ -189,7 +189,7 @@ void *RunThread(void *arg) { tids.push_back( args->registry->CreateThread(0, false, 0, (void*)args->shard)); for (int i = 0; i < kThreadsPerShard; i++) - args->registry->StartThread(tids[i], 0, (void*)args->shard); + args->registry->StartThread(tids[i], 0, false, (void*)args->shard); for (int i = 0; i < kThreadsPerShard; i++) args->registry->FinishThread(tids[i]); for (int i = 0; i < kThreadsPerShard; i++) @@ -200,7 +200,7 @@ void *RunThread(void *arg) { static void ThreadedTestRegistry(ThreadRegistry *registry) { // Create and start a main thread. EXPECT_EQ(0U, registry->CreateThread(0, true, -1, 0)); - registry->StartThread(0, 0, 0); + registry->StartThread(0, 0, false, 0); pthread_t threads[kNumShards]; RunThreadArgs args[kNumShards]; for (int i = 0; i < kNumShards; i++) { diff --git a/lib/sanitizer_common/weak_symbols.txt b/lib/sanitizer_common/weak_symbols.txt index 8a1e32b8041b..5a2b275184f4 100644 --- a/lib/sanitizer_common/weak_symbols.txt +++ b/lib/sanitizer_common/weak_symbols.txt @@ -1,5 +1,7 @@ ___sanitizer_free_hook ___sanitizer_malloc_hook +___sanitizer_report_error_summary +___sanitizer_sandbox_on_notify ___sanitizer_symbolize_code ___sanitizer_symbolize_data ___sanitizer_symbolize_demangle diff --git a/lib/scudo/CMakeLists.txt b/lib/scudo/CMakeLists.txt index 4f1acec78c8f..ba5e8acd8598 100644 --- a/lib/scudo/CMakeLists.txt +++ b/lib/scudo/CMakeLists.txt @@ -16,10 +16,17 @@ set(SCUDO_SOURCES scudo_termination.cpp scudo_utils.cpp) +# Enable the SSE 4.2 instruction set for scudo_crc32.cpp, if available. if (COMPILER_RT_HAS_MSSE4_2_FLAG) set_source_files_properties(scudo_crc32.cpp PROPERTIES COMPILE_FLAGS -msse4.2) endif() +# Enable the AArch64 CRC32 feature for scudo_crc32.cpp, if available. +# Note that it is enabled by default starting with armv8.1-a. +if (COMPILER_RT_HAS_MCRC_FLAG) + set_source_files_properties(scudo_crc32.cpp PROPERTIES COMPILE_FLAGS -mcrc) +endif() + if(COMPILER_RT_HAS_SCUDO) foreach(arch ${SCUDO_SUPPORTED_ARCH}) add_compiler_rt_runtime(clang_rt.scudo diff --git a/lib/scudo/scudo_allocator.cpp b/lib/scudo/scudo_allocator.cpp index d1121b0e7a74..dab6abedcb3e 100644 --- a/lib/scudo/scudo_allocator.cpp +++ b/lib/scudo/scudo_allocator.cpp @@ -15,7 +15,6 @@ //===----------------------------------------------------------------------===// #include "scudo_allocator.h" -#include "scudo_crc32.h" #include "scudo_utils.h" #include "sanitizer_common/sanitizer_allocator_interface.h" @@ -73,15 +72,21 @@ static uptr Cookie; // at compilation or at runtime. static atomic_uint8_t HashAlgorithm = { CRC32Software }; -// Helper function that will compute the chunk checksum, being passed all the -// the needed information as uptrs. It will opt for the hardware version of -// the checksumming function if available. -INLINE u32 hashUptrs(uptr Pointer, uptr *Array, uptr ArraySize, u8 HashType) { - u32 Crc; - Crc = computeCRC32(Cookie, Pointer, HashType); - for (uptr i = 0; i < ArraySize; i++) - Crc = computeCRC32(Crc, Array[i], HashType); - return Crc; +SANITIZER_WEAK_ATTRIBUTE u32 computeHardwareCRC32(u32 Crc, uptr Data); + +INLINE u32 computeCRC32(u32 Crc, uptr Data, u8 HashType) { + // If SSE4.2 is defined here, it was enabled everywhere, as opposed to only + // for scudo_crc32.cpp. This means that other SSE instructions were likely + // emitted at other places, and as a result there is no reason to not use + // the hardware version of the CRC32. +#if defined(__SSE4_2__) || defined(__ARM_FEATURE_CRC32) + return computeHardwareCRC32(Crc, Data); +#else + if (computeHardwareCRC32 && HashType == CRC32Hardware) + return computeHardwareCRC32(Crc, Data); + else + return computeSoftwareCRC32(Crc, Data); +#endif // defined(__SSE4_2__) } struct ScudoChunk : UnpackedHeader { @@ -108,11 +113,11 @@ struct ScudoChunk : UnpackedHeader { ZeroChecksumHeader.Checksum = 0; uptr HeaderHolder[sizeof(UnpackedHeader) / sizeof(uptr)]; memcpy(&HeaderHolder, &ZeroChecksumHeader, sizeof(HeaderHolder)); - u32 Hash = hashUptrs(reinterpret_cast<uptr>(this), - HeaderHolder, - ARRAY_SIZE(HeaderHolder), - atomic_load_relaxed(&HashAlgorithm)); - return static_cast<u16>(Hash); + u8 HashType = atomic_load_relaxed(&HashAlgorithm); + u32 Crc = computeCRC32(Cookie, reinterpret_cast<uptr>(this), HashType); + for (uptr i = 0; i < ARRAY_SIZE(HeaderHolder); i++) + Crc = computeCRC32(Crc, HeaderHolder[i], HashType); + return static_cast<u16>(Crc); } // Checks the validity of a chunk by verifying its checksum. @@ -120,8 +125,7 @@ struct ScudoChunk : UnpackedHeader { UnpackedHeader NewUnpackedHeader; const AtomicPackedHeader *AtomicHeader = reinterpret_cast<const AtomicPackedHeader *>(this); - PackedHeader NewPackedHeader = - AtomicHeader->load(std::memory_order_relaxed); + PackedHeader NewPackedHeader = atomic_load_relaxed(AtomicHeader); NewUnpackedHeader = bit_cast<UnpackedHeader>(NewPackedHeader); return (NewUnpackedHeader.Checksum == computeChecksum(&NewUnpackedHeader)); } @@ -130,8 +134,7 @@ struct ScudoChunk : UnpackedHeader { void loadHeader(UnpackedHeader *NewUnpackedHeader) const { const AtomicPackedHeader *AtomicHeader = reinterpret_cast<const AtomicPackedHeader *>(this); - PackedHeader NewPackedHeader = - AtomicHeader->load(std::memory_order_relaxed); + PackedHeader NewPackedHeader = atomic_load_relaxed(AtomicHeader); *NewUnpackedHeader = bit_cast<UnpackedHeader>(NewPackedHeader); if (NewUnpackedHeader->Checksum != computeChecksum(NewUnpackedHeader)) { dieWithMessage("ERROR: corrupted chunk header at address %p\n", this); @@ -144,7 +147,7 @@ struct ScudoChunk : UnpackedHeader { PackedHeader NewPackedHeader = bit_cast<PackedHeader>(*NewUnpackedHeader); AtomicPackedHeader *AtomicHeader = reinterpret_cast<AtomicPackedHeader *>(this); - AtomicHeader->store(NewPackedHeader, std::memory_order_relaxed); + atomic_store_relaxed(AtomicHeader, NewPackedHeader); } // Packs and stores the header, computing the checksum in the process. We @@ -157,10 +160,10 @@ struct ScudoChunk : UnpackedHeader { PackedHeader OldPackedHeader = bit_cast<PackedHeader>(*OldUnpackedHeader); AtomicPackedHeader *AtomicHeader = reinterpret_cast<AtomicPackedHeader *>(this); - if (!AtomicHeader->compare_exchange_strong(OldPackedHeader, - NewPackedHeader, - std::memory_order_relaxed, - std::memory_order_relaxed)) { + if (!atomic_compare_exchange_strong(AtomicHeader, + &OldPackedHeader, + NewPackedHeader, + memory_order_relaxed)) { dieWithMessage("ERROR: race on chunk header at address %p\n", this); } } @@ -351,6 +354,8 @@ struct Allocator { // Helper function that checks for a valid Scudo chunk. bool isValidPointer(const void *UserPtr) { + if (UNLIKELY(!ThreadInited)) + initThread(); uptr ChunkBeg = reinterpret_cast<uptr>(UserPtr); if (!IsAligned(ChunkBeg, MinAlignment)) { return false; @@ -577,6 +582,14 @@ struct Allocator { AllocatorQuarantine.Drain(&ThreadQuarantineCache, QuarantineCallback(&Cache)); } + + uptr getStats(AllocatorStat StatType) { + if (UNLIKELY(!ThreadInited)) + initThread(); + uptr stats[AllocatorStatCount]; + BackendAllocator.GetStats(stats); + return stats[StatType]; + } }; static Allocator Instance(LINKER_INITIALIZED); @@ -661,15 +674,11 @@ using namespace __scudo; // MallocExtension helper functions uptr __sanitizer_get_current_allocated_bytes() { - uptr stats[AllocatorStatCount]; - getAllocator().GetStats(stats); - return stats[AllocatorStatAllocated]; + return Instance.getStats(AllocatorStatAllocated); } uptr __sanitizer_get_heap_size() { - uptr stats[AllocatorStatCount]; - getAllocator().GetStats(stats); - return stats[AllocatorStatMapped]; + return Instance.getStats(AllocatorStatMapped); } uptr __sanitizer_get_free_bytes() { diff --git a/lib/scudo/scudo_allocator.h b/lib/scudo/scudo_allocator.h index 6431a2aa07d7..5f5225b36286 100644 --- a/lib/scudo/scudo_allocator.h +++ b/lib/scudo/scudo_allocator.h @@ -18,7 +18,9 @@ #include "sanitizer_common/sanitizer_allocator.h" -#include <atomic> +#if !SANITIZER_LINUX +# error "The Scudo hardened allocator is currently only supported on Linux." +#endif namespace __scudo { @@ -54,7 +56,7 @@ struct UnpackedHeader { u64 Salt : 8; }; -typedef std::atomic<PackedHeader> AtomicPackedHeader; +typedef atomic_uint64_t AtomicPackedHeader; COMPILER_CHECK(sizeof(UnpackedHeader) == sizeof(PackedHeader)); // Minimum alignment of 8 bytes for 32-bit, 16 for 64-bit diff --git a/lib/scudo/scudo_crc32.cpp b/lib/scudo/scudo_crc32.cpp index 94c8c2424929..56be22f4ee62 100644 --- a/lib/scudo/scudo_crc32.cpp +++ b/lib/scudo/scudo_crc32.cpp @@ -12,13 +12,13 @@ /// //===----------------------------------------------------------------------===// +#include "sanitizer_common/sanitizer_internal_defs.h" + // Hardware CRC32 is supported at compilation via the following: // - for i386 & x86_64: -msse4.2 // - for ARM & AArch64: -march=armv8-a+crc or -mcrc // An additional check must be performed at runtime as well to make sure the // emitted instructions are valid on the target host. -#include "scudo_crc32.h" -#include "scudo_utils.h" #if defined(__SSE4_2__) || defined(__ARM_FEATURE_CRC32) # ifdef __SSE4_2__ @@ -34,20 +34,9 @@ namespace __scudo { #if defined(__SSE4_2__) || defined(__ARM_FEATURE_CRC32) -INLINE u32 computeHardwareCRC32(u32 Crc, uptr Data) { +u32 computeHardwareCRC32(u32 Crc, uptr Data) { return CRC32_INTRINSIC(Crc, Data); } - -u32 computeCRC32(u32 Crc, uptr Data, u8 HashType) { - if (HashType == CRC32Hardware) { - return computeHardwareCRC32(Crc, Data); - } - return computeSoftwareCRC32(Crc, Data); -} -#else -u32 computeCRC32(u32 Crc, uptr Data, u8 HashType) { - return computeSoftwareCRC32(Crc, Data); -} #endif // defined(__SSE4_2__) || defined(__ARM_FEATURE_CRC32) } // namespace __scudo diff --git a/lib/scudo/scudo_crc32.h b/lib/scudo/scudo_crc32.h deleted file mode 100644 index 6635cc78bbab..000000000000 --- a/lib/scudo/scudo_crc32.h +++ /dev/null @@ -1,30 +0,0 @@ -//===-- scudo_crc32.h -------------------------------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -/// -/// Header for scudo_crc32.cpp. -/// -//===----------------------------------------------------------------------===// - -#ifndef SCUDO_CRC32_H_ -#define SCUDO_CRC32_H_ - -#include "sanitizer_common/sanitizer_internal_defs.h" - -namespace __scudo { - -enum : u8 { - CRC32Software = 0, - CRC32Hardware = 1, -}; - -u32 computeCRC32(u32 Crc, uptr Data, u8 HashType); - -} // namespace __scudo - -#endif // SCUDO_CRC32_H_ diff --git a/lib/scudo/scudo_flags.cpp b/lib/scudo/scudo_flags.cpp index b9c838107305..64da1d9d8ec1 100644 --- a/lib/scudo/scudo_flags.cpp +++ b/lib/scudo/scudo_flags.cpp @@ -68,7 +68,7 @@ void initFlags() { // Sanity checks and default settings for the Quarantine parameters. if (f->QuarantineSizeMb < 0) { - const int DefaultQuarantineSizeMb = 64; + const int DefaultQuarantineSizeMb = FIRST_32_SECOND_64(16, 64); f->QuarantineSizeMb = DefaultQuarantineSizeMb; } // We enforce an upper limit for the quarantine size of 4Gb. @@ -76,7 +76,8 @@ void initFlags() { dieWithMessage("ERROR: the quarantine size is too large\n"); } if (f->ThreadLocalQuarantineSizeKb < 0) { - const int DefaultThreadLocalQuarantineSizeKb = 1024; + const int DefaultThreadLocalQuarantineSizeKb = + FIRST_32_SECOND_64(256, 1024); f->ThreadLocalQuarantineSizeKb = DefaultThreadLocalQuarantineSizeKb; } // And an upper limit of 128Mb for the thread quarantine cache. @@ -84,6 +85,10 @@ void initFlags() { dieWithMessage("ERROR: the per thread quarantine cache size is too " "large\n"); } + if (f->ThreadLocalQuarantineSizeKb == 0 && f->QuarantineSizeMb > 0) { + dieWithMessage("ERROR: ThreadLocalQuarantineSizeKb can be set to 0 only " + "when QuarantineSizeMb is set to 0\n"); + } } Flags *getFlags() { diff --git a/lib/scudo/scudo_flags.inc b/lib/scudo/scudo_flags.inc index c7a2acf146ca..45f9ea846e1a 100644 --- a/lib/scudo/scudo_flags.inc +++ b/lib/scudo/scudo_flags.inc @@ -15,12 +15,14 @@ # error "Define SCUDO_FLAG prior to including this file!" #endif -SCUDO_FLAG(int, QuarantineSizeMb, 64, +// Default value is set in scudo_flags.cpp based on architecture. +SCUDO_FLAG(int, QuarantineSizeMb, -1, "Size (in Mb) of quarantine used to delay the actual deallocation " "of chunks. Lower value may reduce memory usage but decrease the " "effectiveness of the mitigation.") -SCUDO_FLAG(int, ThreadLocalQuarantineSizeKb, 1024, +// Default value is set in scudo_flags.cpp based on architecture. +SCUDO_FLAG(int, ThreadLocalQuarantineSizeKb, -1, "Size (in Kb) of per-thread cache used to offload the global " "quarantine. Lower value may reduce memory usage but might increase " "the contention on the global quarantine.") diff --git a/lib/scudo/scudo_utils.cpp b/lib/scudo/scudo_utils.cpp index ffa65b219fd1..4e2f6e08e80d 100644 --- a/lib/scudo/scudo_utils.cpp +++ b/lib/scudo/scudo_utils.cpp @@ -20,8 +20,9 @@ #if defined(__x86_64__) || defined(__i386__) # include <cpuid.h> #endif - -#include <cstring> +#if defined(__arm__) || defined(__aarch64__) +# include <sys/auxv.h> +#endif // TODO(kostyak): remove __sanitizer *Printf uses in favor for our own less // complicated string formatting code. The following is a @@ -82,12 +83,12 @@ CPUIDRegs getCPUFeatures() { } #ifndef bit_SSE4_2 -#define bit_SSE4_2 bit_SSE42 // clang and gcc have different defines. +# define bit_SSE4_2 bit_SSE42 // clang and gcc have different defines. #endif bool testCPUFeature(CPUFeature Feature) { - static CPUIDRegs FeaturesRegs = getCPUFeatures(); + CPUIDRegs FeaturesRegs = getCPUFeatures(); switch (Feature) { case CRC32CPUFeature: // CRC32 is provided by SSE 4.2. @@ -97,6 +98,25 @@ bool testCPUFeature(CPUFeature Feature) } return false; } +#elif defined(__arm__) || defined(__aarch64__) +// For ARM and AArch64, hardware CRC32 support is indicated in the +// AT_HWVAL auxiliary vector. + +#ifndef HWCAP_CRC32 +# define HWCAP_CRC32 (1<<7) // HWCAP_CRC32 is missing on older platforms. +#endif + +bool testCPUFeature(CPUFeature Feature) { + uptr HWCap = getauxval(AT_HWCAP); + + switch (Feature) { + case CRC32CPUFeature: + return !!(HWCap & HWCAP_CRC32); + default: + break; + } + return false; +} #else bool testCPUFeature(CPUFeature Feature) { return false; diff --git a/lib/scudo/scudo_utils.h b/lib/scudo/scudo_utils.h index ef2a609671ac..5082d79f6954 100644 --- a/lib/scudo/scudo_utils.h +++ b/lib/scudo/scudo_utils.h @@ -53,7 +53,11 @@ struct Xorshift128Plus { u64 State[2]; }; -// Software CRC32 functions, to be used when hardware support is not detected. +enum : u8 { + CRC32Software = 0, + CRC32Hardware = 1, +}; + u32 computeSoftwareCRC32(u32 Crc, uptr Data); } // namespace __scudo diff --git a/lib/tsan/CMakeLists.txt b/lib/tsan/CMakeLists.txt index d5195459656c..195ecb5dfe8a 100644 --- a/lib/tsan/CMakeLists.txt +++ b/lib/tsan/CMakeLists.txt @@ -25,6 +25,7 @@ append_list_if(COMPILER_RT_HAS_WGLOBAL_CONSTRUCTORS_FLAG -Wglobal-constructors set(TSAN_SOURCES rtl/tsan_clock.cc rtl/tsan_debugging.cc + rtl/tsan_external.cc rtl/tsan_fd.cc rtl/tsan_flags.cc rtl/tsan_ignoreset.cc diff --git a/lib/tsan/check_analyze.sh b/lib/tsan/check_analyze.sh index a5d3632dfa51..d454ec2dd0fd 100755 --- a/lib/tsan/check_analyze.sh +++ b/lib/tsan/check_analyze.sh @@ -26,22 +26,16 @@ check() { fi } -for f in write1; do +for f in write1 write2 write4 write8; do check $f rsp 1 check $f push 2 check $f pop 2 done -for f in write2 write4 write8; do - check $f rsp 1 - check $f push 3 - check $f pop 3 -done - for f in read1 read2 read4 read8; do check $f rsp 1 - check $f push 5 - check $f pop 5 + check $f push 4 + check $f pop 4 done for f in func_entry func_exit; do diff --git a/lib/tsan/go/tsan_go.cc b/lib/tsan/go/tsan_go.cc index 34625c8af0b0..d7a9e0b67962 100644 --- a/lib/tsan/go/tsan_go.cc +++ b/lib/tsan/go/tsan_go.cc @@ -214,7 +214,7 @@ void __tsan_go_start(ThreadState *parent, ThreadState **pthr, void *pc) { ThreadState *thr = AllocGoroutine(); *pthr = thr; int goid = ThreadCreate(parent, (uptr)pc, 0, true); - ThreadStart(thr, goid, 0); + ThreadStart(thr, goid, 0, /*workerthread*/ false); } void __tsan_go_end(ThreadState *thr) { @@ -247,13 +247,17 @@ void __tsan_finalizer_goroutine(ThreadState *thr) { } void __tsan_mutex_before_lock(ThreadState *thr, uptr addr, uptr write) { + if (write) + MutexPreLock(thr, 0, addr); + else + MutexPreReadLock(thr, 0, addr); } void __tsan_mutex_after_lock(ThreadState *thr, uptr addr, uptr write) { if (write) - MutexLock(thr, 0, addr); + MutexPostLock(thr, 0, addr); else - MutexReadLock(thr, 0, addr); + MutexPostReadLock(thr, 0, addr); } void __tsan_mutex_before_unlock(ThreadState *thr, uptr addr, uptr write) { diff --git a/lib/tsan/rtl/tsan.syms.extra b/lib/tsan/rtl/tsan.syms.extra index 22dfde914136..ab5b5a4fcbae 100644 --- a/lib/tsan/rtl/tsan.syms.extra +++ b/lib/tsan/rtl/tsan.syms.extra @@ -9,6 +9,16 @@ __tsan_java* __tsan_unaligned* __tsan_release __tsan_acquire +__tsan_mutex_create +__tsan_mutex_destroy +__tsan_mutex_pre_lock +__tsan_mutex_post_lock +__tsan_mutex_pre_unlock +__tsan_mutex_post_unlock +__tsan_mutex_pre_signal +__tsan_mutex_post_signal +__tsan_mutex_pre_divert +__tsan_mutex_post_divert __ubsan_* Annotate* WTFAnnotate* diff --git a/lib/tsan/rtl/tsan_debugging.cc b/lib/tsan/rtl/tsan_debugging.cc index d9fb6861bc0c..06154bc135a9 100644 --- a/lib/tsan/rtl/tsan_debugging.cc +++ b/lib/tsan/rtl/tsan_debugging.cc @@ -24,6 +24,7 @@ static const char *ReportTypeDescription(ReportType typ) { if (typ == ReportTypeVptrRace) return "data-race-vptr"; if (typ == ReportTypeUseAfterFree) return "heap-use-after-free"; if (typ == ReportTypeVptrUseAfterFree) return "heap-use-after-free-vptr"; + if (typ == ReportTypeExternalRace) return "external-race"; if (typ == ReportTypeThreadLeak) return "thread-leak"; if (typ == ReportTypeMutexDestroyLocked) return "locked-mutex-destroy"; if (typ == ReportTypeMutexDoubleLock) return "mutex-double-lock"; @@ -127,6 +128,16 @@ int __tsan_get_report_loc(void *report, uptr idx, const char **type, } SANITIZER_INTERFACE_ATTRIBUTE +int __tsan_get_report_loc_object_type(void *report, uptr idx, + const char **object_type) { + const ReportDesc *rep = (ReportDesc *)report; + CHECK_LT(idx, rep->locs.Size()); + ReportLocation *loc = rep->locs[idx]; + *object_type = GetObjectTypeFromTag(loc->external_tag); + return 1; +} + +SANITIZER_INTERFACE_ATTRIBUTE int __tsan_get_report_mutex(void *report, uptr idx, uptr *mutex_id, void **addr, int *destroyed, void **trace, uptr trace_size) { const ReportDesc *rep = (ReportDesc *)report; diff --git a/lib/tsan/rtl/tsan_defs.h b/lib/tsan/rtl/tsan_defs.h index 55580a5c4436..8a0381e61ab0 100644 --- a/lib/tsan/rtl/tsan_defs.h +++ b/lib/tsan/rtl/tsan_defs.h @@ -149,7 +149,8 @@ class RegionAlloc; // Descriptor of user's memory block. struct MBlock { - u64 siz; + u64 siz : 48; + u64 tag : 16; u32 stk; u16 tid; }; diff --git a/lib/tsan/rtl/tsan_external.cc b/lib/tsan/rtl/tsan_external.cc new file mode 100644 index 000000000000..dc8ec62322ce --- /dev/null +++ b/lib/tsan/rtl/tsan_external.cc @@ -0,0 +1,78 @@ +//===-- tsan_external.cc --------------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file is a part of ThreadSanitizer (TSan), a race detector. +// +//===----------------------------------------------------------------------===// +#include "tsan_rtl.h" + +namespace __tsan { + +#define CALLERPC ((uptr)__builtin_return_address(0)) + +const uptr kMaxTag = 128; // Limited to 65,536, since MBlock only stores tags + // as 16-bit values, see tsan_defs.h. + +const char *registered_tags[kMaxTag]; +static atomic_uint32_t used_tags{1}; // Tag 0 means "no tag". NOLINT + +const char *GetObjectTypeFromTag(uptr tag) { + if (tag == 0) return nullptr; + // Invalid/corrupted tag? Better return NULL and let the caller deal with it. + if (tag >= atomic_load(&used_tags, memory_order_relaxed)) return nullptr; + return registered_tags[tag]; +} + +extern "C" { +SANITIZER_INTERFACE_ATTRIBUTE +void *__tsan_external_register_tag(const char *object_type) { + uptr new_tag = atomic_fetch_add(&used_tags, 1, memory_order_relaxed); + CHECK_LT(new_tag, kMaxTag); + registered_tags[new_tag] = internal_strdup(object_type); + return (void *)new_tag; +} + +SANITIZER_INTERFACE_ATTRIBUTE +void __tsan_external_assign_tag(void *addr, void *tag) { + CHECK_LT(tag, atomic_load(&used_tags, memory_order_relaxed)); + Allocator *a = allocator(); + MBlock *b = nullptr; + if (a->PointerIsMine((void *)addr)) { + void *block_begin = a->GetBlockBegin((void *)addr); + if (block_begin) b = ctx->metamap.GetBlock((uptr)block_begin); + } + if (b) { + b->tag = (uptr)tag; + } +} + +SANITIZER_INTERFACE_ATTRIBUTE +void __tsan_external_read(void *addr, void *caller_pc, void *tag) { + CHECK_LT(tag, atomic_load(&used_tags, memory_order_relaxed)); + ThreadState *thr = cur_thread(); + thr->external_tag = (uptr)tag; + FuncEntry(thr, (uptr)caller_pc); + MemoryRead(thr, CALLERPC, (uptr)addr, kSizeLog8); + FuncExit(thr); + thr->external_tag = 0; +} + +SANITIZER_INTERFACE_ATTRIBUTE +void __tsan_external_write(void *addr, void *caller_pc, void *tag) { + CHECK_LT(tag, atomic_load(&used_tags, memory_order_relaxed)); + ThreadState *thr = cur_thread(); + thr->external_tag = (uptr)tag; + FuncEntry(thr, (uptr)caller_pc); + MemoryWrite(thr, CALLERPC, (uptr)addr, kSizeLog8); + FuncExit(thr); + thr->external_tag = 0; +} +} // extern "C" + +} // namespace __tsan diff --git a/lib/tsan/rtl/tsan_flags.cc b/lib/tsan/rtl/tsan_flags.cc index d8d4746ab59b..89e22a132786 100644 --- a/lib/tsan/rtl/tsan_flags.cc +++ b/lib/tsan/rtl/tsan_flags.cc @@ -21,10 +21,6 @@ namespace __tsan { -Flags *flags() { - return &ctx->flags; -} - // Can be overriden in frontend. #ifdef TSAN_EXTERNAL_HOOKS extern "C" const char* __tsan_default_options(); diff --git a/lib/tsan/rtl/tsan_flags.h b/lib/tsan/rtl/tsan_flags.h index e2f6b3c9f021..66740def52fa 100644 --- a/lib/tsan/rtl/tsan_flags.h +++ b/lib/tsan/rtl/tsan_flags.h @@ -28,7 +28,6 @@ struct Flags : DDFlags { void ParseFromString(const char *str); }; -Flags *flags(); void InitializeFlags(Flags *flags, const char *env); } // namespace __tsan diff --git a/lib/tsan/rtl/tsan_flags.inc b/lib/tsan/rtl/tsan_flags.inc index a48545c433ba..e9b3e35f07e5 100644 --- a/lib/tsan/rtl/tsan_flags.inc +++ b/lib/tsan/rtl/tsan_flags.inc @@ -79,7 +79,7 @@ TSAN_FLAG(bool, die_after_fork, true, TSAN_FLAG(const char *, suppressions, "", "Suppressions file name.") TSAN_FLAG(bool, ignore_interceptors_accesses, false, "Ignore reads and writes from all interceptors.") -TSAN_FLAG(bool, ignore_noninstrumented_modules, false, +TSAN_FLAG(bool, ignore_noninstrumented_modules, SANITIZER_MAC ? true : false, "Interceptors should only detect races when called from instrumented " "modules.") TSAN_FLAG(bool, shared_ptr_interceptor, true, diff --git a/lib/tsan/rtl/tsan_interceptors.cc b/lib/tsan/rtl/tsan_interceptors.cc index 898f32df182b..d0fd91aec234 100644 --- a/lib/tsan/rtl/tsan_interceptors.cc +++ b/lib/tsan/rtl/tsan_interceptors.cc @@ -18,6 +18,7 @@ #include "sanitizer_common/sanitizer_linux.h" #include "sanitizer_common/sanitizer_platform_limits_posix.h" #include "sanitizer_common/sanitizer_placement_new.h" +#include "sanitizer_common/sanitizer_posix.h" #include "sanitizer_common/sanitizer_stacktrace.h" #include "sanitizer_common/sanitizer_tls_get_addr.h" #include "interception/interception.h" @@ -29,9 +30,6 @@ #include "tsan_mman.h" #include "tsan_fd.h" -#if SANITIZER_POSIX -#include "sanitizer_common/sanitizer_posix.h" -#endif using namespace __tsan; // NOLINT @@ -46,13 +44,6 @@ using namespace __tsan; // NOLINT #define mallopt(a, b) #endif -#if SANITIZER_LINUX || SANITIZER_FREEBSD -#define PTHREAD_CREATE_DETACHED 1 -#elif SANITIZER_MAC -#define PTHREAD_CREATE_DETACHED 2 -#endif - - #ifdef __mips__ const int kSigCount = 129; #else @@ -277,7 +268,7 @@ ScopedInterceptor::~ScopedInterceptor() { void ScopedInterceptor::EnableIgnores() { if (ignoring_) { - ThreadIgnoreBegin(thr_, pc_); + ThreadIgnoreBegin(thr_, pc_, false); if (in_ignored_lib_) { DCHECK(!thr_->in_ignored_lib); thr_->in_ignored_lib = true; @@ -881,7 +872,7 @@ extern "C" void *__tsan_thread_start_func(void *arg) { internal_sched_yield(); Processor *proc = ProcCreate(); ProcWire(proc, thr); - ThreadStart(thr, tid, GetTid()); + ThreadStart(thr, tid, GetTid(), /*workerthread*/ false); atomic_store(&p->tid, 0, memory_order_release); } void *res = callback(param); @@ -928,8 +919,7 @@ TSAN_INTERCEPTOR(int, pthread_create, ThreadIgnoreEnd(thr, pc); } if (res == 0) { - int tid = ThreadCreate(thr, pc, *(uptr*)th, - detached == PTHREAD_CREATE_DETACHED); + int tid = ThreadCreate(thr, pc, *(uptr*)th, IsStateDetached(detached)); CHECK_NE(tid, 0); // Synchronization on p.tid serves two purposes: // 1. ThreadCreate must finish before the new thread starts. @@ -1025,7 +1015,7 @@ static void cond_mutex_unlock(CondMutexUnlockCtx *arg) { ThreadSignalContext *ctx = SigCtx(arg->thr); CHECK_EQ(atomic_load(&ctx->in_blocking_func, memory_order_relaxed), 1); atomic_store(&ctx->in_blocking_func, 0, memory_order_relaxed); - MutexLock(arg->thr, arg->pc, (uptr)arg->m); + MutexPostLock(arg->thr, arg->pc, (uptr)arg->m, MutexFlagDoPreLockOnPostLock); // Undo BlockingCall ctor effects. arg->thr->ignore_interceptors--; arg->si->~ScopedInterceptor(); @@ -1054,7 +1044,7 @@ static int cond_wait(ThreadState *thr, uptr pc, ScopedInterceptor *si, fn, c, m, t, (void (*)(void *arg))cond_mutex_unlock, &arg); } if (res == errno_EOWNERDEAD) MutexRepair(thr, pc, (uptr)m); - MutexLock(thr, pc, (uptr)m); + MutexPostLock(thr, pc, (uptr)m, MutexFlagDoPreLockOnPostLock); return res; } @@ -1114,14 +1104,15 @@ TSAN_INTERCEPTOR(int, pthread_mutex_init, void *m, void *a) { SCOPED_TSAN_INTERCEPTOR(pthread_mutex_init, m, a); int res = REAL(pthread_mutex_init)(m, a); if (res == 0) { - bool recursive = false; + u32 flagz = 0; if (a) { int type = 0; if (REAL(pthread_mutexattr_gettype)(a, &type) == 0) - recursive = (type == PTHREAD_MUTEX_RECURSIVE - || type == PTHREAD_MUTEX_RECURSIVE_NP); + if (type == PTHREAD_MUTEX_RECURSIVE || + type == PTHREAD_MUTEX_RECURSIVE_NP) + flagz |= MutexFlagWriteReentrant; } - MutexCreate(thr, pc, (uptr)m, false, recursive, false); + MutexCreate(thr, pc, (uptr)m, flagz); } return res; } @@ -1141,7 +1132,7 @@ TSAN_INTERCEPTOR(int, pthread_mutex_trylock, void *m) { if (res == EOWNERDEAD) MutexRepair(thr, pc, (uptr)m); if (res == 0 || res == EOWNERDEAD) - MutexLock(thr, pc, (uptr)m, /*rec=*/1, /*try_lock=*/true); + MutexPostLock(thr, pc, (uptr)m, MutexFlagTryLock); return res; } @@ -1150,7 +1141,7 @@ TSAN_INTERCEPTOR(int, pthread_mutex_timedlock, void *m, void *abstime) { SCOPED_TSAN_INTERCEPTOR(pthread_mutex_timedlock, m, abstime); int res = REAL(pthread_mutex_timedlock)(m, abstime); if (res == 0) { - MutexLock(thr, pc, (uptr)m); + MutexPostLock(thr, pc, (uptr)m, MutexFlagTryLock); } return res; } @@ -1161,7 +1152,7 @@ TSAN_INTERCEPTOR(int, pthread_spin_init, void *m, int pshared) { SCOPED_TSAN_INTERCEPTOR(pthread_spin_init, m, pshared); int res = REAL(pthread_spin_init)(m, pshared); if (res == 0) { - MutexCreate(thr, pc, (uptr)m, false, false, false); + MutexCreate(thr, pc, (uptr)m); } return res; } @@ -1177,9 +1168,10 @@ TSAN_INTERCEPTOR(int, pthread_spin_destroy, void *m) { TSAN_INTERCEPTOR(int, pthread_spin_lock, void *m) { SCOPED_TSAN_INTERCEPTOR(pthread_spin_lock, m); + MutexPreLock(thr, pc, (uptr)m); int res = REAL(pthread_spin_lock)(m); if (res == 0) { - MutexLock(thr, pc, (uptr)m); + MutexPostLock(thr, pc, (uptr)m); } return res; } @@ -1188,7 +1180,7 @@ TSAN_INTERCEPTOR(int, pthread_spin_trylock, void *m) { SCOPED_TSAN_INTERCEPTOR(pthread_spin_trylock, m); int res = REAL(pthread_spin_trylock)(m); if (res == 0) { - MutexLock(thr, pc, (uptr)m, /*rec=*/1, /*try_lock=*/true); + MutexPostLock(thr, pc, (uptr)m, MutexFlagTryLock); } return res; } @@ -1205,7 +1197,7 @@ TSAN_INTERCEPTOR(int, pthread_rwlock_init, void *m, void *a) { SCOPED_TSAN_INTERCEPTOR(pthread_rwlock_init, m, a); int res = REAL(pthread_rwlock_init)(m, a); if (res == 0) { - MutexCreate(thr, pc, (uptr)m, true, false, false); + MutexCreate(thr, pc, (uptr)m); } return res; } @@ -1221,9 +1213,10 @@ TSAN_INTERCEPTOR(int, pthread_rwlock_destroy, void *m) { TSAN_INTERCEPTOR(int, pthread_rwlock_rdlock, void *m) { SCOPED_TSAN_INTERCEPTOR(pthread_rwlock_rdlock, m); + MutexPreReadLock(thr, pc, (uptr)m); int res = REAL(pthread_rwlock_rdlock)(m); if (res == 0) { - MutexReadLock(thr, pc, (uptr)m); + MutexPostReadLock(thr, pc, (uptr)m); } return res; } @@ -1232,7 +1225,7 @@ TSAN_INTERCEPTOR(int, pthread_rwlock_tryrdlock, void *m) { SCOPED_TSAN_INTERCEPTOR(pthread_rwlock_tryrdlock, m); int res = REAL(pthread_rwlock_tryrdlock)(m); if (res == 0) { - MutexReadLock(thr, pc, (uptr)m, /*try_lock=*/true); + MutexPostReadLock(thr, pc, (uptr)m, MutexFlagTryLock); } return res; } @@ -1242,7 +1235,7 @@ TSAN_INTERCEPTOR(int, pthread_rwlock_timedrdlock, void *m, void *abstime) { SCOPED_TSAN_INTERCEPTOR(pthread_rwlock_timedrdlock, m, abstime); int res = REAL(pthread_rwlock_timedrdlock)(m, abstime); if (res == 0) { - MutexReadLock(thr, pc, (uptr)m); + MutexPostReadLock(thr, pc, (uptr)m); } return res; } @@ -1250,9 +1243,10 @@ TSAN_INTERCEPTOR(int, pthread_rwlock_timedrdlock, void *m, void *abstime) { TSAN_INTERCEPTOR(int, pthread_rwlock_wrlock, void *m) { SCOPED_TSAN_INTERCEPTOR(pthread_rwlock_wrlock, m); + MutexPreLock(thr, pc, (uptr)m); int res = REAL(pthread_rwlock_wrlock)(m); if (res == 0) { - MutexLock(thr, pc, (uptr)m); + MutexPostLock(thr, pc, (uptr)m); } return res; } @@ -1261,7 +1255,7 @@ TSAN_INTERCEPTOR(int, pthread_rwlock_trywrlock, void *m) { SCOPED_TSAN_INTERCEPTOR(pthread_rwlock_trywrlock, m); int res = REAL(pthread_rwlock_trywrlock)(m); if (res == 0) { - MutexLock(thr, pc, (uptr)m, /*rec=*/1, /*try_lock=*/true); + MutexPostLock(thr, pc, (uptr)m, MutexFlagTryLock); } return res; } @@ -1271,7 +1265,7 @@ TSAN_INTERCEPTOR(int, pthread_rwlock_timedwrlock, void *m, void *abstime) { SCOPED_TSAN_INTERCEPTOR(pthread_rwlock_timedwrlock, m, abstime); int res = REAL(pthread_rwlock_timedwrlock)(m, abstime); if (res == 0) { - MutexLock(thr, pc, (uptr)m); + MutexPostLock(thr, pc, (uptr)m, MutexFlagTryLock); } return res; } @@ -1644,24 +1638,6 @@ TSAN_INTERCEPTOR(void*, tmpfile64, int fake) { #define TSAN_MAYBE_INTERCEPT_TMPFILE64 #endif -TSAN_INTERCEPTOR(uptr, fread, void *ptr, uptr size, uptr nmemb, void *f) { - // libc file streams can call user-supplied functions, see fopencookie. - { - SCOPED_TSAN_INTERCEPTOR(fread, ptr, size, nmemb, f); - MemoryAccessRange(thr, pc, (uptr)ptr, size * nmemb, true); - } - return REAL(fread)(ptr, size, nmemb, f); -} - -TSAN_INTERCEPTOR(uptr, fwrite, const void *p, uptr size, uptr nmemb, void *f) { - // libc file streams can call user-supplied functions, see fopencookie. - { - SCOPED_TSAN_INTERCEPTOR(fwrite, p, size, nmemb, f); - MemoryAccessRange(thr, pc, (uptr)p, size * nmemb, false); - } - return REAL(fwrite)(p, size, nmemb, f); -} - static void FlushStreams() { // Flushing all the streams here may freeze the process if a child thread is // performing file stream operations at the same time. @@ -2251,8 +2227,12 @@ static void HandleRecvmsg(ThreadState *thr, uptr pc, #define COMMON_INTERCEPTOR_ON_EXIT(ctx) \ OnExit(((TsanInterceptorContext *) ctx)->thr) -#define COMMON_INTERCEPTOR_MUTEX_LOCK(ctx, m) \ - MutexLock(((TsanInterceptorContext *)ctx)->thr, \ +#define COMMON_INTERCEPTOR_MUTEX_PRE_LOCK(ctx, m) \ + MutexPreLock(((TsanInterceptorContext *)ctx)->thr, \ + ((TsanInterceptorContext *)ctx)->pc, (uptr)m) + +#define COMMON_INTERCEPTOR_MUTEX_POST_LOCK(ctx, m) \ + MutexPostLock(((TsanInterceptorContext *)ctx)->thr, \ ((TsanInterceptorContext *)ctx)->pc, (uptr)m) #define COMMON_INTERCEPTOR_MUTEX_UNLOCK(ctx, m) \ diff --git a/lib/tsan/rtl/tsan_interceptors_mac.cc b/lib/tsan/rtl/tsan_interceptors_mac.cc index fc5eb0499076..f6bf8a0e586b 100644 --- a/lib/tsan/rtl/tsan_interceptors_mac.cc +++ b/lib/tsan/rtl/tsan_interceptors_mac.cc @@ -281,6 +281,12 @@ TSAN_INTERCEPTOR(void, xpc_connection_send_message_with_reply, (connection, message, replyq, new_handler); } +TSAN_INTERCEPTOR(void, xpc_connection_cancel, xpc_connection_t connection) { + SCOPED_TSAN_INTERCEPTOR(xpc_connection_cancel, connection); + Release(thr, pc, (uptr)connection); + REAL(xpc_connection_cancel)(connection); +} + // On macOS, libc++ is always linked dynamically, so intercepting works the // usual way. #define STDCXX_INTERCEPTOR TSAN_INTERCEPTOR diff --git a/lib/tsan/rtl/tsan_interface.h b/lib/tsan/rtl/tsan_interface.h index 4e342a58a066..496a8717f155 100644 --- a/lib/tsan/rtl/tsan_interface.h +++ b/lib/tsan/rtl/tsan_interface.h @@ -79,6 +79,15 @@ SANITIZER_INTERFACE_ATTRIBUTE void __tsan_ignore_thread_begin(); SANITIZER_INTERFACE_ATTRIBUTE void __tsan_ignore_thread_end(); SANITIZER_INTERFACE_ATTRIBUTE +void *__tsan_external_register_tag(const char *object_type); +SANITIZER_INTERFACE_ATTRIBUTE +void __tsan_external_assign_tag(void *addr, void *tag); +SANITIZER_INTERFACE_ATTRIBUTE +void __tsan_external_read(void *addr, void *caller_pc, void *tag); +SANITIZER_INTERFACE_ATTRIBUTE +void __tsan_external_write(void *addr, void *caller_pc, void *tag); + +SANITIZER_INTERFACE_ATTRIBUTE void __tsan_read_range(void *addr, unsigned long size); // NOLINT SANITIZER_INTERFACE_ATTRIBUTE void __tsan_write_range(void *addr, unsigned long size); // NOLINT @@ -123,6 +132,10 @@ int __tsan_get_report_loc(void *report, uptr idx, const char **type, int *fd, int *suppressable, void **trace, uptr trace_size); +SANITIZER_INTERFACE_ATTRIBUTE +int __tsan_get_report_loc_object_type(void *report, uptr idx, + const char **object_type); + // Returns information about mutexes included in the report. SANITIZER_INTERFACE_ATTRIBUTE int __tsan_get_report_mutex(void *report, uptr idx, uptr *mutex_id, void **addr, diff --git a/lib/tsan/rtl/tsan_interface_ann.cc b/lib/tsan/rtl/tsan_interface_ann.cc index 62db79661625..810c84025f23 100644 --- a/lib/tsan/rtl/tsan_interface_ann.cc +++ b/lib/tsan/rtl/tsan_interface_ann.cc @@ -31,11 +31,10 @@ namespace __tsan { class ScopedAnnotation { public: - ScopedAnnotation(ThreadState *thr, const char *aname, const char *f, int l, - uptr pc) + ScopedAnnotation(ThreadState *thr, const char *aname, uptr pc) : thr_(thr) { FuncEntry(thr_, pc); - DPrintf("#%d: annotation %s() %s:%d\n", thr_->tid, aname, f, l); + DPrintf("#%d: annotation %s()\n", thr_->tid, aname); } ~ScopedAnnotation() { @@ -46,18 +45,20 @@ class ScopedAnnotation { ThreadState *const thr_; }; -#define SCOPED_ANNOTATION(typ) \ +#define SCOPED_ANNOTATION_RET(typ, ret) \ if (!flags()->enable_annotations) \ - return; \ + return ret; \ ThreadState *thr = cur_thread(); \ const uptr caller_pc = (uptr)__builtin_return_address(0); \ StatInc(thr, StatAnnotation); \ StatInc(thr, Stat##typ); \ - ScopedAnnotation sa(thr, __func__, f, l, caller_pc); \ + ScopedAnnotation sa(thr, __func__, caller_pc); \ const uptr pc = StackTrace::GetCurrentPc(); \ (void)pc; \ /**/ +#define SCOPED_ANNOTATION(typ) SCOPED_ANNOTATION_RET(typ, ) + static const int kMaxDescLen = 128; struct ExpectRace { @@ -252,12 +253,12 @@ void INTERFACE_ATTRIBUTE AnnotateCondVarWait(char *f, int l, uptr cv, void INTERFACE_ATTRIBUTE AnnotateRWLockCreate(char *f, int l, uptr m) { SCOPED_ANNOTATION(AnnotateRWLockCreate); - MutexCreate(thr, pc, m, true, true, false); + MutexCreate(thr, pc, m, MutexFlagWriteReentrant); } void INTERFACE_ATTRIBUTE AnnotateRWLockCreateStatic(char *f, int l, uptr m) { SCOPED_ANNOTATION(AnnotateRWLockCreateStatic); - MutexCreate(thr, pc, m, true, true, true); + MutexCreate(thr, pc, m, MutexFlagWriteReentrant | MutexFlagLinkerInit); } void INTERFACE_ATTRIBUTE AnnotateRWLockDestroy(char *f, int l, uptr m) { @@ -269,9 +270,9 @@ void INTERFACE_ATTRIBUTE AnnotateRWLockAcquired(char *f, int l, uptr m, uptr is_w) { SCOPED_ANNOTATION(AnnotateRWLockAcquired); if (is_w) - MutexLock(thr, pc, m); + MutexPostLock(thr, pc, m, MutexFlagDoPreLockOnPostLock); else - MutexReadLock(thr, pc, m); + MutexPostReadLock(thr, pc, m, MutexFlagDoPreLockOnPostLock); } void INTERFACE_ATTRIBUTE AnnotateRWLockReleased(char *f, int l, uptr m, @@ -458,4 +459,95 @@ void INTERFACE_ATTRIBUTE AnnotateMemoryIsInitialized(char *f, int l, uptr mem, uptr sz) {} void INTERFACE_ATTRIBUTE AnnotateMemoryIsUninitialized(char *f, int l, uptr mem, uptr sz) {} + +// Note: the parameter is called flagz, because flags is already taken +// by the global function that returns flags. +INTERFACE_ATTRIBUTE +void __tsan_mutex_create(void *m, unsigned flagz) { + SCOPED_ANNOTATION(__tsan_mutex_create); + MutexCreate(thr, pc, (uptr)m, flagz & MutexCreationFlagMask); +} + +INTERFACE_ATTRIBUTE +void __tsan_mutex_destroy(void *m, unsigned flagz) { + SCOPED_ANNOTATION(__tsan_mutex_destroy); + MutexDestroy(thr, pc, (uptr)m); +} + +INTERFACE_ATTRIBUTE +void __tsan_mutex_pre_lock(void *m, unsigned flagz) { + SCOPED_ANNOTATION(__tsan_mutex_pre_lock); + if (!(flagz & MutexFlagTryLock)) { + if (flagz & MutexFlagReadLock) + MutexPreReadLock(thr, pc, (uptr)m); + else + MutexPreLock(thr, pc, (uptr)m); + } + ThreadIgnoreBegin(thr, pc, false); + ThreadIgnoreSyncBegin(thr, pc, false); +} + +INTERFACE_ATTRIBUTE +void __tsan_mutex_post_lock(void *m, unsigned flagz, int rec) { + SCOPED_ANNOTATION(__tsan_mutex_post_lock); + ThreadIgnoreSyncEnd(thr, pc); + ThreadIgnoreEnd(thr, pc); + if (!(flagz & MutexFlagTryLockFailed)) { + if (flagz & MutexFlagReadLock) + MutexPostReadLock(thr, pc, (uptr)m, flagz); + else + MutexPostLock(thr, pc, (uptr)m, flagz, rec); + } +} + +INTERFACE_ATTRIBUTE +int __tsan_mutex_pre_unlock(void *m, unsigned flagz) { + SCOPED_ANNOTATION_RET(__tsan_mutex_pre_unlock, 0); + int ret = 0; + if (flagz & MutexFlagReadLock) { + CHECK(!(flagz & MutexFlagRecursiveUnlock)); + MutexReadUnlock(thr, pc, (uptr)m); + } else { + ret = MutexUnlock(thr, pc, (uptr)m, flagz); + } + ThreadIgnoreBegin(thr, pc, false); + ThreadIgnoreSyncBegin(thr, pc, false); + return ret; +} + +INTERFACE_ATTRIBUTE +void __tsan_mutex_post_unlock(void *m, unsigned flagz) { + SCOPED_ANNOTATION(__tsan_mutex_post_unlock); + ThreadIgnoreSyncEnd(thr, pc); + ThreadIgnoreEnd(thr, pc); +} + +INTERFACE_ATTRIBUTE +void __tsan_mutex_pre_signal(void *addr, unsigned flagz) { + SCOPED_ANNOTATION(__tsan_mutex_pre_signal); + ThreadIgnoreBegin(thr, pc, false); + ThreadIgnoreSyncBegin(thr, pc, false); +} + +INTERFACE_ATTRIBUTE +void __tsan_mutex_post_signal(void *addr, unsigned flagz) { + SCOPED_ANNOTATION(__tsan_mutex_post_signal); + ThreadIgnoreSyncEnd(thr, pc); + ThreadIgnoreEnd(thr, pc); +} + +INTERFACE_ATTRIBUTE +void __tsan_mutex_pre_divert(void *addr, unsigned flagz) { + SCOPED_ANNOTATION(__tsan_mutex_pre_divert); + // Exit from ignore region started in __tsan_mutex_pre_lock/unlock/signal. + ThreadIgnoreSyncEnd(thr, pc); + ThreadIgnoreEnd(thr, pc); +} + +INTERFACE_ATTRIBUTE +void __tsan_mutex_post_divert(void *addr, unsigned flagz) { + SCOPED_ANNOTATION(__tsan_mutex_post_divert); + ThreadIgnoreBegin(thr, pc, false); + ThreadIgnoreSyncBegin(thr, pc, false); +} } // extern "C" diff --git a/lib/tsan/rtl/tsan_interface_atomic.cc b/lib/tsan/rtl/tsan_interface_atomic.cc index 5238b66a2e51..b22d5c1ecef8 100644 --- a/lib/tsan/rtl/tsan_interface_atomic.cc +++ b/lib/tsan/rtl/tsan_interface_atomic.cc @@ -450,13 +450,32 @@ static void AtomicFence(ThreadState *thr, uptr pc, morder mo) { // C/C++ +static morder convert_morder(morder mo) { + if (flags()->force_seq_cst_atomics) + return (morder)mo_seq_cst; + + // Filter out additional memory order flags: + // MEMMODEL_SYNC = 1 << 15 + // __ATOMIC_HLE_ACQUIRE = 1 << 16 + // __ATOMIC_HLE_RELEASE = 1 << 17 + // + // HLE is an optimization, and we pretend that elision always fails. + // MEMMODEL_SYNC is used when lowering __sync_ atomics, + // since we use __sync_ atomics for actual atomic operations, + // we can safely ignore it as well. It also subtly affects semantics, + // but we don't model the difference. + return (morder)(mo & 0x7fff); +} + #define SCOPED_ATOMIC(func, ...) \ - const uptr callpc = (uptr)__builtin_return_address(0); \ - uptr pc = StackTrace::GetCurrentPc(); \ - mo = flags()->force_seq_cst_atomics ? (morder)mo_seq_cst : mo; \ ThreadState *const thr = cur_thread(); \ - if (thr->ignore_interceptors) \ + if (thr->ignore_sync || thr->ignore_interceptors) { \ + ProcessPendingSignals(thr); \ return NoTsanAtomic##func(__VA_ARGS__); \ + } \ + const uptr callpc = (uptr)__builtin_return_address(0); \ + uptr pc = StackTrace::GetCurrentPc(); \ + mo = convert_morder(mo); \ AtomicStatInc(thr, sizeof(*a), mo, StatAtomic##func); \ ScopedAtomic sa(thr, callpc, a, mo, __func__); \ return Atomic##func(thr, pc, __VA_ARGS__); \ diff --git a/lib/tsan/rtl/tsan_interface_java.cc b/lib/tsan/rtl/tsan_interface_java.cc index 5bdc04f07567..75e960e629f9 100644 --- a/lib/tsan/rtl/tsan_interface_java.cc +++ b/lib/tsan/rtl/tsan_interface_java.cc @@ -180,8 +180,8 @@ void __tsan_java_mutex_lock(jptr addr) { CHECK_GE(addr, jctx->heap_begin); CHECK_LT(addr, jctx->heap_begin + jctx->heap_size); - MutexCreate(thr, pc, addr, true, true, true); - MutexLock(thr, pc, addr); + MutexPostLock(thr, pc, addr, MutexFlagLinkerInit | MutexFlagWriteReentrant | + MutexFlagDoPreLockOnPostLock); } void __tsan_java_mutex_unlock(jptr addr) { @@ -201,8 +201,8 @@ void __tsan_java_mutex_read_lock(jptr addr) { CHECK_GE(addr, jctx->heap_begin); CHECK_LT(addr, jctx->heap_begin + jctx->heap_size); - MutexCreate(thr, pc, addr, true, true, true); - MutexReadLock(thr, pc, addr); + MutexPostReadLock(thr, pc, addr, MutexFlagLinkerInit | + MutexFlagWriteReentrant | MutexFlagDoPreLockOnPostLock); } void __tsan_java_mutex_read_unlock(jptr addr) { @@ -223,8 +223,8 @@ void __tsan_java_mutex_lock_rec(jptr addr, int rec) { CHECK_LT(addr, jctx->heap_begin + jctx->heap_size); CHECK_GT(rec, 0); - MutexCreate(thr, pc, addr, true, true, true); - MutexLock(thr, pc, addr, rec); + MutexPostLock(thr, pc, addr, MutexFlagLinkerInit | MutexFlagWriteReentrant | + MutexFlagDoPreLockOnPostLock | MutexFlagRecursiveLock, rec); } int __tsan_java_mutex_unlock_rec(jptr addr) { @@ -234,7 +234,7 @@ int __tsan_java_mutex_unlock_rec(jptr addr) { CHECK_GE(addr, jctx->heap_begin); CHECK_LT(addr, jctx->heap_begin + jctx->heap_size); - return MutexUnlock(thr, pc, addr, true); + return MutexUnlock(thr, pc, addr, MutexFlagRecursiveUnlock); } void __tsan_java_acquire(jptr addr) { diff --git a/lib/tsan/rtl/tsan_libdispatch_mac.cc b/lib/tsan/rtl/tsan_libdispatch_mac.cc index d8c689ebb5fc..8c759a3be4e1 100644 --- a/lib/tsan/rtl/tsan_libdispatch_mac.cc +++ b/lib/tsan/rtl/tsan_libdispatch_mac.cc @@ -93,14 +93,15 @@ static tsan_block_context_t *AllocContext(ThreadState *thr, uptr pc, new_context->free_context_in_callback = true; new_context->submitted_synchronously = false; new_context->is_barrier_block = false; + new_context->non_queue_sync_object = 0; return new_context; } -#define GET_QUEUE_SYNC_VARS(context, q) \ - bool is_queue_serial = q && IsQueueSerial(q); \ - uptr sync_ptr = (uptr)q ?: context->non_queue_sync_object; \ - uptr serial_sync = (uptr)sync_ptr; \ - uptr concurrent_sync = ((uptr)sync_ptr) + sizeof(uptr); \ +#define GET_QUEUE_SYNC_VARS(context, q) \ + bool is_queue_serial = q && IsQueueSerial(q); \ + uptr sync_ptr = (uptr)q ?: context->non_queue_sync_object; \ + uptr serial_sync = (uptr)sync_ptr; \ + uptr concurrent_sync = sync_ptr ? ((uptr)sync_ptr) + sizeof(uptr) : 0; \ bool serial_task = context->is_barrier_block || is_queue_serial static void dispatch_sync_pre_execute(ThreadState *thr, uptr pc, @@ -111,8 +112,8 @@ static void dispatch_sync_pre_execute(ThreadState *thr, uptr pc, dispatch_queue_t q = context->queue; do { GET_QUEUE_SYNC_VARS(context, q); - Acquire(thr, pc, serial_sync); - if (serial_task) Acquire(thr, pc, concurrent_sync); + if (serial_sync) Acquire(thr, pc, serial_sync); + if (serial_task && concurrent_sync) Acquire(thr, pc, concurrent_sync); if (q) q = GetTargetQueueFromQueue(q); } while (q); @@ -126,7 +127,8 @@ static void dispatch_sync_post_execute(ThreadState *thr, uptr pc, dispatch_queue_t q = context->queue; do { GET_QUEUE_SYNC_VARS(context, q); - Release(thr, pc, serial_task ? serial_sync : concurrent_sync); + if (serial_task && serial_sync) Release(thr, pc, serial_sync); + if (!serial_task && concurrent_sync) Release(thr, pc, concurrent_sync); if (q) q = GetTargetQueueFromQueue(q); } while (q); diff --git a/lib/tsan/rtl/tsan_platform_mac.cc b/lib/tsan/rtl/tsan_platform_mac.cc index 25dd241d826f..b8d3d5528bb5 100644 --- a/lib/tsan/rtl/tsan_platform_mac.cc +++ b/lib/tsan/rtl/tsan_platform_mac.cc @@ -207,7 +207,7 @@ static void my_pthread_introspection_hook(unsigned int event, pthread_t thread, ThreadState *parent_thread_state = nullptr; // No parent. int tid = ThreadCreate(parent_thread_state, 0, (uptr)thread, true); CHECK_NE(tid, 0); - ThreadStart(thr, tid, GetTid()); + ThreadStart(thr, tid, GetTid(), /*workerthread*/ true); } } else if (event == PTHREAD_INTROSPECTION_THREAD_TERMINATE) { if (thread == pthread_self()) { diff --git a/lib/tsan/rtl/tsan_report.cc b/lib/tsan/rtl/tsan_report.cc index 07fd41208eb7..7de00840cdbc 100644 --- a/lib/tsan/rtl/tsan_report.cc +++ b/lib/tsan/rtl/tsan_report.cc @@ -90,6 +90,8 @@ static const char *ReportTypeString(ReportType typ) { return "heap-use-after-free"; if (typ == ReportTypeVptrUseAfterFree) return "heap-use-after-free (virtual call vs free)"; + if (typ == ReportTypeExternalRace) + return "race on a library object"; if (typ == ReportTypeThreadLeak) return "thread leak"; if (typ == ReportTypeMutexDestroyLocked) @@ -152,14 +154,25 @@ static const char *MopDesc(bool first, bool write, bool atomic) { : (write ? "Previous write" : "Previous read")); } +static const char *ExternalMopDesc(bool first, bool write) { + return first ? (write ? "Mutating" : "Read-only") + : (write ? "Previous mutating" : "Previous read-only"); +} + static void PrintMop(const ReportMop *mop, bool first) { Decorator d; char thrbuf[kThreadBufSize]; Printf("%s", d.Access()); - Printf(" %s of size %d at %p by %s", - MopDesc(first, mop->write, mop->atomic), - mop->size, (void*)mop->addr, - thread_name(thrbuf, mop->tid)); + const char *object_type = GetObjectTypeFromTag(mop->external_tag); + if (!object_type) { + Printf(" %s of size %d at %p by %s", + MopDesc(first, mop->write, mop->atomic), mop->size, + (void *)mop->addr, thread_name(thrbuf, mop->tid)); + } else { + Printf(" %s access of object %s at %p by %s", + ExternalMopDesc(first, mop->write), object_type, + (void *)mop->addr, thread_name(thrbuf, mop->tid)); + } PrintMutexSet(mop->mset); Printf(":\n"); Printf("%s", d.EndAccess()); @@ -183,9 +196,16 @@ static void PrintLocation(const ReportLocation *loc) { global.module_offset); } else if (loc->type == ReportLocationHeap) { char thrbuf[kThreadBufSize]; - Printf(" Location is heap block of size %zu at %p allocated by %s:\n", - loc->heap_chunk_size, loc->heap_chunk_start, - thread_name(thrbuf, loc->tid)); + const char *object_type = GetObjectTypeFromTag(loc->external_tag); + if (!object_type) { + Printf(" Location is heap block of size %zu at %p allocated by %s:\n", + loc->heap_chunk_size, loc->heap_chunk_start, + thread_name(thrbuf, loc->tid)); + } else { + Printf(" Location is %s object of size %zu at %p allocated by %s:\n", + object_type, loc->heap_chunk_size, loc->heap_chunk_start, + thread_name(thrbuf, loc->tid)); + } print_stack = true; } else if (loc->type == ReportLocationStack) { Printf(" Location is stack of %s.\n\n", thread_name(thrbuf, loc->tid)); @@ -235,9 +255,15 @@ static void PrintThread(const ReportThread *rt) { if (rt->name && rt->name[0] != '\0') Printf(" '%s'", rt->name); char thrbuf[kThreadBufSize]; - Printf(" (tid=%zu, %s) created by %s", - rt->os_id, rt->running ? "running" : "finished", - thread_name(thrbuf, rt->parent_tid)); + const char *thread_status = rt->running ? "running" : "finished"; + if (rt->workerthread) { + Printf(" (tid=%zu, %s) is a GCD worker thread\n", rt->os_id, thread_status); + Printf("\n"); + Printf("%s", d.EndThreadDescription()); + return; + } + Printf(" (tid=%zu, %s) created by %s", rt->os_id, thread_status, + thread_name(thrbuf, rt->parent_tid)); if (rt->stack) Printf(" at:"); Printf("\n"); diff --git a/lib/tsan/rtl/tsan_report.h b/lib/tsan/rtl/tsan_report.h index d0b9d7458bf8..8d8ae0fd8f58 100644 --- a/lib/tsan/rtl/tsan_report.h +++ b/lib/tsan/rtl/tsan_report.h @@ -24,6 +24,7 @@ enum ReportType { ReportTypeVptrRace, ReportTypeUseAfterFree, ReportTypeVptrUseAfterFree, + ReportTypeExternalRace, ReportTypeThreadLeak, ReportTypeMutexDestroyLocked, ReportTypeMutexDoubleLock, @@ -56,6 +57,7 @@ struct ReportMop { int size; bool write; bool atomic; + uptr external_tag; Vector<ReportMopMutex> mset; ReportStack *stack; @@ -75,6 +77,7 @@ struct ReportLocation { DataInfo global; uptr heap_chunk_start; uptr heap_chunk_size; + uptr external_tag; int tid; int fd; bool suppressable; @@ -89,8 +92,9 @@ struct ReportThread { int id; uptr os_id; bool running; + bool workerthread; char *name; - int parent_tid; + u32 parent_tid; ReportStack *stack; }; diff --git a/lib/tsan/rtl/tsan_rtl.cc b/lib/tsan/rtl/tsan_rtl.cc index bfb835889c7a..70393037e786 100644 --- a/lib/tsan/rtl/tsan_rtl.cc +++ b/lib/tsan/rtl/tsan_rtl.cc @@ -381,7 +381,7 @@ void Initialize(ThreadState *thr) { // Initialize thread 0. int tid = ThreadCreate(thr, 0, 0, true); CHECK_EQ(tid, 0); - ThreadStart(thr, tid, internal_getpid()); + ThreadStart(thr, tid, GetTid(), /*workerthread*/ false); #if TSAN_CONTAINS_UBSAN __ubsan::InitAsPlugin(); #endif @@ -980,21 +980,21 @@ void FuncExit(ThreadState *thr) { thr->shadow_stack_pos--; } -void ThreadIgnoreBegin(ThreadState *thr, uptr pc) { +void ThreadIgnoreBegin(ThreadState *thr, uptr pc, bool save_stack) { DPrintf("#%d: ThreadIgnoreBegin\n", thr->tid); thr->ignore_reads_and_writes++; CHECK_GT(thr->ignore_reads_and_writes, 0); thr->fast_state.SetIgnoreBit(); #if !SANITIZER_GO - if (!ctx->after_multithreaded_fork) + if (save_stack && !ctx->after_multithreaded_fork) thr->mop_ignore_set.Add(CurrentStackId(thr, pc)); #endif } void ThreadIgnoreEnd(ThreadState *thr, uptr pc) { DPrintf("#%d: ThreadIgnoreEnd\n", thr->tid); + CHECK_GT(thr->ignore_reads_and_writes, 0); thr->ignore_reads_and_writes--; - CHECK_GE(thr->ignore_reads_and_writes, 0); if (thr->ignore_reads_and_writes == 0) { thr->fast_state.ClearIgnoreBit(); #if !SANITIZER_GO @@ -1011,20 +1011,20 @@ uptr __tsan_testonly_shadow_stack_current_size() { } #endif -void ThreadIgnoreSyncBegin(ThreadState *thr, uptr pc) { +void ThreadIgnoreSyncBegin(ThreadState *thr, uptr pc, bool save_stack) { DPrintf("#%d: ThreadIgnoreSyncBegin\n", thr->tid); thr->ignore_sync++; CHECK_GT(thr->ignore_sync, 0); #if !SANITIZER_GO - if (!ctx->after_multithreaded_fork) + if (save_stack && !ctx->after_multithreaded_fork) thr->sync_ignore_set.Add(CurrentStackId(thr, pc)); #endif } void ThreadIgnoreSyncEnd(ThreadState *thr, uptr pc) { DPrintf("#%d: ThreadIgnoreSyncEnd\n", thr->tid); + CHECK_GT(thr->ignore_sync, 0); thr->ignore_sync--; - CHECK_GE(thr->ignore_sync, 0); #if !SANITIZER_GO if (thr->ignore_sync == 0) thr->sync_ignore_set.Reset(); diff --git a/lib/tsan/rtl/tsan_rtl.h b/lib/tsan/rtl/tsan_rtl.h index 7fcb9d48e038..0d62af00a05d 100644 --- a/lib/tsan/rtl/tsan_rtl.h +++ b/lib/tsan/rtl/tsan_rtl.h @@ -410,6 +410,7 @@ struct ThreadState { bool is_dead; bool is_freeing; bool is_vptr_access; + uptr external_tag; const uptr stk_addr; const uptr stk_size; const uptr tls_addr; @@ -545,6 +546,10 @@ struct Context { extern Context *ctx; // The one and the only global runtime context. +ALWAYS_INLINE Flags *flags() { + return &ctx->flags; +} + struct ScopedIgnoreInterceptors { ScopedIgnoreInterceptors() { #if !SANITIZER_GO @@ -564,7 +569,7 @@ class ScopedReport { explicit ScopedReport(ReportType typ); ~ScopedReport(); - void AddMemoryAccess(uptr addr, Shadow s, StackTrace stack, + void AddMemoryAccess(uptr addr, uptr external_tag, Shadow s, StackTrace stack, const MutexSet *mset); void AddStack(StackTrace stack, bool suppressable = false); void AddThread(const ThreadContext *tctx, bool suppressable = false); @@ -640,6 +645,8 @@ bool IsFiredSuppression(Context *ctx, ReportType type, StackTrace trace); bool IsExpectedReport(uptr addr, uptr size); void PrintMatchedBenignRaces(); +const char *GetObjectTypeFromTag(uptr tag); + #if defined(TSAN_DEBUG_OUTPUT) && TSAN_DEBUG_OUTPUT >= 1 # define DPrintf Printf #else @@ -704,16 +711,16 @@ void MemoryResetRange(ThreadState *thr, uptr pc, uptr addr, uptr size); void MemoryRangeFreed(ThreadState *thr, uptr pc, uptr addr, uptr size); void MemoryRangeImitateWrite(ThreadState *thr, uptr pc, uptr addr, uptr size); -void ThreadIgnoreBegin(ThreadState *thr, uptr pc); +void ThreadIgnoreBegin(ThreadState *thr, uptr pc, bool save_stack = true); void ThreadIgnoreEnd(ThreadState *thr, uptr pc); -void ThreadIgnoreSyncBegin(ThreadState *thr, uptr pc); +void ThreadIgnoreSyncBegin(ThreadState *thr, uptr pc, bool save_stack = true); void ThreadIgnoreSyncEnd(ThreadState *thr, uptr pc); void FuncEntry(ThreadState *thr, uptr pc); void FuncExit(ThreadState *thr); int ThreadCreate(ThreadState *thr, uptr pc, uptr uid, bool detached); -void ThreadStart(ThreadState *thr, int tid, uptr os_id); +void ThreadStart(ThreadState *thr, int tid, uptr os_id, bool workerthread); void ThreadFinish(ThreadState *thr); int ThreadTid(ThreadState *thr, uptr pc, uptr uid); void ThreadJoin(ThreadState *thr, uptr pc, int tid); @@ -728,13 +735,16 @@ void ProcDestroy(Processor *proc); void ProcWire(Processor *proc, ThreadState *thr); void ProcUnwire(Processor *proc, ThreadState *thr); -void MutexCreate(ThreadState *thr, uptr pc, uptr addr, - bool rw, bool recursive, bool linker_init); +// Note: the parameter is called flagz, because flags is already taken +// by the global function that returns flags. +void MutexCreate(ThreadState *thr, uptr pc, uptr addr, u32 flagz = 0); void MutexDestroy(ThreadState *thr, uptr pc, uptr addr); -void MutexLock(ThreadState *thr, uptr pc, uptr addr, int rec = 1, - bool try_lock = false); -int MutexUnlock(ThreadState *thr, uptr pc, uptr addr, bool all = false); -void MutexReadLock(ThreadState *thr, uptr pc, uptr addr, bool try_lock = false); +void MutexPreLock(ThreadState *thr, uptr pc, uptr addr, u32 flagz = 0); +void MutexPostLock(ThreadState *thr, uptr pc, uptr addr, u32 flagz = 0, + int rec = 1); +int MutexUnlock(ThreadState *thr, uptr pc, uptr addr, u32 flagz = 0); +void MutexPreReadLock(ThreadState *thr, uptr pc, uptr addr, u32 flagz = 0); +void MutexPostReadLock(ThreadState *thr, uptr pc, uptr addr, u32 flagz = 0); void MutexReadUnlock(ThreadState *thr, uptr pc, uptr addr); void MutexReadOrWriteUnlock(ThreadState *thr, uptr pc, uptr addr); void MutexRepair(ThreadState *thr, uptr pc, uptr addr); // call on EOWNERDEAD diff --git a/lib/tsan/rtl/tsan_rtl_mutex.cc b/lib/tsan/rtl/tsan_rtl_mutex.cc index f3b51c30faff..086b28927919 100644 --- a/lib/tsan/rtl/tsan_rtl_mutex.cc +++ b/lib/tsan/rtl/tsan_rtl_mutex.cc @@ -62,20 +62,17 @@ static void ReportMutexMisuse(ThreadState *thr, uptr pc, ReportType typ, OutputReport(thr, rep); } -void MutexCreate(ThreadState *thr, uptr pc, uptr addr, - bool rw, bool recursive, bool linker_init) { - DPrintf("#%d: MutexCreate %zx\n", thr->tid, addr); +void MutexCreate(ThreadState *thr, uptr pc, uptr addr, u32 flagz) { + DPrintf("#%d: MutexCreate %zx flagz=0x%x\n", thr->tid, addr, flagz); StatInc(thr, StatMutexCreate); - if (!linker_init && IsAppMem(addr)) { + if (!(flagz & MutexFlagLinkerInit) && IsAppMem(addr)) { CHECK(!thr->is_freeing); thr->is_freeing = true; MemoryWrite(thr, pc, addr, kSizeLog1); thr->is_freeing = false; } SyncVar *s = ctx->metamap.GetOrCreateAndLock(thr, pc, addr, true); - s->is_rw = rw; - s->is_recursive = recursive; - s->is_linker_init = linker_init; + s->SetFlags(flagz & MutexCreationFlagMask); if (!SANITIZER_GO && s->creation_stack_id == 0) s->creation_stack_id = CurrentStackId(thr, pc); s->mtx.Unlock(); @@ -87,7 +84,7 @@ void MutexDestroy(ThreadState *thr, uptr pc, uptr addr) { SyncVar *s = ctx->metamap.GetIfExistsAndLock(addr, true); if (s == 0) return; - if (s->is_linker_init) { + if (s->IsFlagSet(MutexFlagLinkerInit)) { // Destroy is no-op for linker-initialized mutexes. s->mtx.Unlock(); return; @@ -100,8 +97,8 @@ void MutexDestroy(ThreadState *thr, uptr pc, uptr addr) { bool unlock_locked = false; if (flags()->report_destroy_locked && s->owner_tid != SyncVar::kInvalidTid - && !s->is_broken) { - s->is_broken = true; + && !s->IsFlagSet(MutexFlagBroken)) { + s->SetFlags(MutexFlagBroken); unlock_locked = true; } u64 mid = s->GetId(); @@ -141,12 +138,33 @@ void MutexDestroy(ThreadState *thr, uptr pc, uptr addr) { // s will be destroyed and freed in MetaMap::FreeBlock. } -void MutexLock(ThreadState *thr, uptr pc, uptr addr, int rec, bool try_lock) { - DPrintf("#%d: MutexLock %zx rec=%d\n", thr->tid, addr, rec); - CHECK_GT(rec, 0); +void MutexPreLock(ThreadState *thr, uptr pc, uptr addr, u32 flagz) { + DPrintf("#%d: MutexPreLock %zx flagz=0x%x\n", thr->tid, addr, flagz); + if (!(flagz & MutexFlagTryLock) && common_flags()->detect_deadlocks) { + SyncVar *s = ctx->metamap.GetOrCreateAndLock(thr, pc, addr, false); + s->UpdateFlags(flagz); + if (s->owner_tid != thr->tid) { + Callback cb(thr, pc); + ctx->dd->MutexBeforeLock(&cb, &s->dd, true); + s->mtx.ReadUnlock(); + ReportDeadlock(thr, pc, ctx->dd->GetReport(&cb)); + } else { + s->mtx.ReadUnlock(); + } + } +} + +void MutexPostLock(ThreadState *thr, uptr pc, uptr addr, u32 flagz, int rec) { + DPrintf("#%d: MutexPostLock %zx flag=0x%x rec=%d\n", + thr->tid, addr, flagz, rec); + if (flagz & MutexFlagRecursiveLock) + CHECK_GT(rec, 0); + else + rec = 1; if (IsAppMem(addr)) MemoryReadAtomic(thr, pc, addr, kSizeLog1); SyncVar *s = ctx->metamap.GetOrCreateAndLock(thr, pc, addr, true); + s->UpdateFlags(flagz); thr->fast_state.IncrementEpoch(); TraceAddEvent(thr, thr->fast_state, EventTypeLock, s->GetId()); bool report_double_lock = false; @@ -156,38 +174,43 @@ void MutexLock(ThreadState *thr, uptr pc, uptr addr, int rec, bool try_lock) { s->last_lock = thr->fast_state.raw(); } else if (s->owner_tid == thr->tid) { CHECK_GT(s->recursion, 0); - } else if (flags()->report_mutex_bugs && !s->is_broken) { - s->is_broken = true; + } else if (flags()->report_mutex_bugs && !s->IsFlagSet(MutexFlagBroken)) { + s->SetFlags(MutexFlagBroken); report_double_lock = true; } - if (s->recursion == 0) { + const bool first = s->recursion == 0; + s->recursion += rec; + if (first) { StatInc(thr, StatMutexLock); AcquireImpl(thr, pc, &s->clock); AcquireImpl(thr, pc, &s->read_clock); - } else if (!s->is_recursive) { + } else if (!s->IsFlagSet(MutexFlagWriteReentrant)) { StatInc(thr, StatMutexRecLock); } - s->recursion += rec; thr->mset.Add(s->GetId(), true, thr->fast_state.epoch()); - if (common_flags()->detect_deadlocks && (s->recursion - rec) == 0) { + bool pre_lock = false; + if (first && common_flags()->detect_deadlocks) { + pre_lock = (flagz & MutexFlagDoPreLockOnPostLock) && + !(flagz & MutexFlagTryLock); Callback cb(thr, pc); - if (!try_lock) + if (pre_lock) ctx->dd->MutexBeforeLock(&cb, &s->dd, true); - ctx->dd->MutexAfterLock(&cb, &s->dd, true, try_lock); + ctx->dd->MutexAfterLock(&cb, &s->dd, true, flagz & MutexFlagTryLock); } u64 mid = s->GetId(); s->mtx.Unlock(); // Can't touch s after this point. + s = 0; if (report_double_lock) ReportMutexMisuse(thr, pc, ReportTypeMutexDoubleLock, addr, mid); - if (common_flags()->detect_deadlocks) { + if (first && pre_lock && common_flags()->detect_deadlocks) { Callback cb(thr, pc); ReportDeadlock(thr, pc, ctx->dd->GetReport(&cb)); } } -int MutexUnlock(ThreadState *thr, uptr pc, uptr addr, bool all) { - DPrintf("#%d: MutexUnlock %zx all=%d\n", thr->tid, addr, all); +int MutexUnlock(ThreadState *thr, uptr pc, uptr addr, u32 flagz) { + DPrintf("#%d: MutexUnlock %zx flagz=0x%x\n", thr->tid, addr, flagz); if (IsAppMem(addr)) MemoryReadAtomic(thr, pc, addr, kSizeLog1); SyncVar *s = ctx->metamap.GetOrCreateAndLock(thr, pc, addr, true); @@ -196,12 +219,12 @@ int MutexUnlock(ThreadState *thr, uptr pc, uptr addr, bool all) { int rec = 0; bool report_bad_unlock = false; if (!SANITIZER_GO && (s->recursion == 0 || s->owner_tid != thr->tid)) { - if (flags()->report_mutex_bugs && !s->is_broken) { - s->is_broken = true; + if (flags()->report_mutex_bugs && !s->IsFlagSet(MutexFlagBroken)) { + s->SetFlags(MutexFlagBroken); report_bad_unlock = true; } } else { - rec = all ? s->recursion : 1; + rec = (flagz & MutexFlagRecursiveUnlock) ? s->recursion : 1; s->recursion -= rec; if (s->recursion == 0) { StatInc(thr, StatMutexUnlock); @@ -229,36 +252,53 @@ int MutexUnlock(ThreadState *thr, uptr pc, uptr addr, bool all) { return rec; } -void MutexReadLock(ThreadState *thr, uptr pc, uptr addr, bool trylock) { - DPrintf("#%d: MutexReadLock %zx\n", thr->tid, addr); +void MutexPreReadLock(ThreadState *thr, uptr pc, uptr addr, u32 flagz) { + DPrintf("#%d: MutexPreReadLock %zx flagz=0x%x\n", thr->tid, addr, flagz); + if (!(flagz & MutexFlagTryLock) && common_flags()->detect_deadlocks) { + SyncVar *s = ctx->metamap.GetOrCreateAndLock(thr, pc, addr, false); + s->UpdateFlags(flagz); + Callback cb(thr, pc); + ctx->dd->MutexBeforeLock(&cb, &s->dd, false); + s->mtx.ReadUnlock(); + ReportDeadlock(thr, pc, ctx->dd->GetReport(&cb)); + } +} + +void MutexPostReadLock(ThreadState *thr, uptr pc, uptr addr, u32 flagz) { + DPrintf("#%d: MutexPostReadLock %zx flagz=0x%x\n", thr->tid, addr, flagz); StatInc(thr, StatMutexReadLock); if (IsAppMem(addr)) MemoryReadAtomic(thr, pc, addr, kSizeLog1); SyncVar *s = ctx->metamap.GetOrCreateAndLock(thr, pc, addr, false); + s->UpdateFlags(flagz); thr->fast_state.IncrementEpoch(); TraceAddEvent(thr, thr->fast_state, EventTypeRLock, s->GetId()); bool report_bad_lock = false; if (s->owner_tid != SyncVar::kInvalidTid) { - if (flags()->report_mutex_bugs && !s->is_broken) { - s->is_broken = true; + if (flags()->report_mutex_bugs && !s->IsFlagSet(MutexFlagBroken)) { + s->SetFlags(MutexFlagBroken); report_bad_lock = true; } } AcquireImpl(thr, pc, &s->clock); s->last_lock = thr->fast_state.raw(); thr->mset.Add(s->GetId(), false, thr->fast_state.epoch()); - if (common_flags()->detect_deadlocks && s->recursion == 0) { + bool pre_lock = false; + if (common_flags()->detect_deadlocks) { + pre_lock = (flagz & MutexFlagDoPreLockOnPostLock) && + !(flagz & MutexFlagTryLock); Callback cb(thr, pc); - if (!trylock) + if (pre_lock) ctx->dd->MutexBeforeLock(&cb, &s->dd, false); - ctx->dd->MutexAfterLock(&cb, &s->dd, false, trylock); + ctx->dd->MutexAfterLock(&cb, &s->dd, false, flagz & MutexFlagTryLock); } u64 mid = s->GetId(); s->mtx.ReadUnlock(); // Can't touch s after this point. + s = 0; if (report_bad_lock) ReportMutexMisuse(thr, pc, ReportTypeMutexBadReadLock, addr, mid); - if (common_flags()->detect_deadlocks) { + if (pre_lock && common_flags()->detect_deadlocks) { Callback cb(thr, pc); ReportDeadlock(thr, pc, ctx->dd->GetReport(&cb)); } @@ -274,8 +314,8 @@ void MutexReadUnlock(ThreadState *thr, uptr pc, uptr addr) { TraceAddEvent(thr, thr->fast_state, EventTypeRUnlock, s->GetId()); bool report_bad_unlock = false; if (s->owner_tid != SyncVar::kInvalidTid) { - if (flags()->report_mutex_bugs && !s->is_broken) { - s->is_broken = true; + if (flags()->report_mutex_bugs && !s->IsFlagSet(MutexFlagBroken)) { + s->SetFlags(MutexFlagBroken); report_bad_unlock = true; } } @@ -323,8 +363,8 @@ void MutexReadOrWriteUnlock(ThreadState *thr, uptr pc, uptr addr) { } else { StatInc(thr, StatMutexRecUnlock); } - } else if (!s->is_broken) { - s->is_broken = true; + } else if (!s->IsFlagSet(MutexFlagBroken)) { + s->SetFlags(MutexFlagBroken); report_bad_unlock = true; } thr->mset.Del(s->GetId(), write); diff --git a/lib/tsan/rtl/tsan_rtl_report.cc b/lib/tsan/rtl/tsan_rtl_report.cc index bc8944fbfb58..31b9e97898b0 100644 --- a/lib/tsan/rtl/tsan_rtl_report.cc +++ b/lib/tsan/rtl/tsan_rtl_report.cc @@ -164,8 +164,8 @@ void ScopedReport::AddStack(StackTrace stack, bool suppressable) { (*rs)->suppressable = suppressable; } -void ScopedReport::AddMemoryAccess(uptr addr, Shadow s, StackTrace stack, - const MutexSet *mset) { +void ScopedReport::AddMemoryAccess(uptr addr, uptr external_tag, Shadow s, + StackTrace stack, const MutexSet *mset) { void *mem = internal_alloc(MBlockReportMop, sizeof(ReportMop)); ReportMop *mop = new(mem) ReportMop; rep_->mops.PushBack(mop); @@ -175,6 +175,7 @@ void ScopedReport::AddMemoryAccess(uptr addr, Shadow s, StackTrace stack, mop->write = s.IsWrite(); mop->atomic = s.IsAtomic(); mop->stack = SymbolizeStack(stack); + mop->external_tag = external_tag; if (mop->stack) mop->stack->suppressable = true; for (uptr i = 0; i < mset->Size(); i++) { @@ -202,6 +203,7 @@ void ScopedReport::AddThread(const ThreadContext *tctx, bool suppressable) { rt->running = (tctx->status == ThreadStatusRunning); rt->name = internal_strdup(tctx->name); rt->parent_tid = tctx->parent_tid; + rt->workerthread = tctx->workerthread; rt->stack = 0; rt->stack = SymbolizeStackId(tctx->creation_stack_id); if (rt->stack) @@ -336,6 +338,7 @@ void ScopedReport::AddLocation(uptr addr, uptr size) { ReportLocation *loc = ReportLocation::New(ReportLocationHeap); loc->heap_chunk_start = (uptr)allocator()->GetBlockBegin((void *)addr); loc->heap_chunk_size = b->siz; + loc->external_tag = b->tag; loc->tid = tctx ? tctx->tid : b->tid; loc->stack = SymbolizeStackId(b->stk); rep_->locs.PushBack(loc); @@ -622,6 +625,8 @@ void ReportRace(ThreadState *thr) { typ = ReportTypeVptrRace; else if (freed) typ = ReportTypeUseAfterFree; + else if (thr->external_tag > 0) + typ = ReportTypeExternalRace; if (IsFiredSuppression(ctx, typ, addr)) return; @@ -650,7 +655,8 @@ void ReportRace(ThreadState *thr) { ScopedReport rep(typ); for (uptr i = 0; i < kMop; i++) { Shadow s(thr->racy_state[i]); - rep.AddMemoryAccess(addr, s, traces[i], i == 0 ? &thr->mset : mset2); + rep.AddMemoryAccess(addr, thr->external_tag, s, traces[i], + i == 0 ? &thr->mset : mset2); } for (uptr i = 0; i < kMop; i++) { diff --git a/lib/tsan/rtl/tsan_rtl_thread.cc b/lib/tsan/rtl/tsan_rtl_thread.cc index 5b17dc60bcbe..7357d97a264c 100644 --- a/lib/tsan/rtl/tsan_rtl_thread.cc +++ b/lib/tsan/rtl/tsan_rtl_thread.cc @@ -236,7 +236,7 @@ int ThreadCreate(ThreadState *thr, uptr pc, uptr uid, bool detached) { return tid; } -void ThreadStart(ThreadState *thr, int tid, uptr os_id) { +void ThreadStart(ThreadState *thr, int tid, uptr os_id, bool workerthread) { uptr stk_addr = 0; uptr stk_size = 0; uptr tls_addr = 0; @@ -266,7 +266,7 @@ void ThreadStart(ThreadState *thr, int tid, uptr os_id) { ThreadRegistry *tr = ctx->thread_registry; OnStartedArgs args = { thr, stk_addr, stk_size, tls_addr, tls_size }; - tr->StartThread(tid, os_id, &args); + tr->StartThread(tid, os_id, workerthread, &args); tr->Lock(); thr->tctx = (ThreadContext*)tr->GetThreadLocked(tid); diff --git a/lib/tsan/rtl/tsan_stat.cc b/lib/tsan/rtl/tsan_stat.cc index d1d6ed24d991..2ee688bf5771 100644 --- a/lib/tsan/rtl/tsan_stat.cc +++ b/lib/tsan/rtl/tsan_stat.cc @@ -153,6 +153,16 @@ void StatOutput(u64 *stat) { name[StatAnnotatePublishMemoryRange] = " PublishMemoryRange "; name[StatAnnotateUnpublishMemoryRange] = " UnpublishMemoryRange "; name[StatAnnotateThreadName] = " ThreadName "; + name[Stat__tsan_mutex_create] = " __tsan_mutex_create "; + name[Stat__tsan_mutex_destroy] = " __tsan_mutex_destroy "; + name[Stat__tsan_mutex_pre_lock] = " __tsan_mutex_pre_lock "; + name[Stat__tsan_mutex_post_lock] = " __tsan_mutex_post_lock "; + name[Stat__tsan_mutex_pre_unlock] = " __tsan_mutex_pre_unlock "; + name[Stat__tsan_mutex_post_unlock] = " __tsan_mutex_post_unlock "; + name[Stat__tsan_mutex_pre_signal] = " __tsan_mutex_pre_signal "; + name[Stat__tsan_mutex_post_signal] = " __tsan_mutex_post_signal "; + name[Stat__tsan_mutex_pre_divert] = " __tsan_mutex_pre_divert "; + name[Stat__tsan_mutex_post_divert] = " __tsan_mutex_post_divert "; name[StatMtxTotal] = "Contentionz "; name[StatMtxTrace] = " Trace "; diff --git a/lib/tsan/rtl/tsan_stat.h b/lib/tsan/rtl/tsan_stat.h index 8447dd84fc17..7d2791ebbfcc 100644 --- a/lib/tsan/rtl/tsan_stat.h +++ b/lib/tsan/rtl/tsan_stat.h @@ -157,6 +157,16 @@ enum StatType { StatAnnotatePublishMemoryRange, StatAnnotateUnpublishMemoryRange, StatAnnotateThreadName, + Stat__tsan_mutex_create, + Stat__tsan_mutex_destroy, + Stat__tsan_mutex_pre_lock, + Stat__tsan_mutex_post_lock, + Stat__tsan_mutex_pre_unlock, + Stat__tsan_mutex_post_unlock, + Stat__tsan_mutex_pre_signal, + Stat__tsan_mutex_post_signal, + Stat__tsan_mutex_pre_divert, + Stat__tsan_mutex_post_divert, // Internal mutex contentionz. StatMtxTotal, diff --git a/lib/tsan/rtl/tsan_suppressions.cc b/lib/tsan/rtl/tsan_suppressions.cc index bfb64e0018fb..e39702b7d22a 100644 --- a/lib/tsan/rtl/tsan_suppressions.cc +++ b/lib/tsan/rtl/tsan_suppressions.cc @@ -74,6 +74,8 @@ static const char *conv(ReportType typ) { return kSuppressionRace; else if (typ == ReportTypeVptrUseAfterFree) return kSuppressionRace; + else if (typ == ReportTypeExternalRace) + return kSuppressionRace; else if (typ == ReportTypeThreadLeak) return kSuppressionThread; else if (typ == ReportTypeMutexDestroyLocked) diff --git a/lib/tsan/rtl/tsan_sync.cc b/lib/tsan/rtl/tsan_sync.cc index 44c6a26a1e8e..4cc3cb89c34f 100644 --- a/lib/tsan/rtl/tsan_sync.cc +++ b/lib/tsan/rtl/tsan_sync.cc @@ -42,10 +42,7 @@ void SyncVar::Reset(Processor *proc) { owner_tid = kInvalidTid; last_lock = 0; recursion = 0; - is_rw = 0; - is_recursive = 0; - is_broken = 0; - is_linker_init = 0; + atomic_store_relaxed(&flags, 0); if (proc == 0) { CHECK_EQ(clock.size(), 0); @@ -64,6 +61,7 @@ void MetaMap::AllocBlock(ThreadState *thr, uptr pc, uptr p, uptr sz) { u32 idx = block_alloc_.Alloc(&thr->proc()->block_cache); MBlock *b = block_alloc_.Map(idx); b->siz = sz; + b->tag = 0; b->tid = thr->tid; b->stk = CurrentStackId(thr, pc); u32 *meta = MemToMeta(p); diff --git a/lib/tsan/rtl/tsan_sync.h b/lib/tsan/rtl/tsan_sync.h index 86e6bbd55bac..d24d69762171 100644 --- a/lib/tsan/rtl/tsan_sync.h +++ b/lib/tsan/rtl/tsan_sync.h @@ -23,6 +23,29 @@ namespace __tsan { +// These need to match __tsan_mutex_* flags defined in tsan_interface.h. +// See documentation there as well. +enum MutexFlags { + MutexFlagLinkerInit = 1 << 0, // __tsan_mutex_linker_init + MutexFlagWriteReentrant = 1 << 1, // __tsan_mutex_write_reentrant + MutexFlagReadReentrant = 1 << 2, // __tsan_mutex_read_reentrant + MutexFlagReadLock = 1 << 3, // __tsan_mutex_read_lock + MutexFlagTryLock = 1 << 4, // __tsan_mutex_try_lock + MutexFlagTryLockFailed = 1 << 5, // __tsan_mutex_try_lock_failed + MutexFlagRecursiveLock = 1 << 6, // __tsan_mutex_recursive_lock + MutexFlagRecursiveUnlock = 1 << 7, // __tsan_mutex_recursive_unlock + + // The following flags are runtime private. + // Mutex API misuse was detected, so don't report any more. + MutexFlagBroken = 1 << 30, + // We did not intercept pre lock event, so handle it on post lock. + MutexFlagDoPreLockOnPostLock = 1 << 29, + // Must list all mutex creation flags. + MutexCreationFlagMask = MutexFlagLinkerInit | + MutexFlagWriteReentrant | + MutexFlagReadReentrant, +}; + struct SyncVar { SyncVar(); @@ -35,10 +58,7 @@ struct SyncVar { int owner_tid; // Set only by exclusive owners. u64 last_lock; int recursion; - bool is_rw; - bool is_recursive; - bool is_broken; - bool is_linker_init; + atomic_uint32_t flags; u32 next; // in MetaMap DDMutex dd; SyncClock read_clock; // Used for rw mutexes only. @@ -61,6 +81,26 @@ struct SyncVar { *uid = id >> 48; return (uptr)GetLsb(id, 48); } + + bool IsFlagSet(u32 f) const { + return atomic_load_relaxed(&flags); + } + + void SetFlags(u32 f) { + atomic_store_relaxed(&flags, atomic_load_relaxed(&flags) | f); + } + + void UpdateFlags(u32 flagz) { + // Filter out operation flags. + if (!(flagz & MutexCreationFlagMask)) + return; + u32 current = atomic_load_relaxed(&flags); + if (current & MutexCreationFlagMask) + return; + // Note: this can be called from MutexPostReadLock which holds only read + // lock on the SyncVar. + atomic_store_relaxed(&flags, current | (flagz & MutexCreationFlagMask)); + } }; /* MetaMap allows to map arbitrary user pointers onto various descriptors. diff --git a/lib/ubsan/CMakeLists.txt b/lib/ubsan/CMakeLists.txt index 9bb36edc72cf..f35b40f3b1cc 100644 --- a/lib/ubsan/CMakeLists.txt +++ b/lib/ubsan/CMakeLists.txt @@ -90,6 +90,35 @@ else() ARCHS ${UBSAN_COMMON_SUPPORTED_ARCH} SOURCES ${UBSAN_CXX_SOURCES} CFLAGS ${UBSAN_CXXFLAGS}) + if (WIN32) + add_compiler_rt_object_libraries(UbsanWeakInterception + ${SANITIZER_COMMON_SUPPORTED_OS} + ARCHS ${UBSAN_SUPPORTED_ARCH} + SOURCES ubsan_win_weak_interception.cc + CFLAGS ${UBSAN_CFLAGS} -DSANITIZER_DYNAMIC + DEFS ${UBSAN_COMMON_DEFINITIONS}) + + add_compiler_rt_object_libraries(UbsanDllThunk + ${SANITIZER_COMMON_SUPPORTED_OS} + ARCHS ${UBSAN_SUPPORTED_ARCH} + SOURCES ubsan_win_dll_thunk.cc + CFLAGS ${UBSAN_CFLAGS} -DSANITIZER_DLL_THUNK + DEFS ${UBSAN_COMMON_DEFINITIONS}) + + set(DYNAMIC_RUNTIME_THUNK_CFLAGS "-DSANITIZER_DYNAMIC_RUNTIME_THUNK") + if(MSVC) + list(APPEND DYNAMIC_RUNTIME_THUNK_CFLAGS "-Zl") + elseif(CMAKE_C_COMPILER_ID MATCHES Clang) + list(APPEND DYNAMIC_RUNTIME_THUNK_CFLAGS "-nodefaultlibs") + endif() + add_compiler_rt_object_libraries(UbsanDynamicRuntimeThunk + ${SANITIZER_COMMON_SUPPORTED_OS} + ARCHS ${UBSAN_SUPPORTED_ARCH} + SOURCES ubsan_win_dynamic_runtime_thunk.cc + CFLAGS ${UBSAN_CFLAGS} ${DYNAMIC_RUNTIME_THUNK_CFLAGS} + DEFS ${UBSAN_COMMON_DEFINITIONS}) + endif() + if(COMPILER_RT_HAS_UBSAN) # Initializer of standalone UBSan runtime. add_compiler_rt_object_libraries(RTUbsan_standalone diff --git a/lib/ubsan/ubsan_diag.cc b/lib/ubsan/ubsan_diag.cc index c531c5f7757d..bbe1e07390ad 100644 --- a/lib/ubsan/ubsan_diag.cc +++ b/lib/ubsan/ubsan_diag.cc @@ -79,16 +79,16 @@ static void MaybeReportErrorSummary(Location Loc, ErrorType Type) { AI.line = SLoc.getLine(); AI.column = SLoc.getColumn(); AI.function = internal_strdup(""); // Avoid printing ?? as function name. - ReportErrorSummary(ErrorKind, AI); + ReportErrorSummary(ErrorKind, AI, GetSanititizerToolName()); AI.Clear(); return; } } else if (Loc.isSymbolizedStack()) { const AddressInfo &AI = Loc.getSymbolizedStack()->info; - ReportErrorSummary(ErrorKind, AI); + ReportErrorSummary(ErrorKind, AI, GetSanititizerToolName()); return; } - ReportErrorSummary(ErrorKind); + ReportErrorSummary(ErrorKind, GetSanititizerToolName()); } namespace { diff --git a/lib/ubsan/ubsan_flags.cc b/lib/ubsan/ubsan_flags.cc index e77ba550148a..3d404c1b7d34 100644 --- a/lib/ubsan/ubsan_flags.cc +++ b/lib/ubsan/ubsan_flags.cc @@ -67,22 +67,8 @@ void InitializeFlags() { } // namespace __ubsan -extern "C" { - -#if !SANITIZER_SUPPORTS_WEAK_HOOKS -SANITIZER_INTERFACE_ATTRIBUTE SANITIZER_WEAK_ATTRIBUTE -const char *__ubsan_default_options() { return ""; } -#endif - -#if SANITIZER_WINDOWS -const char *__ubsan_default_default_options() { return ""; } -# ifdef _WIN64 -# pragma comment(linker, "/alternatename:__ubsan_default_options=__ubsan_default_default_options") -# else -# pragma comment(linker, "/alternatename:___ubsan_default_options=___ubsan_default_default_options") -# endif -#endif - -} // extern "C" +SANITIZER_INTERFACE_WEAK_DEF(const char *, __ubsan_default_options, void) { + return ""; +} #endif // CAN_SANITIZE_UB diff --git a/lib/ubsan/ubsan_handlers.cc b/lib/ubsan/ubsan_handlers.cc index 6ffffae7bd30..4e025a8ddddd 100644 --- a/lib/ubsan/ubsan_handlers.cc +++ b/lib/ubsan/ubsan_handlers.cc @@ -38,7 +38,7 @@ bool ignoreReport(SourceLocation SLoc, ReportOptions Opts, ErrorType ET) { const char *TypeCheckKinds[] = { "load of", "store to", "reference binding to", "member access within", "member call on", "constructor call on", "downcast of", "downcast of", - "upcast of", "cast to virtual base of"}; + "upcast of", "cast to virtual base of", "_Nonnull binding to"}; } static void handleTypeMismatchImpl(TypeMismatchData *Data, ValueHandle Pointer, @@ -472,7 +472,8 @@ void __ubsan::__ubsan_handle_function_type_mismatch_abort( Die(); } -static void handleNonNullReturn(NonNullReturnData *Data, ReportOptions Opts) { +static void handleNonNullReturn(NonNullReturnData *Data, ReportOptions Opts, + bool IsAttr) { SourceLocation Loc = Data->Loc.acquire(); ErrorType ET = ErrorType::InvalidNullReturn; @@ -484,21 +485,35 @@ static void handleNonNullReturn(NonNullReturnData *Data, ReportOptions Opts) { Diag(Loc, DL_Error, "null pointer returned from function declared to never " "return null"); if (!Data->AttrLoc.isInvalid()) - Diag(Data->AttrLoc, DL_Note, "returns_nonnull attribute specified here"); + Diag(Data->AttrLoc, DL_Note, "%0 specified here") + << (IsAttr ? "returns_nonnull attribute" + : "_Nonnull return type annotation"); } void __ubsan::__ubsan_handle_nonnull_return(NonNullReturnData *Data) { GET_REPORT_OPTIONS(false); - handleNonNullReturn(Data, Opts); + handleNonNullReturn(Data, Opts, true); } void __ubsan::__ubsan_handle_nonnull_return_abort(NonNullReturnData *Data) { GET_REPORT_OPTIONS(true); - handleNonNullReturn(Data, Opts); + handleNonNullReturn(Data, Opts, true); Die(); } -static void handleNonNullArg(NonNullArgData *Data, ReportOptions Opts) { +void __ubsan::__ubsan_handle_nullability_return(NonNullReturnData *Data) { + GET_REPORT_OPTIONS(false); + handleNonNullReturn(Data, Opts, false); +} + +void __ubsan::__ubsan_handle_nullability_return_abort(NonNullReturnData *Data) { + GET_REPORT_OPTIONS(true); + handleNonNullReturn(Data, Opts, false); + Die(); +} + +static void handleNonNullArg(NonNullArgData *Data, ReportOptions Opts, + bool IsAttr) { SourceLocation Loc = Data->Loc.acquire(); ErrorType ET = ErrorType::InvalidNullArgument; @@ -507,20 +522,34 @@ static void handleNonNullArg(NonNullArgData *Data, ReportOptions Opts) { ScopedReport R(Opts, Loc, ET); - Diag(Loc, DL_Error, "null pointer passed as argument %0, which is declared to " - "never be null") << Data->ArgIndex; + Diag(Loc, DL_Error, + "null pointer passed as argument %0, which is declared to " + "never be null") + << Data->ArgIndex; if (!Data->AttrLoc.isInvalid()) - Diag(Data->AttrLoc, DL_Note, "nonnull attribute specified here"); + Diag(Data->AttrLoc, DL_Note, "%0 specified here") + << (IsAttr ? "nonnull attribute" : "_Nonnull type annotation"); } void __ubsan::__ubsan_handle_nonnull_arg(NonNullArgData *Data) { GET_REPORT_OPTIONS(false); - handleNonNullArg(Data, Opts); + handleNonNullArg(Data, Opts, true); } void __ubsan::__ubsan_handle_nonnull_arg_abort(NonNullArgData *Data) { GET_REPORT_OPTIONS(true); - handleNonNullArg(Data, Opts); + handleNonNullArg(Data, Opts, true); + Die(); +} + +void __ubsan::__ubsan_handle_nullability_arg(NonNullArgData *Data) { + GET_REPORT_OPTIONS(false); + handleNonNullArg(Data, Opts, false); +} + +void __ubsan::__ubsan_handle_nullability_arg_abort(NonNullArgData *Data) { + GET_REPORT_OPTIONS(true); + handleNonNullArg(Data, Opts, false); Die(); } diff --git a/lib/ubsan/ubsan_handlers.h b/lib/ubsan/ubsan_handlers.h index 350eb91d1bf9..5857bc2495f5 100644 --- a/lib/ubsan/ubsan_handlers.h +++ b/lib/ubsan/ubsan_handlers.h @@ -136,8 +136,10 @@ struct NonNullReturnData { SourceLocation AttrLoc; }; -/// \brief Handle returning null from function with returns_nonnull attribute. +/// \brief Handle returning null from function with the returns_nonnull +/// attribute, or a return type annotated with _Nonnull. RECOVERABLE(nonnull_return, NonNullReturnData *Data) +RECOVERABLE(nullability_return, NonNullReturnData *Data) struct NonNullArgData { SourceLocation Loc; @@ -145,8 +147,10 @@ struct NonNullArgData { int ArgIndex; }; -/// \brief Handle passing null pointer to function with nonnull attribute. +/// \brief Handle passing null pointer to a function parameter with the nonnull +/// attribute, or a _Nonnull type annotation. RECOVERABLE(nonnull_arg, NonNullArgData *Data) +RECOVERABLE(nullability_arg, NonNullArgData *Data) /// \brief Known CFI check kinds. /// Keep in sync with the enum of the same name in CodeGenFunction.h diff --git a/lib/ubsan/ubsan_init.cc b/lib/ubsan/ubsan_init.cc index b4f42c4b8503..307bca37680e 100644 --- a/lib/ubsan/ubsan_init.cc +++ b/lib/ubsan/ubsan_init.cc @@ -23,6 +23,10 @@ using namespace __ubsan; +const char *__ubsan::GetSanititizerToolName() { + return "UndefinedBehaviorSanitizer"; +} + static enum { UBSAN_MODE_UNKNOWN = 0, UBSAN_MODE_STANDALONE, @@ -35,7 +39,7 @@ static void CommonInit() { } static void CommonStandaloneInit() { - SanitizerToolName = "UndefinedBehaviorSanitizer"; + SanitizerToolName = GetSanititizerToolName(); InitializeFlags(); CacheBinaryName(); __sanitizer_set_report_path(common_flags()->log_path); diff --git a/lib/ubsan/ubsan_init.h b/lib/ubsan/ubsan_init.h index 103ae24d15b3..f12fc2ced32a 100644 --- a/lib/ubsan/ubsan_init.h +++ b/lib/ubsan/ubsan_init.h @@ -15,6 +15,9 @@ namespace __ubsan { +// Get the full tool name for UBSan. +const char *GetSanititizerToolName(); + // Initialize UBSan as a standalone tool. Typically should be called early // during initialization. void InitAsStandalone(); diff --git a/lib/ubsan/ubsan_interface.inc b/lib/ubsan/ubsan_interface.inc new file mode 100644 index 000000000000..0e43ebc68299 --- /dev/null +++ b/lib/ubsan/ubsan_interface.inc @@ -0,0 +1,47 @@ +//===-- ubsan_interface.inc -----------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// Ubsan interface list. +//===----------------------------------------------------------------------===// +INTERFACE_FUNCTION(__ubsan_handle_add_overflow) +INTERFACE_FUNCTION(__ubsan_handle_add_overflow_abort) +INTERFACE_FUNCTION(__ubsan_handle_builtin_unreachable) +INTERFACE_FUNCTION(__ubsan_handle_cfi_check_fail) +INTERFACE_FUNCTION(__ubsan_handle_cfi_check_fail_abort) +INTERFACE_FUNCTION(__ubsan_handle_divrem_overflow) +INTERFACE_FUNCTION(__ubsan_handle_divrem_overflow_abort) +INTERFACE_FUNCTION(__ubsan_handle_float_cast_overflow) +INTERFACE_FUNCTION(__ubsan_handle_float_cast_overflow_abort) +INTERFACE_FUNCTION(__ubsan_handle_function_type_mismatch) +INTERFACE_FUNCTION(__ubsan_handle_function_type_mismatch_abort) +INTERFACE_FUNCTION(__ubsan_handle_load_invalid_value) +INTERFACE_FUNCTION(__ubsan_handle_load_invalid_value_abort) +INTERFACE_FUNCTION(__ubsan_handle_missing_return) +INTERFACE_FUNCTION(__ubsan_handle_mul_overflow) +INTERFACE_FUNCTION(__ubsan_handle_mul_overflow_abort) +INTERFACE_FUNCTION(__ubsan_handle_negate_overflow) +INTERFACE_FUNCTION(__ubsan_handle_negate_overflow_abort) +INTERFACE_FUNCTION(__ubsan_handle_nonnull_arg) +INTERFACE_FUNCTION(__ubsan_handle_nonnull_arg_abort) +INTERFACE_FUNCTION(__ubsan_handle_nonnull_return) +INTERFACE_FUNCTION(__ubsan_handle_nonnull_return_abort) +INTERFACE_FUNCTION(__ubsan_handle_nullability_arg) +INTERFACE_FUNCTION(__ubsan_handle_nullability_arg_abort) +INTERFACE_FUNCTION(__ubsan_handle_nullability_return) +INTERFACE_FUNCTION(__ubsan_handle_nullability_return_abort) +INTERFACE_FUNCTION(__ubsan_handle_out_of_bounds) +INTERFACE_FUNCTION(__ubsan_handle_out_of_bounds_abort) +INTERFACE_FUNCTION(__ubsan_handle_shift_out_of_bounds) +INTERFACE_FUNCTION(__ubsan_handle_shift_out_of_bounds_abort) +INTERFACE_FUNCTION(__ubsan_handle_sub_overflow) +INTERFACE_FUNCTION(__ubsan_handle_sub_overflow_abort) +INTERFACE_FUNCTION(__ubsan_handle_type_mismatch_v1) +INTERFACE_FUNCTION(__ubsan_handle_type_mismatch_v1_abort) +INTERFACE_FUNCTION(__ubsan_handle_vla_bound_not_positive) +INTERFACE_FUNCTION(__ubsan_handle_vla_bound_not_positive_abort) +INTERFACE_WEAK_FUNCTION(__ubsan_default_options) diff --git a/lib/ubsan/ubsan_win_dll_thunk.cc b/lib/ubsan/ubsan_win_dll_thunk.cc new file mode 100644 index 000000000000..a1d0dbd66056 --- /dev/null +++ b/lib/ubsan/ubsan_win_dll_thunk.cc @@ -0,0 +1,21 @@ +//===-- ubsan_win_dll_thunk.cc --------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file defines a family of thunks that should be statically linked into +// the DLLs that have instrumentation in order to delegate the calls to the +// shared runtime that lives in the main binary. +// See https://github.com/google/sanitizers/issues/209 for the details. +//===----------------------------------------------------------------------===// +#ifdef SANITIZER_DLL_THUNK +#include "sanitizer_common/sanitizer_win_dll_thunk.h" +// Ubsan interface functions. +#define INTERFACE_FUNCTION(Name) INTERCEPT_SANITIZER_FUNCTION(Name) +#define INTERFACE_WEAK_FUNCTION(Name) INTERCEPT_SANITIZER_WEAK_FUNCTION(Name) +#include "ubsan_interface.inc" +#endif // SANITIZER_DLL_THUNK diff --git a/lib/ubsan/ubsan_win_dynamic_runtime_thunk.cc b/lib/ubsan/ubsan_win_dynamic_runtime_thunk.cc new file mode 100644 index 000000000000..c9b74a4c9e09 --- /dev/null +++ b/lib/ubsan/ubsan_win_dynamic_runtime_thunk.cc @@ -0,0 +1,21 @@ +//===-- ubsan_win_dynamic_runtime_thunk.cc --------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file defines things that need to be present in the application modules +// to interact with Ubsan, when it is included in a dll. +// +//===----------------------------------------------------------------------===// +#ifdef SANITIZER_DYNAMIC_RUNTIME_THUNK +#define SANITIZER_IMPORT_INTERFACE 1 +#include "sanitizer_common/sanitizer_win_defs.h" +// Define weak alias for all weak functions imported from ubsan. +#define INTERFACE_FUNCTION(Name) +#define INTERFACE_WEAK_FUNCTION(Name) WIN_WEAK_IMPORT_DEF(Name) +#include "ubsan_interface.inc" +#endif // SANITIZER_DYNAMIC_RUNTIME_THUNK diff --git a/lib/ubsan/ubsan_win_weak_interception.cc b/lib/ubsan/ubsan_win_weak_interception.cc new file mode 100644 index 000000000000..353719eefacf --- /dev/null +++ b/lib/ubsan/ubsan_win_weak_interception.cc @@ -0,0 +1,23 @@ +//===-- ubsan_win_weak_interception.cc ------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// This module should be included in Ubsan when it is implemented as a shared +// library on Windows (dll), in order to delegate the calls of weak functions to +// the implementation in the main executable when a strong definition is +// provided. +//===----------------------------------------------------------------------===// +#ifdef SANITIZER_DYNAMIC +#include "sanitizer_common/sanitizer_win_weak_interception.h" +#include "ubsan_flags.h" +// Check if strong definitions for weak functions are present in the main +// executable. If that is the case, override dll functions to point to strong +// implementations. +#define INTERFACE_FUNCTION(Name) +#define INTERFACE_WEAK_FUNCTION(Name) INTERCEPT_SANITIZER_WEAK_FUNCTION(Name) +#include "ubsan_interface.inc" +#endif // SANITIZER_DYNAMIC diff --git a/lib/xray/CMakeLists.txt b/lib/xray/CMakeLists.txt index 9c7cf6ce361c..72caa9fac732 100644 --- a/lib/xray/CMakeLists.txt +++ b/lib/xray/CMakeLists.txt @@ -1,15 +1,15 @@ # Build for the XRay runtime support library. -# Core XRay runtime library implementation files. +# XRay runtime library implementation files. set(XRAY_SOURCES + xray_inmemory_log.cc xray_init.cc - xray_interface.cc xray_flags.cc - xray_inmemory_log.cc) - -# XRay flight data recorder (FDR) implementation files. -set(XRAY_FDR_SOURCES - xray_buffer_queue.cc) + xray_interface.cc + xray_buffer_queue.cc + xray_log_interface.cc + xray_fdr_logging.cc + xray_utils.cc) set(x86_64_SOURCES xray_x86_64.cc @@ -21,11 +21,38 @@ set(arm_SOURCES xray_trampoline_arm.S ${XRAY_SOURCES}) -set(armhf_SOURCES ${arm_SOURCES}) +set(armhf_SOURCES + ${arm_SOURCES}) set(aarch64_SOURCES - xray_AArch64.cc - xray_trampoline_AArch64.S + xray_AArch64.cc + xray_trampoline_AArch64.S + ${XRAY_SOURCES}) + +set(mips_SOURCES + xray_mips.cc + xray_trampoline_mips.S + ${XRAY_SOURCES}) + +set(mipsel_SOURCES + xray_mips.cc + xray_trampoline_mips.S + ${XRAY_SOURCES}) + +set(mips64_SOURCES + xray_mips64.cc + xray_trampoline_mips64.S + ${XRAY_SOURCES}) + +set(mips64el_SOURCES + xray_mips64.cc + xray_trampoline_mips64.S + ${XRAY_SOURCES}) + +set(powerpc64le_SOURCES + xray_powerpc64.cc + xray_trampoline_powerpc64.cc + xray_trampoline_powerpc64_asm.S ${XRAY_SOURCES}) include_directories(..) @@ -41,13 +68,7 @@ add_compiler_rt_object_libraries(RTXray SOURCES ${XRAY_SOURCES} CFLAGS ${XRAY_CFLAGS} DEFS ${XRAY_COMMON_DEFINITIONS}) -add_compiler_rt_object_libraries(RTXrayFDR - ARCHS ${XRAY_SUPPORTED_ARCH} - SOURCES ${XRAY_FDR_SOURCES} CFLAGS ${XRAY_CFLAGS} - DEFS ${XRAY_COMMON_DEFINITIONS}) - add_compiler_rt_component(xray) -add_compiler_rt_component(xray-fdr) set(XRAY_COMMON_RUNTIME_OBJECT_LIBS RTSanitizerCommon @@ -63,14 +84,6 @@ foreach(arch ${XRAY_SUPPORTED_ARCH}) DEFS ${XRAY_COMMON_DEFINITIONS} OBJECT_LIBS ${XRAY_COMMON_RUNTIME_OBJECT_LIBS} PARENT_TARGET xray) - add_compiler_rt_runtime(clang_rt.xray-fdr - STATIC - ARCHS ${arch} - SOURCES ${XRAY_FDR_SOURCES} - CFLAGS ${XRAY_CFLAGS} - DEFS ${XRAY_COMMON_DEFINITIONS} - OBJECT_LIBS ${XRAY_COMMON_RUNTIME_OBJECT_LIBS} - PARENT_TARGET xray-fdr) endif() endforeach() diff --git a/lib/xray/tests/CMakeLists.txt b/lib/xray/tests/CMakeLists.txt index 6cb17934c895..a1eb4a030ccc 100644 --- a/lib/xray/tests/CMakeLists.txt +++ b/lib/xray/tests/CMakeLists.txt @@ -8,14 +8,15 @@ set(XRAY_UNITTEST_CFLAGS ${COMPILER_RT_UNITTEST_CFLAGS} ${COMPILER_RT_GTEST_CFLAGS} -I${COMPILER_RT_SOURCE_DIR}/include - -I${COMPILER_RT_SOURCE_DIR}/lib/xray) + -I${COMPILER_RT_SOURCE_DIR}/lib/xray + -I${COMPILER_RT_SOURCE_DIR}/lib) macro(xray_compile obj_list source arch) get_filename_component(basename ${source} NAME) set(output_obj "${basename}.${arch}.o") get_target_flags_for_arch(${arch} TARGET_CFLAGS) if(NOT COMPILER_RT_STANDALONE_BUILD) - list(APPEND COMPILE_DEPS gtest_main xray-fdr) + list(APPEND COMPILE_DEPS gtest_main xray) endif() clang_compile(${output_obj} ${source} CFLAGS ${XRAY_UNITTEST_CFLAGS} ${TARGET_CFLAGS} @@ -38,16 +39,17 @@ macro(add_xray_unittest testname) get_target_flags_for_arch(${arch} TARGET_LINK_FLAGS) set(TEST_DEPS ${TEST_OBJECTS}) if(NOT COMPILER_RT_STANDALONE_BUILD) - list(APPEND TEST_DEPS gtest_main xray-fdr) + list(APPEND TEST_DEPS gtest_main xray) endif() if(NOT APPLE) - add_compiler_rt_test(XRayUnitTests ${testname} + add_compiler_rt_test(XRayUnitTests ${testname}-${arch} OBJECTS ${TEST_OBJECTS} DEPS ${TEST_DEPS} LINK_FLAGS ${TARGET_LINK_FLAGS} -lstdc++ -lm ${CMAKE_THREAD_LIBS_INIT} -lpthread - -L${COMPILER_RT_LIBRARY_OUTPUT_DIR} -lclang_rt.xray-fdr-${arch}) + -L${COMPILER_RT_LIBRARY_OUTPUT_DIR} -lclang_rt.xray-${arch} + -ldl -lrt) endif() # FIXME: Figure out how to run even just the unit tests on APPLE. endforeach() diff --git a/lib/xray/tests/unit/CMakeLists.txt b/lib/xray/tests/unit/CMakeLists.txt index 3e5412d41e6e..62d01f239581 100644 --- a/lib/xray/tests/unit/CMakeLists.txt +++ b/lib/xray/tests/unit/CMakeLists.txt @@ -1,2 +1,4 @@ add_xray_unittest(XRayBufferQueueTest SOURCES buffer_queue_test.cc xray_unit_test_main.cc) +add_xray_unittest(XRayFDRLoggingTest SOURCES + fdr_logging_test.cc xray_unit_test_main.cc) diff --git a/lib/xray/tests/unit/buffer_queue_test.cc b/lib/xray/tests/unit/buffer_queue_test.cc index d46f19402c2a..ac89a8dbc50e 100644 --- a/lib/xray/tests/unit/buffer_queue_test.cc +++ b/lib/xray/tests/unit/buffer_queue_test.cc @@ -14,68 +14,101 @@ #include "gtest/gtest.h" #include <future> -#include <system_error> #include <unistd.h> namespace __xray { static constexpr size_t kSize = 4096; -TEST(BufferQueueTest, API) { BufferQueue Buffers(kSize, 1); } +TEST(BufferQueueTest, API) { + bool Success = false; + BufferQueue Buffers(kSize, 1, Success); + ASSERT_TRUE(Success); +} TEST(BufferQueueTest, GetAndRelease) { - BufferQueue Buffers(kSize, 1); + bool Success = false; + BufferQueue Buffers(kSize, 1, Success); + ASSERT_TRUE(Success); BufferQueue::Buffer Buf; - ASSERT_EQ(Buffers.getBuffer(Buf), std::error_code()); + ASSERT_EQ(Buffers.getBuffer(Buf), BufferQueue::ErrorCode::Ok); ASSERT_NE(nullptr, Buf.Buffer); - ASSERT_EQ(Buffers.releaseBuffer(Buf), std::error_code()); + ASSERT_EQ(Buffers.releaseBuffer(Buf), BufferQueue::ErrorCode::Ok); ASSERT_EQ(nullptr, Buf.Buffer); } TEST(BufferQueueTest, GetUntilFailed) { - BufferQueue Buffers(kSize, 1); + bool Success = false; + BufferQueue Buffers(kSize, 1, Success); + ASSERT_TRUE(Success); BufferQueue::Buffer Buf0; - EXPECT_EQ(Buffers.getBuffer(Buf0), std::error_code()); + EXPECT_EQ(Buffers.getBuffer(Buf0), BufferQueue::ErrorCode::Ok); BufferQueue::Buffer Buf1; - EXPECT_EQ(std::errc::not_enough_memory, Buffers.getBuffer(Buf1)); - EXPECT_EQ(Buffers.releaseBuffer(Buf0), std::error_code()); + EXPECT_EQ(BufferQueue::ErrorCode::NotEnoughMemory, Buffers.getBuffer(Buf1)); + EXPECT_EQ(Buffers.releaseBuffer(Buf0), BufferQueue::ErrorCode::Ok); } TEST(BufferQueueTest, ReleaseUnknown) { - BufferQueue Buffers(kSize, 1); + bool Success = false; + BufferQueue Buffers(kSize, 1, Success); + ASSERT_TRUE(Success); BufferQueue::Buffer Buf; Buf.Buffer = reinterpret_cast<void *>(0xdeadbeef); Buf.Size = kSize; - EXPECT_EQ(std::errc::argument_out_of_domain, Buffers.releaseBuffer(Buf)); + EXPECT_EQ(BufferQueue::ErrorCode::UnrecognizedBuffer, + Buffers.releaseBuffer(Buf)); } TEST(BufferQueueTest, ErrorsWhenFinalising) { - BufferQueue Buffers(kSize, 2); + bool Success = false; + BufferQueue Buffers(kSize, 2, Success); + ASSERT_TRUE(Success); BufferQueue::Buffer Buf; - ASSERT_EQ(Buffers.getBuffer(Buf), std::error_code()); + ASSERT_EQ(Buffers.getBuffer(Buf), BufferQueue::ErrorCode::Ok); ASSERT_NE(nullptr, Buf.Buffer); - ASSERT_EQ(Buffers.finalize(), std::error_code()); + ASSERT_EQ(Buffers.finalize(), BufferQueue::ErrorCode::Ok); BufferQueue::Buffer OtherBuf; - ASSERT_EQ(std::errc::state_not_recoverable, Buffers.getBuffer(OtherBuf)); - ASSERT_EQ(std::errc::state_not_recoverable, Buffers.finalize()); - ASSERT_EQ(Buffers.releaseBuffer(Buf), std::error_code()); + ASSERT_EQ(BufferQueue::ErrorCode::AlreadyFinalized, + Buffers.getBuffer(OtherBuf)); + ASSERT_EQ(BufferQueue::ErrorCode::AlreadyFinalized, + Buffers.finalize()); + ASSERT_EQ(Buffers.releaseBuffer(Buf), BufferQueue::ErrorCode::Ok); } TEST(BufferQueueTest, MultiThreaded) { - BufferQueue Buffers(kSize, 100); + bool Success = false; + BufferQueue Buffers(kSize, 100, Success); + ASSERT_TRUE(Success); auto F = [&] { BufferQueue::Buffer B; - while (!Buffers.getBuffer(B)) { + while (true) { + auto EC = Buffers.getBuffer(B); + if (EC != BufferQueue::ErrorCode::Ok) + return; Buffers.releaseBuffer(B); } }; auto T0 = std::async(std::launch::async, F); auto T1 = std::async(std::launch::async, F); auto T2 = std::async(std::launch::async, [&] { - while (!Buffers.finalize()) + while (Buffers.finalize() != BufferQueue::ErrorCode::Ok) ; }); F(); } +TEST(BufferQueueTest, Apply) { + bool Success = false; + BufferQueue Buffers(kSize, 10, Success); + ASSERT_TRUE(Success); + auto Count = 0; + BufferQueue::Buffer B; + for (int I = 0; I < 10; ++I) { + ASSERT_EQ(Buffers.getBuffer(B), BufferQueue::ErrorCode::Ok); + ASSERT_EQ(Buffers.releaseBuffer(B), BufferQueue::ErrorCode::Ok); + } + Buffers.apply([&](const BufferQueue::Buffer &B) { ++Count; }); + ASSERT_EQ(Count, 10); +} + } // namespace __xray diff --git a/lib/xray/tests/unit/fdr_logging_test.cc b/lib/xray/tests/unit/fdr_logging_test.cc new file mode 100644 index 000000000000..0d5e99a74334 --- /dev/null +++ b/lib/xray/tests/unit/fdr_logging_test.cc @@ -0,0 +1,127 @@ +//===-- fdr_logging_test.cc -----------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file is a part of XRay, a function call tracing system. +// +//===----------------------------------------------------------------------===// +#include "xray_fdr_logging.h" +#include "gtest/gtest.h" + +#include <fcntl.h> +#include <iostream> +#include <sys/mman.h> +#include <sys/stat.h> +#include <sys/types.h> +#include <system_error> +#include <unistd.h> + +#include "xray/xray_records.h" + +namespace __xray { +namespace { + +constexpr auto kBufferSize = 16384; +constexpr auto kBufferMax = 10; + +struct ScopedFileCloserAndDeleter { + explicit ScopedFileCloserAndDeleter(int Fd, const char *Filename) + : Fd(Fd), Filename(Filename) {} + + ~ScopedFileCloserAndDeleter() { + if (Fd) { + close(Fd); + unlink(Filename); + } + } + + int Fd; + const char *Filename; +}; + +TEST(FDRLoggingTest, Simple) { + FDRLoggingOptions Options; + Options.ReportErrors = true; + char TmpFilename[] = "fdr-logging-test.XXXXXX"; + Options.Fd = mkstemp(TmpFilename); + ASSERT_NE(Options.Fd, -1); + ASSERT_EQ(fdrLoggingInit(kBufferSize, kBufferMax, &Options, + sizeof(FDRLoggingOptions)), + XRayLogInitStatus::XRAY_LOG_INITIALIZED); + fdrLoggingHandleArg0(1, XRayEntryType::ENTRY); + fdrLoggingHandleArg0(1, XRayEntryType::EXIT); + ASSERT_EQ(fdrLoggingFinalize(), XRayLogInitStatus::XRAY_LOG_FINALIZED); + ASSERT_EQ(fdrLoggingFlush(), XRayLogFlushStatus::XRAY_LOG_FLUSHED); + ASSERT_EQ(fdrLoggingReset(), XRayLogInitStatus::XRAY_LOG_UNINITIALIZED); + + // To do this properly, we have to close the file descriptor then re-open the + // file for reading this time. + ASSERT_EQ(close(Options.Fd), 0); + int Fd = open(TmpFilename, O_RDONLY); + ASSERT_NE(-1, Fd); + ScopedFileCloserAndDeleter Guard(Fd, TmpFilename); + auto Size = lseek(Fd, 0, SEEK_END); + ASSERT_NE(Size, 0); + // Map the file contents. + const char *Contents = static_cast<const char *>( + mmap(NULL, Size, PROT_READ, MAP_PRIVATE, Fd, 0)); + ASSERT_NE(Contents, nullptr); + + XRayFileHeader H; + memcpy(&H, Contents, sizeof(XRayFileHeader)); + ASSERT_EQ(H.Version, 1); + ASSERT_EQ(H.Type, FileTypes::FDR_LOG); + + // We require one buffer at least to have the "start of buffer" metadata + // record. + MetadataRecord MDR; + memcpy(&MDR, Contents + sizeof(XRayFileHeader), sizeof(MetadataRecord)); + ASSERT_EQ(MDR.RecordKind, uint8_t(MetadataRecord::RecordKinds::NewBuffer)); +} + +TEST(FDRLoggingTest, Multiple) { + FDRLoggingOptions Options; + char TmpFilename[] = "fdr-logging-test.XXXXXX"; + Options.Fd = mkstemp(TmpFilename); + ASSERT_NE(Options.Fd, -1); + ASSERT_EQ(fdrLoggingInit(kBufferSize, kBufferMax, &Options, + sizeof(FDRLoggingOptions)), + XRayLogInitStatus::XRAY_LOG_INITIALIZED); + for (uint64_t I = 0; I < 100; ++I) { + fdrLoggingHandleArg0(1, XRayEntryType::ENTRY); + fdrLoggingHandleArg0(1, XRayEntryType::EXIT); + } + ASSERT_EQ(fdrLoggingFinalize(), XRayLogInitStatus::XRAY_LOG_FINALIZED); + ASSERT_EQ(fdrLoggingFlush(), XRayLogFlushStatus::XRAY_LOG_FLUSHED); + ASSERT_EQ(fdrLoggingReset(), XRayLogInitStatus::XRAY_LOG_UNINITIALIZED); + + // To do this properly, we have to close the file descriptor then re-open the + // file for reading this time. + ASSERT_EQ(close(Options.Fd), 0); + int Fd = open(TmpFilename, O_RDONLY); + ASSERT_NE(-1, Fd); + ScopedFileCloserAndDeleter Guard(Fd, TmpFilename); + auto Size = lseek(Fd, 0, SEEK_END); + ASSERT_NE(Size, 0); + // Map the file contents. + const char *Contents = static_cast<const char *>( + mmap(NULL, Size, PROT_READ, MAP_PRIVATE, Fd, 0)); + ASSERT_NE(Contents, nullptr); + + XRayFileHeader H; + memcpy(&H, Contents, sizeof(XRayFileHeader)); + ASSERT_EQ(H.Version, 1); + ASSERT_EQ(H.Type, FileTypes::FDR_LOG); + + MetadataRecord MDR0; + memcpy(&MDR0, Contents + sizeof(XRayFileHeader), sizeof(MetadataRecord)); + ASSERT_EQ(MDR0.RecordKind, uint8_t(MetadataRecord::RecordKinds::NewBuffer)); +} + +} // namespace +} // namespace __xray diff --git a/lib/xray/xray_AArch64.cc b/lib/xray/xray_AArch64.cc index 0c1df22ec2ef..8d1c7c5d807f 100644 --- a/lib/xray/xray_AArch64.cc +++ b/lib/xray/xray_AArch64.cc @@ -14,7 +14,6 @@ //===----------------------------------------------------------------------===// #include "sanitizer_common/sanitizer_common.h" #include "xray_defs.h" -#include "xray_emulate_tsc.h" #include "xray_interface_internal.h" #include <atomic> #include <cassert> @@ -24,19 +23,6 @@ extern "C" void __clear_cache(void* start, void* end); namespace __xray { -uint64_t cycleFrequency() XRAY_NEVER_INSTRUMENT { - // There is no instruction like RDTSCP in user mode on ARM. ARM's CP15 does - // not have a constant frequency like TSC on x86[_64]; it may go faster or - // slower depending on CPU's turbo or power saving modes. Furthermore, to - // read from CP15 on ARM a kernel modification or a driver is needed. - // We can not require this from users of compiler-rt. - // So on ARM we use clock_gettime(2) which gives the result in nanoseconds. - // To get the measurements per second, we scale this by the number of - // nanoseconds per second, pretending that the TSC frequency is 1GHz and - // one TSC tick is 1 nanosecond. - return NanosecondsPerSecond; -} - // The machine codes for some instructions used in runtime patching. enum class PatchOpcodes : uint32_t { PO_StpX0X30SP_m16e = 0xA9BF7BE0, // STP X0, X30, [SP, #-16]! @@ -106,8 +92,9 @@ inline static bool patchSled(const bool Enable, const uint32_t FuncId, } bool patchFunctionEntry(const bool Enable, const uint32_t FuncId, - const XRaySledEntry &Sled) XRAY_NEVER_INSTRUMENT { - return patchSled(Enable, FuncId, Sled, __xray_FunctionEntry); + const XRaySledEntry &Sled, + void (*Trampoline)()) XRAY_NEVER_INSTRUMENT { + return patchSled(Enable, FuncId, Sled, Trampoline); } bool patchFunctionExit(const bool Enable, const uint32_t FuncId, @@ -117,9 +104,14 @@ bool patchFunctionExit(const bool Enable, const uint32_t FuncId, bool patchFunctionTailExit(const bool Enable, const uint32_t FuncId, const XRaySledEntry &Sled) XRAY_NEVER_INSTRUMENT { - // FIXME: In the future we'd need to distinguish between non-tail exits and - // tail exits for better information preservation. - return patchSled(Enable, FuncId, Sled, __xray_FunctionExit); + return patchSled(Enable, FuncId, Sled, __xray_FunctionTailExit); } +// FIXME: Maybe implement this better? +bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT { return true; } + } // namespace __xray + +extern "C" void __xray_ArgLoggerEntry() XRAY_NEVER_INSTRUMENT { + // FIXME: this will have to be implemented in the trampoline assembly file +} diff --git a/lib/xray/xray_arm.cc b/lib/xray/xray_arm.cc index f5e2cd2a93c2..26d673ec23a0 100644 --- a/lib/xray/xray_arm.cc +++ b/lib/xray/xray_arm.cc @@ -14,7 +14,6 @@ //===----------------------------------------------------------------------===// #include "sanitizer_common/sanitizer_common.h" #include "xray_defs.h" -#include "xray_emulate_tsc.h" #include "xray_interface_internal.h" #include <atomic> #include <cassert> @@ -23,19 +22,6 @@ extern "C" void __clear_cache(void* start, void* end); namespace __xray { -uint64_t cycleFrequency() XRAY_NEVER_INSTRUMENT { - // There is no instruction like RDTSCP in user mode on ARM. ARM's CP15 does - // not have a constant frequency like TSC on x86[_64]; it may go faster or - // slower depending on CPU's turbo or power saving modes. Furthermore, to - // read from CP15 on ARM a kernel modification or a driver is needed. - // We can not require this from users of compiler-rt. - // So on ARM we use clock_gettime(2) which gives the result in nanoseconds. - // To get the measurements per second, we scale this by the number of - // nanoseconds per second, pretending that the TSC frequency is 1GHz and - // one TSC tick is 1 nanosecond. - return NanosecondsPerSecond; -} - // The machine codes for some instructions used in runtime patching. enum class PatchOpcodes : uint32_t { PO_PushR0Lr = 0xE92D4001, // PUSH {r0, lr} @@ -74,7 +60,7 @@ write32bitLoadReg(uint8_t regNo, uint32_t *Address, // MOVW r0, #<lower 16 bits of the |Value|> // MOVT r0, #<higher 16 bits of the |Value|> inline static uint32_t * -Write32bitLoadR0(uint32_t *Address, +write32bitLoadR0(uint32_t *Address, const uint32_t Value) XRAY_NEVER_INSTRUMENT { return write32bitLoadReg(0, Address, Value); } @@ -83,7 +69,7 @@ Write32bitLoadR0(uint32_t *Address, // MOVW ip, #<lower 16 bits of the |Value|> // MOVT ip, #<higher 16 bits of the |Value|> inline static uint32_t * -Write32bitLoadIP(uint32_t *Address, +write32bitLoadIP(uint32_t *Address, const uint32_t Value) XRAY_NEVER_INSTRUMENT { return write32bitLoadReg(12, Address, Value); } @@ -121,9 +107,9 @@ inline static bool patchSled(const bool Enable, const uint32_t FuncId, uint32_t *CurAddress = FirstAddress + 1; if (Enable) { CurAddress = - Write32bitLoadR0(CurAddress, reinterpret_cast<uint32_t>(FuncId)); + write32bitLoadR0(CurAddress, reinterpret_cast<uint32_t>(FuncId)); CurAddress = - Write32bitLoadIP(CurAddress, reinterpret_cast<uint32_t>(TracingHook)); + write32bitLoadIP(CurAddress, reinterpret_cast<uint32_t>(TracingHook)); *CurAddress = uint32_t(PatchOpcodes::PO_BlxIp); CurAddress++; *CurAddress = uint32_t(PatchOpcodes::PO_PopR0Lr); @@ -142,8 +128,9 @@ inline static bool patchSled(const bool Enable, const uint32_t FuncId, } bool patchFunctionEntry(const bool Enable, const uint32_t FuncId, - const XRaySledEntry &Sled) XRAY_NEVER_INSTRUMENT { - return patchSled(Enable, FuncId, Sled, __xray_FunctionEntry); + const XRaySledEntry &Sled, + void (*Trampoline)()) XRAY_NEVER_INSTRUMENT { + return patchSled(Enable, FuncId, Sled, Trampoline); } bool patchFunctionExit(const bool Enable, const uint32_t FuncId, @@ -153,9 +140,14 @@ bool patchFunctionExit(const bool Enable, const uint32_t FuncId, bool patchFunctionTailExit(const bool Enable, const uint32_t FuncId, const XRaySledEntry &Sled) XRAY_NEVER_INSTRUMENT { - // FIXME: In the future we'd need to distinguish between non-tail exits and - // tail exits for better information preservation. - return patchSled(Enable, FuncId, Sled, __xray_FunctionExit); + return patchSled(Enable, FuncId, Sled, __xray_FunctionTailExit); } +// FIXME: Maybe implement this better? +bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT { return true; } + } // namespace __xray + +extern "C" void __xray_ArgLoggerEntry() XRAY_NEVER_INSTRUMENT { + // FIXME: this will have to be implemented in the trampoline assembly file +} diff --git a/lib/xray/xray_buffer_queue.cc b/lib/xray/xray_buffer_queue.cc index 7e5462fb8e11..7ba755ac3069 100644 --- a/lib/xray/xray_buffer_queue.cc +++ b/lib/xray/xray_buffer_queue.cc @@ -13,53 +13,69 @@ // //===----------------------------------------------------------------------===// #include "xray_buffer_queue.h" -#include <cassert> +#include "sanitizer_common/sanitizer_common.h" +#include "sanitizer_common/sanitizer_libc.h" + #include <cstdlib> +#include <tuple> using namespace __xray; +using namespace __sanitizer; -BufferQueue::BufferQueue(std::size_t B, std::size_t N) - : BufferSize(B), Buffers(N), Mutex(), OwnedBuffers(), Finalizing(false) { - for (auto &Buf : Buffers) { +BufferQueue::BufferQueue(std::size_t B, std::size_t N, bool &Success) + : BufferSize(B), Buffers(N), Mutex(), OwnedBuffers(), Finalizing{0} { + for (auto &T : Buffers) { void *Tmp = malloc(BufferSize); + if (Tmp == nullptr) { + Success = false; + return; + } + + auto &Buf = std::get<0>(T); Buf.Buffer = Tmp; Buf.Size = B; - if (Tmp != 0) - OwnedBuffers.insert(Tmp); + OwnedBuffers.emplace(Tmp); } + Success = true; } -std::error_code BufferQueue::getBuffer(Buffer &Buf) { - if (Finalizing.load(std::memory_order_acquire)) - return std::make_error_code(std::errc::state_not_recoverable); - std::lock_guard<std::mutex> Guard(Mutex); +BufferQueue::ErrorCode BufferQueue::getBuffer(Buffer &Buf) { + if (__sanitizer::atomic_load(&Finalizing, __sanitizer::memory_order_acquire)) + return ErrorCode::QueueFinalizing; + __sanitizer::BlockingMutexLock Guard(&Mutex); if (Buffers.empty()) - return std::make_error_code(std::errc::not_enough_memory); - Buf = Buffers.front(); + return ErrorCode::NotEnoughMemory; + auto &T = Buffers.front(); + auto &B = std::get<0>(T); + Buf = B; + B.Buffer = nullptr; + B.Size = 0; Buffers.pop_front(); - return {}; + return ErrorCode::Ok; } -std::error_code BufferQueue::releaseBuffer(Buffer &Buf) { +BufferQueue::ErrorCode BufferQueue::releaseBuffer(Buffer &Buf) { if (OwnedBuffers.count(Buf.Buffer) == 0) - return std::make_error_code(std::errc::argument_out_of_domain); - std::lock_guard<std::mutex> Guard(Mutex); - Buffers.push_back(Buf); + return ErrorCode::UnrecognizedBuffer; + __sanitizer::BlockingMutexLock Guard(&Mutex); + + // Now that the buffer has been released, we mark it as "used". + Buffers.emplace(Buffers.end(), Buf, true /* used */); Buf.Buffer = nullptr; - Buf.Size = BufferSize; - return {}; + Buf.Size = 0; + return ErrorCode::Ok; } -std::error_code BufferQueue::finalize() { - if (Finalizing.exchange(true, std::memory_order_acq_rel)) - return std::make_error_code(std::errc::state_not_recoverable); - return {}; +BufferQueue::ErrorCode BufferQueue::finalize() { + if (__sanitizer::atomic_exchange(&Finalizing, 1, + __sanitizer::memory_order_acq_rel)) + return ErrorCode::QueueFinalizing; + return ErrorCode::Ok; } BufferQueue::~BufferQueue() { - for (auto &Buf : Buffers) { + for (auto &T : Buffers) { + auto &Buf = std::get<0>(T); free(Buf.Buffer); - Buf.Buffer = nullptr; - Buf.Size = 0; } } diff --git a/lib/xray/xray_buffer_queue.h b/lib/xray/xray_buffer_queue.h index bf0b7af9df4d..e051695a297b 100644 --- a/lib/xray/xray_buffer_queue.h +++ b/lib/xray/xray_buffer_queue.h @@ -15,12 +15,11 @@ #ifndef XRAY_BUFFER_QUEUE_H #define XRAY_BUFFER_QUEUE_H -#include <atomic> -#include <cstdint> +#include "sanitizer_common/sanitizer_atomic.h" +#include "sanitizer_common/sanitizer_mutex.h" #include <deque> -#include <mutex> -#include <system_error> #include <unordered_set> +#include <utility> namespace __xray { @@ -33,19 +32,47 @@ class BufferQueue { public: struct Buffer { void *Buffer = nullptr; - std::size_t Size = 0; + size_t Size = 0; }; private: - std::size_t BufferSize; - std::deque<Buffer> Buffers; - std::mutex Mutex; + size_t BufferSize; + + // We use a bool to indicate whether the Buffer has been used in this + // freelist implementation. + std::deque<std::tuple<Buffer, bool>> Buffers; + __sanitizer::BlockingMutex Mutex; std::unordered_set<void *> OwnedBuffers; - std::atomic<bool> Finalizing; + __sanitizer::atomic_uint8_t Finalizing; public: - /// Initialise a queue of size |N| with buffers of size |B|. - BufferQueue(std::size_t B, std::size_t N); + enum class ErrorCode : unsigned { + Ok, + NotEnoughMemory, + QueueFinalizing, + UnrecognizedBuffer, + AlreadyFinalized, + }; + + static const char *getErrorString(ErrorCode E) { + switch (E) { + case ErrorCode::Ok: + return "(none)"; + case ErrorCode::NotEnoughMemory: + return "no available buffers in the queue"; + case ErrorCode::QueueFinalizing: + return "queue already finalizing"; + case ErrorCode::UnrecognizedBuffer: + return "buffer being returned not owned by buffer queue"; + case ErrorCode::AlreadyFinalized: + return "queue already finalized"; + } + return "unknown error"; + } + + /// Initialise a queue of size |N| with buffers of size |B|. We report success + /// through |Success|. + BufferQueue(size_t B, size_t N, bool &Success); /// Updates |Buf| to contain the pointer to an appropriate buffer. Returns an /// error in case there are no available buffers to return when we will run @@ -58,24 +85,41 @@ public: /// - std::errc::not_enough_memory on exceeding MaxSize. /// - no error when we find a Buffer. /// - std::errc::state_not_recoverable on finalising BufferQueue. - std::error_code getBuffer(Buffer &Buf); + ErrorCode getBuffer(Buffer &Buf); /// Updates |Buf| to point to nullptr, with size 0. /// /// Returns: /// - ... - std::error_code releaseBuffer(Buffer &Buf); - - bool finalizing() const { return Finalizing.load(std::memory_order_acquire); } - - // Sets the state of the BufferQueue to finalizing, which ensures that: - // - // - All subsequent attempts to retrieve a Buffer will fail. - // - All releaseBuffer operations will not fail. - // - // After a call to finalize succeeds, all subsequent calls to finalize will - // fail with std::errc::state_not_recoverable. - std::error_code finalize(); + ErrorCode releaseBuffer(Buffer &Buf); + + bool finalizing() const { + return __sanitizer::atomic_load(&Finalizing, + __sanitizer::memory_order_acquire); + } + + /// Returns the configured size of the buffers in the buffer queue. + size_t ConfiguredBufferSize() const { return BufferSize; } + + /// Sets the state of the BufferQueue to finalizing, which ensures that: + /// + /// - All subsequent attempts to retrieve a Buffer will fail. + /// - All releaseBuffer operations will not fail. + /// + /// After a call to finalize succeeds, all subsequent calls to finalize will + /// fail with std::errc::state_not_recoverable. + ErrorCode finalize(); + + /// Applies the provided function F to each Buffer in the queue, only if the + /// Buffer is marked 'used' (i.e. has been the result of getBuffer(...) and a + /// releaseBuffer(...) operation. + template <class F> void apply(F Fn) { + __sanitizer::BlockingMutexLock G(&Mutex); + for (const auto &T : Buffers) { + if (std::get<1>(T)) + Fn(std::get<0>(T)); + } + } // Cleans up allocated buffers. ~BufferQueue(); diff --git a/lib/xray/xray_emulate_tsc.h b/lib/xray/xray_emulate_tsc.h deleted file mode 100644 index a3e8b1c92eb4..000000000000 --- a/lib/xray/xray_emulate_tsc.h +++ /dev/null @@ -1,40 +0,0 @@ -//===-- xray_emulate_tsc.h --------------------------------------*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file is distributed under the University of Illinois Open Source -// License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// This file is a part of XRay, a dynamic runtime instrumentation system. -// -//===----------------------------------------------------------------------===// -#ifndef XRAY_EMULATE_TSC_H -#define XRAY_EMULATE_TSC_H - -#include "sanitizer_common/sanitizer_common.h" -#include "sanitizer_common/sanitizer_internal_defs.h" -#include "xray_defs.h" -#include <cerrno> -#include <cstdint> -#include <time.h> - -namespace __xray { - -static constexpr uint64_t NanosecondsPerSecond = 1000ULL * 1000 * 1000; - -ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT { - timespec TS; - int result = clock_gettime(CLOCK_REALTIME, &TS); - if (result != 0) { - Report("clock_gettime(2) returned %d, errno=%d.", result, int(errno)); - TS.tv_sec = 0; - TS.tv_nsec = 0; - } - CPU = 0; - return TS.tv_sec * NanosecondsPerSecond + TS.tv_nsec; -} -} - -#endif // XRAY_EMULATE_TSC_H diff --git a/lib/xray/xray_fdr_log_records.h b/lib/xray/xray_fdr_log_records.h new file mode 100644 index 000000000000..36d9410d16f6 --- /dev/null +++ b/lib/xray/xray_fdr_log_records.h @@ -0,0 +1,65 @@ +//===-- xray_fdr_log_records.h -------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file is a part of XRay, a function call tracing system. +// +//===----------------------------------------------------------------------===// +#ifndef XRAY_XRAY_FDR_LOG_RECORDS_H +#define XRAY_XRAY_FDR_LOG_RECORDS_H + +enum class RecordType : uint8_t { Function, Metadata }; + +// A MetadataRecord encodes the kind of record in its first byte, and have 15 +// additional bytes in the end to hold free-form data. +struct alignas(16) MetadataRecord { + // A MetadataRecord must always have a type of 1. + /* RecordType */ uint8_t Type : 1; + + // Each kind of record is represented as a 7-bit value (even though we use an + // unsigned 8-bit enum class to do so). + enum class RecordKinds : uint8_t { + NewBuffer, + EndOfBuffer, + NewCPUId, + TSCWrap, + WalltimeMarker, + }; + // Use 7 bits to identify this record type. + /* RecordKinds */ uint8_t RecordKind : 7; + char Data[15]; +} __attribute__((packed)); + +static_assert(sizeof(MetadataRecord) == 16, "Wrong size for MetadataRecord."); + +struct alignas(8) FunctionRecord { + // A FunctionRecord must always have a type of 0. + /* RecordType */ uint8_t Type : 1; + enum class RecordKinds { + FunctionEnter = 0x00, + FunctionExit = 0x01, + FunctionTailExit = 0x02, + }; + /* RecordKinds */ uint8_t RecordKind : 3; + + // We only use 28 bits of the function ID, so that we can use as few bytes as + // possible. This means we only support 2^28 (268,435,456) unique function ids + // in a single binary. + int FuncId : 28; + + // We use another 4 bytes to hold the delta between the previous entry's TSC. + // In case we've found that the distance is greater than the allowable 32 bits + // (either because we are running in a different CPU and the TSC might be + // different then), we should use a MetadataRecord before this FunctionRecord + // that will contain the full TSC for that CPU, and keep this to 0. + uint32_t TSCDelta; +} __attribute__((packed)); + +static_assert(sizeof(FunctionRecord) == 8, "Wrong size for FunctionRecord."); + +#endif // XRAY_XRAY_FDR_LOG_RECORDS_H diff --git a/lib/xray/xray_fdr_logging.cc b/lib/xray/xray_fdr_logging.cc new file mode 100644 index 000000000000..c5b63b0a564e --- /dev/null +++ b/lib/xray/xray_fdr_logging.cc @@ -0,0 +1,229 @@ +//===-- xray_fdr_logging.cc ------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file is a part of XRay, a dynamic runtime instrumentation system. +// +// Here we implement the Flight Data Recorder mode for XRay, where we use +// compact structures to store records in memory as well as when writing out the +// data to files. +// +//===----------------------------------------------------------------------===// +#include "xray_fdr_logging.h" +#include <algorithm> +#include <bitset> +#include <cerrno> +#include <cstring> +#include <sys/syscall.h> +#include <sys/time.h> +#include <time.h> +#include <unistd.h> +#include <unordered_map> + +#include "sanitizer_common/sanitizer_atomic.h" +#include "sanitizer_common/sanitizer_common.h" +#include "xray/xray_interface.h" +#include "xray/xray_records.h" +#include "xray_buffer_queue.h" +#include "xray_defs.h" +#include "xray_fdr_logging_impl.h" +#include "xray_flags.h" +#include "xray_tsc.h" +#include "xray_utils.h" + +namespace __xray { + +// Global BufferQueue. +std::shared_ptr<BufferQueue> BQ; + +__sanitizer::atomic_sint32_t LoggingStatus = { + XRayLogInitStatus::XRAY_LOG_UNINITIALIZED}; + +__sanitizer::atomic_sint32_t LogFlushStatus = { + XRayLogFlushStatus::XRAY_LOG_NOT_FLUSHING}; + +std::unique_ptr<FDRLoggingOptions> FDROptions; + +XRayLogInitStatus fdrLoggingInit(std::size_t BufferSize, std::size_t BufferMax, + void *Options, + size_t OptionsSize) XRAY_NEVER_INSTRUMENT { + if (OptionsSize != sizeof(FDRLoggingOptions)) + return static_cast<XRayLogInitStatus>(__sanitizer::atomic_load( + &LoggingStatus, __sanitizer::memory_order_acquire)); + s32 CurrentStatus = XRayLogInitStatus::XRAY_LOG_UNINITIALIZED; + if (!__sanitizer::atomic_compare_exchange_strong( + &LoggingStatus, &CurrentStatus, + XRayLogInitStatus::XRAY_LOG_INITIALIZING, + __sanitizer::memory_order_release)) + return static_cast<XRayLogInitStatus>(CurrentStatus); + + FDROptions.reset(new FDRLoggingOptions()); + memcpy(FDROptions.get(), Options, OptionsSize); + bool Success = false; + BQ = std::make_shared<BufferQueue>(BufferSize, BufferMax, Success); + if (!Success) { + Report("BufferQueue init failed.\n"); + return XRayLogInitStatus::XRAY_LOG_UNINITIALIZED; + } + + // Install the actual handleArg0 handler after initialising the buffers. + __xray_set_handler(fdrLoggingHandleArg0); + + __sanitizer::atomic_store(&LoggingStatus, + XRayLogInitStatus::XRAY_LOG_INITIALIZED, + __sanitizer::memory_order_release); + Report("XRay FDR init successful.\n"); + return XRayLogInitStatus::XRAY_LOG_INITIALIZED; +} + +// Must finalize before flushing. +XRayLogFlushStatus fdrLoggingFlush() XRAY_NEVER_INSTRUMENT { + if (__sanitizer::atomic_load(&LoggingStatus, + __sanitizer::memory_order_acquire) != + XRayLogInitStatus::XRAY_LOG_FINALIZED) + return XRayLogFlushStatus::XRAY_LOG_NOT_FLUSHING; + + s32 Result = XRayLogFlushStatus::XRAY_LOG_NOT_FLUSHING; + if (!__sanitizer::atomic_compare_exchange_strong( + &LogFlushStatus, &Result, XRayLogFlushStatus::XRAY_LOG_FLUSHING, + __sanitizer::memory_order_release)) + return static_cast<XRayLogFlushStatus>(Result); + + // Make a copy of the BufferQueue pointer to prevent other threads that may be + // resetting it from blowing away the queue prematurely while we're dealing + // with it. + auto LocalBQ = BQ; + + // We write out the file in the following format: + // + // 1) We write down the XRay file header with version 1, type FDR_LOG. + // 2) Then we use the 'apply' member of the BufferQueue that's live, to + // ensure that at this point in time we write down the buffers that have + // been released (and marked "used") -- we dump the full buffer for now + // (fixed-sized) and let the tools reading the buffers deal with the data + // afterwards. + // + int Fd = FDROptions->Fd; + if (Fd == -1) + Fd = getLogFD(); + if (Fd == -1) { + auto Result = XRayLogFlushStatus::XRAY_LOG_NOT_FLUSHING; + __sanitizer::atomic_store(&LogFlushStatus, Result, + __sanitizer::memory_order_release); + return Result; + } + + XRayFileHeader Header; + Header.Version = 1; + Header.Type = FileTypes::FDR_LOG; + Header.CycleFrequency = probeRequiredCPUFeatures() + ? getTSCFrequency() : __xray::NanosecondsPerSecond; + // FIXME: Actually check whether we have 'constant_tsc' and 'nonstop_tsc' + // before setting the values in the header. + Header.ConstantTSC = 1; + Header.NonstopTSC = 1; + Header.FdrData = FdrAdditionalHeaderData{LocalBQ->ConfiguredBufferSize()}; + retryingWriteAll(Fd, reinterpret_cast<char *>(&Header), + reinterpret_cast<char *>(&Header) + sizeof(Header)); + + LocalBQ->apply([&](const BufferQueue::Buffer &B) { + uint64_t BufferSize = B.Size; + if (BufferSize > 0) { + retryingWriteAll(Fd, reinterpret_cast<char *>(B.Buffer), + reinterpret_cast<char *>(B.Buffer) + B.Size); + } + }); + __sanitizer::atomic_store(&LogFlushStatus, + XRayLogFlushStatus::XRAY_LOG_FLUSHED, + __sanitizer::memory_order_release); + return XRayLogFlushStatus::XRAY_LOG_FLUSHED; +} + +XRayLogInitStatus fdrLoggingFinalize() XRAY_NEVER_INSTRUMENT { + s32 CurrentStatus = XRayLogInitStatus::XRAY_LOG_INITIALIZED; + if (!__sanitizer::atomic_compare_exchange_strong( + &LoggingStatus, &CurrentStatus, + XRayLogInitStatus::XRAY_LOG_FINALIZING, + __sanitizer::memory_order_release)) + return static_cast<XRayLogInitStatus>(CurrentStatus); + + // Do special things to make the log finalize itself, and not allow any more + // operations to be performed until re-initialized. + BQ->finalize(); + + __sanitizer::atomic_store(&LoggingStatus, + XRayLogInitStatus::XRAY_LOG_FINALIZED, + __sanitizer::memory_order_release); + return XRayLogInitStatus::XRAY_LOG_FINALIZED; +} + +XRayLogInitStatus fdrLoggingReset() XRAY_NEVER_INSTRUMENT { + s32 CurrentStatus = XRayLogInitStatus::XRAY_LOG_FINALIZED; + if (__sanitizer::atomic_compare_exchange_strong( + &LoggingStatus, &CurrentStatus, + XRayLogInitStatus::XRAY_LOG_INITIALIZED, + __sanitizer::memory_order_release)) + return static_cast<XRayLogInitStatus>(CurrentStatus); + + // Release the in-memory buffer queue. + BQ.reset(); + + // Spin until the flushing status is flushed. + s32 CurrentFlushingStatus = XRayLogFlushStatus::XRAY_LOG_FLUSHED; + while (__sanitizer::atomic_compare_exchange_weak( + &LogFlushStatus, &CurrentFlushingStatus, + XRayLogFlushStatus::XRAY_LOG_NOT_FLUSHING, + __sanitizer::memory_order_release)) { + if (CurrentFlushingStatus == XRayLogFlushStatus::XRAY_LOG_NOT_FLUSHING) + break; + CurrentFlushingStatus = XRayLogFlushStatus::XRAY_LOG_FLUSHED; + } + + // At this point, we know that the status is flushed, and that we can assume + return XRayLogInitStatus::XRAY_LOG_UNINITIALIZED; +} + +void fdrLoggingHandleArg0(int32_t FuncId, + XRayEntryType Entry) XRAY_NEVER_INSTRUMENT { + // We want to get the TSC as early as possible, so that we can check whether + // we've seen this CPU before. We also do it before we load anything else, to + // allow for forward progress with the scheduling. + unsigned char CPU; + uint64_t TSC; + + if(probeRequiredCPUFeatures()) { + TSC = __xray::readTSC(CPU); + } else { + // FIXME: This code needs refactoring as it appears in multiple locations + timespec TS; + int result = clock_gettime(CLOCK_REALTIME, &TS); + if (result != 0) { + Report("clock_gettime(2) return %d, errno=%d", result, int(errno)); + TS = {0, 0}; + } + CPU = 0; + TSC = TS.tv_sec * __xray::NanosecondsPerSecond + TS.tv_nsec; + } + + __xray_fdr_internal::processFunctionHook(FuncId, Entry, TSC, CPU, + clock_gettime, LoggingStatus, BQ); +} + +} // namespace __xray + +static auto UNUSED Unused = [] { + using namespace __xray; + if (flags()->xray_fdr_log) { + XRayLogImpl Impl{ + fdrLoggingInit, fdrLoggingFinalize, fdrLoggingHandleArg0, + fdrLoggingFlush, + }; + __xray_set_log_impl(Impl); + } + return true; +}(); diff --git a/lib/xray/xray_fdr_logging.h b/lib/xray/xray_fdr_logging.h new file mode 100644 index 000000000000..426b54dc7884 --- /dev/null +++ b/lib/xray/xray_fdr_logging.h @@ -0,0 +1,38 @@ +//===-- xray_fdr_logging.h ------------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file is a part of XRay, a function call tracing system. +// +//===----------------------------------------------------------------------===// +#ifndef XRAY_XRAY_FDR_LOGGING_H +#define XRAY_XRAY_FDR_LOGGING_H + +#include "xray/xray_log_interface.h" +#include "xray_fdr_log_records.h" + +// FDR (Flight Data Recorder) Mode +// =============================== +// +// The XRay whitepaper describes a mode of operation for function call trace +// logging that involves writing small records into an in-memory circular +// buffer, that then gets logged to disk on demand. To do this efficiently and +// capture as much data as we can, we use smaller records compared to the +// default mode of always writing fixed-size records. + +namespace __xray { +XRayLogInitStatus fdrLoggingInit(size_t BufferSize, size_t BufferMax, + void *Options, size_t OptionsSize); +XRayLogInitStatus fdrLoggingFinalize(); +void fdrLoggingHandleArg0(int32_t FuncId, XRayEntryType Entry); +XRayLogFlushStatus fdrLoggingFlush(); +XRayLogInitStatus fdrLoggingReset(); + +} // namespace __xray + +#endif // XRAY_XRAY_FDR_LOGGING_H diff --git a/lib/xray/xray_fdr_logging_impl.h b/lib/xray/xray_fdr_logging_impl.h new file mode 100644 index 000000000000..ce360cb03ea7 --- /dev/null +++ b/lib/xray/xray_fdr_logging_impl.h @@ -0,0 +1,639 @@ +//===-- xray_fdr_logging_impl.h ---------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file is a part of XRay, a dynamic runtime instrumentation system. +// +// Here we implement the thread local state management and record i/o for Flight +// Data Recorder mode for XRay, where we use compact structures to store records +// in memory as well as when writing out the data to files. +// +//===----------------------------------------------------------------------===// +#ifndef XRAY_XRAY_FDR_LOGGING_IMPL_H +#define XRAY_XRAY_FDR_LOGGING_IMPL_H + +#include <cassert> +#include <cstdint> +#include <cstring> +#include <limits> +#include <memory> +#include <string> +#include <sys/syscall.h> +#include <time.h> +#include <unistd.h> + +#include "sanitizer_common/sanitizer_common.h" +#include "xray/xray_log_interface.h" +#include "xray_buffer_queue.h" +#include "xray_defs.h" +#include "xray_fdr_log_records.h" +#include "xray_flags.h" +#include "xray_tsc.h" + +namespace __xray { + +/// We expose some of the state transitions when FDR logging mode is operating +/// such that we can simulate a series of log events that may occur without +/// and test with determinism without worrying about the real CPU time. +/// +/// Because the code uses thread_local allocation extensively as part of its +/// design, callers that wish to test events occuring on different threads +/// will actually have to run them on different threads. +/// +/// This also means that it is possible to break invariants maintained by +/// cooperation with xray_fdr_logging class, so be careful and think twice. +namespace __xray_fdr_internal { + +/// Writes the new buffer record and wallclock time that begin a buffer for a +/// thread to MemPtr and increments MemPtr. Bypasses the thread local state +/// machine and writes directly to memory without checks. +static void writeNewBufferPreamble(pid_t Tid, timespec TS, char *&MemPtr); + +/// Write a metadata record to switch to a new CPU to MemPtr and increments +/// MemPtr. Bypasses the thread local state machine and writes directly to +/// memory without checks. +static void writeNewCPUIdMetadata(uint16_t CPU, uint64_t TSC, char *&MemPtr); + +/// Writes an EOB metadata record to MemPtr and increments MemPtr. Bypasses the +/// thread local state machine and writes directly to memory without checks. +static void writeEOBMetadata(char *&MemPtr); + +/// Writes a TSC Wrap metadata record to MemPtr and increments MemPtr. Bypasses +/// the thread local state machine and directly writes to memory without checks. +static void writeTSCWrapMetadata(uint64_t TSC, char *&MemPtr); + +/// Writes a Function Record to MemPtr and increments MemPtr. Bypasses the +/// thread local state machine and writes the function record directly to +/// memory. +static void writeFunctionRecord(int FuncId, uint32_t TSCDelta, + XRayEntryType EntryType, char *&MemPtr); + +/// Sets up a new buffer in thread_local storage and writes a preamble. The +/// wall_clock_reader function is used to populate the WallTimeRecord entry. +static void setupNewBuffer(int (*wall_clock_reader)(clockid_t, + struct timespec *)); + +/// Called to record CPU time for a new CPU within the current thread. +static void writeNewCPUIdMetadata(uint16_t CPU, uint64_t TSC); + +/// Called to close the buffer when the thread exhausts the buffer or when the +/// thread exits (via a thread local variable destructor). +static void writeEOBMetadata(); + +/// TSC Wrap records are written when a TSC delta encoding scheme overflows. +static void writeTSCWrapMetadata(uint64_t TSC); + +/// Here's where the meat of the processing happens. The writer captures +/// function entry, exit and tail exit points with a time and will create +/// TSCWrap, NewCPUId and Function records as necessary. The writer might +/// walk backward through its buffer and erase trivial functions to avoid +/// polluting the log and may use the buffer queue to obtain or release a +/// buffer. +static void processFunctionHook(int32_t FuncId, XRayEntryType Entry, + uint64_t TSC, unsigned char CPU, + int (*wall_clock_reader)(clockid_t, + struct timespec *), + __sanitizer::atomic_sint32_t &LoggingStatus, + const std::shared_ptr<BufferQueue> &BQ); + +//-----------------------------------------------------------------------------| +// The rest of the file is implementation. | +//-----------------------------------------------------------------------------| +// Functions are implemented in the header for inlining since we don't want | +// to grow the stack when we've hijacked the binary for logging. | +//-----------------------------------------------------------------------------| + +namespace { + +thread_local BufferQueue::Buffer Buffer; +thread_local char *RecordPtr = nullptr; + +// The number of FunctionEntry records immediately preceding RecordPtr. +thread_local uint8_t NumConsecutiveFnEnters = 0; + +// The number of adjacent, consecutive pairs of FunctionEntry, Tail Exit +// records preceding RecordPtr. +thread_local uint8_t NumTailCalls = 0; + +constexpr auto MetadataRecSize = sizeof(MetadataRecord); +constexpr auto FunctionRecSize = sizeof(FunctionRecord); + +class ThreadExitBufferCleanup { + std::weak_ptr<BufferQueue> Buffers; + BufferQueue::Buffer &Buffer; + +public: + explicit ThreadExitBufferCleanup(std::weak_ptr<BufferQueue> BQ, + BufferQueue::Buffer &Buffer) + XRAY_NEVER_INSTRUMENT : Buffers(BQ), + Buffer(Buffer) {} + + ~ThreadExitBufferCleanup() noexcept XRAY_NEVER_INSTRUMENT { + if (RecordPtr == nullptr) + return; + + // We make sure that upon exit, a thread will write out the EOB + // MetadataRecord in the thread-local log, and also release the buffer to + // the queue. + assert((RecordPtr + MetadataRecSize) - static_cast<char *>(Buffer.Buffer) >= + static_cast<ptrdiff_t>(MetadataRecSize)); + if (auto BQ = Buffers.lock()) { + writeEOBMetadata(); + auto EC = BQ->releaseBuffer(Buffer); + if (EC != BufferQueue::ErrorCode::Ok) + Report("Failed to release buffer at %p; error=%s\n", Buffer.Buffer, + BufferQueue::getErrorString(EC)); + return; + } + } +}; + +class RecursionGuard { + bool &Running; + const bool Valid; + +public: + explicit RecursionGuard(bool &R) : Running(R), Valid(!R) { + if (Valid) + Running = true; + } + + RecursionGuard(const RecursionGuard &) = delete; + RecursionGuard(RecursionGuard &&) = delete; + RecursionGuard &operator=(const RecursionGuard &) = delete; + RecursionGuard &operator=(RecursionGuard &&) = delete; + + explicit operator bool() const { return Valid; } + + ~RecursionGuard() noexcept { + if (Valid) + Running = false; + } +}; + +static inline bool loggingInitialized( + const __sanitizer::atomic_sint32_t &LoggingStatus) XRAY_NEVER_INSTRUMENT { + return __sanitizer::atomic_load(&LoggingStatus, + __sanitizer::memory_order_acquire) == + XRayLogInitStatus::XRAY_LOG_INITIALIZED; +} + +} // namespace + +static inline void writeNewBufferPreamble(pid_t Tid, timespec TS, + char *&MemPtr) XRAY_NEVER_INSTRUMENT { + static constexpr int InitRecordsCount = 2; + std::aligned_storage<sizeof(MetadataRecord)>::type Records[InitRecordsCount]; + { + // Write out a MetadataRecord to signify that this is the start of a new + // buffer, associated with a particular thread, with a new CPU. For the + // data, we have 15 bytes to squeeze as much information as we can. At this + // point we only write down the following bytes: + // - Thread ID (pid_t, 4 bytes) + auto &NewBuffer = *reinterpret_cast<MetadataRecord *>(&Records[0]); + NewBuffer.Type = uint8_t(RecordType::Metadata); + NewBuffer.RecordKind = uint8_t(MetadataRecord::RecordKinds::NewBuffer); + std::memcpy(&NewBuffer.Data, &Tid, sizeof(pid_t)); + } + // Also write the WalltimeMarker record. + { + static_assert(sizeof(time_t) <= 8, "time_t needs to be at most 8 bytes"); + auto &WalltimeMarker = *reinterpret_cast<MetadataRecord *>(&Records[1]); + WalltimeMarker.Type = uint8_t(RecordType::Metadata); + WalltimeMarker.RecordKind = + uint8_t(MetadataRecord::RecordKinds::WalltimeMarker); + + // We only really need microsecond precision here, and enforce across + // platforms that we need 64-bit seconds and 32-bit microseconds encoded in + // the Metadata record. + int32_t Micros = TS.tv_nsec / 1000; + int64_t Seconds = TS.tv_sec; + std::memcpy(WalltimeMarker.Data, &Seconds, sizeof(Seconds)); + std::memcpy(WalltimeMarker.Data + sizeof(Seconds), &Micros, sizeof(Micros)); + } + std::memcpy(MemPtr, Records, sizeof(MetadataRecord) * InitRecordsCount); + MemPtr += sizeof(MetadataRecord) * InitRecordsCount; + NumConsecutiveFnEnters = 0; + NumTailCalls = 0; +} + +static inline void setupNewBuffer(int (*wall_clock_reader)(clockid_t, + struct timespec *)) + XRAY_NEVER_INSTRUMENT { + RecordPtr = static_cast<char *>(Buffer.Buffer); + pid_t Tid = syscall(SYS_gettid); + timespec TS{0, 0}; + // This is typically clock_gettime, but callers have injection ability. + wall_clock_reader(CLOCK_MONOTONIC, &TS); + writeNewBufferPreamble(Tid, TS, RecordPtr); + NumConsecutiveFnEnters = 0; + NumTailCalls = 0; +} + +static inline void writeNewCPUIdMetadata(uint16_t CPU, uint64_t TSC, + char *&MemPtr) XRAY_NEVER_INSTRUMENT { + MetadataRecord NewCPUId; + NewCPUId.Type = uint8_t(RecordType::Metadata); + NewCPUId.RecordKind = uint8_t(MetadataRecord::RecordKinds::NewCPUId); + + // The data for the New CPU will contain the following bytes: + // - CPU ID (uint16_t, 2 bytes) + // - Full TSC (uint64_t, 8 bytes) + // Total = 10 bytes. + std::memcpy(&NewCPUId.Data, &CPU, sizeof(CPU)); + std::memcpy(&NewCPUId.Data[sizeof(CPU)], &TSC, sizeof(TSC)); + std::memcpy(MemPtr, &NewCPUId, sizeof(MetadataRecord)); + MemPtr += sizeof(MetadataRecord); + NumConsecutiveFnEnters = 0; + NumTailCalls = 0; +} + +static inline void writeNewCPUIdMetadata(uint16_t CPU, + uint64_t TSC) XRAY_NEVER_INSTRUMENT { + writeNewCPUIdMetadata(CPU, TSC, RecordPtr); +} + +static inline void writeEOBMetadata(char *&MemPtr) XRAY_NEVER_INSTRUMENT { + MetadataRecord EOBMeta; + EOBMeta.Type = uint8_t(RecordType::Metadata); + EOBMeta.RecordKind = uint8_t(MetadataRecord::RecordKinds::EndOfBuffer); + // For now we don't write any bytes into the Data field. + std::memcpy(MemPtr, &EOBMeta, sizeof(MetadataRecord)); + MemPtr += sizeof(MetadataRecord); + NumConsecutiveFnEnters = 0; + NumTailCalls = 0; +} + +static inline void writeEOBMetadata() XRAY_NEVER_INSTRUMENT { + writeEOBMetadata(RecordPtr); +} + +static inline void writeTSCWrapMetadata(uint64_t TSC, + char *&MemPtr) XRAY_NEVER_INSTRUMENT { + MetadataRecord TSCWrap; + TSCWrap.Type = uint8_t(RecordType::Metadata); + TSCWrap.RecordKind = uint8_t(MetadataRecord::RecordKinds::TSCWrap); + + // The data for the TSCWrap record contains the following bytes: + // - Full TSC (uint64_t, 8 bytes) + // Total = 8 bytes. + std::memcpy(&TSCWrap.Data, &TSC, sizeof(TSC)); + std::memcpy(MemPtr, &TSCWrap, sizeof(MetadataRecord)); + MemPtr += sizeof(MetadataRecord); + NumConsecutiveFnEnters = 0; + NumTailCalls = 0; +} + +static inline void writeTSCWrapMetadata(uint64_t TSC) XRAY_NEVER_INSTRUMENT { + writeTSCWrapMetadata(TSC, RecordPtr); +} + +static inline void writeFunctionRecord(int FuncId, uint32_t TSCDelta, + XRayEntryType EntryType, + char *&MemPtr) XRAY_NEVER_INSTRUMENT { + std::aligned_storage<sizeof(FunctionRecord), alignof(FunctionRecord)>::type + AlignedFuncRecordBuffer; + auto &FuncRecord = + *reinterpret_cast<FunctionRecord *>(&AlignedFuncRecordBuffer); + FuncRecord.Type = uint8_t(RecordType::Function); + // Only take 28 bits of the function id. + FuncRecord.FuncId = FuncId & ~(0x0F << 28); + FuncRecord.TSCDelta = TSCDelta; + + switch (EntryType) { + case XRayEntryType::ENTRY: + ++NumConsecutiveFnEnters; + FuncRecord.RecordKind = uint8_t(FunctionRecord::RecordKinds::FunctionEnter); + break; + case XRayEntryType::LOG_ARGS_ENTRY: + // We should not rewind functions with logged args. + NumConsecutiveFnEnters = 0; + NumTailCalls = 0; + FuncRecord.RecordKind = uint8_t(FunctionRecord::RecordKinds::FunctionEnter); + break; + case XRayEntryType::EXIT: + // If we've decided to log the function exit, we will never erase the log + // before it. + NumConsecutiveFnEnters = 0; + NumTailCalls = 0; + FuncRecord.RecordKind = uint8_t(FunctionRecord::RecordKinds::FunctionExit); + break; + case XRayEntryType::TAIL: + // If we just entered the function we're tail exiting from or erased every + // invocation since then, this function entry tail pair is a candidate to + // be erased when the child function exits. + if (NumConsecutiveFnEnters > 0) { + ++NumTailCalls; + NumConsecutiveFnEnters = 0; + } else { + // We will never be able to erase this tail call since we have logged + // something in between the function entry and tail exit. + NumTailCalls = 0; + NumConsecutiveFnEnters = 0; + } + FuncRecord.RecordKind = + uint8_t(FunctionRecord::RecordKinds::FunctionTailExit); + break; + } + + std::memcpy(MemPtr, &AlignedFuncRecordBuffer, sizeof(FunctionRecord)); + MemPtr += sizeof(FunctionRecord); +} + +static uint64_t thresholdTicks() { + static uint64_t TicksPerSec = probeRequiredCPUFeatures() ? getTSCFrequency() : + __xray::NanosecondsPerSecond; + static const uint64_t ThresholdTicks = + TicksPerSec * flags()->xray_fdr_log_func_duration_threshold_us / 1000000; + return ThresholdTicks; +} + +// Re-point the thread local pointer into this thread's Buffer before the recent +// "Function Entry" record and any "Tail Call Exit" records after that. +static void rewindRecentCall(uint64_t TSC, uint64_t &LastTSC, + uint64_t &LastFunctionEntryTSC, int32_t FuncId) { + using AlignedFuncStorage = + std::aligned_storage<sizeof(FunctionRecord), + alignof(FunctionRecord)>::type; + RecordPtr -= FunctionRecSize; + AlignedFuncStorage AlignedFuncRecordBuffer; + const auto &FuncRecord = *reinterpret_cast<FunctionRecord *>( + std::memcpy(&AlignedFuncRecordBuffer, RecordPtr, FunctionRecSize)); + assert(FuncRecord.RecordKind == + uint8_t(FunctionRecord::RecordKinds::FunctionEnter) && + "Expected to find function entry recording when rewinding."); + assert(FuncRecord.FuncId == (FuncId & ~(0x0F << 28)) && + "Expected matching function id when rewinding Exit"); + --NumConsecutiveFnEnters; + LastTSC -= FuncRecord.TSCDelta; + + // We unwound one call. Update the state and return without writing a log. + if (NumConsecutiveFnEnters != 0) { + LastFunctionEntryTSC -= FuncRecord.TSCDelta; + return; + } + + // Otherwise we've rewound the stack of all function entries, we might be + // able to rewind further by erasing tail call functions that are being + // exited from via this exit. + LastFunctionEntryTSC = 0; + auto RewindingTSC = LastTSC; + auto RewindingRecordPtr = RecordPtr - FunctionRecSize; + while (NumTailCalls > 0) { + AlignedFuncStorage TailExitRecordBuffer; + // Rewind the TSC back over the TAIL EXIT record. + const auto &ExpectedTailExit = + *reinterpret_cast<FunctionRecord *>(std::memcpy( + &TailExitRecordBuffer, RewindingRecordPtr, FunctionRecSize)); + + assert(ExpectedTailExit.RecordKind == + uint8_t(FunctionRecord::RecordKinds::FunctionTailExit) && + "Expected to find tail exit when rewinding."); + RewindingRecordPtr -= FunctionRecSize; + RewindingTSC -= ExpectedTailExit.TSCDelta; + AlignedFuncStorage FunctionEntryBuffer; + const auto &ExpectedFunctionEntry = + *reinterpret_cast<FunctionRecord *>(std::memcpy( + &FunctionEntryBuffer, RewindingRecordPtr, FunctionRecSize)); + assert(ExpectedFunctionEntry.RecordKind == + uint8_t(FunctionRecord::RecordKinds::FunctionEnter) && + "Expected to find function entry when rewinding tail call."); + assert(ExpectedFunctionEntry.FuncId == ExpectedTailExit.FuncId && + "Expected funcids to match when rewinding tail call."); + + // This tail call exceeded the threshold duration. It will not be erased. + if ((TSC - RewindingTSC) >= thresholdTicks()) { + NumTailCalls = 0; + return; + } + + // We can erase a tail exit pair that we're exiting through since + // its duration is under threshold. + --NumTailCalls; + RewindingRecordPtr -= FunctionRecSize; + RewindingTSC -= ExpectedFunctionEntry.TSCDelta; + RecordPtr -= 2 * FunctionRecSize; + LastTSC = RewindingTSC; + } +} + +static inline bool releaseThreadLocalBuffer(BufferQueue *BQ) { + auto EC = BQ->releaseBuffer(Buffer); + if (EC != BufferQueue::ErrorCode::Ok) { + Report("Failed to release buffer at %p; error=%s\n", Buffer.Buffer, + BufferQueue::getErrorString(EC)); + return false; + } + return true; +} + +static inline void processFunctionHook( + int32_t FuncId, XRayEntryType Entry, uint64_t TSC, unsigned char CPU, + int (*wall_clock_reader)(clockid_t, struct timespec *), + __sanitizer::atomic_sint32_t &LoggingStatus, + const std::shared_ptr<BufferQueue> &BQ) XRAY_NEVER_INSTRUMENT { + // Bail out right away if logging is not initialized yet. + // We should take the opportunity to release the buffer though. + auto Status = __sanitizer::atomic_load(&LoggingStatus, + __sanitizer::memory_order_acquire); + if (Status != XRayLogInitStatus::XRAY_LOG_INITIALIZED) { + if (RecordPtr != nullptr && + (Status == XRayLogInitStatus::XRAY_LOG_FINALIZING || + Status == XRayLogInitStatus::XRAY_LOG_FINALIZED)) { + writeEOBMetadata(); + if (!releaseThreadLocalBuffer(BQ.get())) + return; + RecordPtr = nullptr; + } + return; + } + + // We use a thread_local variable to keep track of which CPUs we've already + // run, and the TSC times for these CPUs. This allows us to stop repeating the + // CPU field in the function records. + // + // We assume that we'll support only 65536 CPUs for x86_64. + thread_local uint16_t CurrentCPU = std::numeric_limits<uint16_t>::max(); + thread_local uint64_t LastTSC = 0; + thread_local uint64_t LastFunctionEntryTSC = 0; + + // Make sure a thread that's ever called handleArg0 has a thread-local + // live reference to the buffer queue for this particular instance of + // FDRLogging, and that we're going to clean it up when the thread exits. + thread_local auto LocalBQ = BQ; + thread_local ThreadExitBufferCleanup Cleanup(LocalBQ, Buffer); + + // Prevent signal handler recursion, so in case we're already in a log writing + // mode and the signal handler comes in (and is also instrumented) then we + // don't want to be clobbering potentially partial writes already happening in + // the thread. We use a simple thread_local latch to only allow one on-going + // handleArg0 to happen at any given time. + thread_local bool Running = false; + RecursionGuard Guard{Running}; + if (!Guard) { + assert(Running == true && "RecursionGuard is buggy!"); + return; + } + + if (!loggingInitialized(LoggingStatus) || LocalBQ->finalizing()) { + writeEOBMetadata(); + if (!releaseThreadLocalBuffer(BQ.get())) + return; + RecordPtr = nullptr; + } + + if (Buffer.Buffer == nullptr) { + auto EC = LocalBQ->getBuffer(Buffer); + if (EC != BufferQueue::ErrorCode::Ok) { + auto LS = __sanitizer::atomic_load(&LoggingStatus, + __sanitizer::memory_order_acquire); + if (LS != XRayLogInitStatus::XRAY_LOG_FINALIZING && + LS != XRayLogInitStatus::XRAY_LOG_FINALIZED) + Report("Failed to acquire a buffer; error=%s\n", + BufferQueue::getErrorString(EC)); + return; + } + + setupNewBuffer(wall_clock_reader); + } + + if (CurrentCPU == std::numeric_limits<uint16_t>::max()) { + // This means this is the first CPU this thread has ever run on. We set the + // current CPU and record this as the first TSC we've seen. + CurrentCPU = CPU; + writeNewCPUIdMetadata(CPU, TSC); + } + + // Before we go setting up writing new function entries, we need to be really + // careful about the pointer math we're doing. This means we need to ensure + // that the record we are about to write is going to fit into the buffer, + // without overflowing the buffer. + // + // To do this properly, we use the following assumptions: + // + // - The least number of bytes we will ever write is 8 + // (sizeof(FunctionRecord)) only if the delta between the previous entry + // and this entry is within 32 bits. + // - The most number of bytes we will ever write is 8 + 16 = 24. This is + // computed by: + // + // sizeof(FunctionRecord) + sizeof(MetadataRecord) + // + // These arise in the following cases: + // + // 1. When the delta between the TSC we get and the previous TSC for the + // same CPU is outside of the uint32_t range, we end up having to + // write a MetadataRecord to indicate a "tsc wrap" before the actual + // FunctionRecord. + // 2. When we learn that we've moved CPUs, we need to write a + // MetadataRecord to indicate a "cpu change", and thus write out the + // current TSC for that CPU before writing out the actual + // FunctionRecord. + // 3. When we learn about a new CPU ID, we need to write down a "new cpu + // id" MetadataRecord before writing out the actual FunctionRecord. + // + // - An End-of-Buffer (EOB) MetadataRecord is 16 bytes. + // + // So the math we need to do is to determine whether writing 24 bytes past the + // current pointer leaves us with enough bytes to write the EOB + // MetadataRecord. If we don't have enough space after writing as much as 24 + // bytes in the end of the buffer, we need to write out the EOB, get a new + // Buffer, set it up properly before doing any further writing. + // + char *BufferStart = static_cast<char *>(Buffer.Buffer); + if ((RecordPtr + (MetadataRecSize + FunctionRecSize)) - BufferStart < + static_cast<ptrdiff_t>(MetadataRecSize)) { + writeEOBMetadata(); + if (!releaseThreadLocalBuffer(LocalBQ.get())) + return; + auto EC = LocalBQ->getBuffer(Buffer); + if (EC != BufferQueue::ErrorCode::Ok) { + Report("Failed to acquire a buffer; error=%s\n", + BufferQueue::getErrorString(EC)); + return; + } + setupNewBuffer(wall_clock_reader); + } + + // By this point, we are now ready to write at most 24 bytes (one metadata + // record and one function record). + BufferStart = static_cast<char *>(Buffer.Buffer); + assert((RecordPtr + (MetadataRecSize + FunctionRecSize)) - BufferStart >= + static_cast<ptrdiff_t>(MetadataRecSize) && + "Misconfigured BufferQueue provided; Buffer size not large enough."); + + // Here we compute the TSC Delta. There are a few interesting situations we + // need to account for: + // + // - The thread has migrated to a different CPU. If this is the case, then + // we write down the following records: + // + // 1. A 'NewCPUId' Metadata record. + // 2. A FunctionRecord with a 0 for the TSCDelta field. + // + // - The TSC delta is greater than the 32 bits we can store in a + // FunctionRecord. In this case we write down the following records: + // + // 1. A 'TSCWrap' Metadata record. + // 2. A FunctionRecord with a 0 for the TSCDelta field. + // + // - The TSC delta is representable within the 32 bits we can store in a + // FunctionRecord. In this case we write down just a FunctionRecord with + // the correct TSC delta. + // + + uint32_t RecordTSCDelta = 0; + if (CPU != CurrentCPU) { + // We've moved to a new CPU. + writeNewCPUIdMetadata(CPU, TSC); + } else { + // If the delta is greater than the range for a uint32_t, then we write out + // the TSC wrap metadata entry with the full TSC, and the TSC for the + // function record be 0. + auto Delta = TSC - LastTSC; + if (Delta > (1ULL << 32) - 1) + writeTSCWrapMetadata(TSC); + else + RecordTSCDelta = Delta; + } + + LastTSC = TSC; + CurrentCPU = CPU; + switch (Entry) { + case XRayEntryType::ENTRY: + case XRayEntryType::LOG_ARGS_ENTRY: + // Update the thread local state for the next invocation. + LastFunctionEntryTSC = TSC; + break; + case XRayEntryType::TAIL: + break; + case XRayEntryType::EXIT: + // Break out and write the exit record if we can't erase any functions. + if (NumConsecutiveFnEnters == 0 || + (TSC - LastFunctionEntryTSC) >= thresholdTicks()) + break; + rewindRecentCall(TSC, LastTSC, LastFunctionEntryTSC, FuncId); + return; // without writing log. + } + + writeFunctionRecord(FuncId, RecordTSCDelta, Entry, RecordPtr); + + // If we've exhausted the buffer by this time, we then release the buffer to + // make sure that other threads may start using this buffer. + if ((RecordPtr + MetadataRecSize) - BufferStart == MetadataRecSize) { + writeEOBMetadata(); + if (!releaseThreadLocalBuffer(LocalBQ.get())) + return; + RecordPtr = nullptr; + } +} + +} // namespace __xray_fdr_internal + +} // namespace __xray +#endif // XRAY_XRAY_FDR_LOGGING_IMPL_H diff --git a/lib/xray/xray_flags.cc b/lib/xray/xray_flags.cc index 338c2378b8cd..1ee4d10d753c 100644 --- a/lib/xray/xray_flags.cc +++ b/lib/xray/xray_flags.cc @@ -24,31 +24,55 @@ namespace __xray { Flags xray_flags_dont_use_directly; // use via flags(). -void Flags::SetDefaults() XRAY_NEVER_INSTRUMENT { +void Flags::setDefaults() XRAY_NEVER_INSTRUMENT { #define XRAY_FLAG(Type, Name, DefaultValue, Description) Name = DefaultValue; #include "xray_flags.inc" #undef XRAY_FLAG } -static void RegisterXRayFlags(FlagParser *P, Flags *F) XRAY_NEVER_INSTRUMENT { +static void registerXRayFlags(FlagParser *P, Flags *F) XRAY_NEVER_INSTRUMENT { #define XRAY_FLAG(Type, Name, DefaultValue, Description) \ RegisterFlag(P, #Name, Description, &F->Name); #include "xray_flags.inc" #undef XRAY_FLAG } -void InitializeFlags() XRAY_NEVER_INSTRUMENT { +// This function, as defined with the help of a macro meant to be introduced at +// build time of the XRay runtime, passes in a statically defined list of +// options that control XRay. This means users/deployments can tweak the +// defaults that override the hard-coded defaults in the xray_flags.inc at +// compile-time using the XRAY_DEFAULT_OPTIONS macro. +static const char *useCompilerDefinedFlags() XRAY_NEVER_INSTRUMENT { +#ifdef XRAY_DEFAULT_OPTIONS +// Do the double-layered string conversion to prevent badly crafted strings +// provided through the XRAY_DEFAULT_OPTIONS from causing compilation issues (or +// changing the semantics of the implementation through the macro). This ensures +// that we convert whatever XRAY_DEFAULT_OPTIONS is defined as a string literal. +#define XRAY_STRINGIZE(x) #x +#define XRAY_STRINGIZE_OPTIONS(options) XRAY_STRINGIZE(options) + return XRAY_STRINGIZE_OPTIONS(XRAY_DEFAULT_OPTIONS); +#else + return ""; +#endif +} + +void initializeFlags() XRAY_NEVER_INSTRUMENT { SetCommonFlagsDefaults(); auto *F = flags(); - F->SetDefaults(); + F->setDefaults(); FlagParser XRayParser; - RegisterXRayFlags(&XRayParser, F); + registerXRayFlags(&XRayParser, F); RegisterCommonFlags(&XRayParser); - // Override from command line. + // Use options defaulted at compile-time for the runtime. + const char *XRayCompileFlags = useCompilerDefinedFlags(); + XRayParser.ParseString(XRayCompileFlags); + + // Override from environment variables. XRayParser.ParseString(GetEnv("XRAY_OPTIONS")); + // Override from command line. InitializeCommonFlags(); if (Verbosity()) diff --git a/lib/xray/xray_flags.h b/lib/xray/xray_flags.h index 2ecf5fb9ba1d..f4e30283b8de 100644 --- a/lib/xray/xray_flags.h +++ b/lib/xray/xray_flags.h @@ -24,13 +24,13 @@ struct Flags { #include "xray_flags.inc" #undef XRAY_FLAG - void SetDefaults(); + void setDefaults(); }; extern Flags xray_flags_dont_use_directly; inline Flags *flags() { return &xray_flags_dont_use_directly; } -void InitializeFlags(); +void initializeFlags(); } // namespace __xray diff --git a/lib/xray/xray_flags.inc b/lib/xray/xray_flags.inc index 0f6ced8ead0c..7ddce78eb413 100644 --- a/lib/xray/xray_flags.inc +++ b/lib/xray/xray_flags.inc @@ -14,9 +14,14 @@ #error "Define XRAY_FLAG prior to including this file!" #endif -XRAY_FLAG(bool, patch_premain, true, +XRAY_FLAG(bool, patch_premain, false, "Whether to patch instrumentation points before main.") XRAY_FLAG(bool, xray_naive_log, true, "Whether to install the naive log implementation.") XRAY_FLAG(const char *, xray_logfile_base, "xray-log.", "Filename base for the xray logfile.") +XRAY_FLAG(bool, xray_fdr_log, false, + "Whether to install the flight data recorder logging implementation.") +XRAY_FLAG(int, xray_fdr_log_func_duration_threshold_us, 5, + "FDR logging will try to skip functions that execute for fewer " + "microseconds than this threshold.") diff --git a/lib/xray/xray_init.cc b/lib/xray/xray_init.cc index eb86182910cf..6f558d656147 100644 --- a/lib/xray/xray_init.cc +++ b/lib/xray/xray_init.cc @@ -12,7 +12,6 @@ // XRay initialisation logic. //===----------------------------------------------------------------------===// -#include <atomic> #include <fcntl.h> #include <strings.h> #include <unistd.h> @@ -28,7 +27,6 @@ extern const XRaySledEntry __start_xray_instr_map[] __attribute__((weak)); extern const XRaySledEntry __stop_xray_instr_map[] __attribute__((weak)); } -using namespace __sanitizer; using namespace __xray; // When set to 'true' this means the XRay runtime has been initialised. We use @@ -38,29 +36,28 @@ using namespace __xray; // // FIXME: Support DSO instrumentation maps too. The current solution only works // for statically linked executables. -std::atomic<bool> XRayInitialized{false}; +__sanitizer::atomic_uint8_t XRayInitialized{0}; // This should always be updated before XRayInitialized is updated. -std::atomic<__xray::XRaySledMap> XRayInstrMap{}; +__sanitizer::SpinMutex XRayInstrMapMutex; +XRaySledMap XRayInstrMap; // __xray_init() will do the actual loading of the current process' memory map // and then proceed to look for the .xray_instr_map section/segment. void __xray_init() XRAY_NEVER_INSTRUMENT { - InitializeFlags(); + initializeFlags(); if (__start_xray_instr_map == nullptr) { Report("XRay instrumentation map missing. Not initializing XRay.\n"); return; } - // Now initialize the XRayInstrMap global struct with the address of the - // entries, reinterpreted as an array of XRaySledEntry objects. We use the - // virtual pointer we have from the section to provide us the correct - // information. - __xray::XRaySledMap SledMap{}; - SledMap.Sleds = __start_xray_instr_map; - SledMap.Entries = __stop_xray_instr_map - __start_xray_instr_map; - XRayInstrMap.store(SledMap, std::memory_order_release); - XRayInitialized.store(true, std::memory_order_release); + { + __sanitizer::SpinMutexLock Guard(&XRayInstrMapMutex); + XRayInstrMap.Sleds = __start_xray_instr_map; + XRayInstrMap.Entries = __stop_xray_instr_map - __start_xray_instr_map; + } + __sanitizer::atomic_store(&XRayInitialized, true, + __sanitizer::memory_order_release); if (flags()->patch_premain) __xray_patch(); diff --git a/lib/xray/xray_inmemory_log.cc b/lib/xray/xray_inmemory_log.cc index adcb21671cbc..cdaa6d1b5c86 100644 --- a/lib/xray/xray_inmemory_log.cc +++ b/lib/xray/xray_inmemory_log.cc @@ -16,8 +16,6 @@ //===----------------------------------------------------------------------===// #include <cassert> -#include <cstdint> -#include <cstdio> #include <fcntl.h> #include <mutex> #include <sys/stat.h> @@ -26,19 +24,13 @@ #include <thread> #include <unistd.h> -#if defined(__x86_64__) -#include "xray_x86_64.h" -#elif defined(__arm__) || defined(__aarch64__) -#include "xray_emulate_tsc.h" -#else -#error "Unsupported CPU Architecture" -#endif /* Architecture-specific inline intrinsics */ - #include "sanitizer_common/sanitizer_libc.h" #include "xray/xray_records.h" #include "xray_defs.h" #include "xray_flags.h" #include "xray_interface_internal.h" +#include "xray_tsc.h" +#include "xray_utils.h" // __xray_InMemoryRawLog will use a thread-local aligned buffer capped to a // certain size (32kb by default) and use it as if it were a circular buffer for @@ -53,25 +45,6 @@ namespace __xray { std::mutex LogMutex; -static void retryingWriteAll(int Fd, char *Begin, - char *End) XRAY_NEVER_INSTRUMENT { - if (Begin == End) - return; - auto TotalBytes = std::distance(Begin, End); - while (auto Written = write(Fd, Begin, TotalBytes)) { - if (Written < 0) { - if (errno == EINTR) - continue; // Try again. - Report("Failed to write; errno = %d\n", errno); - return; - } - TotalBytes -= Written; - if (TotalBytes == 0) - break; - Begin += Written; - } -} - class ThreadExitFlusher { int Fd; XRayRecord *Start; @@ -102,61 +75,32 @@ public: using namespace __xray; -void PrintToStdErr(const char *Buffer) XRAY_NEVER_INSTRUMENT { - fprintf(stderr, "%s", Buffer); -} - static int __xray_OpenLogFile() XRAY_NEVER_INSTRUMENT { - // FIXME: Figure out how to make this less stderr-dependent. - SetPrintfAndReportCallback(PrintToStdErr); - // Open a temporary file once for the log. - static char TmpFilename[256] = {}; - static char TmpWildcardPattern[] = "XXXXXX"; - auto Argv = GetArgv(); - const char *Progname = Argv[0] == nullptr ? "(unknown)" : Argv[0]; - const char *LastSlash = internal_strrchr(Progname, '/'); - - if (LastSlash != nullptr) - Progname = LastSlash + 1; - - const int HalfLength = sizeof(TmpFilename) / 2 - sizeof(TmpWildcardPattern); - int NeededLength = internal_snprintf(TmpFilename, sizeof(TmpFilename), - "%.*s%.*s.%s", - HalfLength, flags()->xray_logfile_base, - HalfLength, Progname, - TmpWildcardPattern); - if (NeededLength > int(sizeof(TmpFilename))) { - Report("XRay log file name too long (%d): %s\n", NeededLength, TmpFilename); - return -1; - } - int Fd = mkstemp(TmpFilename); - if (Fd == -1) { - Report("XRay: Failed opening temporary file '%s'; not logging events.\n", - TmpFilename); + int F = getLogFD(); + if (F == -1) return -1; - } - if (Verbosity()) - fprintf(stderr, "XRay: Log file in '%s'\n", TmpFilename); - // Since we're here, we get to write the header. We set it up so that the // header will only be written once, at the start, and let the threads // logging do writes which just append. XRayFileHeader Header; Header.Version = 1; Header.Type = FileTypes::NAIVE_LOG; - Header.CycleFrequency = __xray::cycleFrequency(); + Header.CycleFrequency = probeRequiredCPUFeatures() + ? getTSCFrequency() + : __xray::NanosecondsPerSecond; // FIXME: Actually check whether we have 'constant_tsc' and 'nonstop_tsc' // before setting the values in the header. Header.ConstantTSC = 1; Header.NonstopTSC = 1; - retryingWriteAll(Fd, reinterpret_cast<char *>(&Header), + retryingWriteAll(F, reinterpret_cast<char *>(&Header), reinterpret_cast<char *>(&Header) + sizeof(Header)); - return Fd; + return F; } -void __xray_InMemoryRawLog(int32_t FuncId, - XRayEntryType Type) XRAY_NEVER_INSTRUMENT { +template <class RDTSC> +void __xray_InMemoryRawLog(int32_t FuncId, XRayEntryType Type, + RDTSC ReadTSC) XRAY_NEVER_INSTRUMENT { using Buffer = std::aligned_storage<sizeof(XRayRecord), alignof(XRayRecord)>::type; static constexpr size_t BuffLen = 1024; @@ -173,7 +117,7 @@ void __xray_InMemoryRawLog(int32_t FuncId, // through a pointer offset. auto &R = reinterpret_cast<__xray::XRayRecord *>(InMemoryBuffer)[Offset]; R.RecordType = RecordTypes::NORMAL; - R.TSC = __xray::readTSC(R.CPU); + R.TSC = ReadTSC(R.CPU); R.TId = TId; R.Type = Type; R.FuncId = FuncId; @@ -187,8 +131,32 @@ void __xray_InMemoryRawLog(int32_t FuncId, } } -static auto Unused = [] { +void __xray_InMemoryRawLogRealTSC(int32_t FuncId, + XRayEntryType Type) XRAY_NEVER_INSTRUMENT { + __xray_InMemoryRawLog(FuncId, Type, __xray::readTSC); +} + +void __xray_InMemoryEmulateTSC(int32_t FuncId, + XRayEntryType Type) XRAY_NEVER_INSTRUMENT { + __xray_InMemoryRawLog(FuncId, Type, [](uint8_t &CPU) XRAY_NEVER_INSTRUMENT { + timespec TS; + int result = clock_gettime(CLOCK_REALTIME, &TS); + if (result != 0) { + Report("clock_gettimg(2) return %d, errno=%d.", result, int(errno)); + TS = {0, 0}; + } + CPU = 0; + return TS.tv_sec * __xray::NanosecondsPerSecond + TS.tv_nsec; + }); +} + +static auto UNUSED Unused = [] { + auto UseRealTSC = probeRequiredCPUFeatures(); + if (!UseRealTSC) + Report("WARNING: Required CPU features missing for XRay instrumentation, " + "using emulation instead.\n"); if (flags()->xray_naive_log) - __xray_set_handler(__xray_InMemoryRawLog); + __xray_set_handler(UseRealTSC ? __xray_InMemoryRawLogRealTSC + : __xray_InMemoryEmulateTSC); return true; }(); diff --git a/lib/xray/xray_interface.cc b/lib/xray/xray_interface.cc index 20a2b66c4401..26ec161fe860 100644 --- a/lib/xray/xray_interface.cc +++ b/lib/xray/xray_interface.cc @@ -15,7 +15,6 @@ #include "xray_interface_internal.h" -#include <atomic> #include <cstdint> #include <cstdio> #include <errno.h> @@ -35,12 +34,21 @@ static const int16_t cSledLength = 12; static const int16_t cSledLength = 32; #elif defined(__arm__) static const int16_t cSledLength = 28; +#elif SANITIZER_MIPS32 +static const int16_t cSledLength = 48; +#elif SANITIZER_MIPS64 +static const int16_t cSledLength = 64; +#elif defined(__powerpc64__) +static const int16_t cSledLength = 8; #else #error "Unsupported CPU Architecture" #endif /* CPU architecture */ // This is the function to call when we encounter the entry or exit sleds. -std::atomic<void (*)(int32_t, XRayEntryType)> XRayPatchedFunction{nullptr}; +__sanitizer::atomic_uintptr_t XRayPatchedFunction{0}; + +// This is the function to call from the arg1-enabled sleds/trampolines. +__sanitizer::atomic_uintptr_t XRayArgLogger{0}; // MProtectHelper is an RAII wrapper for calls to mprotect(...) that will undo // any successful mprotect(...) changes. This is used to make a page writeable @@ -79,13 +87,18 @@ public: } // namespace __xray -extern std::atomic<bool> XRayInitialized; -extern std::atomic<__xray::XRaySledMap> XRayInstrMap; +extern __sanitizer::SpinMutex XRayInstrMapMutex; +extern __sanitizer::atomic_uint8_t XRayInitialized; +extern __xray::XRaySledMap XRayInstrMap; int __xray_set_handler(void (*entry)(int32_t, XRayEntryType)) XRAY_NEVER_INSTRUMENT { - if (XRayInitialized.load(std::memory_order_acquire)) { - __xray::XRayPatchedFunction.store(entry, std::memory_order_release); + if (__sanitizer::atomic_load(&XRayInitialized, + __sanitizer::memory_order_acquire)) { + + __sanitizer::atomic_store(&__xray::XRayPatchedFunction, + reinterpret_cast<uint64_t>(entry), + __sanitizer::memory_order_release); return 1; } return 0; @@ -95,7 +108,7 @@ int __xray_remove_handler() XRAY_NEVER_INSTRUMENT { return __xray_set_handler(nullptr); } -std::atomic<bool> XRayPatching{false}; +__sanitizer::atomic_uint8_t XRayPatching{0}; using namespace __xray; @@ -115,34 +128,37 @@ public: }; template <class Function> -CleanupInvoker<Function> ScopeCleanup(Function Fn) XRAY_NEVER_INSTRUMENT { +CleanupInvoker<Function> scopeCleanup(Function Fn) XRAY_NEVER_INSTRUMENT { return CleanupInvoker<Function>{Fn}; } -// ControlPatching implements the common internals of the patching/unpatching +// controlPatching implements the common internals of the patching/unpatching // implementation. |Enable| defines whether we're enabling or disabling the // runtime XRay instrumentation. -XRayPatchingStatus ControlPatching(bool Enable) XRAY_NEVER_INSTRUMENT { - if (!XRayInitialized.load(std::memory_order_acquire)) +XRayPatchingStatus controlPatching(bool Enable) XRAY_NEVER_INSTRUMENT { + if (!__sanitizer::atomic_load(&XRayInitialized, + __sanitizer::memory_order_acquire)) return XRayPatchingStatus::NOT_INITIALIZED; // Not initialized. - static bool NotPatching = false; - if (!XRayPatching.compare_exchange_strong(NotPatching, true, - std::memory_order_acq_rel, - std::memory_order_acquire)) { + uint8_t NotPatching = false; + if (!__sanitizer::atomic_compare_exchange_strong( + &XRayPatching, &NotPatching, true, __sanitizer::memory_order_acq_rel)) return XRayPatchingStatus::ONGOING; // Already patching. - } - bool PatchingSuccess = false; - auto XRayPatchingStatusResetter = ScopeCleanup([&PatchingSuccess] { - if (!PatchingSuccess) { - XRayPatching.store(false, std::memory_order_release); - } + uint8_t PatchingSuccess = false; + auto XRayPatchingStatusResetter = scopeCleanup([&PatchingSuccess] { + if (!PatchingSuccess) + __sanitizer::atomic_store(&XRayPatching, false, + __sanitizer::memory_order_release); }); // Step 1: Compute the function id, as a unique identifier per function in the // instrumentation map. - XRaySledMap InstrMap = XRayInstrMap.load(std::memory_order_acquire); + XRaySledMap InstrMap; + { + __sanitizer::SpinMutexLock Guard(&XRayInstrMapMutex); + InstrMap = XRayInstrMap; + } if (InstrMap.Entries == 0) return XRayPatchingStatus::NOT_INITIALIZED; @@ -179,7 +195,7 @@ XRayPatchingStatus ControlPatching(bool Enable) XRAY_NEVER_INSTRUMENT { bool Success = false; switch (Sled.Kind) { case XRayEntryType::ENTRY: - Success = patchFunctionEntry(Enable, FuncId, Sled); + Success = patchFunctionEntry(Enable, FuncId, Sled, __xray_FunctionEntry); break; case XRayEntryType::EXIT: Success = patchFunctionExit(Enable, FuncId, Sled); @@ -187,21 +203,39 @@ XRayPatchingStatus ControlPatching(bool Enable) XRAY_NEVER_INSTRUMENT { case XRayEntryType::TAIL: Success = patchFunctionTailExit(Enable, FuncId, Sled); break; + case XRayEntryType::LOG_ARGS_ENTRY: + Success = patchFunctionEntry(Enable, FuncId, Sled, __xray_ArgLoggerEntry); + break; default: Report("Unsupported sled kind: %d\n", int(Sled.Kind)); continue; } (void)Success; } - XRayPatching.store(false, std::memory_order_release); + __sanitizer::atomic_store(&XRayPatching, false, + __sanitizer::memory_order_release); PatchingSuccess = true; return XRayPatchingStatus::SUCCESS; } XRayPatchingStatus __xray_patch() XRAY_NEVER_INSTRUMENT { - return ControlPatching(true); + return controlPatching(true); } XRayPatchingStatus __xray_unpatch() XRAY_NEVER_INSTRUMENT { - return ControlPatching(false); + return controlPatching(false); +} + +int __xray_set_handler_arg1(void (*Handler)(int32_t, XRayEntryType, uint64_t)) { + if (!__sanitizer::atomic_load(&XRayInitialized, + __sanitizer::memory_order_acquire)) + return 0; + + // A relaxed write might not be visible even if the current thread gets + // scheduled on a different CPU/NUMA node. We need to wait for everyone to + // have this handler installed for consistency of collected data across CPUs. + __sanitizer::atomic_store(&XRayArgLogger, reinterpret_cast<uint64_t>(Handler), + __sanitizer::memory_order_release); + return 1; } +int __xray_remove_handler_arg1() { return __xray_set_handler_arg1(nullptr); } diff --git a/lib/xray/xray_interface_internal.h b/lib/xray/xray_interface_internal.h index a8434a699f86..0e3a251f3ad7 100644 --- a/lib/xray/xray_interface_internal.h +++ b/lib/xray/xray_interface_internal.h @@ -48,10 +48,8 @@ struct XRaySledMap { size_t Entries; }; -uint64_t cycleFrequency(); - bool patchFunctionEntry(bool Enable, uint32_t FuncId, - const XRaySledEntry &Sled); + const XRaySledEntry &Sled, void (*Trampoline)()); bool patchFunctionExit(bool Enable, uint32_t FuncId, const XRaySledEntry &Sled); bool patchFunctionTailExit(bool Enable, uint32_t FuncId, const XRaySledEntry &Sled); @@ -64,6 +62,7 @@ extern "C" { extern void __xray_FunctionEntry(); extern void __xray_FunctionExit(); extern void __xray_FunctionTailExit(); +extern void __xray_ArgLoggerEntry(); } #endif diff --git a/lib/xray/xray_log_interface.cc b/lib/xray/xray_log_interface.cc new file mode 100644 index 000000000000..ffed601c05c6 --- /dev/null +++ b/lib/xray/xray_log_interface.cc @@ -0,0 +1,59 @@ +//===-- xray_log_interface.cc ---------------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file is a part of XRay, a function call tracing system. +// +//===----------------------------------------------------------------------===// +#include "xray/xray_log_interface.h" + +#include "sanitizer_common/sanitizer_atomic.h" +#include "sanitizer_common/sanitizer_mutex.h" +#include "xray/xray_interface.h" +#include "xray_defs.h" + +#include <memory> + +__sanitizer::SpinMutex XRayImplMutex; +std::unique_ptr<XRayLogImpl> GlobalXRayImpl; + +void __xray_set_log_impl(XRayLogImpl Impl) XRAY_NEVER_INSTRUMENT { + if (Impl.log_init == nullptr || Impl.log_finalize == nullptr || + Impl.handle_arg0 == nullptr || Impl.flush_log == nullptr) { + __sanitizer::SpinMutexLock Guard(&XRayImplMutex); + GlobalXRayImpl.reset(); + return; + } + + __sanitizer::SpinMutexLock Guard(&XRayImplMutex); + GlobalXRayImpl.reset(new XRayLogImpl); + *GlobalXRayImpl = Impl; +} + +XRayLogInitStatus __xray_log_init(size_t BufferSize, size_t MaxBuffers, + void *Args, + size_t ArgsSize) XRAY_NEVER_INSTRUMENT { + __sanitizer::SpinMutexLock Guard(&XRayImplMutex); + if (!GlobalXRayImpl) + return XRayLogInitStatus::XRAY_LOG_UNINITIALIZED; + return GlobalXRayImpl->log_init(BufferSize, MaxBuffers, Args, ArgsSize); +} + +XRayLogInitStatus __xray_log_finalize() XRAY_NEVER_INSTRUMENT { + __sanitizer::SpinMutexLock Guard(&XRayImplMutex); + if (!GlobalXRayImpl) + return XRayLogInitStatus::XRAY_LOG_UNINITIALIZED; + return GlobalXRayImpl->log_finalize(); +} + +XRayLogFlushStatus __xray_log_flushLog() XRAY_NEVER_INSTRUMENT { + __sanitizer::SpinMutexLock Guard(&XRayImplMutex); + if (!GlobalXRayImpl) + return XRayLogFlushStatus::XRAY_LOG_NOT_FLUSHING; + return GlobalXRayImpl->flush_log(); +} diff --git a/lib/xray/xray_mips.cc b/lib/xray/xray_mips.cc new file mode 100644 index 000000000000..c8ff39936c5a --- /dev/null +++ b/lib/xray/xray_mips.cc @@ -0,0 +1,158 @@ +//===-- xray_mips.cc --------------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file is a part of XRay, a dynamic runtime instrumentation system. +// +// Implementation of MIPS-specific routines (32-bit). +// +//===----------------------------------------------------------------------===// +#include "sanitizer_common/sanitizer_common.h" +#include "xray_defs.h" +#include "xray_interface_internal.h" +#include <atomic> + +namespace __xray { + +// The machine codes for some instructions used in runtime patching. +enum PatchOpcodes : uint32_t { + PO_ADDIU = 0x24000000, // addiu rt, rs, imm + PO_SW = 0xAC000000, // sw rt, offset(sp) + PO_LUI = 0x3C000000, // lui rs, %hi(address) + PO_ORI = 0x34000000, // ori rt, rs, %lo(address) + PO_JALR = 0x0000F809, // jalr rs + PO_LW = 0x8C000000, // lw rt, offset(address) + PO_B44 = 0x1000000b, // b #44 + PO_NOP = 0x0, // nop +}; + +enum RegNum : uint32_t { + RN_T0 = 0x8, + RN_T9 = 0x19, + RN_RA = 0x1F, + RN_SP = 0x1D, +}; + +inline static uint32_t encodeInstruction(uint32_t Opcode, uint32_t Rs, + uint32_t Rt, + uint32_t Imm) XRAY_NEVER_INSTRUMENT { + return (Opcode | Rs << 21 | Rt << 16 | Imm); +} + +inline static uint32_t +encodeSpecialInstruction(uint32_t Opcode, uint32_t Rs, uint32_t Rt, uint32_t Rd, + uint32_t Imm) XRAY_NEVER_INSTRUMENT { + return (Rs << 21 | Rt << 16 | Rd << 11 | Imm << 6 | Opcode); +} + +inline static bool patchSled(const bool Enable, const uint32_t FuncId, + const XRaySledEntry &Sled, + void (*TracingHook)()) XRAY_NEVER_INSTRUMENT { + // When |Enable| == true, + // We replace the following compile-time stub (sled): + // + // xray_sled_n: + // B .tmpN + // 11 NOPs (44 bytes) + // .tmpN + // ADDIU T9, T9, 44 + // + // With the following runtime patch: + // + // xray_sled_n (32-bit): + // addiu sp, sp, -8 ;create stack frame + // nop + // sw ra, 4(sp) ;save return address + // sw t9, 0(sp) ;save register t9 + // lui t9, %hi(__xray_FunctionEntry/Exit) + // ori t9, t9, %lo(__xray_FunctionEntry/Exit) + // lui t0, %hi(function_id) + // jalr t9 ;call Tracing hook + // ori t0, t0, %lo(function_id) ;pass function id (delay slot) + // lw t9, 0(sp) ;restore register t9 + // lw ra, 4(sp) ;restore return address + // addiu sp, sp, 8 ;delete stack frame + // + // We add 44 bytes to t9 because we want to adjust the function pointer to + // the actual start of function i.e. the address just after the noop sled. + // We do this because gp displacement relocation is emitted at the start of + // of the function i.e after the nop sled and to correctly calculate the + // global offset table address, t9 must hold the address of the instruction + // containing the gp displacement relocation. + // FIXME: Is this correct for the static relocation model? + // + // Replacement of the first 4-byte instruction should be the last and atomic + // operation, so that the user code which reaches the sled concurrently + // either jumps over the whole sled, or executes the whole sled when the + // latter is ready. + // + // When |Enable|==false, we set back the first instruction in the sled to be + // B #44 + + if (Enable) { + uint32_t LoTracingHookAddr = reinterpret_cast<int32_t>(TracingHook) & 0xffff; + uint32_t HiTracingHookAddr = + (reinterpret_cast<int32_t>(TracingHook) >> 16) & 0xffff; + uint32_t LoFunctionID = FuncId & 0xffff; + uint32_t HiFunctionID = (FuncId >> 16) & 0xffff; + *reinterpret_cast<uint32_t *>(Sled.Address + 8) = encodeInstruction( + PatchOpcodes::PO_SW, RegNum::RN_SP, RegNum::RN_RA, 0x4); + *reinterpret_cast<uint32_t *>(Sled.Address + 12) = encodeInstruction( + PatchOpcodes::PO_SW, RegNum::RN_SP, RegNum::RN_T9, 0x0); + *reinterpret_cast<uint32_t *>(Sled.Address + 16) = encodeInstruction( + PatchOpcodes::PO_LUI, 0x0, RegNum::RN_T9, HiTracingHookAddr); + *reinterpret_cast<uint32_t *>(Sled.Address + 20) = encodeInstruction( + PatchOpcodes::PO_ORI, RegNum::RN_T9, RegNum::RN_T9, LoTracingHookAddr); + *reinterpret_cast<uint32_t *>(Sled.Address + 24) = encodeInstruction( + PatchOpcodes::PO_LUI, 0x0, RegNum::RN_T0, HiFunctionID); + *reinterpret_cast<uint32_t *>(Sled.Address + 28) = encodeSpecialInstruction( + PatchOpcodes::PO_JALR, RegNum::RN_T9, 0x0, RegNum::RN_RA, 0X0); + *reinterpret_cast<uint32_t *>(Sled.Address + 32) = encodeInstruction( + PatchOpcodes::PO_ORI, RegNum::RN_T0, RegNum::RN_T0, LoFunctionID); + *reinterpret_cast<uint32_t *>(Sled.Address + 36) = encodeInstruction( + PatchOpcodes::PO_LW, RegNum::RN_SP, RegNum::RN_T9, 0x0); + *reinterpret_cast<uint32_t *>(Sled.Address + 40) = encodeInstruction( + PatchOpcodes::PO_LW, RegNum::RN_SP, RegNum::RN_RA, 0x4); + *reinterpret_cast<uint32_t *>(Sled.Address + 44) = encodeInstruction( + PatchOpcodes::PO_ADDIU, RegNum::RN_SP, RegNum::RN_SP, 0x8); + uint32_t CreateStackSpaceInstr = encodeInstruction( + PatchOpcodes::PO_ADDIU, RegNum::RN_SP, RegNum::RN_SP, 0xFFF8); + std::atomic_store_explicit( + reinterpret_cast<std::atomic<uint32_t> *>(Sled.Address), + uint32_t(CreateStackSpaceInstr), std::memory_order_release); + } else { + std::atomic_store_explicit( + reinterpret_cast<std::atomic<uint32_t> *>(Sled.Address), + uint32_t(PatchOpcodes::PO_B44), std::memory_order_release); + } + return true; +} + +bool patchFunctionEntry(const bool Enable, const uint32_t FuncId, + const XRaySledEntry &Sled, + void (*Trampoline)()) XRAY_NEVER_INSTRUMENT { + return patchSled(Enable, FuncId, Sled, Trampoline); +} + +bool patchFunctionExit(const bool Enable, const uint32_t FuncId, + const XRaySledEntry &Sled) XRAY_NEVER_INSTRUMENT { + return patchSled(Enable, FuncId, Sled, __xray_FunctionExit); +} + +bool patchFunctionTailExit(const bool Enable, const uint32_t FuncId, + const XRaySledEntry &Sled) XRAY_NEVER_INSTRUMENT { + // FIXME: In the future we'd need to distinguish between non-tail exits and + // tail exits for better information preservation. + return patchSled(Enable, FuncId, Sled, __xray_FunctionExit); +} + +} // namespace __xray + +extern "C" void __xray_ArgLoggerEntry() XRAY_NEVER_INSTRUMENT { + // FIXME: this will have to be implemented in the trampoline assembly file +} diff --git a/lib/xray/xray_mips64.cc b/lib/xray/xray_mips64.cc new file mode 100644 index 000000000000..21136848c8af --- /dev/null +++ b/lib/xray/xray_mips64.cc @@ -0,0 +1,167 @@ +//===-- xray_mips64.cc ------------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file is a part of XRay, a dynamic runtime instrumentation system. +// +// Implementation of MIPS64-specific routines. +// +//===----------------------------------------------------------------------===// +#include "sanitizer_common/sanitizer_common.h" +#include "xray_defs.h" +#include "xray_interface_internal.h" +#include <atomic> + +namespace __xray { + +// The machine codes for some instructions used in runtime patching. +enum PatchOpcodes : uint32_t { + PO_DADDIU = 0x64000000, // daddiu rt, rs, imm + PO_SD = 0xFC000000, // sd rt, base(offset) + PO_LUI = 0x3C000000, // lui rt, imm + PO_ORI = 0x34000000, // ori rt, rs, imm + PO_DSLL = 0x00000038, // dsll rd, rt, sa + PO_JALR = 0x00000009, // jalr rs + PO_LD = 0xDC000000, // ld rt, base(offset) + PO_B60 = 0x1000000f, // b #60 + PO_NOP = 0x0, // nop +}; + +enum RegNum : uint32_t { + RN_T0 = 0xC, + RN_T9 = 0x19, + RN_RA = 0x1F, + RN_SP = 0x1D, +}; + +inline static uint32_t encodeInstruction(uint32_t Opcode, uint32_t Rs, + uint32_t Rt, + uint32_t Imm) XRAY_NEVER_INSTRUMENT { + return (Opcode | Rs << 21 | Rt << 16 | Imm); +} + +inline static uint32_t +encodeSpecialInstruction(uint32_t Opcode, uint32_t Rs, uint32_t Rt, uint32_t Rd, + uint32_t Imm) XRAY_NEVER_INSTRUMENT { + return (Rs << 21 | Rt << 16 | Rd << 11 | Imm << 6 | Opcode); +} + +inline static bool patchSled(const bool Enable, const uint32_t FuncId, + const XRaySledEntry &Sled, + void (*TracingHook)()) XRAY_NEVER_INSTRUMENT { + // When |Enable| == true, + // We replace the following compile-time stub (sled): + // + // xray_sled_n: + // B .tmpN + // 15 NOPs (60 bytes) + // .tmpN + // + // With the following runtime patch: + // + // xray_sled_n (64-bit): + // daddiu sp, sp, -16 ;create stack frame + // nop + // sd ra, 8(sp) ;save return address + // sd t9, 0(sp) ;save register t9 + // lui t9, %highest(__xray_FunctionEntry/Exit) + // ori t9, t9, %higher(__xray_FunctionEntry/Exit) + // dsll t9, t9, 16 + // ori t9, t9, %hi(__xray_FunctionEntry/Exit) + // dsll t9, t9, 16 + // ori t9, t9, %lo(__xray_FunctionEntry/Exit) + // lui t0, %hi(function_id) + // jalr t9 ;call Tracing hook + // ori t0, t0, %lo(function_id) ;pass function id (delay slot) + // ld t9, 0(sp) ;restore register t9 + // ld ra, 8(sp) ;restore return address + // daddiu sp, sp, 16 ;delete stack frame + // + // Replacement of the first 4-byte instruction should be the last and atomic + // operation, so that the user code which reaches the sled concurrently + // either jumps over the whole sled, or executes the whole sled when the + // latter is ready. + // + // When |Enable|==false, we set back the first instruction in the sled to be + // B #60 + + if (Enable) { + uint32_t LoTracingHookAddr = + reinterpret_cast<int64_t>(TracingHook) & 0xffff; + uint32_t HiTracingHookAddr = (reinterpret_cast<int64_t>(TracingHook) >> 16) & 0xffff; + uint32_t HigherTracingHookAddr = + (reinterpret_cast<int64_t>(TracingHook) >> 32) & 0xffff; + uint32_t HighestTracingHookAddr = + (reinterpret_cast<int64_t>(TracingHook) >> 48) & 0xffff; + uint32_t LoFunctionID = FuncId & 0xffff; + uint32_t HiFunctionID = (FuncId >> 16) & 0xffff; + *reinterpret_cast<uint32_t *>(Sled.Address + 8) = encodeInstruction( + PatchOpcodes::PO_SD, RegNum::RN_SP, RegNum::RN_RA, 0x8); + *reinterpret_cast<uint32_t *>(Sled.Address + 12) = encodeInstruction( + PatchOpcodes::PO_SD, RegNum::RN_SP, RegNum::RN_T9, 0x0); + *reinterpret_cast<uint32_t *>(Sled.Address + 16) = encodeInstruction( + PatchOpcodes::PO_LUI, 0x0, RegNum::RN_T9, HighestTracingHookAddr); + *reinterpret_cast<uint32_t *>(Sled.Address + 20) = + encodeInstruction(PatchOpcodes::PO_ORI, RegNum::RN_T9, RegNum::RN_T9, + HigherTracingHookAddr); + *reinterpret_cast<uint32_t *>(Sled.Address + 24) = encodeSpecialInstruction( + PatchOpcodes::PO_DSLL, 0x0, RegNum::RN_T9, RegNum::RN_T9, 0x10); + *reinterpret_cast<uint32_t *>(Sled.Address + 28) = encodeInstruction( + PatchOpcodes::PO_ORI, RegNum::RN_T9, RegNum::RN_T9, HiTracingHookAddr); + *reinterpret_cast<uint32_t *>(Sled.Address + 32) = encodeSpecialInstruction( + PatchOpcodes::PO_DSLL, 0x0, RegNum::RN_T9, RegNum::RN_T9, 0x10); + *reinterpret_cast<uint32_t *>(Sled.Address + 36) = encodeInstruction( + PatchOpcodes::PO_ORI, RegNum::RN_T9, RegNum::RN_T9, LoTracingHookAddr); + *reinterpret_cast<uint32_t *>(Sled.Address + 40) = encodeInstruction( + PatchOpcodes::PO_LUI, 0x0, RegNum::RN_T0, HiFunctionID); + *reinterpret_cast<uint32_t *>(Sled.Address + 44) = encodeSpecialInstruction( + PatchOpcodes::PO_JALR, RegNum::RN_T9, 0x0, RegNum::RN_RA, 0X0); + *reinterpret_cast<uint32_t *>(Sled.Address + 48) = encodeInstruction( + PatchOpcodes::PO_ORI, RegNum::RN_T0, RegNum::RN_T0, LoFunctionID); + *reinterpret_cast<uint32_t *>(Sled.Address + 52) = encodeInstruction( + PatchOpcodes::PO_LD, RegNum::RN_SP, RegNum::RN_T9, 0x0); + *reinterpret_cast<uint32_t *>(Sled.Address + 56) = encodeInstruction( + PatchOpcodes::PO_LD, RegNum::RN_SP, RegNum::RN_RA, 0x8); + *reinterpret_cast<uint32_t *>(Sled.Address + 60) = encodeInstruction( + PatchOpcodes::PO_DADDIU, RegNum::RN_SP, RegNum::RN_SP, 0x10); + uint32_t CreateStackSpace = encodeInstruction( + PatchOpcodes::PO_DADDIU, RegNum::RN_SP, RegNum::RN_SP, 0xfff0); + std::atomic_store_explicit( + reinterpret_cast<std::atomic<uint32_t> *>(Sled.Address), + CreateStackSpace, std::memory_order_release); + } else { + std::atomic_store_explicit( + reinterpret_cast<std::atomic<uint32_t> *>(Sled.Address), + uint32_t(PatchOpcodes::PO_B60), std::memory_order_release); + } + return true; +} + +bool patchFunctionEntry(const bool Enable, const uint32_t FuncId, + const XRaySledEntry &Sled, + void (*Trampoline)()) XRAY_NEVER_INSTRUMENT { + return patchSled(Enable, FuncId, Sled, Trampoline); +} + +bool patchFunctionExit(const bool Enable, const uint32_t FuncId, + const XRaySledEntry &Sled) XRAY_NEVER_INSTRUMENT { + return patchSled(Enable, FuncId, Sled, __xray_FunctionExit); +} + +bool patchFunctionTailExit(const bool Enable, const uint32_t FuncId, + const XRaySledEntry &Sled) XRAY_NEVER_INSTRUMENT { + // FIXME: In the future we'd need to distinguish between non-tail exits and + // tail exits for better information preservation. + return patchSled(Enable, FuncId, Sled, __xray_FunctionExit); +} + +} // namespace __xray + +extern "C" void __xray_ArgLoggerEntry() XRAY_NEVER_INSTRUMENT { + // FIXME: this will have to be implemented in the trampoline assembly file +} diff --git a/lib/xray/xray_powerpc64.cc b/lib/xray/xray_powerpc64.cc new file mode 100644 index 000000000000..6a7554cfc1b6 --- /dev/null +++ b/lib/xray/xray_powerpc64.cc @@ -0,0 +1,100 @@ +//===-- xray_powerpc64.cc ---------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file is a part of XRay, a dynamic runtime instrumentation system. +// +// Implementation of powerpc64 and powerpc64le routines. +// +//===----------------------------------------------------------------------===// +#include "sanitizer_common/sanitizer_common.h" +#include "xray_defs.h" +#include "xray_interface_internal.h" +#include "xray_utils.h" +#include <atomic> +#include <cassert> +#include <cstring> + +#ifndef __LITTLE_ENDIAN__ +#error powerpc64 big endian is not supported for now. +#endif + +namespace { + +constexpr unsigned long long JumpOverInstNum = 7; + +void clearCache(void *Addr, size_t Len) { + const size_t LineSize = 32; + + const intptr_t Mask = ~(LineSize - 1); + const intptr_t StartLine = ((intptr_t)Addr) & Mask; + const intptr_t EndLine = ((intptr_t)Addr + Len + LineSize - 1) & Mask; + + for (intptr_t Line = StartLine; Line < EndLine; Line += LineSize) + asm volatile("dcbf 0, %0" : : "r"(Line)); + asm volatile("sync"); + + for (intptr_t Line = StartLine; Line < EndLine; Line += LineSize) + asm volatile("icbi 0, %0" : : "r"(Line)); + asm volatile("isync"); +} + +} // namespace + +extern "C" void __clear_cache(void *start, void *end); + +namespace __xray { + +bool patchFunctionEntry(const bool Enable, uint32_t FuncId, + const XRaySledEntry &Sled, + void (*Trampoline)()) XRAY_NEVER_INSTRUMENT { + if (Enable) { + // lis 0, FuncId[16..32] + // li 0, FuncId[0..15] + *reinterpret_cast<uint64_t *>(Sled.Address) = + (0x3c000000ull + (FuncId >> 16)) + + ((0x60000000ull + (FuncId & 0xffff)) << 32); + } else { + // b +JumpOverInstNum instructions. + *reinterpret_cast<uint32_t *>(Sled.Address) = + 0x48000000ull + (JumpOverInstNum << 2); + } + clearCache(reinterpret_cast<void *>(Sled.Address), 8); + return true; +} + +bool patchFunctionExit(const bool Enable, uint32_t FuncId, + const XRaySledEntry &Sled) XRAY_NEVER_INSTRUMENT { + if (Enable) { + // lis 0, FuncId[16..32] + // li 0, FuncId[0..15] + *reinterpret_cast<uint64_t *>(Sled.Address) = + (0x3c000000ull + (FuncId >> 16)) + + ((0x60000000ull + (FuncId & 0xffff)) << 32); + } else { + // Copy the blr/b instruction after JumpOverInstNum instructions. + *reinterpret_cast<uint32_t *>(Sled.Address) = + *(reinterpret_cast<uint32_t *>(Sled.Address) + JumpOverInstNum); + } + clearCache(reinterpret_cast<void *>(Sled.Address), 8); + return true; +} + +bool patchFunctionTailExit(const bool Enable, const uint32_t FuncId, + const XRaySledEntry &Sled) XRAY_NEVER_INSTRUMENT { + return patchFunctionExit(Enable, FuncId, Sled); +} + +// FIXME: Maybe implement this better? +bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT { return true; } + +} // namespace __xray + +extern "C" void __xray_ArgLoggerEntry() XRAY_NEVER_INSTRUMENT { + // FIXME: this will have to be implemented in the trampoline assembly file +} diff --git a/lib/xray/xray_powerpc64.inc b/lib/xray/xray_powerpc64.inc new file mode 100644 index 000000000000..c1a1bac1ad0a --- /dev/null +++ b/lib/xray/xray_powerpc64.inc @@ -0,0 +1,37 @@ +//===-- xray_powerpc64.inc --------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file is a part of XRay, a dynamic runtime instrumentation system. +// +//===----------------------------------------------------------------------===// + +#include <cstdint> +#include <mutex> +#include <sys/platform/ppc.h> + +#include "xray_defs.h" + +namespace __xray { + +ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT { + CPU = 0; + return __ppc_get_timebase(); +} + +inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT { + static std::mutex M; + std::lock_guard<std::mutex> Guard(M); + return __ppc_get_timebase_freq(); +} + +inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT { + return true; +} + +} // namespace __xray diff --git a/lib/xray/xray_trampoline_AArch64.S b/lib/xray/xray_trampoline_AArch64.S index f1a471c041f9..4d1b04fb7d90 100644 --- a/lib/xray/xray_trampoline_AArch64.S +++ b/lib/xray/xray_trampoline_AArch64.S @@ -1,3 +1,5 @@ +#include "../builtins/assembly.h" + .text /* The variable containing the handler function pointer */ .global _ZN6__xray19XRayPatchedFunctionE @@ -87,3 +89,56 @@ FunctionExit_restore: LDP X3, X4, [SP], #16 LDP X1, X2, [SP], #16 RET + + /* Word-aligned function entry point */ + .p2align 2 + /* Let C/C++ see the symbol */ + .global __xray_FunctionTailExit + .type __xray_FunctionTailExit, %function + /* In C++ it is void extern "C" __xray_FunctionTailExit(uint32_t FuncId) + with FuncId passed in W0 register. */ +__xray_FunctionTailExit: + /* Move the return address beyond the end of sled data. The 12 bytes of + data are inserted in the code of the runtime patch, between the call + instruction and the instruction returned into. The data contains 32 + bits of instrumented function ID and 64 bits of the address of + the current trampoline. */ + ADD X30, X30, #12 + /* Push the registers which may be modified by the handler function */ + STP X1, X2, [SP, #-16]! + STP X3, X4, [SP, #-16]! + STP X5, X6, [SP, #-16]! + STP X7, X30, [SP, #-16]! + /* Push the parameters of the tail called function */ + STP Q0, Q1, [SP, #-32]! + STP Q2, Q3, [SP, #-32]! + STP Q4, Q5, [SP, #-32]! + STP Q6, Q7, [SP, #-32]! + /* Load the address of _ZN6__xray19XRayPatchedFunctionE into X1 */ + LDR X1, =_ZN6__xray19XRayPatchedFunctionE + /* Load the handler function pointer into X2 */ + LDR X2, [X1] + /* Handler address is nullptr if handler is not set */ + CMP X2, #0 + BEQ FunctionTailExit_restore + /* Function ID is already in W0 (the first parameter). + X1=2 means that we are tracing a tail exit event, but before the + logging part of XRay is ready, we pretend that here a normal function + exit happens, so we give the handler code 1 */ + MOV X1, #1 + /* Call the handler with 2 parameters in W0 and X1 */ + BLR X2 +FunctionTailExit_restore: + /* Pop the parameters of the tail called function */ + LDP Q6, Q7, [SP], #32 + LDP Q4, Q5, [SP], #32 + LDP Q2, Q3, [SP], #32 + LDP Q0, Q1, [SP], #32 + /* Pop the registers which may be modified by the handler function */ + LDP X7, X30, [SP], #16 + LDP X5, X6, [SP], #16 + LDP X3, X4, [SP], #16 + LDP X1, X2, [SP], #16 + RET + +NO_EXEC_STACK_DIRECTIVE diff --git a/lib/xray/xray_trampoline_arm.S b/lib/xray/xray_trampoline_arm.S index 5d87c971364d..71dbee65d825 100644 --- a/lib/xray/xray_trampoline_arm.S +++ b/lib/xray/xray_trampoline_arm.S @@ -1,8 +1,11 @@ +#include "../builtins/assembly.h" + .syntax unified .arch armv6t2 .fpu vfpv2 .code 32 .global _ZN6__xray19XRayPatchedFunctionE + @ Word-aligned function entry point .p2align 2 @ Let C/C++ see the symbol @@ -63,3 +66,37 @@ FunctionExit_restore: @ Restore the floating-point return value of the instrumented function VPOP {d0} POP {r1-r3,pc} + + @ Word-aligned function entry point + .p2align 2 + @ Let C/C++ see the symbol + .global __xray_FunctionTailExit + @ It preserves all registers except r0, r12(ip), r14(lr) and r15(pc) + @ Assume that "q" part of the floating-point registers is not used + @ for passing parameters to C/C++ functions. + .type __xray_FunctionTailExit, %function + @ In C++ it is void extern "C" __xray_FunctionTailExit(uint32_t FuncId) + @ with FuncId passed in r0 register. +__xray_FunctionTailExit: + PUSH {r1-r3,lr} + @ Save floating-point parameters of the instrumented function + VPUSH {d0-d7} + MOVW r1,#:lower16:_ZN6__xray19XRayPatchedFunctionE + MOVT r1,#:upper16:_ZN6__xray19XRayPatchedFunctionE + LDR r2, [r1] + @ Handler address is nullptr if handler is not set + CMP r2, #0 + BEQ FunctionTailExit_restore + @ Function ID is already in r0 (the first parameter). + @ r1=2 means that we are tracing a tail exit event + @ But before the logging part of XRay is ready, we pretend that here a + @ normal function exit happens, so we give the handler code 1 + MOV r1, #1 + @ Call the handler with 2 parameters in r0 and r1 + BLX r2 +FunctionTailExit_restore: + @ Restore floating-point parameters of the instrumented function + VPOP {d0-d7} + POP {r1-r3,pc} + +NO_EXEC_STACK_DIRECTIVE diff --git a/lib/xray/xray_trampoline_mips.S b/lib/xray/xray_trampoline_mips.S new file mode 100644 index 000000000000..39a1a3af35c7 --- /dev/null +++ b/lib/xray/xray_trampoline_mips.S @@ -0,0 +1,110 @@ +//===-- xray_trampoline_mips.s ----------------------------------*- ASM -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file is a part of XRay, a dynamic runtime instrumentation system. +// +// This implements the MIPS-specific assembler for the trampolines. +// +//===----------------------------------------------------------------------===// + + .text + .file "xray_trampoline_mips.S" + .globl __xray_FunctionEntry + .p2align 2 + .type __xray_FunctionEntry,@function +__xray_FunctionEntry: + .cfi_startproc + .set noreorder + .cpload $t9 + .set reorder + // Save argument registers before doing any actual work + .cfi_def_cfa_offset 36 + addiu $sp, $sp, -36 + sw $ra, 32($sp) + .cfi_offset 31, -4 + sw $a3, 28($sp) + sw $a2, 24($sp) + sw $a1, 20($sp) + sw $a0, 16($sp) + sdc1 $f14, 8($sp) + sdc1 $f12, 0($sp) + + la $t9, _ZN6__xray19XRayPatchedFunctionE + lw $t9, 0($t9) + + beqz $t9, FunctionEntry_restore + + // a1=0 means that we are tracing an entry event + move $a1, $zero + // Function ID is in t0 (the first parameter). + move $a0, $t0 + jalr $t9 + +FunctionEntry_restore: + // Restore argument registers + ldc1 $f12, 0($sp) + ldc1 $f14, 8($sp) + lw $a0, 16($sp) + lw $a1, 20($sp) + lw $a2, 24($sp) + lw $a3, 28($sp) + lw $ra, 32($sp) + addiu $sp, $sp, 36 + jr $ra +FunctionEntry_end: + .size __xray_FunctionEntry, FunctionEntry_end-__xray_FunctionEntry + .cfi_endproc + + .text + .globl __xray_FunctionExit + .p2align 2 + .type __xray_FunctionExit,@function +__xray_FunctionExit: + .cfi_startproc + .set noreorder + .cpload $t9 + .set reorder + // Save return registers before doing any actual work. + .cfi_def_cfa_offset 36 + addiu $sp, $sp, -36 + sw $ra, 32($sp) + .cfi_offset 31, -4 + sw $a1, 28($sp) + sw $a0, 24($sp) + sw $v1, 20($sp) + sw $v0, 16($sp) + sdc1 $f2, 8($sp) + sdc1 $f0, 0($sp) + + la $t9, _ZN6__xray19XRayPatchedFunctionE + lw $t9, 0($t9) + + beqz $t9, FunctionExit_restore + + // a1=1 means that we are tracing an exit event + li $a1, 1 + // Function ID is in t0 (the first parameter). + move $a0, $t0 + jalr $t9 + +FunctionExit_restore: + // Restore return registers + ldc1 $f0, 0($sp) + ldc1 $f2, 8($sp) + lw $v0, 16($sp) + lw $v1, 20($sp) + lw $a0, 24($sp) + lw $a1, 28($sp) + lw $ra, 32($sp) + addiu $sp, $sp, 36 + jr $ra + +FunctionExit_end: + .size __xray_FunctionExit, FunctionExit_end-__xray_FunctionExit + .cfi_endproc diff --git a/lib/xray/xray_trampoline_mips64.S b/lib/xray/xray_trampoline_mips64.S new file mode 100644 index 000000000000..9cbc7e181d9d --- /dev/null +++ b/lib/xray/xray_trampoline_mips64.S @@ -0,0 +1,136 @@ +//===-- xray_trampoline_mips64.s --------------------------------*- ASM -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file is a part of XRay, a dynamic runtime instrumentation system. +// +// This implements the MIPS64-specific assembler for the trampolines. +// +//===----------------------------------------------------------------------===// + + .text + .file "xray_trampoline_mips64.S" + .globl __xray_FunctionEntry + .p2align 2 + .type __xray_FunctionEntry,@function +__xray_FunctionEntry: + .cfi_startproc + // Save argument registers before doing any actual work. + .cfi_def_cfa_offset 144 + daddiu $sp, $sp, -144 + sd $ra, 136($sp) + .cfi_offset 31, -8 + sd $gp, 128($sp) + sd $a7, 120($sp) + sd $a6, 112($sp) + sd $a5, 104($sp) + sd $a4, 96($sp) + sd $a3, 88($sp) + sd $a2, 80($sp) + sd $a1, 72($sp) + sd $a0, 64($sp) + sdc1 $f19, 56($sp) + sdc1 $f18, 48($sp) + sdc1 $f17, 40($sp) + sdc1 $f16, 32($sp) + sdc1 $f15, 24($sp) + sdc1 $f14, 16($sp) + sdc1 $f13, 8($sp) + sdc1 $f12, 0($sp) + + lui $gp, %hi(%neg(%gp_rel(__xray_FunctionEntry))) + daddu $gp, $gp, $t9 + daddiu $gp ,$gp, %lo(%neg(%gp_rel(__xray_FunctionEntry))) + + dla $t9, _ZN6__xray19XRayPatchedFunctionE + ld $t9, 0($t9) + + beqz $t9, FunctionEntry_restore + + // a1=0 means that we are tracing an entry event + move $a1, $zero + // Function ID is in t0 (the first parameter). + move $a0, $t0 + jalr $t9 + +FunctionEntry_restore: + // Restore argument registers + ldc1 $f12, 0($sp) + ldc1 $f13, 8($sp) + ldc1 $f14, 16($sp) + ldc1 $f15, 24($sp) + ldc1 $f16, 32($sp) + ldc1 $f17, 40($sp) + ldc1 $f18, 48($sp) + ldc1 $f19, 56($sp) + ld $a0, 64($sp) + ld $a1, 72($sp) + ld $a2, 80($sp) + ld $a3, 88($sp) + ld $a4, 96($sp) + ld $a5, 104($sp) + ld $a6, 112($sp) + ld $a7, 120($sp) + ld $gp, 128($sp) + ld $ra, 136($sp) + daddiu $sp, $sp, 144 + jr $ra +FunctionEntry_end: + .size __xray_FunctionEntry, FunctionEntry_end-__xray_FunctionEntry + .cfi_endproc + + .text + .globl __xray_FunctionExit + .p2align 2 + .type __xray_FunctionExit,@function +__xray_FunctionExit: + .cfi_startproc + // Save return registers before doing any actual work. + .cfi_def_cfa_offset 64 + daddiu $sp, $sp, -64 + sd $ra, 56($sp) + .cfi_offset 31, -8 + sd $gp, 48($sp) + sd $a0, 40($sp) + sd $v1, 32($sp) + sd $v0, 24($sp) + sdc1 $f2, 16($sp) + sdc1 $f1, 8($sp) + sdc1 $f0, 0($sp) + + lui $gp, %hi(%neg(%gp_rel(__xray_FunctionExit))) + daddu $gp, $gp, $t9 + daddiu $gp ,$gp, %lo(%neg(%gp_rel(__xray_FunctionExit))) + + dla $t9, _ZN6__xray19XRayPatchedFunctionE + ld $t9, 0($t9) + + beqz $t9, FunctionExit_restore + + // a1=1 means that we are tracing an exit event + li $a1, 1 + // Function ID is in t0 (the first parameter). + move $a0, $t0 + jalr $t9 + +FunctionExit_restore: + // Restore return registers + ldc1 $f0, 0($sp) + ldc1 $f1, 8($sp) + ldc1 $f2, 16($sp) + ld $v0, 24($sp) + ld $v1, 32($sp) + ld $a0, 40($sp) + ld $gp, 48($sp) + ld $ra, 56($sp) + daddiu $sp, $sp, 64 + jr $ra + +FunctionExit_end: + .size __xray_FunctionExit, FunctionExit_end-__xray_FunctionExit + .cfi_endproc diff --git a/lib/xray/xray_trampoline_powerpc64.cc b/lib/xray/xray_trampoline_powerpc64.cc new file mode 100644 index 000000000000..878c46930fee --- /dev/null +++ b/lib/xray/xray_trampoline_powerpc64.cc @@ -0,0 +1,15 @@ +#include <atomic> +#include <xray/xray_interface.h> + +namespace __xray { + +extern std::atomic<void (*)(int32_t, XRayEntryType)> XRayPatchedFunction; + +// Implement this in C++ instead of assembly, to avoid dealing with ToC by hand. +void CallXRayPatchedFunction(int32_t FuncId, XRayEntryType Type) { + auto fptr = __xray::XRayPatchedFunction.load(); + if (fptr != nullptr) + (*fptr)(FuncId, Type); +} + +} // namespace __xray diff --git a/lib/xray/xray_trampoline_powerpc64_asm.S b/lib/xray/xray_trampoline_powerpc64_asm.S new file mode 100644 index 000000000000..d43231ead22c --- /dev/null +++ b/lib/xray/xray_trampoline_powerpc64_asm.S @@ -0,0 +1,171 @@ + .text + .abiversion 2 + .globl __xray_FunctionEntry + .p2align 4 +__xray_FunctionEntry: + std 0, 16(1) + stdu 1, -408(1) +# Spill r3-r10, f1-f13, and vsr34-vsr45, which are parameter registers. +# If this appears to be slow, the caller needs to pass in number of generic, +# floating point, and vector parameters, so that we only spill those live ones. + std 3, 32(1) + ld 3, 400(1) # FuncId + std 4, 40(1) + std 5, 48(1) + std 6, 56(1) + std 7, 64(1) + std 8, 72(1) + std 9, 80(1) + std 10, 88(1) + addi 4, 1, 96 + stxsdx 1, 0, 4 + addi 4, 1, 104 + stxsdx 2, 0, 4 + addi 4, 1, 112 + stxsdx 3, 0, 4 + addi 4, 1, 120 + stxsdx 4, 0, 4 + addi 4, 1, 128 + stxsdx 5, 0, 4 + addi 4, 1, 136 + stxsdx 6, 0, 4 + addi 4, 1, 144 + stxsdx 7, 0, 4 + addi 4, 1, 152 + stxsdx 8, 0, 4 + addi 4, 1, 160 + stxsdx 9, 0, 4 + addi 4, 1, 168 + stxsdx 10, 0, 4 + addi 4, 1, 176 + stxsdx 11, 0, 4 + addi 4, 1, 184 + stxsdx 12, 0, 4 + addi 4, 1, 192 + stxsdx 13, 0, 4 + addi 4, 1, 200 + stxvd2x 34, 0, 4 + addi 4, 1, 216 + stxvd2x 35, 0, 4 + addi 4, 1, 232 + stxvd2x 36, 0, 4 + addi 4, 1, 248 + stxvd2x 37, 0, 4 + addi 4, 1, 264 + stxvd2x 38, 0, 4 + addi 4, 1, 280 + stxvd2x 39, 0, 4 + addi 4, 1, 296 + stxvd2x 40, 0, 4 + addi 4, 1, 312 + stxvd2x 41, 0, 4 + addi 4, 1, 328 + stxvd2x 42, 0, 4 + addi 4, 1, 344 + stxvd2x 43, 0, 4 + addi 4, 1, 360 + stxvd2x 44, 0, 4 + addi 4, 1, 376 + stxvd2x 45, 0, 4 + std 2, 392(1) + mflr 0 + std 0, 400(1) + + li 4, 0 + bl _ZN6__xray23CallXRayPatchedFunctionEi13XRayEntryType + nop + + addi 4, 1, 96 + lxsdx 1, 0, 4 + addi 4, 1, 104 + lxsdx 2, 0, 4 + addi 4, 1, 112 + lxsdx 3, 0, 4 + addi 4, 1, 120 + lxsdx 4, 0, 4 + addi 4, 1, 128 + lxsdx 5, 0, 4 + addi 4, 1, 136 + lxsdx 6, 0, 4 + addi 4, 1, 144 + lxsdx 7, 0, 4 + addi 4, 1, 152 + lxsdx 8, 0, 4 + addi 4, 1, 160 + lxsdx 9, 0, 4 + addi 4, 1, 168 + lxsdx 10, 0, 4 + addi 4, 1, 176 + lxsdx 11, 0, 4 + addi 4, 1, 184 + lxsdx 12, 0, 4 + addi 4, 1, 192 + lxsdx 13, 0, 4 + addi 4, 1, 200 + lxvd2x 34, 0, 4 + addi 4, 1, 216 + lxvd2x 35, 0, 4 + addi 4, 1, 232 + lxvd2x 36, 0, 4 + addi 4, 1, 248 + lxvd2x 37, 0, 4 + addi 4, 1, 264 + lxvd2x 38, 0, 4 + addi 4, 1, 280 + lxvd2x 39, 0, 4 + addi 4, 1, 296 + lxvd2x 40, 0, 4 + addi 4, 1, 312 + lxvd2x 41, 0, 4 + addi 4, 1, 328 + lxvd2x 42, 0, 4 + addi 4, 1, 344 + lxvd2x 43, 0, 4 + addi 4, 1, 360 + lxvd2x 44, 0, 4 + addi 4, 1, 376 + lxvd2x 45, 0, 4 + ld 0, 400(1) + mtlr 0 + ld 2, 392(1) + ld 3, 32(1) + ld 4, 40(1) + ld 5, 48(1) + ld 6, 56(1) + ld 7, 64(1) + ld 8, 72(1) + ld 9, 80(1) + ld 10, 88(1) + + addi 1, 1, 408 + ld 0, 16(1) + blr + + .globl __xray_FunctionExit + .p2align 4 +__xray_FunctionExit: + std 0, 16(1) + ld 0, -8(1) # FuncId + stdu 1, -72(1) +# Spill r3, f1, and vsr34, the return value registers. + std 3, 32(1) + mr 3, 0 + addi 4, 1, 40 + stxsdx 1, 0, 4 + addi 4, 1, 48 + stxvd2x 34, 0, 4 + mflr 0 + std 0, 64(1) + li 4, 1 + bl _ZN6__xray23CallXRayPatchedFunctionEi13XRayEntryType + nop + ld 0, 64(1) + mtlr 0 + ld 3, 32(1) + addi 4, 1, 40 + lxsdx 1, 0, 4 + addi 4, 1, 48 + lxvd2x 34, 0, 4 + addi 1, 1, 72 + ld 0, 16(1) + blr diff --git a/lib/xray/xray_trampoline_x86_64.S b/lib/xray/xray_trampoline_x86_64.S index d90c30cd98e9..da0aae326bdc 100644 --- a/lib/xray/xray_trampoline_x86_64.S +++ b/lib/xray/xray_trampoline_x86_64.S @@ -13,6 +13,8 @@ // //===----------------------------------------------------------------------===// +#include "../builtins/assembly.h" + .macro SAVE_REGISTERS subq $200, %rsp movupd %xmm0, 184(%rsp) @@ -53,6 +55,9 @@ .text .file "xray_trampoline_x86.S" + +//===----------------------------------------------------------------------===// + .globl __xray_FunctionEntry .align 16, 0x90 .type __xray_FunctionEntry,@function @@ -81,6 +86,8 @@ __xray_FunctionEntry: .size __xray_FunctionEntry, .Ltmp1-__xray_FunctionEntry .cfi_endproc +//===----------------------------------------------------------------------===// + .globl __xray_FunctionExit .align 16, 0x90 .type __xray_FunctionExit,@function @@ -117,6 +124,8 @@ __xray_FunctionExit: .size __xray_FunctionExit, .Ltmp3-__xray_FunctionExit .cfi_endproc +//===----------------------------------------------------------------------===// + .global __xray_FunctionTailExit .align 16, 0x90 .type __xray_FunctionTailExit,@function @@ -145,3 +154,41 @@ __xray_FunctionTailExit: .Ltmp5: .size __xray_FunctionTailExit, .Ltmp5-__xray_FunctionTailExit .cfi_endproc + +//===----------------------------------------------------------------------===// + + .globl __xray_ArgLoggerEntry + .align 16, 0x90 + .type __xray_ArgLoggerEntry,@function +__xray_ArgLoggerEntry: + .cfi_startproc + pushq %rbp + .cfi_def_cfa_offset 16 + SAVE_REGISTERS + + // Again, these function pointer loads must be atomic; MOV is fine. + movq _ZN6__xray13XRayArgLoggerE(%rip), %rax + testq %rax, %rax + jne .Larg1entryLog + + // If [arg1 logging handler] not set, defer to no-arg logging. + movq _ZN6__xray19XRayPatchedFunctionE(%rip), %rax + testq %rax, %rax + je .Larg1entryFail + +.Larg1entryLog: + movq %rdi, %rdx // first argument will become the third + xorq %rsi, %rsi // XRayEntryType::ENTRY into the second + movl %r10d, %edi // 32-bit function ID becomes the first + callq *%rax + +.Larg1entryFail: + RESTORE_REGISTERS + popq %rbp + retq + +.Larg1entryEnd: + .size __xray_ArgLoggerEntry, .Larg1entryEnd-__xray_ArgLoggerEntry + .cfi_endproc + +NO_EXEC_STACK_DIRECTIVE diff --git a/lib/xray/xray_tsc.h b/lib/xray/xray_tsc.h new file mode 100644 index 000000000000..4507564e7cd2 --- /dev/null +++ b/lib/xray/xray_tsc.h @@ -0,0 +1,68 @@ +//===-- xray_tsc.h ----------------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file is a part of XRay, a dynamic runtime instrumentation system. +// +//===----------------------------------------------------------------------===// +#ifndef XRAY_EMULATE_TSC_H +#define XRAY_EMULATE_TSC_H + +namespace __xray { +static constexpr uint64_t NanosecondsPerSecond = 1000ULL * 1000 * 1000; +} + +#if defined(__x86_64__) +#include "xray_x86_64.inc" +#elif defined(__powerpc64__) +#include "xray_powerpc64.inc" +#elif defined(__arm__) || defined(__aarch64__) || defined(__mips__) +// Emulated TSC. +// There is no instruction like RDTSCP in user mode on ARM. ARM's CP15 does +// not have a constant frequency like TSC on x86(_64), it may go faster +// or slower depending on CPU turbo or power saving mode. Furthermore, +// to read from CP15 on ARM a kernel modification or a driver is needed. +// We can not require this from users of compiler-rt. +// So on ARM we use clock_gettime() which gives the result in nanoseconds. +// To get the measurements per second, we scale this by the number of +// nanoseconds per second, pretending that the TSC frequency is 1GHz and +// one TSC tick is 1 nanosecond. +#include "sanitizer_common/sanitizer_common.h" +#include "sanitizer_common/sanitizer_internal_defs.h" +#include "xray_defs.h" +#include <cerrno> +#include <cstdint> +#include <time.h> + +namespace __xray { + +inline bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT { return true; } + +ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT { + timespec TS; + int result = clock_gettime(CLOCK_REALTIME, &TS); + if (result != 0) { + Report("clock_gettime(2) returned %d, errno=%d.", result, int(errno)); + TS.tv_sec = 0; + TS.tv_nsec = 0; + } + CPU = 0; + return TS.tv_sec * NanosecondsPerSecond + TS.tv_nsec; +} + +inline uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT { + return NanosecondsPerSecond; +} + +} // namespace __xray + +#else +#error Target architecture is not supported. +#endif // CPU architecture + +#endif // XRAY_EMULATE_TSC_H diff --git a/lib/xray/xray_utils.cc b/lib/xray/xray_utils.cc new file mode 100644 index 000000000000..b9a38d1b98eb --- /dev/null +++ b/lib/xray/xray_utils.cc @@ -0,0 +1,125 @@ +//===-- xray_utils.cc -------------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file is a part of XRay, a dynamic runtime instrumentation system. +// +//===----------------------------------------------------------------------===// +#include "xray_utils.h" + +#include "sanitizer_common/sanitizer_common.h" +#include "xray_defs.h" +#include "xray_flags.h" +#include <stdlib.h> +#include <cstdio> +#include <errno.h> +#include <fcntl.h> +#include <iterator> +#include <sys/types.h> +#include <tuple> +#include <unistd.h> +#include <utility> + +namespace __xray { + +void printToStdErr(const char *Buffer) XRAY_NEVER_INSTRUMENT { + fprintf(stderr, "%s", Buffer); +} + +void retryingWriteAll(int Fd, char *Begin, char *End) XRAY_NEVER_INSTRUMENT { + if (Begin == End) + return; + auto TotalBytes = std::distance(Begin, End); + while (auto Written = write(Fd, Begin, TotalBytes)) { + if (Written < 0) { + if (errno == EINTR) + continue; // Try again. + Report("Failed to write; errno = %d\n", errno); + return; + } + TotalBytes -= Written; + if (TotalBytes == 0) + break; + Begin += Written; + } +} + +std::pair<ssize_t, bool> retryingReadSome(int Fd, char *Begin, + char *End) XRAY_NEVER_INSTRUMENT { + auto BytesToRead = std::distance(Begin, End); + ssize_t BytesRead; + ssize_t TotalBytesRead = 0; + while (BytesToRead && (BytesRead = read(Fd, Begin, BytesToRead))) { + if (BytesRead == -1) { + if (errno == EINTR) + continue; + Report("Read error; errno = %d\n", errno); + return std::make_pair(TotalBytesRead, false); + } + + TotalBytesRead += BytesRead; + BytesToRead -= BytesRead; + Begin += BytesRead; + } + return std::make_pair(TotalBytesRead, true); +} + +bool readValueFromFile(const char *Filename, + long long *Value) XRAY_NEVER_INSTRUMENT { + int Fd = open(Filename, O_RDONLY | O_CLOEXEC); + if (Fd == -1) + return false; + static constexpr size_t BufSize = 256; + char Line[BufSize] = {}; + ssize_t BytesRead; + bool Success; + std::tie(BytesRead, Success) = retryingReadSome(Fd, Line, Line + BufSize); + if (!Success) + return false; + close(Fd); + char *End = nullptr; + long long Tmp = internal_simple_strtoll(Line, &End, 10); + bool Result = false; + if (Line[0] != '\0' && (*End == '\n' || *End == '\0')) { + *Value = Tmp; + Result = true; + } + return Result; +} + +int getLogFD() XRAY_NEVER_INSTRUMENT { + // Open a temporary file once for the log. + static char TmpFilename[256] = {}; + static char TmpWildcardPattern[] = "XXXXXX"; + auto Argv = GetArgv(); + const char *Progname = Argv[0] == nullptr ? "(unknown)" : Argv[0]; + const char *LastSlash = internal_strrchr(Progname, '/'); + + if (LastSlash != nullptr) + Progname = LastSlash + 1; + + const int HalfLength = sizeof(TmpFilename) / 2 - sizeof(TmpWildcardPattern); + int NeededLength = internal_snprintf( + TmpFilename, sizeof(TmpFilename), "%.*s%.*s.%s", HalfLength, + flags()->xray_logfile_base, HalfLength, Progname, TmpWildcardPattern); + if (NeededLength > int(sizeof(TmpFilename))) { + Report("XRay log file name too long (%d): %s\n", NeededLength, TmpFilename); + return -1; + } + int Fd = mkstemp(TmpFilename); + if (Fd == -1) { + Report("XRay: Failed opening temporary file '%s'; not logging events.\n", + TmpFilename); + return -1; + } + Report("XRay: Log file in '%s'\n", TmpFilename); + + return Fd; +} + +} // namespace __xray diff --git a/lib/xray/xray_utils.h b/lib/xray/xray_utils.h new file mode 100644 index 000000000000..1ecc74a2dce8 --- /dev/null +++ b/lib/xray/xray_utils.h @@ -0,0 +1,41 @@ +//===-- xray_utils.h --------------------------------------------*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file is a part of XRay, a dynamic runtime instrumentation system. +// +// Some shared utilities for the XRay runtime implementation. +// +//===----------------------------------------------------------------------===// +#ifndef XRAY_UTILS_H +#define XRAY_UTILS_H + +#include <sys/types.h> +#include <utility> + +namespace __xray { + +// Default implementation of the reporting interface for sanitizer errors. +void printToStdErr(const char *Buffer); + +// EINTR-safe write routine, provided a file descriptor and a character range. +void retryingWriteAll(int Fd, char *Begin, char *End); + +// Reads a long long value from a provided file. +bool readValueFromFile(const char *Filename, long long *Value); + +// EINTR-safe read routine, providing a file descriptor and a character range. +std::pair<ssize_t, bool> retryingReadSome(int Fd, char *Begin, char *End); + +// EINTR-safe open routine, uses flag-provided values for initialising a log +// file. +int getLogFD(); + +} // namespace __xray + +#endif // XRAY_UTILS_H diff --git a/lib/xray/xray_x86_64.cc b/lib/xray/xray_x86_64.cc index 3ee91896c6e0..8c2a4e313e3a 100644 --- a/lib/xray/xray_x86_64.cc +++ b/lib/xray/xray_x86_64.cc @@ -1,6 +1,8 @@ +#include "cpuid.h" #include "sanitizer_common/sanitizer_common.h" #include "xray_defs.h" #include "xray_interface_internal.h" + #include <atomic> #include <cstdint> #include <errno.h> @@ -42,9 +44,9 @@ static bool readValueFromFile(const char *Filename, ssize_t BytesRead; bool Success; std::tie(BytesRead, Success) = retryingReadSome(Fd, Line, Line + BufSize); + close(Fd); if (!Success) return false; - close(Fd); char *End = nullptr; long long Tmp = internal_simple_strtoll(Line, &End, 10); bool Result = false; @@ -55,19 +57,19 @@ static bool readValueFromFile(const char *Filename, return Result; } -uint64_t cycleFrequency() XRAY_NEVER_INSTRUMENT { - long long CPUFrequency = -1; +uint64_t getTSCFrequency() XRAY_NEVER_INSTRUMENT { + long long TSCFrequency = -1; if (readValueFromFile("/sys/devices/system/cpu/cpu0/tsc_freq_khz", - &CPUFrequency)) { - CPUFrequency *= 1000; + &TSCFrequency)) { + TSCFrequency *= 1000; } else if (readValueFromFile( - "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq", - &CPUFrequency)) { - CPUFrequency *= 1000; + "/sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq", + &TSCFrequency)) { + TSCFrequency *= 1000; } else { Report("Unable to determine CPU frequency for TSC accounting.\n"); } - return CPUFrequency == -1 ? 0 : static_cast<uint64_t>(CPUFrequency); + return TSCFrequency == -1 ? 0 : static_cast<uint64_t>(TSCFrequency); } static constexpr uint8_t CallOpCode = 0xe8; @@ -80,7 +82,8 @@ static constexpr int64_t MinOffset{std::numeric_limits<int32_t>::min()}; static constexpr int64_t MaxOffset{std::numeric_limits<int32_t>::max()}; bool patchFunctionEntry(const bool Enable, const uint32_t FuncId, - const XRaySledEntry &Sled) XRAY_NEVER_INSTRUMENT { + const XRaySledEntry &Sled, + void (*Trampoline)()) XRAY_NEVER_INSTRUMENT { // Here we do the dance of replacing the following sled: // // xray_sled_n: @@ -101,13 +104,12 @@ bool patchFunctionEntry(const bool Enable, const uint32_t FuncId, // 4. Do an atomic write over the jmp instruction for the "mov r10d" // opcode and first operand. // - // Prerequisite is to compute the relative offset to the - // __xray_FunctionEntry function's address. - int64_t TrampolineOffset = reinterpret_cast<int64_t>(__xray_FunctionEntry) - + // Prerequisite is to compute the relative offset to the trampoline's address. + int64_t TrampolineOffset = reinterpret_cast<int64_t>(Trampoline) - (static_cast<int64_t>(Sled.Address) + 11); if (TrampolineOffset < MinOffset || TrampolineOffset > MaxOffset) { Report("XRay Entry trampoline (%p) too far from sled (%p)\n", - __xray_FunctionEntry, reinterpret_cast<void *>(Sled.Address)); + Trampoline, reinterpret_cast<void *>(Sled.Address)); return false; } if (Enable) { @@ -199,4 +201,20 @@ bool patchFunctionTailExit(const bool Enable, const uint32_t FuncId, return true; } +// We determine whether the CPU we're running on has the correct features we +// need. In x86_64 this will be rdtscp support. +bool probeRequiredCPUFeatures() XRAY_NEVER_INSTRUMENT { + unsigned int EAX, EBX, ECX, EDX; + + // We check whether rdtscp support is enabled. According to the x86_64 manual, + // level should be set at 0x80000001, and we should have a look at bit 27 in + // EDX. That's 0x8000000 (or 1u << 26). + __get_cpuid(0x80000001, &EAX, &EBX, &ECX, &EDX); + if (!(EDX & (1u << 26))) { + Report("Missing rdtscp support.\n"); + return false; + } + return true; +} + } // namespace __xray diff --git a/lib/xray/xray_x86_64.h b/lib/xray/xray_x86_64.inc index 52d2dea8f0d9..4ad3f9810946 100644 --- a/lib/xray/xray_x86_64.h +++ b/lib/xray/xray_x86_64.inc @@ -1,4 +1,4 @@ -//===-- xray_x86_64.h -------------------------------------------*- C++ -*-===// +//===-- xray_x86_64.inc -----------------------------------------*- C++ -*-===// // // The LLVM Compiler Infrastructure // @@ -10,8 +10,6 @@ // This file is a part of XRay, a dynamic runtime instrumentation system. // //===----------------------------------------------------------------------===// -#ifndef XRAY_X86_64_H -#define XRAY_X86_64_H #include <cstdint> #include <x86intrin.h> @@ -27,6 +25,9 @@ ALWAYS_INLINE uint64_t readTSC(uint8_t &CPU) XRAY_NEVER_INSTRUMENT { CPU = LongCPU; return TSC; } -} -#endif // XRAY_X86_64_H +uint64_t getTSCFrequency(); + +bool probeRequiredCPUFeatures(); + +} // namespace __xray diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 9b9c515a304d..addc579973bb 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -5,9 +5,8 @@ configure_lit_site_cfg( ${CMAKE_CURRENT_SOURCE_DIR}/lit.common.configured.in ${CMAKE_CURRENT_BINARY_DIR}/lit.common.configured) -# BlocksRuntime and builtins testsuites are not yet ported to lit. +# BlocksRuntime (and most of builtins) testsuites are not yet ported to lit. # add_subdirectory(BlocksRuntime) -# add_subdirectory(builtins) set(SANITIZER_COMMON_LIT_TEST_DEPS) if(COMPILER_RT_STANDALONE_BUILD) @@ -39,6 +38,9 @@ endif() # Run sanitizer tests only if we're sure that clang would produce # working binaries. if(COMPILER_RT_CAN_EXECUTE_TESTS) + if(COMPILER_RT_BUILD_BUILTINS) + add_subdirectory(builtins) + endif() if(COMPILER_RT_HAS_ASAN) add_subdirectory(asan) endif() diff --git a/test/asan/CMakeLists.txt b/test/asan/CMakeLists.txt index 637c5b80802c..4b4fdf19d18c 100644 --- a/test/asan/CMakeLists.txt +++ b/test/asan/CMakeLists.txt @@ -3,8 +3,8 @@ set(ASAN_LIT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) set(ASAN_TESTSUITES) set(ASAN_DYNAMIC_TESTSUITES) -# TODO(wwchrome): Re-enable Win64 asan tests when ready. -# Disable tests for asan Win64 temporarily. +# FIXME: Shadow memory for 64-bit asan easily exhausts swap on most machines. +# Find a way to make these tests pass reliably, and re-enable them. if(OS_NAME MATCHES "Windows" AND CMAKE_SIZEOF_VOID_P EQUAL 8) set(EXCLUDE_FROM_ALL TRUE) endif() @@ -22,7 +22,7 @@ endmacro() set(ASAN_TEST_DEPS ${SANITIZER_COMMON_LIT_TEST_DEPS}) if(NOT COMPILER_RT_STANDALONE_BUILD) list(APPEND ASAN_TEST_DEPS asan) - if(WIN32 AND COMPILER_RT_HAS_LLD_SOURCES) + if(WIN32 AND COMPILER_RT_HAS_LLD) list(APPEND ASAN_TEST_DEPS lld ) @@ -115,7 +115,8 @@ if(COMPILER_RT_ASAN_HAS_STATIC_RUNTIME) endif() endif() -# TODO(wwchrome): Re-enable the tests for asan Win64 when ready. +# Reset EXCLUDE_FROM_ALL to its initial value. +# FIXME: Remove when we run Win64 asan tests. if(OS_NAME MATCHES "Windows" AND CMAKE_SIZEOF_VOID_P EQUAL 8) set(EXCLUDE_FROM_ALL FALSE) endif() diff --git a/test/asan/TestCases/Darwin/interface_symbols_darwin.c b/test/asan/TestCases/Darwin/interface_symbols_darwin.c index ed5779ebe220..9450575b4ecd 100644 --- a/test/asan/TestCases/Darwin/interface_symbols_darwin.c +++ b/test/asan/TestCases/Darwin/interface_symbols_darwin.c @@ -3,62 +3,32 @@ // ../Linux/interface_symbols.c // RUN: %clang_asan -dead_strip -O2 %s -o %t.exe -// RUN: rm -f %t.symbols %t.interface - +// +// note: we can not use -D on Darwin. // RUN: nm -g `%clang_asan %s -fsanitize=address -### 2>&1 | grep "libclang_rt.asan_osx_dynamic.dylib" | sed -e 's/.*"\(.*libclang_rt.asan_osx_dynamic.dylib\)".*/\1/'` \ -// RUN: | grep " T " | sed "s/.* T //" \ -// RUN: | grep "__asan_" | sed "s/___asan_/__asan_/" \ -// RUN: | sed -E "s/__asan_version_mismatch_check_v[0-9]+/__asan_version_mismatch_check/" \ -// RUN: | grep -v "__asan_default_options" \ -// RUN: | grep -v "__asan_on_error" > %t.symbols - -// RUN: cat %p/../../../../lib/asan/asan_interface_internal.h \ -// RUN: | sed "s/\/\/.*//" | sed "s/typedef.*//" \ -// RUN: | grep -v "OPTIONAL" \ -// RUN: | grep "__asan_.*(" | sed "s/.* __asan_/__asan_/;s/(.*//" \ -// RUN: > %t.interface -// RUN: echo __asan_report_load1 >> %t.interface -// RUN: echo __asan_report_load2 >> %t.interface -// RUN: echo __asan_report_load4 >> %t.interface -// RUN: echo __asan_report_load8 >> %t.interface -// RUN: echo __asan_report_load16 >> %t.interface -// RUN: echo __asan_report_store1 >> %t.interface -// RUN: echo __asan_report_store2 >> %t.interface -// RUN: echo __asan_report_store4 >> %t.interface -// RUN: echo __asan_report_store8 >> %t.interface -// RUN: echo __asan_report_store16 >> %t.interface -// RUN: echo __asan_report_load_n >> %t.interface -// RUN: echo __asan_report_store_n >> %t.interface -// RUN: echo __asan_report_load1_noabort >> %t.interface -// RUN: echo __asan_report_load2_noabort >> %t.interface -// RUN: echo __asan_report_load4_noabort >> %t.interface -// RUN: echo __asan_report_load8_noabort >> %t.interface -// RUN: echo __asan_report_load16_noabort >> %t.interface -// RUN: echo __asan_report_store1_noabort >> %t.interface -// RUN: echo __asan_report_store2_noabort >> %t.interface -// RUN: echo __asan_report_store4_noabort >> %t.interface -// RUN: echo __asan_report_store8_noabort >> %t.interface -// RUN: echo __asan_report_store16_noabort >> %t.interface -// RUN: echo __asan_report_load_n_noabort >> %t.interface -// RUN: echo __asan_report_store_n_noabort >> %t.interface -// RUN: echo __asan_report_exp_load1 >> %t.interface -// RUN: echo __asan_report_exp_load2 >> %t.interface -// RUN: echo __asan_report_exp_load4 >> %t.interface -// RUN: echo __asan_report_exp_load8 >> %t.interface -// RUN: echo __asan_report_exp_load16 >> %t.interface -// RUN: echo __asan_report_exp_store1 >> %t.interface -// RUN: echo __asan_report_exp_store2 >> %t.interface -// RUN: echo __asan_report_exp_store4 >> %t.interface -// RUN: echo __asan_report_exp_store8 >> %t.interface -// RUN: echo __asan_report_exp_store16 >> %t.interface -// RUN: echo __asan_report_exp_load_n >> %t.interface -// RUN: echo __asan_report_exp_store_n >> %t.interface -// RUN: echo __asan_get_current_fake_stack >> %t.interface -// RUN: echo __asan_addr_is_in_fake_stack >> %t.interface - -// RUN: for i in `jot - 0 10`; do echo __asan_stack_malloc_$i >> %t.interface; done -// RUN: for i in `jot - 0 10`; do echo __asan_stack_free_$i >> %t.interface; done - -// RUN: cat %t.interface | sort -u | diff %t.symbols - +// RUN: | grep " [TU] " \ +// RUN: | grep -o "\(__asan_\|__ubsan_\|__sancov_\|__sanitizer_\)[^ ]*" \ +// RUN: | grep -v "__sanitizer_syscall" \ +// RUN: | grep -v "__sanitizer_weak_hook" \ +// RUN: | grep -v "__sanitizer_mz" \ +// RUN: | grep -v "__ubsan_handle_dynamic_type_cache_miss" \ +// RUN: | sed -e "s/__asan_version_mismatch_check_v[0-9]+/__asan_version_mismatch_check/" \ +// RUN: > %t.exports +// +// RUN: grep -e "INTERFACE_\(WEAK_\)\?FUNCTION" \ +// RUN: %p/../../../../lib/asan/asan_interface.inc \ +// RUN: %p/../../../../lib/ubsan/ubsan_interface.inc \ +// RUN: %p/../../../../lib/sanitizer_common/sanitizer_common_interface.inc \ +// RUN: %p/../../../../lib/sanitizer_common/sanitizer_common_interface_posix.inc \ +// RUN: %p/../../../../lib/sanitizer_common/sanitizer_coverage_interface.inc \ +// RUN: | grep -v "__sanitizer_weak_hook" \ +// RUN: | sed -e "s/.*(//" -e "s/).*//" > %t.imports +// +// RUN: cat %t.imports | sort | uniq > %t.imports-sorted +// RUN: cat %t.exports | sort | uniq > %t.exports-sorted +// +// RUN: echo +// RUN: echo "=== NOTE === If you see a mismatch below, please update sanitizer_interface.inc files." +// RUN: diff %t.imports-sorted %t.exports-sorted int main() { return 0; } diff --git a/test/asan/TestCases/Darwin/malloc_set_zone_name-mprotect.cc b/test/asan/TestCases/Darwin/malloc_set_zone_name-mprotect.cc index 2c643bc03c52..b9b96ef0504e 100644 --- a/test/asan/TestCases/Darwin/malloc_set_zone_name-mprotect.cc +++ b/test/asan/TestCases/Darwin/malloc_set_zone_name-mprotect.cc @@ -47,5 +47,6 @@ int main() { memset(mem[i], 'a', 8 * (i % kNumIter)); free(mem[i]); } + malloc_destroy_zone(zone); return 0; } diff --git a/test/asan/TestCases/Darwin/scribble.cc b/test/asan/TestCases/Darwin/scribble.cc new file mode 100644 index 000000000000..0ddee6b5eef5 --- /dev/null +++ b/test/asan/TestCases/Darwin/scribble.cc @@ -0,0 +1,58 @@ +// RUN: %clang_asan -O2 %s -o %t +// RUN: %run %t 2>&1 | FileCheck --check-prefix=CHECK-NOSCRIBBLE %s +// RUN: env MallocScribble=1 MallocPreScribble=1 %run %t 2>&1 | FileCheck --check-prefix=CHECK-SCRIBBLE %s +// RUN: %env_asan_opts=max_free_fill_size=4096 %run %t 2>&1 | FileCheck --check-prefix=CHECK-SCRIBBLE %s + +#include <stdint.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +struct Isa { + const char *class_name; +}; + +struct MyClass { + long padding; + Isa *isa; + long data; + + void print_my_class_name(); +}; + +__attribute__((no_sanitize("address"))) +void MyClass::print_my_class_name() { + fprintf(stderr, "this = %p\n", this); + fprintf(stderr, "padding = 0x%lx\n", this->padding); + fprintf(stderr, "isa = %p\n", this->isa); + + if ((uint32_t)(uintptr_t)this->isa != 0x55555555) { + fprintf(stderr, "class name: %s\n", this->isa->class_name); + } +} + +int main() { + Isa *my_class_isa = (Isa *)malloc(sizeof(Isa)); + memset(my_class_isa, 0x77, sizeof(Isa)); + my_class_isa->class_name = "MyClass"; + + MyClass *my_object = (MyClass *)malloc(sizeof(MyClass)); + memset(my_object, 0x88, sizeof(MyClass)); + my_object->isa = my_class_isa; + my_object->data = 42; + + my_object->print_my_class_name(); + // CHECK-SCRIBBLE: class name: MyClass + // CHECK-NOSCRIBBLE: class name: MyClass + + free(my_object); + + my_object->print_my_class_name(); + // CHECK-NOSCRIBBLE: class name: MyClass + // CHECK-SCRIBBLE: isa = {{(0x)?}}{{5555555555555555|55555555}} + + fprintf(stderr, "okthxbai!\n"); + // CHECK-SCRIBBLE: okthxbai! + // CHECK-NOSCRIBBLE: okthxbai! + free(my_class_isa); +} diff --git a/test/asan/TestCases/Darwin/suppressions-darwin.cc b/test/asan/TestCases/Darwin/suppressions-darwin.cc index a177c4e17ec4..8c207b102cb0 100644 --- a/test/asan/TestCases/Darwin/suppressions-darwin.cc +++ b/test/asan/TestCases/Darwin/suppressions-darwin.cc @@ -27,6 +27,7 @@ int main() { kCFStringEncodingUTF8, FALSE); // BOOM fprintf(stderr, "Ignored.\n"); free(a); + CFRelease(str); } // CHECK-CRASH: AddressSanitizer: heap-buffer-overflow diff --git a/test/asan/TestCases/Darwin/suppressions-sandbox.cc b/test/asan/TestCases/Darwin/suppressions-sandbox.cc index ddbad466f7bf..c0b84addaa81 100644 --- a/test/asan/TestCases/Darwin/suppressions-sandbox.cc +++ b/test/asan/TestCases/Darwin/suppressions-sandbox.cc @@ -18,6 +18,7 @@ int main() { kCFStringEncodingUTF8, FALSE); // BOOM fprintf(stderr, "Ignored.\n"); free(a); + CFRelease(str); } // CHECK-CRASH: AddressSanitizer: heap-buffer-overflow diff --git a/test/asan/TestCases/Linux/asan_dlopen_test.cc b/test/asan/TestCases/Linux/asan_dlopen_test.cc index f1e31b0a0553..5081b7753211 100644 --- a/test/asan/TestCases/Linux/asan_dlopen_test.cc +++ b/test/asan/TestCases/Linux/asan_dlopen_test.cc @@ -2,6 +2,8 @@ // // RUN: %clangxx %s -DRT=\"%shared_libasan\" -o %t -ldl // RUN: not %run %t 2>&1 | FileCheck %s +// RUN: %env_asan_opts=verify_asan_link_order=true not %run %t 2>&1 | FileCheck %s +// RUN: %env_asan_opts=verify_asan_link_order=false %run %t 2>&1 // REQUIRES: asan-dynamic-runtime // XFAIL: android diff --git a/test/asan/TestCases/Linux/clang_gcc_abi.cc b/test/asan/TestCases/Linux/clang_gcc_abi.cc index 845f4121adcc..79710dc837b9 100644 --- a/test/asan/TestCases/Linux/clang_gcc_abi.cc +++ b/test/asan/TestCases/Linux/clang_gcc_abi.cc @@ -3,7 +3,7 @@ // RUN: %clangxx_asan -O2 -x c %s -o %t && not %run %t 2>&1 | FileCheck %s // RUN: %clangxx_asan -O3 -x c %s -o %t && not %run %t 2>&1 | FileCheck %s -// REQUIRES: arm-target-arch +// REQUIRES: arm-target-arch, fast-unwinder-works // XFAIL: armv7l-unknown-linux-gnueabihf #include <stdlib.h> diff --git a/test/asan/TestCases/Linux/coverage-missing.cc b/test/asan/TestCases/Linux/coverage-missing.cc index 49487d39a15b..16093498fa2c 100644 --- a/test/asan/TestCases/Linux/coverage-missing.cc +++ b/test/asan/TestCases/Linux/coverage-missing.cc @@ -8,40 +8,42 @@ // RUN: %env_asan_opts=coverage=1:coverage_dir=%T/coverage-missing %run %t // RUN: %sancov print *.sancov > main.txt // RUN: rm *.sancov -// RUN: [ $(cat main.txt | wc -l) == 1 ] +// RUN: count 1 < main.txt // RUN: %env_asan_opts=coverage=1:coverage_dir=%T/coverage-missing %run %t x // RUN: %sancov print *.sancov > foo.txt // RUN: rm *.sancov -// RUN: [ $(cat foo.txt | wc -l) == 3 ] +// RUN: count 3 < foo.txt // RUN: %env_asan_opts=coverage=1:coverage_dir=%T/coverage-missing %run %t x x // RUN: %sancov print *.sancov > bar.txt // RUN: rm *.sancov -// RUN: [ $(cat bar.txt | wc -l) == 4 ] +// RUN: count 4 < bar.txt // RUN: %sancov missing %t < foo.txt > foo-missing.txt // RUN: sort main.txt foo-missing.txt -o foo-missing-with-main.txt // The "missing from foo" set may contain a few bogus PCs from the sanitizer // runtime, but it must include the entire "bar" code path as a subset. Sorted // lists can be tested for set inclusion with diff + grep. -// RUN: ( diff bar.txt foo-missing-with-main.txt || true ) | not grep "^<" +// RUN: diff bar.txt foo-missing-with-main.txt > %t.log || true +// RUN: not grep "^<" %t.log // Second case: coverage from DSO. // cd %T // RUN: %clangxx_asan -fsanitize-coverage=func %s -o %dynamiclib -DFOOBAR -shared -fPIC // RUN: %clangxx_asan -fsanitize-coverage=func %s %dynamiclib -o %t -DMAIN -// RUN: export LIBNAME=`basename %dynamiclib` +// RUN: cd .. // RUN: rm -rf %T/coverage-missing // RUN: mkdir -p %T/coverage-missing // RUN: cd %T/coverage-missing // RUN: %env_asan_opts=coverage=1:coverage_dir=%T/coverage-missing %run %t x -// RUN: %sancov print $LIBNAME.*.sancov > foo.txt +// RUN: %sancov print %xdynamiclib_filename.*.sancov > foo.txt // RUN: rm *.sancov -// RUN: [ $(cat foo.txt | wc -l) == 2 ] +// RUN: count 2 < foo.txt // RUN: %env_asan_opts=coverage=1:coverage_dir=%T/coverage-missing %run %t x x -// RUN: %sancov print $LIBNAME.*.sancov > bar.txt +// RUN: %sancov print %xdynamiclib_filename.*.sancov > bar.txt // RUN: rm *.sancov -// RUN: [ $(cat bar.txt | wc -l) == 3 ] +// RUN: count 3 < bar.txt // RUN: %sancov missing %dynamiclib < foo.txt > foo-missing.txt -// RUN: ( diff bar.txt foo-missing.txt || true ) | not grep "^<" +// RUN: diff bar.txt foo-missing.txt > %t.log || true +// RUN: not grep "^<" %t.log // REQUIRES: x86-target-arch // XFAIL: android diff --git a/test/asan/TestCases/Linux/interface_symbols_linux.c b/test/asan/TestCases/Linux/interface_symbols_linux.c index 2e648575f28c..33fdd5ca1d82 100644 --- a/test/asan/TestCases/Linux/interface_symbols_linux.c +++ b/test/asan/TestCases/Linux/interface_symbols_linux.c @@ -1,59 +1,30 @@ // Check the presence of interface symbols in compiled file. // RUN: %clang_asan -O2 %s -o %t.exe -// RUN: nm -D %t.exe | grep " T " | sed "s/.* T //" \ -// RUN: | grep "__asan_" | sed "s/___asan_/__asan_/" \ -// RUN: | sed -E "s/__asan_version_mismatch_check_v[0-9]+/__asan_version_mismatch_check/" \ -// RUN: | grep -v "__asan_default_options" \ -// RUN: | grep -v "__asan_stack_" \ -// RUN: | grep -v "__asan_on_error" > %t.symbols -// RUN: cat %p/../../../../lib/asan/asan_interface_internal.h \ -// RUN: | sed "s/\/\/.*//" | sed "s/typedef.*//" \ -// RUN: | grep -v "OPTIONAL" \ -// RUN: | grep "__asan_.*(" | sed "s/.* __asan_/__asan_/;s/(.*//" \ -// RUN: > %t.interface -// RUN: echo __asan_report_load1 >> %t.interface -// RUN: echo __asan_report_load2 >> %t.interface -// RUN: echo __asan_report_load4 >> %t.interface -// RUN: echo __asan_report_load8 >> %t.interface -// RUN: echo __asan_report_load16 >> %t.interface -// RUN: echo __asan_report_store1 >> %t.interface -// RUN: echo __asan_report_store2 >> %t.interface -// RUN: echo __asan_report_store4 >> %t.interface -// RUN: echo __asan_report_store8 >> %t.interface -// RUN: echo __asan_report_store16 >> %t.interface -// RUN: echo __asan_report_load_n >> %t.interface -// RUN: echo __asan_report_store_n >> %t.interface -// RUN: echo __asan_report_load1_noabort >> %t.interface -// RUN: echo __asan_report_load2_noabort >> %t.interface -// RUN: echo __asan_report_load4_noabort >> %t.interface -// RUN: echo __asan_report_load8_noabort >> %t.interface -// RUN: echo __asan_report_load16_noabort >> %t.interface -// RUN: echo __asan_report_store1_noabort >> %t.interface -// RUN: echo __asan_report_store2_noabort >> %t.interface -// RUN: echo __asan_report_store4_noabort >> %t.interface -// RUN: echo __asan_report_store8_noabort >> %t.interface -// RUN: echo __asan_report_store16_noabort >> %t.interface -// RUN: echo __asan_report_load_n_noabort >> %t.interface -// RUN: echo __asan_report_store_n_noabort >> %t.interface -// RUN: echo __asan_report_exp_load1 >> %t.interface -// RUN: echo __asan_report_exp_load2 >> %t.interface -// RUN: echo __asan_report_exp_load4 >> %t.interface -// RUN: echo __asan_report_exp_load8 >> %t.interface -// RUN: echo __asan_report_exp_load16 >> %t.interface -// RUN: echo __asan_report_exp_store1 >> %t.interface -// RUN: echo __asan_report_exp_store2 >> %t.interface -// RUN: echo __asan_report_exp_store4 >> %t.interface -// RUN: echo __asan_report_exp_store8 >> %t.interface -// RUN: echo __asan_report_exp_store16 >> %t.interface -// RUN: echo __asan_report_exp_load_n >> %t.interface -// RUN: echo __asan_report_exp_store_n >> %t.interface -// RUN: echo __asan_get_current_fake_stack >> %t.interface -// RUN: echo __asan_addr_is_in_fake_stack >> %t.interface -// RUN: echo __asan_alloca_poison >> %t.interface -// RUN: echo __asan_allocas_unpoison >> %t.interface -// RUN: cat %t.interface | sort -u | diff %t.symbols - - +// RUN: nm -D %t.exe | grep " [TWw] " \ +// RUN: | grep -o "\(__asan_\|__ubsan_\|__sancov_\|__sanitizer_\)[^ ]*" \ +// RUN: | grep -v "__sanitizer_syscall" \ +// RUN: | grep -v "__sanitizer_weak_hook" \ +// RUN: | grep -v "__ubsan_handle_dynamic_type_cache_miss" \ +// RUN: | sed -e "s/__asan_version_mismatch_check_v[0-9]+/__asan_version_mismatch_check/" \ +// RUN: > %t.exports +// +// RUN: grep -e "INTERFACE_\(WEAK_\)\?FUNCTION" \ +// RUN: %p/../../../../lib/asan/asan_interface.inc \ +// RUN: %p/../../../../lib/ubsan/ubsan_interface.inc \ +// RUN: %p/../../../../lib/sanitizer_common/sanitizer_common_interface.inc \ +// RUN: %p/../../../../lib/sanitizer_common/sanitizer_common_interface_posix.inc \ +// RUN: %p/../../../../lib/sanitizer_common/sanitizer_coverage_interface.inc \ +// RUN: | grep -v "__sanitizer_weak_hook" \ +// RUN: | sed -e "s/.*(//" -e "s/).*//" > %t.imports +// +// RUN: cat %t.imports | sort | uniq > %t.imports-sorted +// RUN: cat %t.exports | sort | uniq > %t.exports-sorted +// +// RUN: echo +// RUN: echo "=== NOTE === If you see a mismatch below, please update sanitizer_interface.inc files." +// RUN: diff %t.imports-sorted %t.exports-sorted +// // FIXME: nm -D on powerpc somewhy shows ASan interface symbols residing // in "initialized data section". // REQUIRES: x86-target-arch,asan-static-runtime diff --git a/test/asan/TestCases/Linux/memmem_test.cc b/test/asan/TestCases/Linux/memmem_test.cc index 661381cdd7b7..a838cb56af5a 100644 --- a/test/asan/TestCases/Linux/memmem_test.cc +++ b/test/asan/TestCases/Linux/memmem_test.cc @@ -15,10 +15,10 @@ int main(int argc, char **argv) { // A1: AddressSanitizer: stack-buffer-overflow // A1: {{#0.*memmem}} // A1-NEXT: {{#1.*main}} - // A1: 'a1' <== Memory access at offset + // A1: 'a1'{{.*}} <== Memory access at offset // // A2: AddressSanitizer: stack-buffer-overflow // A2: {{#0.*memmem}} - // A2: 'a2' <== Memory access at offset + // A2: 'a2'{{.*}} <== Memory access at offset return res == NULL; } diff --git a/test/asan/TestCases/Linux/print_memory_profile_test.cc b/test/asan/TestCases/Linux/print_memory_profile_test.cc index 8909ccad08d4..e7896be4059b 100644 --- a/test/asan/TestCases/Linux/print_memory_profile_test.cc +++ b/test/asan/TestCases/Linux/print_memory_profile_test.cc @@ -3,8 +3,9 @@ // REQUIRES: leak-detection // // RUN: %clangxx_asan %s -o %t -// RUN: %run %t 100 2>&1 | FileCheck %s --check-prefix=CHECK-100 -// RUN: %run %t 50 2>&1 | FileCheck %s --check-prefix=CHECK-50 +// RUN: %run %t 100 10 2>&1 | FileCheck %s --check-prefix=CHECK-100-10 +// RUN: %run %t 100 1 2>&1 | FileCheck %s --check-prefix=CHECK-100-1 +// RUN: %run %t 50 10 2>&1 | FileCheck %s --check-prefix=CHECK-50-10 #include <sanitizer/common_interface_defs.h> #include <stdio.h> @@ -13,7 +14,7 @@ char *sink[1000]; int main(int argc, char **argv) { - if (argc < 2) + if (argc < 3) return 1; int idx = 0; @@ -22,12 +23,17 @@ int main(int argc, char **argv) { for (int i = 0; i < 28; i++) sink[idx++] = new char[24000]; - __sanitizer_print_memory_profile(atoi(argv[1])); + __sanitizer_print_memory_profile(atoi(argv[1]), atoi(argv[2])); } -// CHECK-100: Live Heap Allocations: {{.*}}; showing top 100% -// CHECK-100: 2227000 byte(s) ({{.*}}%) in 17 allocation(s) -// CHECK-100: 672000 byte(s) ({{.*}}%) in 28 allocation(s) -// CHECK-50: Live Heap Allocations: {{.*}}; showing top 50% -// CHECK-50: 2227000 byte(s) ({{.*}}%) in 17 allocation(s) -// CHECK-50-NOT: allocation +// CHECK-100-10: Live Heap Allocations: {{.*}}; showing top 100% (at most 10 unique contexts) +// CHECK-100-10: 2227000 byte(s) ({{.*}}%) in 17 allocation(s) +// CHECK-100-10: 672000 byte(s) ({{.*}}%) in 28 allocation(s) + +// CHECK-100-1: Live Heap Allocations: {{.*}}; showing top 100% (at most 1 unique contexts) +// CHECK-100-1: 2227000 byte(s) ({{.*}}%) in 17 allocation(s) +// CHECK-100-1-NOT: allocation + +// CHECK-50-10: Live Heap Allocations: {{.*}}; showing top 50% (at most 10 unique contexts) +// CHECK-50-10: 2227000 byte(s) ({{.*}}%) in 17 allocation(s) +// CHECK-50-10-NOT: allocation diff --git a/test/asan/TestCases/Linux/release_to_os_test.cc b/test/asan/TestCases/Linux/release_to_os_test.cc index 26402167d6b1..c85bcbb7f15b 100644 --- a/test/asan/TestCases/Linux/release_to_os_test.cc +++ b/test/asan/TestCases/Linux/release_to_os_test.cc @@ -11,6 +11,7 @@ #include <algorithm> #include <stdint.h> #include <assert.h> +#include <random> #include <sanitizer/asan_interface.h> @@ -19,9 +20,10 @@ void MallocReleaseStress() { const size_t kAllocSize = 100; const size_t kNumIter = 100; uintptr_t *chunks[kNumChunks] = {0}; + std::mt19937 r; for (size_t iter = 0; iter < kNumIter; iter++) { - std::random_shuffle(chunks, chunks + kNumChunks); + std::shuffle(chunks, chunks + kNumChunks, r); size_t to_replace = rand() % kNumChunks; for (size_t i = 0; i < kNumChunks; i++) { if (chunks[i]) diff --git a/test/asan/TestCases/Linux/swapcontext_annotation.cc b/test/asan/TestCases/Linux/swapcontext_annotation.cc index 56e811942b88..44189c060815 100644 --- a/test/asan/TestCases/Linux/swapcontext_annotation.cc +++ b/test/asan/TestCases/Linux/swapcontext_annotation.cc @@ -4,10 +4,11 @@ // RUN: %clangxx_asan -std=c++11 -lpthread -O1 %s -o %t && %run %t 2>&1 | FileCheck %s // RUN: %clangxx_asan -std=c++11 -lpthread -O2 %s -o %t && %run %t 2>&1 | FileCheck %s // RUN: %clangxx_asan -std=c++11 -lpthread -O3 %s -o %t && %run %t 2>&1 | FileCheck %s -// RUN: %clangxx_asan -std=c++11 -lpthread -O0 %s -o %t && %run %t 2>&1 | FileCheck <( seq 60 | xargs -i -- grep LOOPCHECK %s ) --check-prefix LOOPCHECK -// RUN: %clangxx_asan -std=c++11 -lpthread -O1 %s -o %t && %run %t 2>&1 | FileCheck <( seq 60 | xargs -i -- grep LOOPCHECK %s ) --check-prefix LOOPCHECK -// RUN: %clangxx_asan -std=c++11 -lpthread -O2 %s -o %t && %run %t 2>&1 | FileCheck <( seq 60 | xargs -i -- grep LOOPCHECK %s ) --check-prefix LOOPCHECK -// RUN: %clangxx_asan -std=c++11 -lpthread -O3 %s -o %t && %run %t 2>&1 | FileCheck <( seq 60 | xargs -i -- grep LOOPCHECK %s ) --check-prefix LOOPCHECK +// RUN: seq 60 | xargs -i -- grep LOOPCHECK %s > %t.checks +// RUN: %clangxx_asan -std=c++11 -lpthread -O0 %s -o %t && %run %t 2>&1 | FileCheck %t.checks --check-prefix LOOPCHECK +// RUN: %clangxx_asan -std=c++11 -lpthread -O1 %s -o %t && %run %t 2>&1 | FileCheck %t.checks --check-prefix LOOPCHECK +// RUN: %clangxx_asan -std=c++11 -lpthread -O2 %s -o %t && %run %t 2>&1 | FileCheck %t.checks --check-prefix LOOPCHECK +// RUN: %clangxx_asan -std=c++11 -lpthread -O3 %s -o %t && %run %t 2>&1 | FileCheck %t.checks --check-prefix LOOPCHECK // // This test is too subtle to try on non-x86 arch for now. diff --git a/test/asan/TestCases/Linux/thread_local_quarantine_pthread_join.cc b/test/asan/TestCases/Linux/thread_local_quarantine_pthread_join.cc new file mode 100644 index 000000000000..8a5bb25ee75c --- /dev/null +++ b/test/asan/TestCases/Linux/thread_local_quarantine_pthread_join.cc @@ -0,0 +1,56 @@ +// Test how creating and joining a lot of threads making only a few allocations +// each affect total quarantine (and overall heap) size. + +// RUN: %clangxx_asan %s -o %t +// RUN: %env_asan_opts=thread_local_quarantine_size_kb=64:quarantine_size_mb=1:allocator_release_to_os_interval_ms=-1 %run %t 2>&1 | \ +// RUN: FileCheck %s --allow-empty --check-prefix=CHECK-SMALL-LOCAL-CACHE-SMALL-OVERHEAD + +#include <pthread.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <sanitizer/allocator_interface.h> + +// Thread local quarantine is merged to the global one when thread exits and +// this scenario (a few allocations per thread) used to generate a huge overhead +// of practically empty quarantine batches (one per thread). +static const size_t kHeapSizeIncrementLimit = 2 << 20; +static const int kNumThreads = 2048; +// The allocation size is so small because all we want to test is that +// quarantine block merging process does not leak memory used for quarantine +// blocks. +// TODO(alekseyshl): Add more comprehensive test verifying quarantine size +// directly (requires quarantine stats exposed in allocator stats and API). +static const int kAllocSize = 1; + +void *ThreadFn(void *unused) { + char *temp = new char[kAllocSize]; + memset(temp, -1, kAllocSize); + delete [] (temp); + return NULL; +} + +int main() { + // Warm up all internal structures. + pthread_t t; + pthread_create(&t, 0, ThreadFn, 0); + pthread_join(t, 0); + + size_t heap_size = __sanitizer_get_heap_size(); + fprintf(stderr, "Heap size: %zd\n", heap_size); + + for (int i = 0; i < kNumThreads; i++) { + pthread_t t; + pthread_create(&t, 0, ThreadFn, 0); + pthread_join(t, 0); + + size_t new_heap_size = __sanitizer_get_heap_size(); + } + + size_t new_heap_size = __sanitizer_get_heap_size(); + fprintf(stderr, "New heap size: %zd\n", new_heap_size); + if (new_heap_size - heap_size < kHeapSizeIncrementLimit) + fprintf(stderr, "Heap growth is within limits\n"); +} + +// CHECK-SMALL-LOCAL-CACHE-SMALL-OVERHEAD: Heap growth is within limits diff --git a/test/asan/TestCases/Linux/thread_local_quarantine_size_kb.cc b/test/asan/TestCases/Linux/thread_local_quarantine_size_kb.cc index 24022a140c90..46af1a0e0207 100644 --- a/test/asan/TestCases/Linux/thread_local_quarantine_size_kb.cc +++ b/test/asan/TestCases/Linux/thread_local_quarantine_size_kb.cc @@ -1,12 +1,10 @@ // Test thread_local_quarantine_size_kb // RUN: %clangxx_asan %s -o %t -// RUN: %env_asan_opts=thread_local_quarantine_size_kb=256:verbosity=1 %run %t 2>&1 | \ -// RUN: FileCheck %s --check-prefix=CHECK-VALUE -// RUN: %env_asan_opts=thread_local_quarantine_size_kb=64:quarantine_size_mb=64 %run %t 2>&1 | \ +// RUN: %env_asan_opts=thread_local_quarantine_size_kb=64:quarantine_size_mb=64:verbosity=1 %run %t 2>&1 | \ // RUN: FileCheck %s --allow-empty --check-prefix=CHECK-SMALL-LOCAL-CACHE-SMALL-OVERHEAD // RUN: %env_asan_opts=thread_local_quarantine_size_kb=0:quarantine_size_mb=0 %run %t 2>&1 | \ -// RUN: FileCheck %s --check-prefix=CHECK-QUARANTINE-DISABLED +// RUN: FileCheck %s --check-prefix=CHECK-QUARANTINE-DISABLED-SMALL-OVERHEAD // RUN: %env_asan_opts=thread_local_quarantine_size_kb=0:quarantine_size_mb=64 not %run %t 2>&1 | \ // RUN: FileCheck %s --check-prefix=CHECK-FOR-PARAMETER-ERROR @@ -15,29 +13,33 @@ #include <string.h> #include <sanitizer/allocator_interface.h> -// The idea is allocate a lot of small blocks, totaling 5Mb of user memory -// total, and verify that quarantine does not incur too much memory overhead. +// The idea is allocate a lot of small blocks, totaling 5Mb of user memory, +// and verify that quarantine does not incur too much memory overhead. // There's always an overhead for red zones, shadow memory and such, but // quarantine accounting should not significantly contribute to that. +// The zero sized thread local cache is specifically tested since it used to +// generate a huge overhead of almost empty quarantine batches. +static const size_t kHeapSizeIncrementLimit = 12 << 20; static const int kNumAllocs = 20000; static const int kAllocSize = 256; -static const size_t kHeapSizeLimit = 12 << 20; int main() { - size_t old_heap_size = __sanitizer_get_heap_size(); + size_t heap_size = __sanitizer_get_heap_size(); + fprintf(stderr, "Heap size: %zd\n", heap_size); + for (int i = 0; i < kNumAllocs; i++) { - char *g = new char[kAllocSize]; - memset(g, -1, kAllocSize); - delete [] (g); + char *temp = new char[kAllocSize]; + memset(temp, -1, kAllocSize); + delete [] (temp); } + size_t new_heap_size = __sanitizer_get_heap_size(); - fprintf(stderr, "heap size: new: %zd old: %zd\n", new_heap_size, - old_heap_size); - if (new_heap_size - old_heap_size > kHeapSizeLimit) - fprintf(stderr, "Heap size limit exceeded"); + fprintf(stderr, "New heap size: %zd\n", new_heap_size); + if (new_heap_size - heap_size < kHeapSizeIncrementLimit) + fprintf(stderr, "Heap growth is within limits\n"); } -// CHECK-VALUE: thread_local_quarantine_size_kb=256K -// CHECK-SMALL-LOCAL-CACHE-SMALL-OVERHEAD-NOT: Heap size limit exceeded -// CHECK-QUARANTINE-DISABLED-NOT: Heap size limit exceeded +// CHECK-SMALL-LOCAL-CACHE-SMALL-OVERHEAD: thread_local_quarantine_size_kb=64K +// CHECK-SMALL-LOCAL-CACHE-SMALL-OVERHEAD: Heap growth is within limits +// CHECK-QUARANTINE-DISABLED-SMALL-OVERHEAD: Heap growth is within limits // CHECK-FOR-PARAMETER-ERROR: thread_local_quarantine_size_kb can be set to 0 only when quarantine_size_mb is set to 0 diff --git a/test/asan/TestCases/Posix/asan-sigbus.cpp b/test/asan/TestCases/Posix/asan-sigbus.cpp new file mode 100644 index 000000000000..e07392b4cd4b --- /dev/null +++ b/test/asan/TestCases/Posix/asan-sigbus.cpp @@ -0,0 +1,40 @@ +// Check handle_bus flag +// Defaults to true +// RUN: %clangxx_asan -std=c++11 %s -o %t +// RUN: not %run %t %T/file 2>&1 | FileCheck %s -check-prefix=CHECK-BUS +// RUN: %env_asan_opts=handle_sigbus=false not --crash %run %t %T/file 2>&1 | FileCheck %s + +#include <assert.h> +#include <fcntl.h> +#include <stdio.h> +#include <stdlib.h> +#include <sys/mman.h> +#include <unistd.h> + +char array[4096]; +int main(int argc, char **argv) { + assert(argc > 1); + int fd = open(argv[1], O_RDWR | O_CREAT, 0700); + if (fd < 0) { + perror("open"); + exit(1); + } + assert(write(fd, array, sizeof(array)) == sizeof(array)); + + // Write some zeroes to the file, then mmap it while it has a 4KiB size + char *addr = (char *)mmap(nullptr, sizeof(array), PROT_READ, + MAP_FILE | MAP_SHARED, fd, 0); + if (addr == MAP_FAILED) { + perror("mmap"); + exit(1); + } + + // Truncate the file so our memory isn't valid any more + assert(ftruncate(fd, 0) == 0); + + // Try to access the memory + return addr[42]; + // CHECK-NOT: DEADLYSIGNAL + // CHECK-BUS: DEADLYSIGNAL + // CHECK-BUS: ERROR: AddressSanitizer: BUS +} diff --git a/test/asan/TestCases/Posix/closed-fds.cc b/test/asan/TestCases/Posix/closed-fds.cc index b7bca26c305d..75e3216aab5a 100644 --- a/test/asan/TestCases/Posix/closed-fds.cc +++ b/test/asan/TestCases/Posix/closed-fds.cc @@ -2,7 +2,8 @@ // symbolizer still works. // RUN: rm -f %t.log.* -// RUN: %clangxx_asan -O0 %s -o %t 2>&1 && %env_asan_opts=log_path='"%t.log"':verbosity=2 not %run %t 2>&1 +// RUN: %clangxx_asan -O0 %s -o %t +// RUN: %env_asan_opts=log_path='"%t.log"':verbosity=2 not %run %t // RUN: FileCheck %s --check-prefix=CHECK-FILE < %t.log.* // FIXME: copy %t.log back from the device and re-enable on Android. diff --git a/test/asan/TestCases/Posix/coverage-maybe-open-file.cc b/test/asan/TestCases/Posix/coverage-maybe-open-file.cc index cab3d5770aa5..95f2b5449e83 100644 --- a/test/asan/TestCases/Posix/coverage-maybe-open-file.cc +++ b/test/asan/TestCases/Posix/coverage-maybe-open-file.cc @@ -6,7 +6,7 @@ // RUN: mkdir -p %T/coverage-maybe-open-file && cd %T/coverage-maybe-open-file // RUN: %env_asan_opts=coverage=1 %run %t | FileCheck %s --check-prefix=CHECK-success // RUN: %env_asan_opts=coverage=0 %run %t | FileCheck %s --check-prefix=CHECK-fail -// RUN: [ "$(cat test.sancov.packed)" == "test" ] +// RUN: FileCheck %s < test.sancov.packed -implicit-check-not={{.}} --check-prefix=CHECK-test // RUN: cd .. && rm -rf %T/coverage-maybe-open-file #include <stdio.h> @@ -30,3 +30,4 @@ int main(int argc, char **argv) { // CHECK-success: SUCCESS // CHECK-fail: FAIL +// CHECK-test: {{^}}test{{$}} diff --git a/test/asan/TestCases/Posix/coverage-sandboxing.cc b/test/asan/TestCases/Posix/coverage-sandboxing.cc index c4e6bc7eef8a..431dce149525 100644 --- a/test/asan/TestCases/Posix/coverage-sandboxing.cc +++ b/test/asan/TestCases/Posix/coverage-sandboxing.cc @@ -12,9 +12,9 @@ // RUN: %env_asan_opts=coverage=1:verbosity=1 %run %t a b 2>&1 | FileCheck %s --check-prefix=CHECK-sandbox // RUN: %sancov unpack coverage_sandboxing_test.sancov.packed // RUN: cd .. -// RUN: %sancov print vanilla/`basename %dynamiclib`*.sancov > vanilla.txt -// RUN: %sancov print sandbox1/`basename %dynamiclib`*.sancov > sandbox1.txt -// RUN: %sancov print sandbox2/`basename %dynamiclib`*.sancov > sandbox2.txt +// RUN: %sancov print vanilla/%xdynamiclib_filename*.sancov > vanilla.txt +// RUN: %sancov print sandbox1/%xdynamiclib_filename*.sancov > sandbox1.txt +// RUN: %sancov print sandbox2/%xdynamiclib_filename*.sancov > sandbox2.txt // RUN: diff vanilla.txt sandbox1.txt // RUN: diff vanilla.txt sandbox2.txt // RUN: rm -r %T/coverage_sandboxing_test diff --git a/test/asan/TestCases/Posix/coverage.cc b/test/asan/TestCases/Posix/coverage.cc index 7c1c4949f60c..3d1dccfbd549 100644 --- a/test/asan/TestCases/Posix/coverage.cc +++ b/test/asan/TestCases/Posix/coverage.cc @@ -2,15 +2,15 @@ // RUN: %clangxx_asan -fsanitize-coverage=func %s %ld_flags_rpath_exe -o %t // RUN: rm -rf %T/coverage && mkdir -p %T/coverage && cd %T/coverage // RUN: %env_asan_opts=coverage=1:verbosity=1 %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-main -// RUN: %sancov print `ls coverage.*sancov | grep -v '.so'` 2>&1 | FileCheck %s --check-prefix=CHECK-SANCOV1 +// RUN: %sancov print coverage.*sancov 2>&1 | FileCheck %s --check-prefix=CHECK-SANCOV1 // RUN: %env_asan_opts=coverage=1:verbosity=1 %run %t foo 2>&1 | FileCheck %s --check-prefix=CHECK-foo -// RUN: %sancov print `ls coverage.*sancov | grep -v '.so'` 2>&1 | FileCheck %s --check-prefix=CHECK-SANCOV2 +// RUN: %sancov print coverage.*sancov 2>&1 | FileCheck %s --check-prefix=CHECK-SANCOV2 // RUN: %env_asan_opts=coverage=1:verbosity=1 %run %t bar 2>&1 | FileCheck %s --check-prefix=CHECK-bar -// RUN: %sancov print `ls *coverage.*sancov | grep -v '.so'` 2>&1 | FileCheck %s --check-prefix=CHECK-SANCOV2 +// RUN: %sancov print coverage.*sancov 2>&1 | FileCheck %s --check-prefix=CHECK-SANCOV2 // RUN: %env_asan_opts=coverage=1:verbosity=1 %run %t foo bar 2>&1 | FileCheck %s --check-prefix=CHECK-foo-bar -// RUN: %sancov print `ls *coverage.*sancov | grep -v '.so'` 2>&1 | FileCheck %s --check-prefix=CHECK-SANCOV2 -// RUN: %sancov print `ls *coverage.*sancov | grep '.so'` 2>&1 | FileCheck %s --check-prefix=CHECK-SANCOV1 -// RUN: %sancov merge `ls *coverage.*sancov | grep -v '.so'` > merged-cov +// RUN: %sancov print coverage.*sancov 2>&1 | FileCheck %s --check-prefix=CHECK-SANCOV2 +// RUN: %sancov print libcoverage.*sancov 2>&1 | FileCheck %s --check-prefix=CHECK-SANCOV1 +// RUN: %sancov merge coverage.*sancov > merged-cov // RUN: %sancov print merged-cov 2>&1 | FileCheck %s --check-prefix=CHECK-SANCOV2 // RUN: %env_asan_opts=coverage=1:verbosity=1 not %run %t foo bar 4 2>&1 | FileCheck %s --check-prefix=CHECK-report // RUN: %env_asan_opts=coverage=1:verbosity=1 not %run %t foo bar 4 5 2>&1 | FileCheck %s --check-prefix=CHECK-segv diff --git a/test/asan/TestCases/Posix/deep_call_stack.cc b/test/asan/TestCases/Posix/deep_call_stack.cc index 18ba563dbd21..2d2b056d638d 100644 --- a/test/asan/TestCases/Posix/deep_call_stack.cc +++ b/test/asan/TestCases/Posix/deep_call_stack.cc @@ -1,6 +1,7 @@ // Check that UAR mode can handle very deep recusrion. -// RUN: %clangxx_asan -O2 %s -o %t && \ -// RUN: (ulimit -s 4096; %env_asan_opts=detect_stack_use_after_return=1 %run %t) 2>&1 | FileCheck %s +// RUN: %clangxx_asan -O2 %s -o %t +// RUN: ulimit -s 4096 +// RUN: %env_asan_opts=detect_stack_use_after_return=1 %run %t 2>&1 | FileCheck %s // Also check that use_sigaltstack+verbosity doesn't crash. // RUN: %env_asan_opts=verbosity=1:use_sigaltstack=1:detect_stack_use_after_return=1 %run %t | FileCheck %s diff --git a/test/asan/TestCases/Posix/fread_fwrite.cc b/test/asan/TestCases/Posix/fread_fwrite.cc new file mode 100644 index 000000000000..97d44b7528ba --- /dev/null +++ b/test/asan/TestCases/Posix/fread_fwrite.cc @@ -0,0 +1,34 @@ +// RUN: %clangxx_asan -g %s -o %t +// RUN: not %t 2>&1 | FileCheck %s --check-prefix=CHECK-FWRITE +// RUN: not %t 1 2>&1 | FileCheck %s --check-prefix=CHECK-FREAD + +#include <stdio.h> +#include <stdlib.h> + +int test_fread() { + FILE *f = fopen("/dev/zero", "r"); + char buf[2]; + fread(buf, sizeof(buf), 2, f); // BOOM + fclose(f); + return 0; +} + +int test_fwrite() { + FILE *f = fopen("/dev/null", "w"); + char buf[2]; + fwrite(buf, sizeof(buf), 2, f); // BOOM + return fclose(f); +} + +int main(int argc, char *argv[]) { + if (argc > 1) + test_fread(); + else + test_fwrite(); + return 0; +} + +// CHECK-FREAD: {{.*ERROR: AddressSanitizer: stack-buffer-overflow}} +// CHECK-FREAD: #{{.*}} in {{(wrap_|__interceptor_)?}}fread +// CHECK-FWRITE: {{.*ERROR: AddressSanitizer: stack-buffer-overflow}} +// CHECK-FWRITE: #{{.*}} in {{(wrap_|__interceptor_)?}}fwrite diff --git a/test/asan/TestCases/Posix/halt_on_error-torture.cc b/test/asan/TestCases/Posix/halt_on_error-torture.cc index 5d7eff06e34e..1b26173d713f 100644 --- a/test/asan/TestCases/Posix/halt_on_error-torture.cc +++ b/test/asan/TestCases/Posix/halt_on_error-torture.cc @@ -5,7 +5,7 @@ // RUN: rm -f 1.txt // RUN: %env_asan_opts=halt_on_error=false:suppress_equal_pcs=false %run %t 1 10 >>1.txt 2>&1 // RUN: FileCheck %s < 1.txt -// RUN: [ $(grep -c 'ERROR: AddressSanitizer: use-after-poison' 1.txt) -eq 10 ] +// RUN: grep 'ERROR: AddressSanitizer: use-after-poison' 1.txt | count 10 // RUN: FileCheck --check-prefix=CHECK-NO-COLLISION %s < 1.txt // // Collisions are unlikely but still possible so we need the ||. diff --git a/test/asan/TestCases/Posix/halt_on_error_suppress_equal_pcs.cc b/test/asan/TestCases/Posix/halt_on_error_suppress_equal_pcs.cc index 98ef851657b7..b9d85ef94b23 100644 --- a/test/asan/TestCases/Posix/halt_on_error_suppress_equal_pcs.cc +++ b/test/asan/TestCases/Posix/halt_on_error_suppress_equal_pcs.cc @@ -8,7 +8,7 @@ // Check that we die after reaching different reports number threshold. // RUN: rm -f %t1.log // RUN: %env_asan_opts=halt_on_error=false not %run %t 1 >> %t1.log 2>&1 -// RUN: [ $(grep -c 'ERROR: AddressSanitizer: stack-buffer-overflow' %t1.log) -eq 25 ] +// RUN: grep 'ERROR: AddressSanitizer: stack-buffer-overflow' %t1.log | count 25 // // Check suppress_equal_pcs=true behavior is equal to default one. // RUN: %env_asan_opts=halt_on_error=false:suppress_equal_pcs=true %run %t 2>&1 | FileCheck %s @@ -16,7 +16,7 @@ // Check suppress_equal_pcs=false behavior isn't equal to default one. // RUN: rm -f %t2.log // RUN: %env_asan_opts=halt_on_error=false:suppress_equal_pcs=false %run %t >> %t2.log 2>&1 -// RUN: [ $(grep -c 'ERROR: AddressSanitizer: stack-buffer-overflow' %t2.log) -eq 30 ] +// RUN: grep 'ERROR: AddressSanitizer: stack-buffer-overflow' %t2.log | count 30 #define ACCESS_ARRAY_FIVE_ELEMENTS(array, i) \ array[i] = i; \ diff --git a/test/asan/TestCases/Posix/stack-use-after-return.cc b/test/asan/TestCases/Posix/stack-use-after-return.cc index cf114be97d51..822d5be9491e 100644 --- a/test/asan/TestCases/Posix/stack-use-after-return.cc +++ b/test/asan/TestCases/Posix/stack-use-after-return.cc @@ -4,7 +4,7 @@ // RUN: %clangxx_asan -O3 %s -pthread -o %t && %env_asan_opts=detect_stack_use_after_return=1 not %run %t 2>&1 | FileCheck %s // RUN: %env_asan_opts=detect_stack_use_after_return=0 %run %t // Regression test for a CHECK failure with small stack size and large frame. -// RUN: %clangxx_asan -O3 %s -pthread -o %t -DkSize=10000 -DUseThread -DkStackSize=65536 && %env_asan_opts=detect_stack_use_after_return=1 not %run %t 2>&1 | FileCheck --check-prefix=THREAD %s +// RUN: %clangxx_asan -O3 %s -pthread -o %t -DkSize=10000 -DUseThread -DkStackSize=131072 && %env_asan_opts=detect_stack_use_after_return=1 not %run %t 2>&1 | FileCheck --check-prefix=THREAD %s // // Test that we can find UAR in a thread other than main: // RUN: %clangxx_asan -DUseThread -O2 %s -pthread -o %t && %env_asan_opts=detect_stack_use_after_return=1 not %run %t 2>&1 | FileCheck --check-prefix=THREAD %s @@ -14,8 +14,13 @@ // RUN: %env_asan_opts=detect_stack_use_after_return=1:max_uar_stack_size_log=20:verbosity=1 not %run %t 2>&1 | FileCheck --check-prefix=CHECK-20 %s // RUN: %env_asan_opts=detect_stack_use_after_return=1:min_uar_stack_size_log=24:max_uar_stack_size_log=24:verbosity=1 not %run %t 2>&1 | FileCheck --check-prefix=CHECK-24 %s -#include <stdio.h> +// This test runs out of stack on AArch64. +// UNSUPPORTED: aarch64 + +#include <limits.h> #include <pthread.h> +#include <stdio.h> +#include <stdlib.h> #ifndef kSize # define kSize 1 @@ -48,11 +53,11 @@ void Func2(char *x) { // CHECK: WRITE of size 1 {{.*}} thread T0 // CHECK: #0{{.*}}Func2{{.*}}stack-use-after-return.cc:[[@LINE-2]] // CHECK: is located in stack of thread T0 at offset - // CHECK: 'local' <== Memory access at offset {{16|32}} is inside this variable + // CHECK: 'local'{{.*}} <== Memory access at offset {{16|32}} is inside this variable // THREAD: WRITE of size 1 {{.*}} thread T{{[1-9]}} // THREAD: #0{{.*}}Func2{{.*}}stack-use-after-return.cc:[[@LINE-6]] // THREAD: is located in stack of thread T{{[1-9]}} at offset - // THREAD: 'local' <== Memory access at offset {{16|32}} is inside this variable + // THREAD: 'local'{{.*}} <== Memory access at offset {{16|32}} is inside this variable // CHECK-20: T0: FakeStack created:{{.*}} stack_size_log: 20 // CHECK-24: T0: FakeStack created:{{.*}} stack_size_log: 24 } @@ -66,8 +71,31 @@ int main(int argc, char **argv) { #if UseThread pthread_attr_t attr; pthread_attr_init(&attr); - if (kStackSize > 0) - pthread_attr_setstacksize(&attr, kStackSize); + if (kStackSize > 0) { + size_t desired_stack_size = kStackSize; + if (desired_stack_size < PTHREAD_STACK_MIN) { + desired_stack_size = PTHREAD_STACK_MIN; + } + + int ret = pthread_attr_setstacksize(&attr, desired_stack_size); + if (ret != 0) { + fprintf(stderr, "pthread_attr_setstacksize returned %d\n", ret); + abort(); + } + + size_t stacksize_check; + ret = pthread_attr_getstacksize(&attr, &stacksize_check); + if (ret != 0) { + fprintf(stderr, "pthread_attr_getstacksize returned %d\n", ret); + abort(); + } + + if (stacksize_check != desired_stack_size) { + fprintf(stderr, "Unable to set stack size to %d, the stack size is %d.\n", + desired_stack_size, stacksize_check); + abort(); + } + } pthread_t t; pthread_create(&t, &attr, Thread, 0); pthread_attr_destroy(&attr); diff --git a/test/asan/TestCases/Posix/start-deactivated.cc b/test/asan/TestCases/Posix/start-deactivated.cc index b223f04e46a9..2a2aa674c04c 100644 --- a/test/asan/TestCases/Posix/start-deactivated.cc +++ b/test/asan/TestCases/Posix/start-deactivated.cc @@ -20,6 +20,8 @@ // XFAIL: arm-linux-gnueabi +// END. + #if !defined(SHARED_LIB) #include <assert.h> diff --git a/test/asan/TestCases/Windows/dll_heap_allocation.cc b/test/asan/TestCases/Windows/dll_heap_allocation.cc new file mode 100644 index 000000000000..b4df9d4f2221 --- /dev/null +++ b/test/asan/TestCases/Windows/dll_heap_allocation.cc @@ -0,0 +1,30 @@ + +// RUN: %clang_cl -LD %s -Fe%t.dll -DHEAP_LIBRARY -MD +// RUN: %clang_cl %s %t.lib -Fe%t -fsanitize=address -MT +// RUN: %run %t 2>&1 | FileCheck %s + +// Check that ASan does not fail when releasing allocations that occurred within +// an uninstrumented DLL. + +#ifdef HEAP_LIBRARY +#include <memory> +#include <windows.h> + +std::unique_ptr<int> __declspec(dllexport) myglobal(new int(42)); +BOOL WINAPI DllMain(PVOID h, DWORD reason, PVOID reserved) { + return TRUE; +} + +#else + +#include <memory> +extern std::unique_ptr<int> __declspec(dllimport) myglobal; +int main(int argc, char **argv) { + printf("myglobal: %d\n", *myglobal); + return 0; +} + +#endif + +// CHECK: myglobal: 42 +// CHECK-NOT: ERROR: AddressSanitizer: attempting free on address which was not malloc()-ed diff --git a/test/asan/TestCases/Windows/dll_host.cc b/test/asan/TestCases/Windows/dll_host.cc index 6a029c96d4d8..512f930bc34f 100644 --- a/test/asan/TestCases/Windows/dll_host.cc +++ b/test/asan/TestCases/Windows/dll_host.cc @@ -7,18 +7,23 @@ // Get the list of ASan wrappers exported by the main module RTL: // note: The mangling decoration (i.e. @4 )is removed because calling convention // differ from 32-bit and 64-bit. -// RUN: dumpbin /EXPORTS %t | grep -o "__asan_wrap[^ ]*" | sed -e s/@.*// > %t.exported_wrappers1 -// FIXME: we should really check the other __asan exports too. -// RUN: dumpbin /EXPORTS %t | grep -o "__sanitizer_[^ ]*" | sed -e s/@.*// > %t.exported_wrappers2 +// RUN: dumpbin /EXPORTS %t | grep -o "__asan_wrap[^ ]*" | sed -e s/@.*// > %t.exports1 +// +// The exception handlers differ in 32-bit and 64-bit, so we ignore them: +// RUN: grep '[E]XPORT:' %s | sed -e 's/.*[E]XPORT: //' > %t.exports2 +// EXPORT: __asan_wrap__except_handler3 +// EXPORT: __asan_wrap__except_handler4 +// EXPORT: __asan_wrap___C_specific_handler // // Get the list of ASan wrappers imported by the DLL RTL: // [BEWARE: be really careful with the sed commands, as this test can be run // from different environemnts with different shells and seds] -// RUN: grep INTERCEPT_LIBRARY_FUNCTION %p/../../../../lib/asan/asan_win_dll_thunk.cc | grep -v define | sed -e s/.*(/__asan_wrap_/ | sed -e s/).*// > %t.dll_imports1 -// RUN: grep "^INTERFACE_FUNCTION.*sanitizer" %p/../../../../lib/asan/asan_win_dll_thunk.cc | grep -v define | sed -e s/.*(// | sed -e s/).*// > %t.dll_imports2 +// RUN: grep INTERCEPT_LIBRARY_FUNCTION %p/../../../../lib/asan/asan_win_dll_thunk.cc \ +// RUN: | grep -v define | sed -e s/.*(/__asan_wrap_/ -e s/).*// \ +// RUN: > %t.imports1 // // Add functions interecepted in asan_malloc.win.cc and asan_win.cc. -// RUN: grep '[I]MPORT:' %s | sed -e 's/.*[I]MPORT: //' > %t.dll_imports3 +// RUN: grep '[I]MPORT:' %s | sed -e 's/.*[I]MPORT: //' > %t.imports2 // IMPORT: __asan_wrap_HeapAlloc // IMPORT: __asan_wrap_HeapFree // IMPORT: __asan_wrap_HeapReAlloc @@ -26,20 +31,15 @@ // IMPORT: __asan_wrap_CreateThread // IMPORT: __asan_wrap_RaiseException // IMPORT: __asan_wrap_RtlRaiseException +// IMPORT: __asan_wrap_SetUnhandledExceptionFilter // -// The exception handlers differ in 32-bit and 64-bit, so we ignore them: -// RUN: grep '[E]XPORT:' %s | sed -e 's/.*[E]XPORT: //' > %t.exported_wrappers3 -// EXPORT: __asan_wrap__except_handler3 -// EXPORT: __asan_wrap__except_handler4 -// EXPORT: __asan_wrap___C_specific_handler -// -// RUN: cat %t.dll_imports1 %t.dll_imports2 %t.dll_imports3 | sort | uniq > %t.dll_imports-sorted -// RUN: cat %t.exported_wrappers1 %t.exported_wrappers2 %t.exported_wrappers3 | sort | uniq > %t.exported_wrappers-sorted +// RUN: cat %t.imports1 %t.imports2 | sort | uniq > %t.imports-sorted +// RUN: cat %t.exports1 %t.exports2 | sort | uniq > %t.exports-sorted // // Now make sure the DLL thunk imports everything: // RUN: echo // RUN: echo "=== NOTE === If you see a mismatch below, please update asan_win_dll_thunk.cc" -// RUN: diff %t.dll_imports-sorted %t.exported_wrappers-sorted +// RUN: diff %t.imports-sorted %t.exports-sorted // REQUIRES: asan-static-runtime #include <stdio.h> diff --git a/test/asan/TestCases/Windows/dll_intercept_memchr.cc b/test/asan/TestCases/Windows/dll_intercept_memchr.cc index 4f794a212706..6360cec87e5d 100644 --- a/test/asan/TestCases/Windows/dll_intercept_memchr.cc +++ b/test/asan/TestCases/Windows/dll_intercept_memchr.cc @@ -22,6 +22,6 @@ int test_function() { // CHECK-NEXT: test_function {{.*}}dll_intercept_memchr.cc:[[@LINE-5]] // CHECK: Address [[ADDR]] is located in stack of thread T0 at offset {{.*}} in frame // CHECK-NEXT: test_function {{.*}}dll_intercept_memchr.cc -// CHECK: 'buff' <== Memory access at offset {{.*}} overflows this variable +// CHECK: 'buff'{{.*}} <== Memory access at offset {{.*}} overflows this variable return 0; } diff --git a/test/asan/TestCases/Windows/dll_intercept_memcpy.cc b/test/asan/TestCases/Windows/dll_intercept_memcpy.cc index 736e6969d521..a5981fa5b2d5 100644 --- a/test/asan/TestCases/Windows/dll_intercept_memcpy.cc +++ b/test/asan/TestCases/Windows/dll_intercept_memcpy.cc @@ -27,6 +27,6 @@ int test_function() { // CHECK-NEXT: test_function {{.*}}dll_intercept_memcpy.cc:[[@LINE-4]] // CHECK: Address [[ADDR]] is located in stack of thread T0 at offset {{.*}} in frame // CHECK-NEXT: test_function {{.*}}dll_intercept_memcpy.cc -// CHECK: 'buff2' <== Memory access at offset {{.*}} overflows this variable +// CHECK: 'buff2'{{.*}} <== Memory access at offset {{.*}} overflows this variable return 0; } diff --git a/test/asan/TestCases/Windows/dll_intercept_memcpy_indirect.cc b/test/asan/TestCases/Windows/dll_intercept_memcpy_indirect.cc index 4e28905923cc..f05ee212116b 100644 --- a/test/asan/TestCases/Windows/dll_intercept_memcpy_indirect.cc +++ b/test/asan/TestCases/Windows/dll_intercept_memcpy_indirect.cc @@ -29,6 +29,6 @@ int test_function() { // CHECK-NEXT: test_function {{.*}}dll_intercept_memcpy_indirect.cc:[[@LINE-5]] // CHECK: Address [[ADDR]] is located in stack of thread T0 at offset {{.*}} in frame // CHECK-NEXT: test_function {{.*}}dll_intercept_memcpy_indirect.cc -// CHECK: 'buff2' <== Memory access at offset {{.*}} overflows this variable +// CHECK: 'buff2'{{.*}} <== Memory access at offset {{.*}} overflows this variable return 0; } diff --git a/test/asan/TestCases/Windows/dll_intercept_memset.cc b/test/asan/TestCases/Windows/dll_intercept_memset.cc index d4be376f2458..4baa0a1610f9 100644 --- a/test/asan/TestCases/Windows/dll_intercept_memset.cc +++ b/test/asan/TestCases/Windows/dll_intercept_memset.cc @@ -27,6 +27,6 @@ int test_function() { // CHECK-NEXT: test_function {{.*}}dll_intercept_memset.cc:[[@LINE-4]] // CHECK: Address [[ADDR]] is located in stack of thread T0 at offset {{.*}} in frame // CHECK-NEXT: test_function {{.*}}dll_intercept_memset.cc -// CHECK: 'buff' <== Memory access at offset {{.*}} overflows this variable +// CHECK: 'buff'{{.*}} <== Memory access at offset {{.*}} overflows this variable return 0; } diff --git a/test/asan/TestCases/Windows/dll_noreturn.cc b/test/asan/TestCases/Windows/dll_noreturn.cc index 8b5e3d005875..2f6f0c755cc1 100644 --- a/test/asan/TestCases/Windows/dll_noreturn.cc +++ b/test/asan/TestCases/Windows/dll_noreturn.cc @@ -17,7 +17,7 @@ void noreturn_f() { // // CHECK: Address [[ADDR]] is located in stack of thread T0 at offset [[OFFSET:.*]] in frame // CHECK-NEXT: noreturn_f{{.*}}dll_noreturn.cc -// CHECK: 'buffer' <== Memory access at offset [[OFFSET]] underflows this variable +// CHECK: 'buffer'{{.*}} <== Memory access at offset [[OFFSET]] underflows this variable // CHECK-LABEL: SUMMARY } diff --git a/test/asan/TestCases/Windows/dll_poison_unpoison.cc b/test/asan/TestCases/Windows/dll_poison_unpoison.cc index 9b25a126ef6b..6bd58eca2193 100644 --- a/test/asan/TestCases/Windows/dll_poison_unpoison.cc +++ b/test/asan/TestCases/Windows/dll_poison_unpoison.cc @@ -30,6 +30,6 @@ int test_function() { // // CHECK: [[ADDR]] is located in stack of thread T0 at offset [[OFFSET:.*]] in frame // CHECK-NEXT: test_function{{.*}}\dll_poison_unpoison.cc -// CHECK: 'buffer' <== Memory access at offset [[OFFSET]] is inside this variable +// CHECK: 'buffer'{{.*}} <== Memory access at offset [[OFFSET]] is inside this variable return 0; } diff --git a/test/asan/TestCases/Windows/dll_stack_use_after_return.cc b/test/asan/TestCases/Windows/dll_stack_use_after_return.cc index 642871846926..b6166d681209 100644 --- a/test/asan/TestCases/Windows/dll_stack_use_after_return.cc +++ b/test/asan/TestCases/Windows/dll_stack_use_after_return.cc @@ -22,7 +22,7 @@ int test_function() { // // CHECK: Address [[ADDR]] is located in stack of thread T0 at offset [[OFFSET:.*]] in frame // CHECK-NEXT: #0 {{.*}} foo{{.*}}dll_stack_use_after_return.cc -// CHECK: 'stack_buffer' <== Memory access at offset [[OFFSET]] is inside this variable +// CHECK: 'stack_buffer'{{.*}} <== Memory access at offset [[OFFSET]] is inside this variable return 0; } diff --git a/test/asan/TestCases/Windows/dll_thread_stack_array_left_oob.cc b/test/asan/TestCases/Windows/dll_thread_stack_array_left_oob.cc index dc7c7c6ad7e2..75a094e548cd 100644 --- a/test/asan/TestCases/Windows/dll_thread_stack_array_left_oob.cc +++ b/test/asan/TestCases/Windows/dll_thread_stack_array_left_oob.cc @@ -16,7 +16,7 @@ DWORD WINAPI thread_proc(void *context) { // CHECK: Address [[ADDR]] is located in stack of thread T1 at offset [[OFFSET:.*]] in frame // CHECK-NEXT: thread_proc{{.*}}dll_thread_stack_array_left_oob.cc // -// CHECK: 'stack_buffer' <== Memory access at offset [[OFFSET]] underflows this variable +// CHECK: 'stack_buffer'{{.*}} <== Memory access at offset [[OFFSET]] underflows this variable return 0; } diff --git a/test/asan/TestCases/Windows/fuse-lld.cc b/test/asan/TestCases/Windows/fuse-lld.cc index 76c36d828fb7..7fa5d4e8a80a 100644 --- a/test/asan/TestCases/Windows/fuse-lld.cc +++ b/test/asan/TestCases/Windows/fuse-lld.cc @@ -5,8 +5,8 @@ // FIXME: Use -fuse-ld=lld after the old COFF linker is removed. // FIXME: Test will fail until we add flags for requesting dwarf or cv. // RUNX: %clangxx_asan -O2 %s -o %t.exe -fuse-ld=lld -Wl,-debug -// RUN: %clangxx_asan -c -O2 %s -o %t.o -gdwarf -// RUN: lld-link %t.o -out:%t.exe -debug -defaultlib:libcmt %asan_lib %asan_cxx_lib +// RUN: %clangxx_asan -c -O2 %s -o %t.o -g -gdwarf +// RUN: lld-link %t.o -out:%t.exe -debug -nopdb -defaultlib:libcmt %asan_lib %asan_cxx_lib // RUN: not %run %t.exe 2>&1 | FileCheck %s #include <stdlib.h> diff --git a/test/asan/TestCases/Windows/intercept_memcpy.cc b/test/asan/TestCases/Windows/intercept_memcpy.cc index 6e45e7fc6b30..d71333d0b77d 100644 --- a/test/asan/TestCases/Windows/intercept_memcpy.cc +++ b/test/asan/TestCases/Windows/intercept_memcpy.cc @@ -27,5 +27,5 @@ int main() { // CHECK-NEXT: main {{.*}}intercept_memcpy.cc:[[@LINE-5]] // CHECK: Address [[ADDR]] is located in stack of thread T0 at offset {{.*}} in frame // CHECK-NEXT: #0 {{.*}} main -// CHECK: 'buff2' <== Memory access at offset {{.*}} overflows this variable +// CHECK: 'buff2'{{.*}} <== Memory access at offset {{.*}} overflows this variable } diff --git a/test/asan/TestCases/Windows/intercept_strlen.cc b/test/asan/TestCases/Windows/intercept_strlen.cc index 928a286bedfa..938e6c9b5bac 100644 --- a/test/asan/TestCases/Windows/intercept_strlen.cc +++ b/test/asan/TestCases/Windows/intercept_strlen.cc @@ -22,6 +22,6 @@ int main() { // CHECK-NEXT: main {{.*}}intercept_strlen.cc:[[@LINE-5]] // CHECK: Address [[ADDR]] is located in stack of thread T0 at offset {{.*}} in frame // CHECK-NEXT: main {{.*}}intercept_strlen.cc -// CHECK: 'str' <== Memory access at offset {{.*}} overflows this variable +// CHECK: 'str'{{.*}} <== Memory access at offset {{.*}} overflows this variable return len < 6; } diff --git a/test/asan/TestCases/Windows/interface_symbols_windows.c b/test/asan/TestCases/Windows/interface_symbols_windows.c new file mode 100644 index 000000000000..a08f358726d7 --- /dev/null +++ b/test/asan/TestCases/Windows/interface_symbols_windows.c @@ -0,0 +1,51 @@ +// Check that the interface exported by asan static lib matches the list of +// functions mentioned in sanitizer_interface.inc. +// +// Just make sure we can compile this. +// RUN: %clang_cl_asan -O0 %s -Fe%t +// +// note: The mangling decoration (i.e. @4 )is removed because calling convention +// differ from 32-bit and 64-bit. +// +// RUN: dumpbin /EXPORTS %t | sed "s/=.*//" \ +// RUN: | grep -o "\(__asan_\|__ubsan_\|__sanitizer_\|__sancov_\)[^ ]*" \ +// RUN: | grep -v "__asan_wrap" \ +// RUN: | sed -e s/@.*// > %t.exports +// +// [BEWARE: be really careful with the sed commands, as this test can be run +// from different environemnts with different shells and seds] +// +// RUN: grep -e "INTERFACE_FUNCTION" \ +// RUN: %p/../../../../lib/asan/asan_interface.inc \ +// RUN: %p/../../../../lib/ubsan/ubsan_interface.inc \ +// RUN: %p/../../../../lib/sanitizer_common/sanitizer_common_interface.inc \ +// RUN: %p/../../../../lib/sanitizer_common/sanitizer_coverage_interface.inc \ +// RUN: | sed -e "s/.*(//" -e "s/).*//" > %t.imports1 +// +// RUN: grep -e "INTERFACE_WEAK_FUNCTION" \ +// RUN: %p/../../../../lib/asan/asan_interface.inc \ +// RUN: %p/../../../../lib/ubsan/ubsan_interface.inc \ +// RUN: %p/../../../../lib/sanitizer_common/sanitizer_common_interface.inc \ +// RUN: %p/../../../../lib/sanitizer_common/sanitizer_coverage_interface.inc \ +// RUN: | sed -e "s/.*(//" -e "s/).*/__dll/" > %t.imports2 +// +// Add functions not included in the interface lists: +// RUN: grep '[I]MPORT:' %s | sed -e 's/.*[I]MPORT: //' > %t.imports3 +// IMPORT: __asan_shadow_memory_dynamic_address +// IMPORT: __asan_get_shadow_memory_dynamic_address +// IMPORT: __asan_option_detect_stack_use_after_return +// IMPORT: __asan_should_detect_stack_use_after_return +// IMPORT: __asan_set_seh_filter +// IMPORT: __asan_unhandled_exception_filter +// IMPORT: __asan_test_only_reported_buggy_pointer +// +// RUN: cat %t.imports1 %t.imports2 %t.imports3 | sort | uniq > %t.imports-sorted +// RUN: cat %t.exports | sort | uniq > %t.exports-sorted +// +// Now make sure the DLL thunk imports everything: +// RUN: echo +// RUN: echo "=== NOTE === If you see a mismatch below, please update interface.inc files." +// RUN: diff %t.imports-sorted %t.exports-sorted +// REQUIRES: asan-static-runtime + +int main() { return 0; } diff --git a/test/asan/TestCases/Windows/stack_array_left_oob.cc b/test/asan/TestCases/Windows/stack_array_left_oob.cc index 845a1f33261f..8d601fc8d42f 100644 --- a/test/asan/TestCases/Windows/stack_array_left_oob.cc +++ b/test/asan/TestCases/Windows/stack_array_left_oob.cc @@ -12,5 +12,5 @@ int main() { // CHECK-NEXT: {{#0 .* main .*stack_array_left_oob.cc}}:[[@LINE-3]] // CHECK: Address [[ADDR]] is located in stack of thread T0 at offset [[OFFSET:.*]] in frame // CHECK-NEXT: {{#0 .* main .*stack_array_left_oob.cc}} -// CHECK: 'buffer' <== Memory access at offset [[OFFSET]] underflows this variable +// CHECK: 'buffer'{{.*}} <== Memory access at offset [[OFFSET]] underflows this variable } diff --git a/test/asan/TestCases/Windows/stack_array_right_oob.cc b/test/asan/TestCases/Windows/stack_array_right_oob.cc index a370246aa072..721834d1ad27 100644 --- a/test/asan/TestCases/Windows/stack_array_right_oob.cc +++ b/test/asan/TestCases/Windows/stack_array_right_oob.cc @@ -12,5 +12,5 @@ int main() { // CHECK-NEXT: {{#0 .* main .*stack_array_right_oob.cc}}:[[@LINE-3]] // CHECK: Address [[ADDR]] is located in stack of thread T0 at offset [[OFFSET:.*]] in frame // CHECK-NEXT: {{#0 .* main .*stack_array_right_oob.cc}} -// CHECK: 'buffer' <== Memory access at offset [[OFFSET]] overflows this variable +// CHECK: 'buffer'{{.*}} <== Memory access at offset [[OFFSET]] overflows this variable } diff --git a/test/asan/TestCases/Windows/stack_use_after_return.cc b/test/asan/TestCases/Windows/stack_use_after_return.cc index 9c31922af1de..ca1c142af21d 100644 --- a/test/asan/TestCases/Windows/stack_use_after_return.cc +++ b/test/asan/TestCases/Windows/stack_use_after_return.cc @@ -18,5 +18,5 @@ int main() { // CHECK: is located in stack of thread T0 at offset [[OFFSET:.*]] in frame // CHECK-NEXT: {{#0 0x.* in foo.*stack_use_after_return.cc}} // -// CHECK: 'stack_buffer' <== Memory access at offset [[OFFSET]] is inside this variable +// CHECK: 'stack_buffer'{{.*}} <== Memory access at offset [[OFFSET]] is inside this variable } diff --git a/test/asan/TestCases/Windows/tls_init.cc b/test/asan/TestCases/Windows/tls_init.cc index c29c4a377834..a8569f8025c8 100644 --- a/test/asan/TestCases/Windows/tls_init.cc +++ b/test/asan/TestCases/Windows/tls_init.cc @@ -1,4 +1,4 @@ -// RUN: %clang_cl_asan %s -Fe%t.exe +// RUN: %clang_cl_asan %s -Fe%t.exe /MD // RUN: %run %t.exe | FileCheck %s // CHECK: my_thread_callback diff --git a/test/asan/TestCases/Windows/wrong_downcast_on_stack.cc b/test/asan/TestCases/Windows/wrong_downcast_on_stack.cc index 2859ecc521d2..7848cf3be92a 100644 --- a/test/asan/TestCases/Windows/wrong_downcast_on_stack.cc +++ b/test/asan/TestCases/Windows/wrong_downcast_on_stack.cc @@ -20,7 +20,7 @@ int main(void) { // CHECK-NEXT: {{#0 0x[0-9a-f]* in main .*wrong_downcast_on_stack.cc}}:[[@LINE-3]] // CHECK: [[ADDR]] is located in stack of thread T0 at offset [[OFFSET:[0-9]+]] in frame // CHECK-NEXT: {{#0 0x[0-9a-f]* in main }} -// CHECK: 'p' <== Memory access at offset [[OFFSET]] overflows this variable +// CHECK: 'p'{{.*}} <== Memory access at offset [[OFFSET]] overflows this variable return 0; } diff --git a/test/asan/TestCases/invalid-pointer-pairs.cc b/test/asan/TestCases/invalid-pointer-pairs.cc index b36e6cd9c10a..e1df151d1365 100644 --- a/test/asan/TestCases/invalid-pointer-pairs.cc +++ b/test/asan/TestCases/invalid-pointer-pairs.cc @@ -13,10 +13,10 @@ int f(char c, char *p, char *q) { // [[PTR1:0x[0-9a-f]+]] [[PTR2:0x[0-9a-f]+]] switch (c) { case 'g': - // CMP: #{{[0-9]+ .*}} in f({{char, char\*, char\*|char,char \*,char \*}}) {{.*}}invalid-pointer-pairs.cc:[[@LINE+1]]:14 + // CMP: #{{[0-9]+ .*}} in f({{char, char\*, char\*|char,char \*,char \*}}) {{.*}}invalid-pointer-pairs.cc:[[@LINE+1]] return p > q; case 's': - // SUB: #{{[0-9]+ .*}} in f({{char, char\*, char\*|char,char \*,char \*}}) {{.*}}invalid-pointer-pairs.cc:[[@LINE+1]]:14 + // SUB: #{{[0-9]+ .*}} in f({{char, char\*, char\*|char,char \*,char \*}}) {{.*}}invalid-pointer-pairs.cc:[[@LINE+1]] return p - q; case 'k': { // OK-NOT: ERROR @@ -26,7 +26,7 @@ int f(char c, char *p, char *q) { case 'f': { char *p3 = p + 20; free(p); - // FREE: #{{[0-9]+ .*}} in f({{char, char\*, char\*|char,char \*,char \*}}) {{.*}}invalid-pointer-pairs.cc:[[@LINE+2]]:14 + // FREE: #{{[0-9]+ .*}} in f({{char, char\*, char\*|char,char \*,char \*}}) {{.*}}invalid-pointer-pairs.cc:[[@LINE+2]] // FREE: freed by thread return p < p3; } diff --git a/test/asan/TestCases/non-executable-pc.cpp b/test/asan/TestCases/non-executable-pc.cpp new file mode 100644 index 000000000000..f8adee613b09 --- /dev/null +++ b/test/asan/TestCases/non-executable-pc.cpp @@ -0,0 +1,33 @@ +// RUN: %clangxx_asan %s -o %t +// RUN: not %run %t 0 2>&1 | FileCheck %s +// RUN: not %run %t n 2>&1 | FileCheck %s -check-prefix=CHECK -check-prefix=NON_EXEC + +// Only Linux and FreeBSD list every memory region in MemoryMappingLayout, for now. +// REQUIRES: linux || freebsd + +#include <assert.h> + +typedef void void_f(); +int main(int argc, char **argv) { + char *array = new char[42]; + void_f *func; + assert(argc > 1); + if (argv[1][0] == '0') { + func = (void_f *)0x04; + } else { + assert(argv[1][0] == 'n'); + func = (void_f *)array; + } + + func(); + // x86 reports the SEGV with both address=X and pc=X. + // On PowerPC64 ELFv1, the pointer is taken to be a function-descriptor + // pointer out of which three 64-bit quantities are read. This will SEGV, but + // the compiler is free to choose the order. As a result, the address is + // either X, X+0x8 or X+0x10. The pc is still in main() because it has not + // actually made the call when the faulting access occurs. + // CHECK: DEADLYSIGNAL + // CHECK: {{AddressSanitizer: (SEGV|access-violation).*(address|pc) }} + // NON_EXEC: PC is at a non-executable region. Maybe a wild jump? + return 0; +} diff --git a/test/asan/TestCases/realloc.cc b/test/asan/TestCases/realloc.cc new file mode 100644 index 000000000000..fcf383b1a737 --- /dev/null +++ b/test/asan/TestCases/realloc.cc @@ -0,0 +1,21 @@ +// RUN: %clangxx_asan -O0 %s -o %t +// Default is true (free on realloc to 0 size) +// RUN: %run %t 2>&1 | FileCheck %s +// RUN: %env_asan_opts=allocator_frees_and_returns_null_on_realloc_zero=true %run %t 2>&1 | FileCheck %s +// RUN: %env_asan_opts=allocator_frees_and_returns_null_on_realloc_zero=false %run %t 2>&1 | FileCheck %s --check-prefix=NO-FREE + +#include <stdio.h> +#include <stdlib.h> + +int main() { + void *p = malloc(42); + p = realloc(p, 0); + if (p) { + // NO-FREE: Allocated something on realloc(p, 0) + fprintf(stderr, "Allocated something on realloc(p, 0)\n"); + } else { + // CHECK: realloc(p, 0) returned nullptr + fprintf(stderr, "realloc(p, 0) returned nullptr\n"); + } + free(p); +} diff --git a/test/asan/TestCases/stack-buffer-overflow-with-position.cc b/test/asan/TestCases/stack-buffer-overflow-with-position.cc index 88f5825baf42..2a575f7755ff 100644 --- a/test/asan/TestCases/stack-buffer-overflow-with-position.cc +++ b/test/asan/TestCases/stack-buffer-overflow-with-position.cc @@ -30,15 +30,15 @@ int main(int argc, char **argv) { // make sure BBB and CCC are not removed; return *(short*)(p) + BBB[argc % 2] + CCC[argc % 2]; } -// CHECK-m2: 'AAA' <== {{.*}}underflows this variable -// CHECK-m1: 'AAA' <== {{.*}}partially underflows this variable -// CHECK-9: 'AAA' <== {{.*}}partially overflows this variable -// CHECK-10: 'AAA' <== {{.*}}overflows this variable -// CHECK-30: 'BBB' <== {{.*}}underflows this variable -// CHECK-31: 'BBB' <== {{.*}}partially underflows this variable -// CHECK-41: 'BBB' <== {{.*}}partially overflows this variable -// CHECK-42: 'BBB' <== {{.*}}overflows this variable -// CHECK-62: 'CCC' <== {{.*}}underflows this variable -// CHECK-63: 'CCC' <== {{.*}}partially underflows this variable -// CHECK-73: 'CCC' <== {{.*}}partially overflows this variable -// CHECK-74: 'CCC' <== {{.*}}overflows this variable +// CHECK-m2: 'AAA'{{.*}} <== {{.*}}underflows this variable +// CHECK-m1: 'AAA'{{.*}} <== {{.*}}partially underflows this variable +// CHECK-9: 'AAA'{{.*}} <== {{.*}}partially overflows this variable +// CHECK-10: 'AAA'{{.*}} <== {{.*}}overflows this variable +// CHECK-30: 'BBB'{{.*}} <== {{.*}}underflows this variable +// CHECK-31: 'BBB'{{.*}} <== {{.*}}partially underflows this variable +// CHECK-41: 'BBB'{{.*}} <== {{.*}}partially overflows this variable +// CHECK-42: 'BBB'{{.*}} <== {{.*}}overflows this variable +// CHECK-62: 'CCC'{{.*}} <== {{.*}}underflows this variable +// CHECK-63: 'CCC'{{.*}} <== {{.*}}partially underflows this variable +// CHECK-73: 'CCC'{{.*}} <== {{.*}}partially overflows this variable +// CHECK-74: 'CCC'{{.*}} <== {{.*}}overflows this variable diff --git a/test/asan/TestCases/strcasestr-1.c b/test/asan/TestCases/strcasestr-1.c index c38871ea5362..dccfbcde7709 100644 --- a/test/asan/TestCases/strcasestr-1.c +++ b/test/asan/TestCases/strcasestr-1.c @@ -19,7 +19,7 @@ int main(int argc, char **argv) { char s1[4] = "abC"; __asan_poison_memory_region ((char *)&s1[2], 2); r = strcasestr(s1, s2); - // CHECK:'s1' <== Memory access at offset {{[0-9]+}} partially overflows this variable + // CHECK:'s1'{{.*}} <== Memory access at offset {{[0-9]+}} partially overflows this variable assert(r == s1 + 2); return 0; } diff --git a/test/asan/TestCases/strcasestr-2.c b/test/asan/TestCases/strcasestr-2.c index 47fd69225de6..70de2dda437d 100644 --- a/test/asan/TestCases/strcasestr-2.c +++ b/test/asan/TestCases/strcasestr-2.c @@ -20,6 +20,6 @@ int main(int argc, char **argv) { __asan_poison_memory_region ((char *)&s2[2], 2); r = strcasestr(s1, s2); assert(r == 0); - // CHECK:'s2' <== Memory access at offset {{[0-9]+}} partially overflows this variable + // CHECK:'s2'{{.*}} <== Memory access at offset {{[0-9]+}} partially overflows this variable return 0; } diff --git a/test/asan/TestCases/strcspn-1.c b/test/asan/TestCases/strcspn-1.c index 6cda2e210cba..2a9f7d7fbddf 100644 --- a/test/asan/TestCases/strcspn-1.c +++ b/test/asan/TestCases/strcspn-1.c @@ -14,7 +14,7 @@ int main(int argc, char **argv) { char s1[4] = "caB"; __asan_poison_memory_region ((char *)&s1[2], 2); r = strcspn(s1, s2); - // CHECK:'s1' <== Memory access at offset {{[0-9]+}} partially overflows this variable + // CHECK:'s1'{{.*}} <== Memory access at offset {{[0-9]+}} partially overflows this variable assert(r == 1); return 0; } diff --git a/test/asan/TestCases/strcspn-2.c b/test/asan/TestCases/strcspn-2.c index 8bb4b8a57eec..a51fb911e802 100644 --- a/test/asan/TestCases/strcspn-2.c +++ b/test/asan/TestCases/strcspn-2.c @@ -14,7 +14,7 @@ int main(int argc, char **argv) { char s2[4] = "abc"; __asan_poison_memory_region ((char *)&s2[2], 2); r = strcspn(s1, s2); - // CHECK:'s2' <== Memory access at offset {{[0-9]+}} partially overflows this variable + // CHECK:'s2'{{.*}} <== Memory access at offset {{[0-9]+}} partially overflows this variable assert(r == 0); return 0; } diff --git a/test/asan/TestCases/strpbrk-1.c b/test/asan/TestCases/strpbrk-1.c index 626e8777e1ef..eb323267828b 100644 --- a/test/asan/TestCases/strpbrk-1.c +++ b/test/asan/TestCases/strpbrk-1.c @@ -14,7 +14,7 @@ int main(int argc, char **argv) { char s1[4] = "cab"; __asan_poison_memory_region ((char *)&s1[2], 2); r = strpbrk(s1, s2); - // CHECK:'s1' <== Memory access at offset {{[0-9]+}} partially overflows this variable + // CHECK:'s1'{{.*}} <== Memory access at offset {{[0-9]+}} partially overflows this variable assert(r == s1 + 1); return 0; } diff --git a/test/asan/TestCases/strpbrk-2.c b/test/asan/TestCases/strpbrk-2.c index 29f3150e667f..1f24656dcb58 100644 --- a/test/asan/TestCases/strpbrk-2.c +++ b/test/asan/TestCases/strpbrk-2.c @@ -14,7 +14,7 @@ int main(int argc, char **argv) { char s2[4] = "bca"; __asan_poison_memory_region ((char *)&s2[2], 2); r = strpbrk(s1, s2); - // CHECK:'s2' <== Memory access at offset {{[0-9]+}} partially overflows this variable + // CHECK:'s2'{{.*}} <== Memory access at offset {{[0-9]+}} partially overflows this variable assert(r == s1); return 0; } diff --git a/test/asan/TestCases/strspn-1.c b/test/asan/TestCases/strspn-1.c index b0c40ea4d725..5ddb14f507ff 100644 --- a/test/asan/TestCases/strspn-1.c +++ b/test/asan/TestCases/strspn-1.c @@ -14,7 +14,7 @@ int main(int argc, char **argv) { char s1[4] = "acb"; __asan_poison_memory_region ((char *)&s1[2], 2); r = strspn(s1, s2); - // CHECK:'s1' <== Memory access at offset {{[0-9]+}} partially overflows this variable + // CHECK:'s1'{{.*}} <== Memory access at offset {{[0-9]+}} partially overflows this variable assert(r == 1); return 0; } diff --git a/test/asan/TestCases/strspn-2.c b/test/asan/TestCases/strspn-2.c index 4c899108de90..d564ef8aefb9 100644 --- a/test/asan/TestCases/strspn-2.c +++ b/test/asan/TestCases/strspn-2.c @@ -14,7 +14,7 @@ int main(int argc, char **argv) { char s2[5] = "abcd"; __asan_poison_memory_region ((char *)&s2[3], 2); r = strspn(s1, s2); - // CHECK:'s2' <== Memory access at offset {{[0-9]+}} partially overflows this variable + // CHECK:'s2'{{.*}} <== Memory access at offset {{[0-9]+}} partially overflows this variable assert(r >= 2); return 0; } diff --git a/test/asan/TestCases/strstr-1.c b/test/asan/TestCases/strstr-1.c index 06a8a8a55d99..319cff546d19 100644 --- a/test/asan/TestCases/strstr-1.c +++ b/test/asan/TestCases/strstr-1.c @@ -15,7 +15,7 @@ int main(int argc, char **argv) { char s1[4] = "acb"; __asan_poison_memory_region ((char *)&s1[2], 2); r = strstr(s1, s2); - // CHECK:'s1' <== Memory access at offset {{[0-9]+}} {{partially overflows this variable|is inside this variable}} + // CHECK:'s1'{{.*}} <== Memory access at offset {{[0-9]+}} {{partially overflows this variable|is inside this variable}} assert(r == s1 + 1); return 0; } diff --git a/test/asan/TestCases/strstr-2.c b/test/asan/TestCases/strstr-2.c index 8bc6e9902dd0..4d00c6e632bb 100644 --- a/test/asan/TestCases/strstr-2.c +++ b/test/asan/TestCases/strstr-2.c @@ -15,7 +15,7 @@ int main(int argc, char **argv) { char s2[4] = "cab"; __asan_poison_memory_region ((char *)&s2[2], 2); r = strstr(s1, s2); - // CHECK:'s2' <== Memory access at offset {{[0-9]+}} partially overflows this variable + // CHECK:'s2'{{.*}} <== Memory access at offset {{[0-9]+}} partially overflows this variable assert(r == 0); return 0; } diff --git a/test/asan/TestCases/strtok.c b/test/asan/TestCases/strtok.c new file mode 100644 index 000000000000..e1eee89ee709 --- /dev/null +++ b/test/asan/TestCases/strtok.c @@ -0,0 +1,103 @@ +// RUN: %clang_asan %s -o %t + +// Test overflows with strict_string_checks + +// RUN: %env_asan_opts=strict_string_checks=true not %run %t test1 2>&1 | \ +// RUN: FileCheck %s --check-prefix=CHECK1 +// RUN: %env_asan_opts=intercept_strtok=false%run %t test1 2>&1 +// RUN: %env_asan_opts=strict_string_checks=true not %run %t test2 2>&1 | \ +// RUN: FileCheck %s --check-prefix=CHECK2 +// RUN: %env_asan_opts=intercept_strtok=false %run %t test2 2>&1 +// RUN: %env_asan_opts=strict_string_checks=true not %run %t test3 2>&1 | \ +// RUN: FileCheck %s --check-prefix=CHECK3 +// RUN: %env_asan_opts=intercept_strtok=false %run %t test3 2>&1 +// RUN: %env_asan_opts=strict_string_checks=true %run %t test4 2>&1 +// RUN: %env_asan_opts=intercept_strtok=false %run %t test4 2>&1 + +// Test overflows with !strict_string_checks +// RUN: %env_asan_opts=strict_string_checks=false not %run %t test5 2>&1 | \ +// RUN: FileCheck %s --check-prefix=CHECK5 +// RUN: %env_asan_opts=intercept_strtok=false %run %t test5 2>&1 +// RUN: %env_asan_opts=strict_string_checks=false not %run %t test6 2>&1 | \ +// RUN: FileCheck %s --check-prefix=CHECK6 +// RUN: %env_asan_opts=intercept_strtok=false %run %t test6 2>&1 + + +#include <assert.h> +#include <string.h> +#include <sanitizer/asan_interface.h> + +// Check that we find overflows in the delimiters on the first call +// with strict_string_checks. +void test1() { + char *token; + char s[4] = "abc"; + char token_delimiter[2] = "b"; + __asan_poison_memory_region ((char *)&token_delimiter[1], 2); + token = strtok(s, token_delimiter); + // CHECK1: 'token_delimiter'{{.*}} <== Memory access at offset {{[0-9]+}} partially overflows this variable +} + +// Check that we find overflows in the delimiters on the second call (str == NULL) +// with strict_string_checks. +void test2() { + char *token; + char s[4] = "abc"; + char token_delimiter[2] = "b"; + token = strtok(s, token_delimiter); + assert(strcmp(token, "a") == 0); + __asan_poison_memory_region ((char *)&token_delimiter[1], 2); + token = strtok(NULL, token_delimiter); + // CHECK2: 'token_delimiter'{{.*}} <== Memory access at offset {{[0-9]+}} partially overflows this variable +} + +// Check that we find overflows in the string (only on the first call) with strict_string_checks. +void test3() { + char *token; + char s[4] = "abc"; + char token_delimiter[2] = "b"; + __asan_poison_memory_region ((char *)&s[3], 2); + token = strtok(s, token_delimiter); + // CHECK3: 's'{{.*}} <== Memory access at offset {{[0-9]+}} partially overflows this variable +} + +// Check that we do not crash when strtok returns NULL with strict_string_checks. +void test4() { + char *token; + char s[] = ""; + char token_delimiter[] = "a"; + token = strtok(s, token_delimiter); + assert(token == NULL); +} + +// Check that we find overflows in the string (only on the first call) with !strict_string_checks. +void test5() { + char *token; + char s[4] = "abc"; + char token_delimiter[2] = "d"; + __asan_poison_memory_region ((char *)&s[2], 2); + __asan_poison_memory_region ((char *)&token_delimiter[1], 2); + token = strtok(s, token_delimiter); + // CHECK5: 's'{{.*}} <== Memory access at offset {{[0-9]+}} partially overflows this variable +} + +// Check that we find overflows in the delimiters (only on the first call) with !strict_string_checks. +void test6() { + char *token; + char s[4] = "abc"; + char token_delimiter[1] = {'d'}; + __asan_poison_memory_region ((char *)&token_delimiter[1], 2); + token = strtok(s, &token_delimiter[1]); + // CHECK6: 'token_delimiter'{{.*}} <== Memory access at offset {{[0-9]+}} overflows this variable +} + +int main(int argc, char **argv) { + if (argc != 2) return 1; + if (!strcmp(argv[1], "test1")) test1(); + if (!strcmp(argv[1], "test2")) test2(); + if (!strcmp(argv[1], "test3")) test3(); + if (!strcmp(argv[1], "test4")) test4(); + if (!strcmp(argv[1], "test5")) test5(); + if (!strcmp(argv[1], "test6")) test6(); + return 0; +} diff --git a/test/asan/TestCases/use-after-scope-inlined.cc b/test/asan/TestCases/use-after-scope-inlined.cc index 98a455cbc0c7..bed9814c8b70 100644 --- a/test/asan/TestCases/use-after-scope-inlined.cc +++ b/test/asan/TestCases/use-after-scope-inlined.cc @@ -21,8 +21,8 @@ int main(int argc, char *argv[]) { // CHECK: READ of size 4 at 0x{{.*}} thread T0 // CHECK: #0 0x{{.*}} in main // CHECK: {{.*}}use-after-scope-inlined.cc:[[@LINE-4]] - // CHECK: Address 0x{{.*}} is located in stack of thread T0 at offset - // CHECK: [[OFFSET:[^ ]*]] in frame - // CHECK: main - // CHECK: {{\[}}[[OFFSET]], {{.*}}) 'x.i:[[@LINE-15]]' + // CHECK: Address 0x{{.*}} is located in stack of thread T0 at offset [[OFFSET:[^ ]*]] in frame + // CHECK: {{.*}} in main + // CHECK: This frame has + // CHECK: {{\[}}[[OFFSET]], {{.*}}) 'x.i' (line [[@LINE-15]]) } diff --git a/test/asan/TestCases/use-after-scope.cc b/test/asan/TestCases/use-after-scope.cc index d92dae6572ce..4c5998abe20a 100644 --- a/test/asan/TestCases/use-after-scope.cc +++ b/test/asan/TestCases/use-after-scope.cc @@ -1,6 +1,10 @@ // RUN: %clangxx_asan -O1 -fsanitize-address-use-after-scope %s -o %t && \ // RUN: not %run %t 2>&1 | FileCheck %s +// -fsanitize-address-use-after-scope is now on by default: +// RUN: %clangxx_asan -O1 %s -o %t && \ +// RUN: not %run %t 2>&1 | FileCheck %s + volatile int *p = 0; int main() { diff --git a/test/asan/Unit/lit.site.cfg.in b/test/asan/Unit/lit.site.cfg.in index 55631a6d927f..1c59a6bad233 100644 --- a/test/asan/Unit/lit.site.cfg.in +++ b/test/asan/Unit/lit.site.cfg.in @@ -27,3 +27,6 @@ config.test_source_root = config.test_exec_root # Set LD_LIBRARY_PATH to pick dynamic runtime up properly. push_ld_library_path(config, config.compiler_rt_libdir) + +if config.host_os == 'Darwin': + config.parallelism_group = config.darwin_sanitizer_parallelism_group_func diff --git a/test/asan/lit.cfg b/test/asan/lit.cfg index 7703f5a31b0d..7d684a1ae7a7 100644 --- a/test/asan/lit.cfg +++ b/test/asan/lit.cfg @@ -2,6 +2,7 @@ import os import platform +import re import lit.formats @@ -132,16 +133,22 @@ if config.asan_dynamic: # Windows-specific tests might also use the clang-cl.exe driver. if platform.system() == 'Windows': - clang_cl_asan_cxxflags = ["-fsanitize=address", - "-Wno-deprecated-declarations", - "-WX", - "-D_HAS_EXCEPTIONS=0", - "-Zi"] + target_cflags + clang_cl_cxxflags = ["-Wno-deprecated-declarations", + "-WX", + "-D_HAS_EXCEPTIONS=0", + "-Zi"] + target_cflags + clang_cl_asan_cxxflags = ["-fsanitize=address"] + clang_cl_cxxflags if config.asan_dynamic: clang_cl_asan_cxxflags.append("-MD") - clang_invocation = build_invocation(clang_cl_asan_cxxflags) - clang_cl_invocation = clang_invocation.replace("clang.exe","clang-cl.exe") - config.substitutions.append( ("%clang_cl_asan ", clang_cl_invocation) ) + + clang_cl_invocation = build_invocation(clang_cl_cxxflags) + clang_cl_invocation = clang_cl_invocation.replace("clang.exe","clang-cl.exe") + config.substitutions.append( ("%clang_cl ", clang_cl_invocation) ) + + clang_cl_asan_invocation = build_invocation(clang_cl_asan_cxxflags) + clang_cl_asan_invocation = clang_cl_asan_invocation.replace("clang.exe","clang-cl.exe") + config.substitutions.append( ("%clang_cl_asan ", clang_cl_asan_invocation) ) + base_lib = os.path.join(config.compiler_rt_libdir, "clang_rt.asan%%s-%s.lib" % config.target_arch) config.substitutions.append( ("%asan_lib", base_lib % "") ) config.substitutions.append( ("%asan_cxx_lib", base_lib % "_cxx") ) @@ -196,16 +203,21 @@ elif config.host_os == 'Linux': config.substitutions.append( ("%ld_flags_rpath_so", '') ) # Must be defined after the substitutions that use %dynamiclib. -config.substitutions.append( ("%dynamiclib", '%T/lib%xdynamiclib_namespec.so') ) -config.substitutions.append( ("%xdynamiclib_namespec", '$(basename %t).dynamic') ) +config.substitutions.append( ("%dynamiclib", '%T/%xdynamiclib_filename') ) +config.substitutions.append( ("%xdynamiclib_filename", 'lib%xdynamiclib_namespec.so') ) +config.substitutions.append( ("%xdynamiclib_namespec", '%basename_t.dynamic') ) # Allow tests to use REQUIRES=stable-runtime. For use when you cannot use XFAIL # because the test hangs. Adding armhf as we now have two modes. if config.target_arch != 'arm' and config.target_arch != 'armhf' and config.target_arch != 'aarch64': config.available_features.add('stable-runtime') +# Fast unwinder doesn't work with Thumb +if re.search('mthumb', config.target_cflags) is not None: + config.available_features.add('fast-unwinder-works') + # Turn on leak detection on 64-bit Linux. -if config.host_os == 'Linux' and config.target_arch == 'x86_64': +if config.host_os == 'Linux' and (config.target_arch == 'x86_64' or config.target_arch == 'i386'): config.available_features.add('leak-detection') # Set LD_LIBRARY_PATH to pick dynamic runtime up properly. @@ -241,3 +253,6 @@ else: # Only run the tests on supported OSs. if config.host_os not in ['Linux', 'Darwin', 'FreeBSD', 'Windows']: config.unsupported = True + +if config.host_os == 'Darwin' and config.target_arch in ["x86_64", "x86_64h"]: + config.parallelism_group = "darwin-64bit-sanitizer" diff --git a/test/builtins/CMakeLists.txt b/test/builtins/CMakeLists.txt new file mode 100644 index 000000000000..cabf767223cc --- /dev/null +++ b/test/builtins/CMakeLists.txt @@ -0,0 +1,42 @@ +set(BUILTINS_LIT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}) + +set(BUILTINS_TEST_DEPS ${SANITIZER_COMMON_LIT_TEST_DEPS} builtins) +set(BUILTINS_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/TestCases) + +# Test cases. +configure_lit_site_cfg( + ${CMAKE_CURRENT_SOURCE_DIR}/lit.site.cfg.in + ${CMAKE_CURRENT_BINARY_DIR}/lit.site.cfg +) + +#Unit tests. + +include(builtin-config-ix) + +pythonize_bool(MSVC) + +#TODO: Add support for Apple. +if (NOT APPLE) +foreach(arch ${BUILTIN_SUPPORTED_ARCH}) + set(BUILTINS_TEST_TARGET_ARCH ${arch}) + string(TOLOWER "-${arch}-${OS_NAME}" BUILTINS_TEST_CONFIG_SUFFIX) + get_test_cc_for_arch(${arch} BUILTINS_TEST_TARGET_CC BUILTINS_TEST_TARGET_CFLAGS) + if (${arch} STREQUAL "armhf") + list(APPEND BUILTINS_TEST_TARGET_CFLAGS -fomit-frame-pointer -DCOMPILER_RT_ARMHF_TARGET) + string(REPLACE ";" " " BUILTINS_TEST_TARGET_CFLAGS "${BUILTINS_TEST_TARGET_CFLAGS}") + endif() + + string(TOUPPER ${arch} ARCH_UPPER_CASE) + set(CONFIG_NAME ${ARCH_UPPER_CASE}${OS_NAME}Config) + configure_lit_site_cfg( + ${CMAKE_CURRENT_SOURCE_DIR}/Unit/lit.site.cfg.in + ${CMAKE_CURRENT_BINARY_DIR}/Unit/${CONFIG_NAME}/lit.site.cfg + ) + list(APPEND BUILTINS_TESTSUITES ${CMAKE_CURRENT_BINARY_DIR}/Unit/${CONFIG_NAME}) +endforeach() +endif() + +add_lit_testsuite(check-builtins "Running the Builtins tests" + ${BUILTINS_TESTSUITES} + DEPENDS ${BUILTINS_TEST_DEPS}) +set_target_properties(check-builtins PROPERTIES FOLDER "Compiler-RT Misc") diff --git a/test/builtins/TestCases/Darwin/lit.local.cfg b/test/builtins/TestCases/Darwin/lit.local.cfg new file mode 100644 index 000000000000..a85dfcd24c08 --- /dev/null +++ b/test/builtins/TestCases/Darwin/lit.local.cfg @@ -0,0 +1,9 @@ +def getRoot(config): + if not config.parent: + return config + return getRoot(config.parent) + +root = getRoot(config) + +if root.host_os not in ['Darwin']: + config.unsupported = True diff --git a/test/builtins/TestCases/Darwin/os_version_check_test.c b/test/builtins/TestCases/Darwin/os_version_check_test.c new file mode 100644 index 000000000000..2692cd37edce --- /dev/null +++ b/test/builtins/TestCases/Darwin/os_version_check_test.c @@ -0,0 +1,19 @@ +// RUN: %clang %s -o %t -mmacosx-version-min=10.5 -framework CoreFoundation -DMAJOR=%macos_version_major -DMINOR=%macos_version_minor -DSUBMINOR=%macos_version_subminor +// RUN: %run %t + +int __isOSVersionAtLeast(int Major, int Minor, int Subminor); + +int main() { + if (!__isOSVersionAtLeast(MAJOR, MINOR, SUBMINOR)) + return 1; + if (__isOSVersionAtLeast(MAJOR, MINOR, SUBMINOR + 1)) + return 1; + if (SUBMINOR && __isOSVersionAtLeast(MAJOR + 1, MINOR, SUBMINOR - 1)) + return 1; + if (SUBMINOR && !__isOSVersionAtLeast(MAJOR, MINOR, SUBMINOR - 1)) + return 1; + if (MAJOR && !__isOSVersionAtLeast(MAJOR - 1, MINOR + 1, SUBMINOR)) + return 1; + + return 0; +} diff --git a/test/builtins/TestCases/Darwin/os_version_check_test_no_core_foundation.c b/test/builtins/TestCases/Darwin/os_version_check_test_no_core_foundation.c new file mode 100644 index 000000000000..4e0da35cd12d --- /dev/null +++ b/test/builtins/TestCases/Darwin/os_version_check_test_no_core_foundation.c @@ -0,0 +1,12 @@ +// RUN: %clang %s -o %t -mmacosx-version-min=10.5 +// RUN: %run %t + +int __isOSVersionAtLeast(int Major, int Minor, int Subminor); + +int main() { + // When CoreFoundation isn't linked, we expect the system version to be 0, 0, + // 0. + if (__isOSVersionAtLeast(1, 0, 0)) + return 1; + return 0; +} diff --git a/test/builtins/Unit/absvdi2_test.c b/test/builtins/Unit/absvdi2_test.c index f69ae4151072..dd9dfd17e6f0 100644 --- a/test/builtins/Unit/absvdi2_test.c +++ b/test/builtins/Unit/absvdi2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- absvdi2_test.c - Test __absvdi2 -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/absvsi2_test.c b/test/builtins/Unit/absvsi2_test.c index c395cca7adc8..bae306b2c234 100644 --- a/test/builtins/Unit/absvsi2_test.c +++ b/test/builtins/Unit/absvsi2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- absvsi2_test.c - Test __absvsi2 -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/absvti2_test.c b/test/builtins/Unit/absvti2_test.c index 6c626e97d930..0c0117dfeb45 100644 --- a/test/builtins/Unit/absvti2_test.c +++ b/test/builtins/Unit/absvti2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- absvti2_test.c - Test __absvti2 -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/adddf3vfp_test.c b/test/builtins/Unit/adddf3vfp_test.c index 739515291fe8..e0da08bc0f68 100644 --- a/test/builtins/Unit/adddf3vfp_test.c +++ b/test/builtins/Unit/adddf3vfp_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- adddf3vfp_test.c - Test __adddf3vfp -------------------------------===// // // The LLVM Compiler Infrastructure @@ -17,7 +18,7 @@ #include <math.h> -#if __arm__ +#if __arm__ && __VFP_FP__ extern COMPILER_RT_ABI double __adddf3vfp(double a, double b); int test__adddf3vfp(double a, double b) @@ -33,7 +34,7 @@ int test__adddf3vfp(double a, double b) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__adddf3vfp(1.0, 1.0)) return 1; if (test__adddf3vfp(HUGE_VAL, HUGE_VAL)) diff --git a/test/builtins/Unit/addsf3vfp_test.c b/test/builtins/Unit/addsf3vfp_test.c index 4b3dcccac4d3..ed18de3b6036 100644 --- a/test/builtins/Unit/addsf3vfp_test.c +++ b/test/builtins/Unit/addsf3vfp_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- addsf3vfp_test.c - Test __addsf3vfp -------------------------------===// // // The LLVM Compiler Infrastructure @@ -19,7 +20,7 @@ extern COMPILER_RT_ABI float __addsf3vfp(float a, float b); -#if __arm__ +#if __arm__ && __VFP_FP__ int test__addsf3vfp(float a, float b) { float actual = __addsf3vfp(a, b); @@ -33,7 +34,7 @@ int test__addsf3vfp(float a, float b) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__addsf3vfp(1.0, 1.0)) return 1; if (test__addsf3vfp(HUGE_VALF, HUGE_VALF)) diff --git a/test/builtins/Unit/addtf3_test.c b/test/builtins/Unit/addtf3_test.c index 7b92ccee1af0..57a4729f4439 100644 --- a/test/builtins/Unit/addtf3_test.c +++ b/test/builtins/Unit/addtf3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===--------------- addtf3_test.c - Test __addtf3 ------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/addvdi3_test.c b/test/builtins/Unit/addvdi3_test.c index 5f8729a61266..99e70403e8b6 100644 --- a/test/builtins/Unit/addvdi3_test.c +++ b/test/builtins/Unit/addvdi3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- addvdi3_test.c - Test __addvdi3 -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/addvsi3_test.c b/test/builtins/Unit/addvsi3_test.c index b5358d0f5d47..11fdbc3c18c1 100644 --- a/test/builtins/Unit/addvsi3_test.c +++ b/test/builtins/Unit/addvsi3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- addvsi3_test.c - Test __addvsi3 -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/addvti3_test.c b/test/builtins/Unit/addvti3_test.c index e2f75cf86148..3ffcf4b2d822 100644 --- a/test/builtins/Unit/addvti3_test.c +++ b/test/builtins/Unit/addvti3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- addvti3_test.c - Test __addvti3 -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/arm/aeabi_cdcmpeq_test.c b/test/builtins/Unit/arm/aeabi_cdcmpeq_test.c index ce8b0a4313fb..0d9e006f019a 100644 --- a/test/builtins/Unit/arm/aeabi_cdcmpeq_test.c +++ b/test/builtins/Unit/arm/aeabi_cdcmpeq_test.c @@ -1,3 +1,6 @@ +// REQUIRES-ANY: arm-target-arch,armv6m-target-arch +// RUN: %arm_call_apsr -o %t.aspr.o +// RUN: %clang_builtins %s %t.aspr.o %librt -o %t && %run %t //===-- aeabi_cdcmpeq.c - Test __aeabi_cdcmpeq ----------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/arm/aeabi_cdcmple_test.c b/test/builtins/Unit/arm/aeabi_cdcmple_test.c index afc701493694..e499bf85a133 100644 --- a/test/builtins/Unit/arm/aeabi_cdcmple_test.c +++ b/test/builtins/Unit/arm/aeabi_cdcmple_test.c @@ -1,3 +1,7 @@ +// REQUIRES-ANY: arm-target-arch,armv6m-target-arch +// RUN: %arm_call_apsr -o %t.aspr.o +// RUN: %clang_builtins %s %t.aspr.o %librt -o %t && %run %t + //===-- aeabi_cdcmple.c - Test __aeabi_cdcmple and __aeabi_cdrcmple -------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/arm/aeabi_cfcmpeq_test.c b/test/builtins/Unit/arm/aeabi_cfcmpeq_test.c index fe0166485e69..72a556ca7723 100644 --- a/test/builtins/Unit/arm/aeabi_cfcmpeq_test.c +++ b/test/builtins/Unit/arm/aeabi_cfcmpeq_test.c @@ -1,3 +1,6 @@ +// REQUIRES-ANY: arm-target-arch,armv6m-target-arch +// RUN: %arm_call_apsr -o %t.aspr.o +// RUN: %clang_builtins %s %t.aspr.o %librt -o %t && %run %t //===-- aeabi_cfcmpeq.c - Test __aeabi_cfcmpeq ----------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/arm/aeabi_cfcmple_test.c b/test/builtins/Unit/arm/aeabi_cfcmple_test.c index aebe4257e29e..a09aead6bdc3 100644 --- a/test/builtins/Unit/arm/aeabi_cfcmple_test.c +++ b/test/builtins/Unit/arm/aeabi_cfcmple_test.c @@ -1,3 +1,7 @@ +// REQUIRES-ANY: arm-target-arch,armv6m-target-arch +// RUN: %arm_call_apsr -o %t.aspr.o +// RUN: %clang_builtins %s %t.aspr.o %librt -o %t && %run %t + //===-- aeabi_cfcmple.c - Test __aeabi_cfcmple and __aeabi_cfrcmple -------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/arm/aeabi_drsub_test.c b/test/builtins/Unit/arm/aeabi_drsub_test.c index 7d867ef2c95a..8bd04a9898b0 100644 --- a/test/builtins/Unit/arm/aeabi_drsub_test.c +++ b/test/builtins/Unit/arm/aeabi_drsub_test.c @@ -1,3 +1,5 @@ +// REQUIRES-ANY: arm-target-arch,armv6m-target-arch +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- aeabi_drsub.c - Test __aeabi_drsub --------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/arm/aeabi_frsub_test.c b/test/builtins/Unit/arm/aeabi_frsub_test.c index b8b21b96e3b1..3d301616aed0 100644 --- a/test/builtins/Unit/arm/aeabi_frsub_test.c +++ b/test/builtins/Unit/arm/aeabi_frsub_test.c @@ -1,3 +1,5 @@ +// REQUIRES-ANY: arm-target-arch,armv6m-target-arch +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- aeabi_frsub.c - Test __aeabi_frsub --------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/arm/aeabi_idivmod_test.c b/test/builtins/Unit/arm/aeabi_idivmod_test.c new file mode 100644 index 000000000000..ac1804694d7f --- /dev/null +++ b/test/builtins/Unit/arm/aeabi_idivmod_test.c @@ -0,0 +1,82 @@ +// REQUIRES-ANY: arm-target-arch,armv6m-target-arch +// RUN: %clang_builtins %s %librt -o %t && %run %t +//===-- aeabi_idivmod_test.c - Test __aeabi_idivmod -----------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is dual licensed under the MIT and the University of Illinois Open +// Source Licenses. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file tests __aeabi_idivmod for the compiler_rt library. +// +//===----------------------------------------------------------------------===// + +#include "int_lib.h" +#include <stdio.h> + +#if __arm__ +// Based on divmodsi4_test.c + +extern du_int __aeabi_idivmod(si_int a, si_int b); + +int test__aeabi_idivmod(si_int a, si_int b, + si_int expected_result, si_int expected_rem) +{ + si_int rem; + du_int ret = __aeabi_idivmod(a, b); + rem = ret >> 32; + si_int result = ret & 0xFFFFFFFF; + if (result != expected_result) { + printf("error in __aeabi_idivmod: %d / %d = %d, expected %d\n", + a, b, result, expected_result); + return 1; + } + if (rem != expected_rem) { + printf("error in __aeabi_idivmod: %d mod %d = %d, expected %d\n", + a, b, rem, expected_rem); + return 1; + } + + return 0; +} +#endif + + +int main() +{ +#if __arm__ + if (test__aeabi_idivmod(0, 1, 0, 0)) + return 1; + if (test__aeabi_idivmod(0, -1, 0, 0)) + return 1; + + if (test__aeabi_idivmod(2, 1, 2, 0)) + return 1; + if (test__aeabi_idivmod(2, -1, -2, 0)) + return 1; + if (test__aeabi_idivmod(-2, 1, -2, 0)) + return 1; + if (test__aeabi_idivmod(-2, -1, 2, 0)) + return 1; + + if (test__aeabi_idivmod(7, 5, 1, 2)) + return 1; + if (test__aeabi_idivmod(-7, 5, -1, -2)) + return 1; + if (test__aeabi_idivmod(19, 5, 3, 4)) + return 1; + if (test__aeabi_idivmod(19, -5, -3, 4)) + return 1; + + if (test__aeabi_idivmod(0x80000000, 8, 0xf0000000, 0)) + return 1; + if (test__aeabi_idivmod(0x80000007, 8, 0xf0000001, -1)) + return 1; +#else + printf("skipped\n"); +#endif + + return 0; +} diff --git a/test/builtins/Unit/arm/aeabi_uidivmod_test.c b/test/builtins/Unit/arm/aeabi_uidivmod_test.c new file mode 100644 index 000000000000..9ac51da5980f --- /dev/null +++ b/test/builtins/Unit/arm/aeabi_uidivmod_test.c @@ -0,0 +1,69 @@ +// REQUIRES-ANY: arm-target-arch,armv6m-target-arch +// RUN: %clang_builtins %s %librt -o %t && %run %t +//===-- aeabi_uidivmod_test.c - Test __aeabi_uidivmod ---------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is dual licensed under the MIT and the University of Illinois Open +// Source Licenses. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file tests __aeabi_uidivmod for the compiler_rt library. +// +//===----------------------------------------------------------------------===// + +#include "int_lib.h" +#include <stdio.h> + +#if __arm__ +// Based on udivmodsi4_test.c + +extern du_int __aeabi_uidivmod(su_int a, su_int b); + +int test__aeabi_uidivmod(su_int a, su_int b, + su_int expected_result, su_int expected_rem) +{ + du_int ret = __aeabi_uidivmod(a, b); + su_int rem = ret >> 32; + si_int result = ret & 0xFFFFFFFF; + + if (result != expected_result) { + printf("error in __aeabi_uidivmod: %u / %u = %u, expected %u\n", + a, b, result, expected_result); + return 1; + } + if (rem != expected_rem) { + printf("error in __aeabi_uidivmod: %u mod %u = %u, expected %u\n", + a, b, rem, expected_rem); + return 1; + } + + return 0; +} +#endif + + +int main() +{ +#if __arm__ + if (test__aeabi_uidivmod(0, 1, 0, 0)) + return 1; + + if (test__aeabi_uidivmod(2, 1, 2, 0)) + return 1; + + if (test__aeabi_uidivmod(19, 5, 3, 4)) + return 1; + + if (test__aeabi_uidivmod(0x80000000, 8, 0x10000000, 0)) + return 1; + + if (test__aeabi_uidivmod(0x80000003, 8, 0x10000000, 3)) + return 1; +#else + printf("skipped\n"); +#endif + + return 0; +} diff --git a/test/builtins/Unit/arm/aeabi_uldivmod_test.c b/test/builtins/Unit/arm/aeabi_uldivmod_test.c new file mode 100644 index 000000000000..a40f006fa69e --- /dev/null +++ b/test/builtins/Unit/arm/aeabi_uldivmod_test.c @@ -0,0 +1,20659 @@ +// REQUIRES-ANY: arm-target-arch,armv6m-target-arch +// RUN: %clang_builtins %s %librt -o %t && %run %t +//===-- aeabi_uldivmod_test.c - Test aeabi_uldivmod -----------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is dual licensed under the MIT and the University of Illinois Open +// Source Licenses. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file tests aeabi_uldivmod for the compiler_rt library. +// +//===----------------------------------------------------------------------===// + +#include "int_lib.h" +#include <stdio.h> + +#if __arm__ +// Based on udivmoddi4_test.c + +COMPILER_RT_ABI void /* __value_in_regs */ __aeabi_uldivmod(du_int a, du_int b); + +int test_aeabi_uldivmod(du_int a, du_int b, du_int expected_q, du_int expected_r) +{ + du_int q, r; + __asm__( + "movs r0, %Q[a] \n" + "movs r1, %R[a] \n" + "movs r2, %Q[b] \n" + "movs r3, %R[b] \n" + "bl __aeabi_uldivmod \n" + "movs %Q[q], r0\n" + "movs %R[q], r1\n" + "movs %Q[r], r2\n" + "movs %R[r], r3\n" + : [q] "=r" (q), [r] "=r"(r) + : [a] "r"(a), [b] "r"(b) + : "lr", "r0", "r1", "r2", "r3" + ); + if (q != expected_q || r != expected_r) + printf("error in aeabi_uldivmod: %llX / %llX = %llX, R = %llX, expected %llX, %llX\n", + a, b, q, r, expected_q, expected_r); + return !(q == expected_q && r == expected_r); +} + +char assumption_1[sizeof(di_int) == 2*sizeof(si_int)] = {0}; + +du_int tests[][4] = +{ +{0x0000000000000000uLL, 0x0000000000000001uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0000000000000002uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0000000000000003uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0000000000000010uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x00000000078644FAuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x000000000747AE14uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x000000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0000000080000000uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0000000100000000uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0000000100000001uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0000000100000002uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0000000100000003uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0000000100000010uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x00000001078644FAuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x000000010747AE14uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x000000017FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0000000180000000uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0000000200000000uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0000000200000001uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0000000200000002uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0000000200000003uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0000000200000010uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x00000002078644FAuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x000000020747AE14uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x000000027FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0000000280000000uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000000uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000000uLL}, +{0x0000000000000001uLL, 0x0000000000000001uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0000000000000001uLL, 0x0000000000000002uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0000000000000003uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0000000000000010uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x00000000078644FAuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x000000000747AE14uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x000000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0000000080000000uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0000000100000000uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0000000100000001uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0000000100000002uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0000000100000003uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0000000100000010uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x00000001078644FAuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x000000010747AE14uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x000000017FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0000000180000000uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0000000200000000uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0000000200000001uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0000000200000002uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0000000200000003uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0000000200000010uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x00000002078644FAuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x000000020747AE14uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x000000027FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0000000280000000uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000001uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000001uLL}, +{0x0000000000000002uLL, 0x0000000000000001uLL, 0x0000000000000002uLL, 0x0000000000000000uLL}, +{0x0000000000000002uLL, 0x0000000000000002uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0000000000000002uLL, 0x0000000000000003uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0000000000000010uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x00000000078644FAuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x000000000747AE14uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x000000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0000000080000000uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0000000100000000uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0000000100000001uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0000000100000002uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0000000100000003uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0000000100000010uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x00000001078644FAuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x000000010747AE14uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x000000017FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0000000180000000uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0000000200000000uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0000000200000001uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0000000200000002uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0000000200000003uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0000000200000010uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x00000002078644FAuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x000000020747AE14uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x000000027FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0000000280000000uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000002uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000002uLL}, +{0x0000000000000003uLL, 0x0000000000000001uLL, 0x0000000000000003uLL, 0x0000000000000000uLL}, +{0x0000000000000003uLL, 0x0000000000000002uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x0000000000000003uLL, 0x0000000000000003uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0000000000000003uLL, 0x0000000000000010uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x00000000078644FAuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x000000000747AE14uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x000000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0000000080000000uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0000000100000000uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0000000100000001uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0000000100000002uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0000000100000003uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0000000100000010uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x00000001078644FAuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x000000010747AE14uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x000000017FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0000000180000000uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0000000200000000uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0000000200000001uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0000000200000002uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0000000200000003uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0000000200000010uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x00000002078644FAuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x000000020747AE14uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x000000027FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0000000280000000uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000003uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000003uLL}, +{0x0000000000000010uLL, 0x0000000000000001uLL, 0x0000000000000010uLL, 0x0000000000000000uLL}, +{0x0000000000000010uLL, 0x0000000000000002uLL, 0x0000000000000008uLL, 0x0000000000000000uLL}, +{0x0000000000000010uLL, 0x0000000000000003uLL, 0x0000000000000005uLL, 0x0000000000000001uLL}, +{0x0000000000000010uLL, 0x0000000000000010uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0000000000000010uLL, 0x00000000078644FAuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x000000000747AE14uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x000000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0000000080000000uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0000000100000000uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0000000100000001uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0000000100000002uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0000000100000003uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0000000100000010uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x00000001078644FAuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x000000010747AE14uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x000000017FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0000000180000000uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0000000200000000uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0000000200000001uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0000000200000002uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0000000200000003uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0000000200000010uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x00000002078644FAuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x000000020747AE14uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x000000027FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0000000280000000uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x0000000000000010uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000000000010uLL}, +{0x00000000078644FAuLL, 0x0000000000000001uLL, 0x00000000078644FAuLL, 0x0000000000000000uLL}, +{0x00000000078644FAuLL, 0x0000000000000002uLL, 0x0000000003C3227DuLL, 0x0000000000000000uLL}, +{0x00000000078644FAuLL, 0x0000000000000003uLL, 0x00000000028216FEuLL, 0x0000000000000000uLL}, +{0x00000000078644FAuLL, 0x0000000000000010uLL, 0x000000000078644FuLL, 0x000000000000000AuLL}, +{0x00000000078644FAuLL, 0x00000000078644FAuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x00000000078644FAuLL, 0x000000000747AE14uLL, 0x0000000000000001uLL, 0x00000000003E96E6uLL}, +{0x00000000078644FAuLL, 0x000000007FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0000000080000000uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x00000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x00000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x00000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0000000100000000uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0000000100000001uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0000000100000002uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0000000100000003uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0000000100000010uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x00000001078644FAuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x000000010747AE14uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x000000017FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0000000180000000uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x00000001FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x00000001FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x00000001FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0000000200000000uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0000000200000001uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0000000200000002uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0000000200000003uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0000000200000010uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x00000002078644FAuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x000000020747AE14uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x000000027FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0000000280000000uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x00000000078644FAuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000078644FAuLL}, +{0x000000000747AE14uLL, 0x0000000000000001uLL, 0x000000000747AE14uLL, 0x0000000000000000uLL}, +{0x000000000747AE14uLL, 0x0000000000000002uLL, 0x0000000003A3D70AuLL, 0x0000000000000000uLL}, +{0x000000000747AE14uLL, 0x0000000000000003uLL, 0x00000000026D3A06uLL, 0x0000000000000002uLL}, +{0x000000000747AE14uLL, 0x0000000000000010uLL, 0x0000000000747AE1uLL, 0x0000000000000004uLL}, +{0x000000000747AE14uLL, 0x00000000078644FAuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x000000000747AE14uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x000000000747AE14uLL, 0x000000007FFFFFFFuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0000000080000000uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0000000100000000uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0000000100000001uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0000000100000002uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0000000100000003uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0000000100000010uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x00000001078644FAuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x000000010747AE14uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x000000017FFFFFFFuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0000000180000000uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0000000200000000uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0000000200000001uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0000000200000002uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0000000200000003uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0000000200000010uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x00000002078644FAuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x000000020747AE14uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x000000027FFFFFFFuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0000000280000000uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000000747AE14uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000000747AE14uLL}, +{0x000000007FFFFFFFuLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL, 0x0000000000000000uLL}, +{0x000000007FFFFFFFuLL, 0x0000000000000002uLL, 0x000000003FFFFFFFuLL, 0x0000000000000001uLL}, +{0x000000007FFFFFFFuLL, 0x0000000000000003uLL, 0x000000002AAAAAAAuLL, 0x0000000000000001uLL}, +{0x000000007FFFFFFFuLL, 0x0000000000000010uLL, 0x0000000007FFFFFFuLL, 0x000000000000000FuLL}, +{0x000000007FFFFFFFuLL, 0x00000000078644FAuLL, 0x0000000000000011uLL, 0x0000000000156B65uLL}, +{0x000000007FFFFFFFuLL, 0x000000000747AE14uLL, 0x0000000000000011uLL, 0x00000000043D70ABuLL}, +{0x000000007FFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x000000007FFFFFFFuLL, 0x0000000080000000uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x00000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0000000100000000uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0000000100000001uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0000000100000002uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0000000100000003uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0000000100000010uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x00000001078644FAuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x000000010747AE14uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x000000017FFFFFFFuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0000000180000000uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x00000001FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x00000001FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x00000001FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0000000200000000uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0000000200000001uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0000000200000002uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0000000200000003uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0000000200000010uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x00000002078644FAuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x000000020747AE14uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x000000027FFFFFFFuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0000000280000000uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x000000007FFFFFFFuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000007FFFFFFFuLL}, +{0x0000000080000000uLL, 0x0000000000000001uLL, 0x0000000080000000uLL, 0x0000000000000000uLL}, +{0x0000000080000000uLL, 0x0000000000000002uLL, 0x0000000040000000uLL, 0x0000000000000000uLL}, +{0x0000000080000000uLL, 0x0000000000000003uLL, 0x000000002AAAAAAAuLL, 0x0000000000000002uLL}, +{0x0000000080000000uLL, 0x0000000000000010uLL, 0x0000000008000000uLL, 0x0000000000000000uLL}, +{0x0000000080000000uLL, 0x00000000078644FAuLL, 0x0000000000000011uLL, 0x0000000000156B66uLL}, +{0x0000000080000000uLL, 0x000000000747AE14uLL, 0x0000000000000011uLL, 0x00000000043D70ACuLL}, +{0x0000000080000000uLL, 0x000000007FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x0000000080000000uLL, 0x0000000080000000uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0000000080000000uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0000000100000000uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0000000100000001uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0000000100000002uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0000000100000003uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0000000100000010uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x00000001078644FAuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x000000010747AE14uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x000000017FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0000000180000000uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0000000200000000uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0000000200000001uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0000000200000002uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0000000200000003uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0000000200000010uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x00000002078644FAuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x000000020747AE14uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x000000027FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0000000280000000uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x0000000080000000uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000080000000uLL}, +{0x00000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000000uLL}, +{0x00000000FFFFFFFDuLL, 0x0000000000000002uLL, 0x000000007FFFFFFEuLL, 0x0000000000000001uLL}, +{0x00000000FFFFFFFDuLL, 0x0000000000000003uLL, 0x0000000055555554uLL, 0x0000000000000001uLL}, +{0x00000000FFFFFFFDuLL, 0x0000000000000010uLL, 0x000000000FFFFFFFuLL, 0x000000000000000DuLL}, +{0x00000000FFFFFFFDuLL, 0x00000000078644FAuLL, 0x0000000000000022uLL, 0x00000000002AD6C9uLL}, +{0x00000000FFFFFFFDuLL, 0x000000000747AE14uLL, 0x0000000000000023uLL, 0x0000000001333341uLL}, +{0x00000000FFFFFFFDuLL, 0x000000007FFFFFFFuLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x00000000FFFFFFFDuLL, 0x0000000080000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x00000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x00000000FFFFFFFDuLL, 0x00000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x00000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0000000100000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0000000100000001uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0000000100000002uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0000000100000003uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0000000100000010uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x00000001078644FAuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x000000010747AE14uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x000000017FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0000000180000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x00000001FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x00000001FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x00000001FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0000000200000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0000000200000001uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0000000200000002uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0000000200000003uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0000000200000010uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x00000002078644FAuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x000000020747AE14uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x000000027FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0000000280000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFDuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFDuLL}, +{0x00000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000000uLL}, +{0x00000000FFFFFFFEuLL, 0x0000000000000002uLL, 0x000000007FFFFFFFuLL, 0x0000000000000000uLL}, +{0x00000000FFFFFFFEuLL, 0x0000000000000003uLL, 0x0000000055555554uLL, 0x0000000000000002uLL}, +{0x00000000FFFFFFFEuLL, 0x0000000000000010uLL, 0x000000000FFFFFFFuLL, 0x000000000000000EuLL}, +{0x00000000FFFFFFFEuLL, 0x00000000078644FAuLL, 0x0000000000000022uLL, 0x00000000002AD6CAuLL}, +{0x00000000FFFFFFFEuLL, 0x000000000747AE14uLL, 0x0000000000000023uLL, 0x0000000001333342uLL}, +{0x00000000FFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x0000000000000002uLL, 0x0000000000000000uLL}, +{0x00000000FFFFFFFEuLL, 0x0000000080000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x00000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x00000000FFFFFFFEuLL, 0x00000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x00000000FFFFFFFEuLL, 0x00000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0000000100000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0000000100000001uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0000000100000002uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0000000100000003uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0000000100000010uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x00000001078644FAuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x000000010747AE14uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x000000017FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0000000180000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x00000001FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x00000001FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x00000001FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0000000200000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0000000200000001uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0000000200000002uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0000000200000003uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0000000200000010uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x00000002078644FAuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x000000020747AE14uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x000000027FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0000000280000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFEuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFEuLL}, +{0x00000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000000uLL}, +{0x00000000FFFFFFFFuLL, 0x0000000000000002uLL, 0x000000007FFFFFFFuLL, 0x0000000000000001uLL}, +{0x00000000FFFFFFFFuLL, 0x0000000000000003uLL, 0x0000000055555555uLL, 0x0000000000000000uLL}, +{0x00000000FFFFFFFFuLL, 0x0000000000000010uLL, 0x000000000FFFFFFFuLL, 0x000000000000000FuLL}, +{0x00000000FFFFFFFFuLL, 0x00000000078644FAuLL, 0x0000000000000022uLL, 0x00000000002AD6CBuLL}, +{0x00000000FFFFFFFFuLL, 0x000000000747AE14uLL, 0x0000000000000023uLL, 0x0000000001333343uLL}, +{0x00000000FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x0000000000000002uLL, 0x0000000000000001uLL}, +{0x00000000FFFFFFFFuLL, 0x0000000080000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x00000000FFFFFFFFuLL, 0x0000000100000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0000000100000001uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0000000100000002uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0000000100000003uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0000000100000010uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x00000001078644FAuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x000000010747AE14uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x000000017FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0000000180000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x00000001FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x00000001FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x00000001FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0000000200000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0000000200000001uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0000000200000002uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0000000200000003uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0000000200000010uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x00000002078644FAuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x000000020747AE14uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x000000027FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0000000280000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x00000000FFFFFFFFuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000000FFFFFFFFuLL}, +{0x0000000100000000uLL, 0x0000000000000001uLL, 0x0000000100000000uLL, 0x0000000000000000uLL}, +{0x0000000100000000uLL, 0x0000000000000002uLL, 0x0000000080000000uLL, 0x0000000000000000uLL}, +{0x0000000100000000uLL, 0x0000000000000003uLL, 0x0000000055555555uLL, 0x0000000000000001uLL}, +{0x0000000100000000uLL, 0x0000000000000010uLL, 0x0000000010000000uLL, 0x0000000000000000uLL}, +{0x0000000100000000uLL, 0x00000000078644FAuLL, 0x0000000000000022uLL, 0x00000000002AD6CCuLL}, +{0x0000000100000000uLL, 0x000000000747AE14uLL, 0x0000000000000023uLL, 0x0000000001333344uLL}, +{0x0000000100000000uLL, 0x000000007FFFFFFFuLL, 0x0000000000000002uLL, 0x0000000000000002uLL}, +{0x0000000100000000uLL, 0x0000000080000000uLL, 0x0000000000000002uLL, 0x0000000000000000uLL}, +{0x0000000100000000uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000003uLL}, +{0x0000000100000000uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0x0000000100000000uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x0000000100000000uLL, 0x0000000100000000uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0000000100000000uLL, 0x0000000100000001uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0000000100000002uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0000000100000003uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0000000100000010uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x00000001078644FAuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x000000010747AE14uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x000000017FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0000000180000000uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0000000200000000uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0000000200000001uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0000000200000002uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0000000200000003uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0000000200000010uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x00000002078644FAuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x000000020747AE14uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x000000027FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0000000280000000uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000000uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000000uLL}, +{0x0000000100000001uLL, 0x0000000000000001uLL, 0x0000000100000001uLL, 0x0000000000000000uLL}, +{0x0000000100000001uLL, 0x0000000000000002uLL, 0x0000000080000000uLL, 0x0000000000000001uLL}, +{0x0000000100000001uLL, 0x0000000000000003uLL, 0x0000000055555555uLL, 0x0000000000000002uLL}, +{0x0000000100000001uLL, 0x0000000000000010uLL, 0x0000000010000000uLL, 0x0000000000000001uLL}, +{0x0000000100000001uLL, 0x00000000078644FAuLL, 0x0000000000000022uLL, 0x00000000002AD6CDuLL}, +{0x0000000100000001uLL, 0x000000000747AE14uLL, 0x0000000000000023uLL, 0x0000000001333345uLL}, +{0x0000000100000001uLL, 0x000000007FFFFFFFuLL, 0x0000000000000002uLL, 0x0000000000000003uLL}, +{0x0000000100000001uLL, 0x0000000080000000uLL, 0x0000000000000002uLL, 0x0000000000000001uLL}, +{0x0000000100000001uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000004uLL}, +{0x0000000100000001uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000003uLL}, +{0x0000000100000001uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0x0000000100000001uLL, 0x0000000100000000uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x0000000100000001uLL, 0x0000000100000001uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0000000100000001uLL, 0x0000000100000002uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x0000000100000003uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x0000000100000010uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x00000001078644FAuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x000000010747AE14uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x000000017FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x0000000180000000uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x0000000200000000uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x0000000200000001uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x0000000200000002uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x0000000200000003uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x0000000200000010uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x00000002078644FAuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x000000020747AE14uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x000000027FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x0000000280000000uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000001uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000001uLL}, +{0x0000000100000002uLL, 0x0000000000000001uLL, 0x0000000100000002uLL, 0x0000000000000000uLL}, +{0x0000000100000002uLL, 0x0000000000000002uLL, 0x0000000080000001uLL, 0x0000000000000000uLL}, +{0x0000000100000002uLL, 0x0000000000000003uLL, 0x0000000055555556uLL, 0x0000000000000000uLL}, +{0x0000000100000002uLL, 0x0000000000000010uLL, 0x0000000010000000uLL, 0x0000000000000002uLL}, +{0x0000000100000002uLL, 0x00000000078644FAuLL, 0x0000000000000022uLL, 0x00000000002AD6CEuLL}, +{0x0000000100000002uLL, 0x000000000747AE14uLL, 0x0000000000000023uLL, 0x0000000001333346uLL}, +{0x0000000100000002uLL, 0x000000007FFFFFFFuLL, 0x0000000000000002uLL, 0x0000000000000004uLL}, +{0x0000000100000002uLL, 0x0000000080000000uLL, 0x0000000000000002uLL, 0x0000000000000002uLL}, +{0x0000000100000002uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000005uLL}, +{0x0000000100000002uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000004uLL}, +{0x0000000100000002uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000003uLL}, +{0x0000000100000002uLL, 0x0000000100000000uLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0x0000000100000002uLL, 0x0000000100000001uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x0000000100000002uLL, 0x0000000100000002uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0000000100000002uLL, 0x0000000100000003uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x0000000100000010uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x00000001078644FAuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x000000010747AE14uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x000000017FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x0000000180000000uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x0000000200000000uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x0000000200000001uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x0000000200000002uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x0000000200000003uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x0000000200000010uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x00000002078644FAuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x000000020747AE14uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x000000027FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x0000000280000000uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000002uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000002uLL}, +{0x0000000100000003uLL, 0x0000000000000001uLL, 0x0000000100000003uLL, 0x0000000000000000uLL}, +{0x0000000100000003uLL, 0x0000000000000002uLL, 0x0000000080000001uLL, 0x0000000000000001uLL}, +{0x0000000100000003uLL, 0x0000000000000003uLL, 0x0000000055555556uLL, 0x0000000000000001uLL}, +{0x0000000100000003uLL, 0x0000000000000010uLL, 0x0000000010000000uLL, 0x0000000000000003uLL}, +{0x0000000100000003uLL, 0x00000000078644FAuLL, 0x0000000000000022uLL, 0x00000000002AD6CFuLL}, +{0x0000000100000003uLL, 0x000000000747AE14uLL, 0x0000000000000023uLL, 0x0000000001333347uLL}, +{0x0000000100000003uLL, 0x000000007FFFFFFFuLL, 0x0000000000000002uLL, 0x0000000000000005uLL}, +{0x0000000100000003uLL, 0x0000000080000000uLL, 0x0000000000000002uLL, 0x0000000000000003uLL}, +{0x0000000100000003uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000006uLL}, +{0x0000000100000003uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000005uLL}, +{0x0000000100000003uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000004uLL}, +{0x0000000100000003uLL, 0x0000000100000000uLL, 0x0000000000000001uLL, 0x0000000000000003uLL}, +{0x0000000100000003uLL, 0x0000000100000001uLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0x0000000100000003uLL, 0x0000000100000002uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x0000000100000003uLL, 0x0000000100000003uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0000000100000003uLL, 0x0000000100000010uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x00000001078644FAuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x000000010747AE14uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x000000017FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x0000000180000000uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x0000000200000000uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x0000000200000001uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x0000000200000002uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x0000000200000003uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x0000000200000010uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x00000002078644FAuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x000000020747AE14uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x000000027FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x0000000280000000uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000003uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000003uLL}, +{0x0000000100000010uLL, 0x0000000000000001uLL, 0x0000000100000010uLL, 0x0000000000000000uLL}, +{0x0000000100000010uLL, 0x0000000000000002uLL, 0x0000000080000008uLL, 0x0000000000000000uLL}, +{0x0000000100000010uLL, 0x0000000000000003uLL, 0x000000005555555AuLL, 0x0000000000000002uLL}, +{0x0000000100000010uLL, 0x0000000000000010uLL, 0x0000000010000001uLL, 0x0000000000000000uLL}, +{0x0000000100000010uLL, 0x00000000078644FAuLL, 0x0000000000000022uLL, 0x00000000002AD6DCuLL}, +{0x0000000100000010uLL, 0x000000000747AE14uLL, 0x0000000000000023uLL, 0x0000000001333354uLL}, +{0x0000000100000010uLL, 0x000000007FFFFFFFuLL, 0x0000000000000002uLL, 0x0000000000000012uLL}, +{0x0000000100000010uLL, 0x0000000080000000uLL, 0x0000000000000002uLL, 0x0000000000000010uLL}, +{0x0000000100000010uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000013uLL}, +{0x0000000100000010uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000012uLL}, +{0x0000000100000010uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000011uLL}, +{0x0000000100000010uLL, 0x0000000100000000uLL, 0x0000000000000001uLL, 0x0000000000000010uLL}, +{0x0000000100000010uLL, 0x0000000100000001uLL, 0x0000000000000001uLL, 0x000000000000000FuLL}, +{0x0000000100000010uLL, 0x0000000100000002uLL, 0x0000000000000001uLL, 0x000000000000000EuLL}, +{0x0000000100000010uLL, 0x0000000100000003uLL, 0x0000000000000001uLL, 0x000000000000000DuLL}, +{0x0000000100000010uLL, 0x0000000100000010uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0000000100000010uLL, 0x00000001078644FAuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x000000010747AE14uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x000000017FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x0000000180000000uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x0000000200000000uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x0000000200000001uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x0000000200000002uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x0000000200000003uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x0000000200000010uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x00000002078644FAuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x000000020747AE14uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x000000027FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x0000000280000000uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x0000000100000010uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000100000010uLL}, +{0x00000001078644FAuLL, 0x0000000000000001uLL, 0x00000001078644FAuLL, 0x0000000000000000uLL}, +{0x00000001078644FAuLL, 0x0000000000000002uLL, 0x0000000083C3227DuLL, 0x0000000000000000uLL}, +{0x00000001078644FAuLL, 0x0000000000000003uLL, 0x0000000057D76C53uLL, 0x0000000000000001uLL}, +{0x00000001078644FAuLL, 0x0000000000000010uLL, 0x000000001078644FuLL, 0x000000000000000AuLL}, +{0x00000001078644FAuLL, 0x00000000078644FAuLL, 0x0000000000000023uLL, 0x00000000002AD6CCuLL}, +{0x00000001078644FAuLL, 0x000000000747AE14uLL, 0x0000000000000024uLL, 0x000000000171CA2AuLL}, +{0x00000001078644FAuLL, 0x000000007FFFFFFFuLL, 0x0000000000000002uLL, 0x00000000078644FCuLL}, +{0x00000001078644FAuLL, 0x0000000080000000uLL, 0x0000000000000002uLL, 0x00000000078644FAuLL}, +{0x00000001078644FAuLL, 0x00000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x00000000078644FDuLL}, +{0x00000001078644FAuLL, 0x00000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x00000000078644FCuLL}, +{0x00000001078644FAuLL, 0x00000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x00000000078644FBuLL}, +{0x00000001078644FAuLL, 0x0000000100000000uLL, 0x0000000000000001uLL, 0x00000000078644FAuLL}, +{0x00000001078644FAuLL, 0x0000000100000001uLL, 0x0000000000000001uLL, 0x00000000078644F9uLL}, +{0x00000001078644FAuLL, 0x0000000100000002uLL, 0x0000000000000001uLL, 0x00000000078644F8uLL}, +{0x00000001078644FAuLL, 0x0000000100000003uLL, 0x0000000000000001uLL, 0x00000000078644F7uLL}, +{0x00000001078644FAuLL, 0x0000000100000010uLL, 0x0000000000000001uLL, 0x00000000078644EAuLL}, +{0x00000001078644FAuLL, 0x00000001078644FAuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x00000001078644FAuLL, 0x000000010747AE14uLL, 0x0000000000000001uLL, 0x00000000003E96E6uLL}, +{0x00000001078644FAuLL, 0x000000017FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x0000000180000000uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x00000001FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x00000001FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x00000001FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x0000000200000000uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x0000000200000001uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x0000000200000002uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x0000000200000003uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x0000000200000010uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x00000002078644FAuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x000000020747AE14uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x000000027FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x0000000280000000uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x00000001078644FAuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001078644FAuLL}, +{0x000000010747AE14uLL, 0x0000000000000001uLL, 0x000000010747AE14uLL, 0x0000000000000000uLL}, +{0x000000010747AE14uLL, 0x0000000000000002uLL, 0x0000000083A3D70AuLL, 0x0000000000000000uLL}, +{0x000000010747AE14uLL, 0x0000000000000003uLL, 0x0000000057C28F5CuLL, 0x0000000000000000uLL}, +{0x000000010747AE14uLL, 0x0000000000000010uLL, 0x0000000010747AE1uLL, 0x0000000000000004uLL}, +{0x000000010747AE14uLL, 0x00000000078644FAuLL, 0x0000000000000022uLL, 0x00000000077284E0uLL}, +{0x000000010747AE14uLL, 0x000000000747AE14uLL, 0x0000000000000024uLL, 0x0000000001333344uLL}, +{0x000000010747AE14uLL, 0x000000007FFFFFFFuLL, 0x0000000000000002uLL, 0x000000000747AE16uLL}, +{0x000000010747AE14uLL, 0x0000000080000000uLL, 0x0000000000000002uLL, 0x000000000747AE14uLL}, +{0x000000010747AE14uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x000000000747AE17uLL}, +{0x000000010747AE14uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x000000000747AE16uLL}, +{0x000000010747AE14uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x000000000747AE15uLL}, +{0x000000010747AE14uLL, 0x0000000100000000uLL, 0x0000000000000001uLL, 0x000000000747AE14uLL}, +{0x000000010747AE14uLL, 0x0000000100000001uLL, 0x0000000000000001uLL, 0x000000000747AE13uLL}, +{0x000000010747AE14uLL, 0x0000000100000002uLL, 0x0000000000000001uLL, 0x000000000747AE12uLL}, +{0x000000010747AE14uLL, 0x0000000100000003uLL, 0x0000000000000001uLL, 0x000000000747AE11uLL}, +{0x000000010747AE14uLL, 0x0000000100000010uLL, 0x0000000000000001uLL, 0x000000000747AE04uLL}, +{0x000000010747AE14uLL, 0x00000001078644FAuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x000000010747AE14uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x000000010747AE14uLL, 0x000000017FFFFFFFuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x0000000180000000uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x0000000200000000uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x0000000200000001uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x0000000200000002uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x0000000200000003uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x0000000200000010uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x00000002078644FAuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x000000020747AE14uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x000000027FFFFFFFuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x0000000280000000uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000010747AE14uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000010747AE14uLL}, +{0x000000017FFFFFFFuLL, 0x0000000000000001uLL, 0x000000017FFFFFFFuLL, 0x0000000000000000uLL}, +{0x000000017FFFFFFFuLL, 0x0000000000000002uLL, 0x00000000BFFFFFFFuLL, 0x0000000000000001uLL}, +{0x000000017FFFFFFFuLL, 0x0000000000000003uLL, 0x000000007FFFFFFFuLL, 0x0000000000000002uLL}, +{0x000000017FFFFFFFuLL, 0x0000000000000010uLL, 0x0000000017FFFFFFuLL, 0x000000000000000FuLL}, +{0x000000017FFFFFFFuLL, 0x00000000078644FAuLL, 0x0000000000000033uLL, 0x0000000000404231uLL}, +{0x000000017FFFFFFFuLL, 0x000000000747AE14uLL, 0x0000000000000034uLL, 0x000000000570A3EFuLL}, +{0x000000017FFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x0000000000000003uLL, 0x0000000000000002uLL}, +{0x000000017FFFFFFFuLL, 0x0000000080000000uLL, 0x0000000000000002uLL, 0x000000007FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x00000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000080000002uLL}, +{0x000000017FFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000080000001uLL}, +{0x000000017FFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000000uLL}, +{0x000000017FFFFFFFuLL, 0x0000000100000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x0000000100000001uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x000000017FFFFFFFuLL, 0x0000000100000002uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0x000000017FFFFFFFuLL, 0x0000000100000003uLL, 0x0000000000000001uLL, 0x000000007FFFFFFCuLL}, +{0x000000017FFFFFFFuLL, 0x0000000100000010uLL, 0x0000000000000001uLL, 0x000000007FFFFFEFuLL}, +{0x000000017FFFFFFFuLL, 0x00000001078644FAuLL, 0x0000000000000001uLL, 0x000000007879BB05uLL}, +{0x000000017FFFFFFFuLL, 0x000000010747AE14uLL, 0x0000000000000001uLL, 0x0000000078B851EBuLL}, +{0x000000017FFFFFFFuLL, 0x000000017FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x000000017FFFFFFFuLL, 0x0000000180000000uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x00000001FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x00000001FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x00000001FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x0000000200000000uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x0000000200000001uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x0000000200000002uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x0000000200000003uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x0000000200000010uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x00000002078644FAuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x000000020747AE14uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x000000027FFFFFFFuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x0000000280000000uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x000000017FFFFFFFuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000017FFFFFFFuLL}, +{0x0000000180000000uLL, 0x0000000000000001uLL, 0x0000000180000000uLL, 0x0000000000000000uLL}, +{0x0000000180000000uLL, 0x0000000000000002uLL, 0x00000000C0000000uLL, 0x0000000000000000uLL}, +{0x0000000180000000uLL, 0x0000000000000003uLL, 0x0000000080000000uLL, 0x0000000000000000uLL}, +{0x0000000180000000uLL, 0x0000000000000010uLL, 0x0000000018000000uLL, 0x0000000000000000uLL}, +{0x0000000180000000uLL, 0x00000000078644FAuLL, 0x0000000000000033uLL, 0x0000000000404232uLL}, +{0x0000000180000000uLL, 0x000000000747AE14uLL, 0x0000000000000034uLL, 0x000000000570A3F0uLL}, +{0x0000000180000000uLL, 0x000000007FFFFFFFuLL, 0x0000000000000003uLL, 0x0000000000000003uLL}, +{0x0000000180000000uLL, 0x0000000080000000uLL, 0x0000000000000003uLL, 0x0000000000000000uLL}, +{0x0000000180000000uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000080000003uLL}, +{0x0000000180000000uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000080000002uLL}, +{0x0000000180000000uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000001uLL}, +{0x0000000180000000uLL, 0x0000000100000000uLL, 0x0000000000000001uLL, 0x0000000080000000uLL}, +{0x0000000180000000uLL, 0x0000000100000001uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0x0000000180000000uLL, 0x0000000100000002uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x0000000180000000uLL, 0x0000000100000003uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0x0000000180000000uLL, 0x0000000100000010uLL, 0x0000000000000001uLL, 0x000000007FFFFFF0uLL}, +{0x0000000180000000uLL, 0x00000001078644FAuLL, 0x0000000000000001uLL, 0x000000007879BB06uLL}, +{0x0000000180000000uLL, 0x000000010747AE14uLL, 0x0000000000000001uLL, 0x0000000078B851ECuLL}, +{0x0000000180000000uLL, 0x000000017FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x0000000180000000uLL, 0x0000000180000000uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0000000180000000uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x0000000200000000uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x0000000200000001uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x0000000200000002uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x0000000200000003uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x0000000200000010uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x00000002078644FAuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x000000020747AE14uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x000000027FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x0000000280000000uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x0000000180000000uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000180000000uLL}, +{0x00000001FFFFFFFDuLL, 0x0000000000000001uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000000uLL}, +{0x00000001FFFFFFFDuLL, 0x0000000000000002uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000001uLL}, +{0x00000001FFFFFFFDuLL, 0x0000000000000003uLL, 0x00000000AAAAAAA9uLL, 0x0000000000000002uLL}, +{0x00000001FFFFFFFDuLL, 0x0000000000000010uLL, 0x000000001FFFFFFFuLL, 0x000000000000000DuLL}, +{0x00000001FFFFFFFDuLL, 0x00000000078644FAuLL, 0x0000000000000044uLL, 0x000000000055AD95uLL}, +{0x00000001FFFFFFFDuLL, 0x000000000747AE14uLL, 0x0000000000000046uLL, 0x0000000002666685uLL}, +{0x00000001FFFFFFFDuLL, 0x000000007FFFFFFFuLL, 0x0000000000000004uLL, 0x0000000000000001uLL}, +{0x00000001FFFFFFFDuLL, 0x0000000080000000uLL, 0x0000000000000003uLL, 0x000000007FFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x00000000FFFFFFFDuLL, 0x0000000000000002uLL, 0x0000000000000003uLL}, +{0x00000001FFFFFFFDuLL, 0x00000000FFFFFFFEuLL, 0x0000000000000002uLL, 0x0000000000000001uLL}, +{0x00000001FFFFFFFDuLL, 0x00000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0x00000001FFFFFFFDuLL, 0x0000000100000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x0000000100000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFCuLL}, +{0x00000001FFFFFFFDuLL, 0x0000000100000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFBuLL}, +{0x00000001FFFFFFFDuLL, 0x0000000100000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFAuLL}, +{0x00000001FFFFFFFDuLL, 0x0000000100000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFEDuLL}, +{0x00000001FFFFFFFDuLL, 0x00000001078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB03uLL}, +{0x00000001FFFFFFFDuLL, 0x000000010747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851E9uLL}, +{0x00000001FFFFFFFDuLL, 0x000000017FFFFFFFuLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x00000001FFFFFFFDuLL, 0x0000000180000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x00000001FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x00000001FFFFFFFDuLL, 0x00000001FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x00000001FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x0000000200000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x0000000200000001uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x0000000200000002uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x0000000200000003uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x0000000200000010uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x00000002078644FAuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x000000020747AE14uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x000000027FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x0000000280000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFDuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFDuLL}, +{0x00000001FFFFFFFEuLL, 0x0000000000000001uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000000uLL}, +{0x00000001FFFFFFFEuLL, 0x0000000000000002uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000000uLL}, +{0x00000001FFFFFFFEuLL, 0x0000000000000003uLL, 0x00000000AAAAAAAAuLL, 0x0000000000000000uLL}, +{0x00000001FFFFFFFEuLL, 0x0000000000000010uLL, 0x000000001FFFFFFFuLL, 0x000000000000000EuLL}, +{0x00000001FFFFFFFEuLL, 0x00000000078644FAuLL, 0x0000000000000044uLL, 0x000000000055AD96uLL}, +{0x00000001FFFFFFFEuLL, 0x000000000747AE14uLL, 0x0000000000000046uLL, 0x0000000002666686uLL}, +{0x00000001FFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x0000000000000004uLL, 0x0000000000000002uLL}, +{0x00000001FFFFFFFEuLL, 0x0000000080000000uLL, 0x0000000000000003uLL, 0x000000007FFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x00000000FFFFFFFDuLL, 0x0000000000000002uLL, 0x0000000000000004uLL}, +{0x00000001FFFFFFFEuLL, 0x00000000FFFFFFFEuLL, 0x0000000000000002uLL, 0x0000000000000002uLL}, +{0x00000001FFFFFFFEuLL, 0x00000000FFFFFFFFuLL, 0x0000000000000002uLL, 0x0000000000000000uLL}, +{0x00000001FFFFFFFEuLL, 0x0000000100000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x0000000100000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0x00000001FFFFFFFEuLL, 0x0000000100000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFCuLL}, +{0x00000001FFFFFFFEuLL, 0x0000000100000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFBuLL}, +{0x00000001FFFFFFFEuLL, 0x0000000100000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFEEuLL}, +{0x00000001FFFFFFFEuLL, 0x00000001078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB04uLL}, +{0x00000001FFFFFFFEuLL, 0x000000010747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EAuLL}, +{0x00000001FFFFFFFEuLL, 0x000000017FFFFFFFuLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0x00000001FFFFFFFEuLL, 0x0000000180000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x00000001FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x00000001FFFFFFFEuLL, 0x00000001FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x00000001FFFFFFFEuLL, 0x00000001FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x0000000200000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x0000000200000001uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x0000000200000002uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x0000000200000003uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x0000000200000010uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x00000002078644FAuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x000000020747AE14uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x000000027FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x0000000280000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFEuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFEuLL}, +{0x00000001FFFFFFFFuLL, 0x0000000000000001uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000000uLL}, +{0x00000001FFFFFFFFuLL, 0x0000000000000002uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000001uLL}, +{0x00000001FFFFFFFFuLL, 0x0000000000000003uLL, 0x00000000AAAAAAAAuLL, 0x0000000000000001uLL}, +{0x00000001FFFFFFFFuLL, 0x0000000000000010uLL, 0x000000001FFFFFFFuLL, 0x000000000000000FuLL}, +{0x00000001FFFFFFFFuLL, 0x00000000078644FAuLL, 0x0000000000000044uLL, 0x000000000055AD97uLL}, +{0x00000001FFFFFFFFuLL, 0x000000000747AE14uLL, 0x0000000000000046uLL, 0x0000000002666687uLL}, +{0x00000001FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x0000000000000004uLL, 0x0000000000000003uLL}, +{0x00000001FFFFFFFFuLL, 0x0000000080000000uLL, 0x0000000000000003uLL, 0x000000007FFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x00000000FFFFFFFDuLL, 0x0000000000000002uLL, 0x0000000000000005uLL}, +{0x00000001FFFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x0000000000000002uLL, 0x0000000000000003uLL}, +{0x00000001FFFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x0000000000000002uLL, 0x0000000000000001uLL}, +{0x00000001FFFFFFFFuLL, 0x0000000100000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x0000000100000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0x00000001FFFFFFFFuLL, 0x0000000100000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0x00000001FFFFFFFFuLL, 0x0000000100000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFCuLL}, +{0x00000001FFFFFFFFuLL, 0x0000000100000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFEFuLL}, +{0x00000001FFFFFFFFuLL, 0x00000001078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB05uLL}, +{0x00000001FFFFFFFFuLL, 0x000000010747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EBuLL}, +{0x00000001FFFFFFFFuLL, 0x000000017FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000000uLL}, +{0x00000001FFFFFFFFuLL, 0x0000000180000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x00000001FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0x00000001FFFFFFFFuLL, 0x00000001FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x00000001FFFFFFFFuLL, 0x00000001FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x00000001FFFFFFFFuLL, 0x0000000200000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x0000000200000001uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x0000000200000002uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x0000000200000003uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x0000000200000010uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x00000002078644FAuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x000000020747AE14uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x000000027FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x0000000280000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x00000001FFFFFFFFuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000001FFFFFFFFuLL}, +{0x0000000200000000uLL, 0x0000000000000001uLL, 0x0000000200000000uLL, 0x0000000000000000uLL}, +{0x0000000200000000uLL, 0x0000000000000002uLL, 0x0000000100000000uLL, 0x0000000000000000uLL}, +{0x0000000200000000uLL, 0x0000000000000003uLL, 0x00000000AAAAAAAAuLL, 0x0000000000000002uLL}, +{0x0000000200000000uLL, 0x0000000000000010uLL, 0x0000000020000000uLL, 0x0000000000000000uLL}, +{0x0000000200000000uLL, 0x00000000078644FAuLL, 0x0000000000000044uLL, 0x000000000055AD98uLL}, +{0x0000000200000000uLL, 0x000000000747AE14uLL, 0x0000000000000046uLL, 0x0000000002666688uLL}, +{0x0000000200000000uLL, 0x000000007FFFFFFFuLL, 0x0000000000000004uLL, 0x0000000000000004uLL}, +{0x0000000200000000uLL, 0x0000000080000000uLL, 0x0000000000000004uLL, 0x0000000000000000uLL}, +{0x0000000200000000uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000002uLL, 0x0000000000000006uLL}, +{0x0000000200000000uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000002uLL, 0x0000000000000004uLL}, +{0x0000000200000000uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000002uLL, 0x0000000000000002uLL}, +{0x0000000200000000uLL, 0x0000000100000000uLL, 0x0000000000000002uLL, 0x0000000000000000uLL}, +{0x0000000200000000uLL, 0x0000000100000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0x0000000200000000uLL, 0x0000000100000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0x0000000200000000uLL, 0x0000000100000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0x0000000200000000uLL, 0x0000000100000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFF0uLL}, +{0x0000000200000000uLL, 0x00000001078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB06uLL}, +{0x0000000200000000uLL, 0x000000010747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851ECuLL}, +{0x0000000200000000uLL, 0x000000017FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000001uLL}, +{0x0000000200000000uLL, 0x0000000180000000uLL, 0x0000000000000001uLL, 0x0000000080000000uLL}, +{0x0000000200000000uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000003uLL}, +{0x0000000200000000uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0x0000000200000000uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x0000000200000000uLL, 0x0000000200000000uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0000000200000000uLL, 0x0000000200000001uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x0000000200000002uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x0000000200000003uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x0000000200000010uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x00000002078644FAuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x000000020747AE14uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x000000027FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x0000000280000000uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000000uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000000uLL}, +{0x0000000200000001uLL, 0x0000000000000001uLL, 0x0000000200000001uLL, 0x0000000000000000uLL}, +{0x0000000200000001uLL, 0x0000000000000002uLL, 0x0000000100000000uLL, 0x0000000000000001uLL}, +{0x0000000200000001uLL, 0x0000000000000003uLL, 0x00000000AAAAAAABuLL, 0x0000000000000000uLL}, +{0x0000000200000001uLL, 0x0000000000000010uLL, 0x0000000020000000uLL, 0x0000000000000001uLL}, +{0x0000000200000001uLL, 0x00000000078644FAuLL, 0x0000000000000044uLL, 0x000000000055AD99uLL}, +{0x0000000200000001uLL, 0x000000000747AE14uLL, 0x0000000000000046uLL, 0x0000000002666689uLL}, +{0x0000000200000001uLL, 0x000000007FFFFFFFuLL, 0x0000000000000004uLL, 0x0000000000000005uLL}, +{0x0000000200000001uLL, 0x0000000080000000uLL, 0x0000000000000004uLL, 0x0000000000000001uLL}, +{0x0000000200000001uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000002uLL, 0x0000000000000007uLL}, +{0x0000000200000001uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000002uLL, 0x0000000000000005uLL}, +{0x0000000200000001uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000002uLL, 0x0000000000000003uLL}, +{0x0000000200000001uLL, 0x0000000100000000uLL, 0x0000000000000002uLL, 0x0000000000000001uLL}, +{0x0000000200000001uLL, 0x0000000100000001uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x0000000200000001uLL, 0x0000000100000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0x0000000200000001uLL, 0x0000000100000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0x0000000200000001uLL, 0x0000000100000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFF1uLL}, +{0x0000000200000001uLL, 0x00000001078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB07uLL}, +{0x0000000200000001uLL, 0x000000010747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EDuLL}, +{0x0000000200000001uLL, 0x000000017FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000002uLL}, +{0x0000000200000001uLL, 0x0000000180000000uLL, 0x0000000000000001uLL, 0x0000000080000001uLL}, +{0x0000000200000001uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000004uLL}, +{0x0000000200000001uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000003uLL}, +{0x0000000200000001uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0x0000000200000001uLL, 0x0000000200000000uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x0000000200000001uLL, 0x0000000200000001uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0000000200000001uLL, 0x0000000200000002uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x0000000200000003uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x0000000200000010uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x00000002078644FAuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x000000020747AE14uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x000000027FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x0000000280000000uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000001uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000001uLL}, +{0x0000000200000002uLL, 0x0000000000000001uLL, 0x0000000200000002uLL, 0x0000000000000000uLL}, +{0x0000000200000002uLL, 0x0000000000000002uLL, 0x0000000100000001uLL, 0x0000000000000000uLL}, +{0x0000000200000002uLL, 0x0000000000000003uLL, 0x00000000AAAAAAABuLL, 0x0000000000000001uLL}, +{0x0000000200000002uLL, 0x0000000000000010uLL, 0x0000000020000000uLL, 0x0000000000000002uLL}, +{0x0000000200000002uLL, 0x00000000078644FAuLL, 0x0000000000000044uLL, 0x000000000055AD9AuLL}, +{0x0000000200000002uLL, 0x000000000747AE14uLL, 0x0000000000000046uLL, 0x000000000266668AuLL}, +{0x0000000200000002uLL, 0x000000007FFFFFFFuLL, 0x0000000000000004uLL, 0x0000000000000006uLL}, +{0x0000000200000002uLL, 0x0000000080000000uLL, 0x0000000000000004uLL, 0x0000000000000002uLL}, +{0x0000000200000002uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000002uLL, 0x0000000000000008uLL}, +{0x0000000200000002uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000002uLL, 0x0000000000000006uLL}, +{0x0000000200000002uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000002uLL, 0x0000000000000004uLL}, +{0x0000000200000002uLL, 0x0000000100000000uLL, 0x0000000000000002uLL, 0x0000000000000002uLL}, +{0x0000000200000002uLL, 0x0000000100000001uLL, 0x0000000000000002uLL, 0x0000000000000000uLL}, +{0x0000000200000002uLL, 0x0000000100000002uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x0000000200000002uLL, 0x0000000100000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0x0000000200000002uLL, 0x0000000100000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFF2uLL}, +{0x0000000200000002uLL, 0x00000001078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB08uLL}, +{0x0000000200000002uLL, 0x000000010747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EEuLL}, +{0x0000000200000002uLL, 0x000000017FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000003uLL}, +{0x0000000200000002uLL, 0x0000000180000000uLL, 0x0000000000000001uLL, 0x0000000080000002uLL}, +{0x0000000200000002uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000005uLL}, +{0x0000000200000002uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000004uLL}, +{0x0000000200000002uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000003uLL}, +{0x0000000200000002uLL, 0x0000000200000000uLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0x0000000200000002uLL, 0x0000000200000001uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x0000000200000002uLL, 0x0000000200000002uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0000000200000002uLL, 0x0000000200000003uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x0000000200000010uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x00000002078644FAuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x000000020747AE14uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x000000027FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x0000000280000000uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000002uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000002uLL}, +{0x0000000200000003uLL, 0x0000000000000001uLL, 0x0000000200000003uLL, 0x0000000000000000uLL}, +{0x0000000200000003uLL, 0x0000000000000002uLL, 0x0000000100000001uLL, 0x0000000000000001uLL}, +{0x0000000200000003uLL, 0x0000000000000003uLL, 0x00000000AAAAAAABuLL, 0x0000000000000002uLL}, +{0x0000000200000003uLL, 0x0000000000000010uLL, 0x0000000020000000uLL, 0x0000000000000003uLL}, +{0x0000000200000003uLL, 0x00000000078644FAuLL, 0x0000000000000044uLL, 0x000000000055AD9BuLL}, +{0x0000000200000003uLL, 0x000000000747AE14uLL, 0x0000000000000046uLL, 0x000000000266668BuLL}, +{0x0000000200000003uLL, 0x000000007FFFFFFFuLL, 0x0000000000000004uLL, 0x0000000000000007uLL}, +{0x0000000200000003uLL, 0x0000000080000000uLL, 0x0000000000000004uLL, 0x0000000000000003uLL}, +{0x0000000200000003uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000002uLL, 0x0000000000000009uLL}, +{0x0000000200000003uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000002uLL, 0x0000000000000007uLL}, +{0x0000000200000003uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000002uLL, 0x0000000000000005uLL}, +{0x0000000200000003uLL, 0x0000000100000000uLL, 0x0000000000000002uLL, 0x0000000000000003uLL}, +{0x0000000200000003uLL, 0x0000000100000001uLL, 0x0000000000000002uLL, 0x0000000000000001uLL}, +{0x0000000200000003uLL, 0x0000000100000002uLL, 0x0000000000000001uLL, 0x0000000100000001uLL}, +{0x0000000200000003uLL, 0x0000000100000003uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x0000000200000003uLL, 0x0000000100000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFF3uLL}, +{0x0000000200000003uLL, 0x00000001078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB09uLL}, +{0x0000000200000003uLL, 0x000000010747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EFuLL}, +{0x0000000200000003uLL, 0x000000017FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000004uLL}, +{0x0000000200000003uLL, 0x0000000180000000uLL, 0x0000000000000001uLL, 0x0000000080000003uLL}, +{0x0000000200000003uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000006uLL}, +{0x0000000200000003uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000005uLL}, +{0x0000000200000003uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000004uLL}, +{0x0000000200000003uLL, 0x0000000200000000uLL, 0x0000000000000001uLL, 0x0000000000000003uLL}, +{0x0000000200000003uLL, 0x0000000200000001uLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0x0000000200000003uLL, 0x0000000200000002uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x0000000200000003uLL, 0x0000000200000003uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0000000200000003uLL, 0x0000000200000010uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x00000002078644FAuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x000000020747AE14uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x000000027FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x0000000280000000uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000003uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000003uLL}, +{0x0000000200000010uLL, 0x0000000000000001uLL, 0x0000000200000010uLL, 0x0000000000000000uLL}, +{0x0000000200000010uLL, 0x0000000000000002uLL, 0x0000000100000008uLL, 0x0000000000000000uLL}, +{0x0000000200000010uLL, 0x0000000000000003uLL, 0x00000000AAAAAAB0uLL, 0x0000000000000000uLL}, +{0x0000000200000010uLL, 0x0000000000000010uLL, 0x0000000020000001uLL, 0x0000000000000000uLL}, +{0x0000000200000010uLL, 0x00000000078644FAuLL, 0x0000000000000044uLL, 0x000000000055ADA8uLL}, +{0x0000000200000010uLL, 0x000000000747AE14uLL, 0x0000000000000046uLL, 0x0000000002666698uLL}, +{0x0000000200000010uLL, 0x000000007FFFFFFFuLL, 0x0000000000000004uLL, 0x0000000000000014uLL}, +{0x0000000200000010uLL, 0x0000000080000000uLL, 0x0000000000000004uLL, 0x0000000000000010uLL}, +{0x0000000200000010uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000002uLL, 0x0000000000000016uLL}, +{0x0000000200000010uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000002uLL, 0x0000000000000014uLL}, +{0x0000000200000010uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000002uLL, 0x0000000000000012uLL}, +{0x0000000200000010uLL, 0x0000000100000000uLL, 0x0000000000000002uLL, 0x0000000000000010uLL}, +{0x0000000200000010uLL, 0x0000000100000001uLL, 0x0000000000000002uLL, 0x000000000000000EuLL}, +{0x0000000200000010uLL, 0x0000000100000002uLL, 0x0000000000000002uLL, 0x000000000000000CuLL}, +{0x0000000200000010uLL, 0x0000000100000003uLL, 0x0000000000000002uLL, 0x000000000000000AuLL}, +{0x0000000200000010uLL, 0x0000000100000010uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x0000000200000010uLL, 0x00000001078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB16uLL}, +{0x0000000200000010uLL, 0x000000010747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851FCuLL}, +{0x0000000200000010uLL, 0x000000017FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000011uLL}, +{0x0000000200000010uLL, 0x0000000180000000uLL, 0x0000000000000001uLL, 0x0000000080000010uLL}, +{0x0000000200000010uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000013uLL}, +{0x0000000200000010uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000012uLL}, +{0x0000000200000010uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000011uLL}, +{0x0000000200000010uLL, 0x0000000200000000uLL, 0x0000000000000001uLL, 0x0000000000000010uLL}, +{0x0000000200000010uLL, 0x0000000200000001uLL, 0x0000000000000001uLL, 0x000000000000000FuLL}, +{0x0000000200000010uLL, 0x0000000200000002uLL, 0x0000000000000001uLL, 0x000000000000000EuLL}, +{0x0000000200000010uLL, 0x0000000200000003uLL, 0x0000000000000001uLL, 0x000000000000000DuLL}, +{0x0000000200000010uLL, 0x0000000200000010uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0000000200000010uLL, 0x00000002078644FAuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x000000020747AE14uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x000000027FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x0000000280000000uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x0000000200000010uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000200000010uLL}, +{0x00000002078644FAuLL, 0x0000000000000001uLL, 0x00000002078644FAuLL, 0x0000000000000000uLL}, +{0x00000002078644FAuLL, 0x0000000000000002uLL, 0x0000000103C3227DuLL, 0x0000000000000000uLL}, +{0x00000002078644FAuLL, 0x0000000000000003uLL, 0x00000000AD2CC1A8uLL, 0x0000000000000002uLL}, +{0x00000002078644FAuLL, 0x0000000000000010uLL, 0x000000002078644FuLL, 0x000000000000000AuLL}, +{0x00000002078644FAuLL, 0x00000000078644FAuLL, 0x0000000000000045uLL, 0x000000000055AD98uLL}, +{0x00000002078644FAuLL, 0x000000000747AE14uLL, 0x0000000000000047uLL, 0x0000000002A4FD6EuLL}, +{0x00000002078644FAuLL, 0x000000007FFFFFFFuLL, 0x0000000000000004uLL, 0x00000000078644FEuLL}, +{0x00000002078644FAuLL, 0x0000000080000000uLL, 0x0000000000000004uLL, 0x00000000078644FAuLL}, +{0x00000002078644FAuLL, 0x00000000FFFFFFFDuLL, 0x0000000000000002uLL, 0x0000000007864500uLL}, +{0x00000002078644FAuLL, 0x00000000FFFFFFFEuLL, 0x0000000000000002uLL, 0x00000000078644FEuLL}, +{0x00000002078644FAuLL, 0x00000000FFFFFFFFuLL, 0x0000000000000002uLL, 0x00000000078644FCuLL}, +{0x00000002078644FAuLL, 0x0000000100000000uLL, 0x0000000000000002uLL, 0x00000000078644FAuLL}, +{0x00000002078644FAuLL, 0x0000000100000001uLL, 0x0000000000000002uLL, 0x00000000078644F8uLL}, +{0x00000002078644FAuLL, 0x0000000100000002uLL, 0x0000000000000002uLL, 0x00000000078644F6uLL}, +{0x00000002078644FAuLL, 0x0000000100000003uLL, 0x0000000000000002uLL, 0x00000000078644F4uLL}, +{0x00000002078644FAuLL, 0x0000000100000010uLL, 0x0000000000000002uLL, 0x00000000078644DAuLL}, +{0x00000002078644FAuLL, 0x00000001078644FAuLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x00000002078644FAuLL, 0x000000010747AE14uLL, 0x0000000000000001uLL, 0x00000001003E96E6uLL}, +{0x00000002078644FAuLL, 0x000000017FFFFFFFuLL, 0x0000000000000001uLL, 0x00000000878644FBuLL}, +{0x00000002078644FAuLL, 0x0000000180000000uLL, 0x0000000000000001uLL, 0x00000000878644FAuLL}, +{0x00000002078644FAuLL, 0x00000001FFFFFFFDuLL, 0x0000000000000001uLL, 0x00000000078644FDuLL}, +{0x00000002078644FAuLL, 0x00000001FFFFFFFEuLL, 0x0000000000000001uLL, 0x00000000078644FCuLL}, +{0x00000002078644FAuLL, 0x00000001FFFFFFFFuLL, 0x0000000000000001uLL, 0x00000000078644FBuLL}, +{0x00000002078644FAuLL, 0x0000000200000000uLL, 0x0000000000000001uLL, 0x00000000078644FAuLL}, +{0x00000002078644FAuLL, 0x0000000200000001uLL, 0x0000000000000001uLL, 0x00000000078644F9uLL}, +{0x00000002078644FAuLL, 0x0000000200000002uLL, 0x0000000000000001uLL, 0x00000000078644F8uLL}, +{0x00000002078644FAuLL, 0x0000000200000003uLL, 0x0000000000000001uLL, 0x00000000078644F7uLL}, +{0x00000002078644FAuLL, 0x0000000200000010uLL, 0x0000000000000001uLL, 0x00000000078644EAuLL}, +{0x00000002078644FAuLL, 0x00000002078644FAuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x00000002078644FAuLL, 0x000000020747AE14uLL, 0x0000000000000001uLL, 0x00000000003E96E6uLL}, +{0x00000002078644FAuLL, 0x000000027FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x0000000280000000uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x00000002078644FAuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002078644FAuLL}, +{0x000000020747AE14uLL, 0x0000000000000001uLL, 0x000000020747AE14uLL, 0x0000000000000000uLL}, +{0x000000020747AE14uLL, 0x0000000000000002uLL, 0x0000000103A3D70AuLL, 0x0000000000000000uLL}, +{0x000000020747AE14uLL, 0x0000000000000003uLL, 0x00000000AD17E4B1uLL, 0x0000000000000001uLL}, +{0x000000020747AE14uLL, 0x0000000000000010uLL, 0x0000000020747AE1uLL, 0x0000000000000004uLL}, +{0x000000020747AE14uLL, 0x00000000078644FAuLL, 0x0000000000000045uLL, 0x00000000001716B2uLL}, +{0x000000020747AE14uLL, 0x000000000747AE14uLL, 0x0000000000000047uLL, 0x0000000002666688uLL}, +{0x000000020747AE14uLL, 0x000000007FFFFFFFuLL, 0x0000000000000004uLL, 0x000000000747AE18uLL}, +{0x000000020747AE14uLL, 0x0000000080000000uLL, 0x0000000000000004uLL, 0x000000000747AE14uLL}, +{0x000000020747AE14uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000002uLL, 0x000000000747AE1AuLL}, +{0x000000020747AE14uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000002uLL, 0x000000000747AE18uLL}, +{0x000000020747AE14uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000002uLL, 0x000000000747AE16uLL}, +{0x000000020747AE14uLL, 0x0000000100000000uLL, 0x0000000000000002uLL, 0x000000000747AE14uLL}, +{0x000000020747AE14uLL, 0x0000000100000001uLL, 0x0000000000000002uLL, 0x000000000747AE12uLL}, +{0x000000020747AE14uLL, 0x0000000100000002uLL, 0x0000000000000002uLL, 0x000000000747AE10uLL}, +{0x000000020747AE14uLL, 0x0000000100000003uLL, 0x0000000000000002uLL, 0x000000000747AE0EuLL}, +{0x000000020747AE14uLL, 0x0000000100000010uLL, 0x0000000000000002uLL, 0x000000000747ADF4uLL}, +{0x000000020747AE14uLL, 0x00000001078644FAuLL, 0x0000000000000001uLL, 0x00000000FFC1691AuLL}, +{0x000000020747AE14uLL, 0x000000010747AE14uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x000000020747AE14uLL, 0x000000017FFFFFFFuLL, 0x0000000000000001uLL, 0x000000008747AE15uLL}, +{0x000000020747AE14uLL, 0x0000000180000000uLL, 0x0000000000000001uLL, 0x000000008747AE14uLL}, +{0x000000020747AE14uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000001uLL, 0x000000000747AE17uLL}, +{0x000000020747AE14uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000001uLL, 0x000000000747AE16uLL}, +{0x000000020747AE14uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000001uLL, 0x000000000747AE15uLL}, +{0x000000020747AE14uLL, 0x0000000200000000uLL, 0x0000000000000001uLL, 0x000000000747AE14uLL}, +{0x000000020747AE14uLL, 0x0000000200000001uLL, 0x0000000000000001uLL, 0x000000000747AE13uLL}, +{0x000000020747AE14uLL, 0x0000000200000002uLL, 0x0000000000000001uLL, 0x000000000747AE12uLL}, +{0x000000020747AE14uLL, 0x0000000200000003uLL, 0x0000000000000001uLL, 0x000000000747AE11uLL}, +{0x000000020747AE14uLL, 0x0000000200000010uLL, 0x0000000000000001uLL, 0x000000000747AE04uLL}, +{0x000000020747AE14uLL, 0x00000002078644FAuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x000000020747AE14uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x000000020747AE14uLL, 0x000000027FFFFFFFuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x0000000280000000uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000020747AE14uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000020747AE14uLL}, +{0x000000027FFFFFFFuLL, 0x0000000000000001uLL, 0x000000027FFFFFFFuLL, 0x0000000000000000uLL}, +{0x000000027FFFFFFFuLL, 0x0000000000000002uLL, 0x000000013FFFFFFFuLL, 0x0000000000000001uLL}, +{0x000000027FFFFFFFuLL, 0x0000000000000003uLL, 0x00000000D5555555uLL, 0x0000000000000000uLL}, +{0x000000027FFFFFFFuLL, 0x0000000000000010uLL, 0x0000000027FFFFFFuLL, 0x000000000000000FuLL}, +{0x000000027FFFFFFFuLL, 0x00000000078644FAuLL, 0x0000000000000055uLL, 0x00000000006B18FDuLL}, +{0x000000027FFFFFFFuLL, 0x000000000747AE14uLL, 0x0000000000000057uLL, 0x0000000006A3D733uLL}, +{0x000000027FFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x0000000000000005uLL, 0x0000000000000004uLL}, +{0x000000027FFFFFFFuLL, 0x0000000080000000uLL, 0x0000000000000004uLL, 0x000000007FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x00000000FFFFFFFDuLL, 0x0000000000000002uLL, 0x0000000080000005uLL}, +{0x000000027FFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x0000000000000002uLL, 0x0000000080000003uLL}, +{0x000000027FFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x0000000000000002uLL, 0x0000000080000001uLL}, +{0x000000027FFFFFFFuLL, 0x0000000100000000uLL, 0x0000000000000002uLL, 0x000000007FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x0000000100000001uLL, 0x0000000000000002uLL, 0x000000007FFFFFFDuLL}, +{0x000000027FFFFFFFuLL, 0x0000000100000002uLL, 0x0000000000000002uLL, 0x000000007FFFFFFBuLL}, +{0x000000027FFFFFFFuLL, 0x0000000100000003uLL, 0x0000000000000002uLL, 0x000000007FFFFFF9uLL}, +{0x000000027FFFFFFFuLL, 0x0000000100000010uLL, 0x0000000000000002uLL, 0x000000007FFFFFDFuLL}, +{0x000000027FFFFFFFuLL, 0x00000001078644FAuLL, 0x0000000000000002uLL, 0x0000000070F3760BuLL}, +{0x000000027FFFFFFFuLL, 0x000000010747AE14uLL, 0x0000000000000002uLL, 0x000000007170A3D7uLL}, +{0x000000027FFFFFFFuLL, 0x000000017FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x000000027FFFFFFFuLL, 0x0000000180000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x00000001FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000080000002uLL}, +{0x000000027FFFFFFFuLL, 0x00000001FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000080000001uLL}, +{0x000000027FFFFFFFuLL, 0x00000001FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000000uLL}, +{0x000000027FFFFFFFuLL, 0x0000000200000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x0000000200000001uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x000000027FFFFFFFuLL, 0x0000000200000002uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0x000000027FFFFFFFuLL, 0x0000000200000003uLL, 0x0000000000000001uLL, 0x000000007FFFFFFCuLL}, +{0x000000027FFFFFFFuLL, 0x0000000200000010uLL, 0x0000000000000001uLL, 0x000000007FFFFFEFuLL}, +{0x000000027FFFFFFFuLL, 0x00000002078644FAuLL, 0x0000000000000001uLL, 0x000000007879BB05uLL}, +{0x000000027FFFFFFFuLL, 0x000000020747AE14uLL, 0x0000000000000001uLL, 0x0000000078B851EBuLL}, +{0x000000027FFFFFFFuLL, 0x000000027FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x000000027FFFFFFFuLL, 0x0000000280000000uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x000000027FFFFFFFuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000027FFFFFFFuLL}, +{0x0000000280000000uLL, 0x0000000000000001uLL, 0x0000000280000000uLL, 0x0000000000000000uLL}, +{0x0000000280000000uLL, 0x0000000000000002uLL, 0x0000000140000000uLL, 0x0000000000000000uLL}, +{0x0000000280000000uLL, 0x0000000000000003uLL, 0x00000000D5555555uLL, 0x0000000000000001uLL}, +{0x0000000280000000uLL, 0x0000000000000010uLL, 0x0000000028000000uLL, 0x0000000000000000uLL}, +{0x0000000280000000uLL, 0x00000000078644FAuLL, 0x0000000000000055uLL, 0x00000000006B18FEuLL}, +{0x0000000280000000uLL, 0x000000000747AE14uLL, 0x0000000000000057uLL, 0x0000000006A3D734uLL}, +{0x0000000280000000uLL, 0x000000007FFFFFFFuLL, 0x0000000000000005uLL, 0x0000000000000005uLL}, +{0x0000000280000000uLL, 0x0000000080000000uLL, 0x0000000000000005uLL, 0x0000000000000000uLL}, +{0x0000000280000000uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000002uLL, 0x0000000080000006uLL}, +{0x0000000280000000uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000002uLL, 0x0000000080000004uLL}, +{0x0000000280000000uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000002uLL, 0x0000000080000002uLL}, +{0x0000000280000000uLL, 0x0000000100000000uLL, 0x0000000000000002uLL, 0x0000000080000000uLL}, +{0x0000000280000000uLL, 0x0000000100000001uLL, 0x0000000000000002uLL, 0x000000007FFFFFFEuLL}, +{0x0000000280000000uLL, 0x0000000100000002uLL, 0x0000000000000002uLL, 0x000000007FFFFFFCuLL}, +{0x0000000280000000uLL, 0x0000000100000003uLL, 0x0000000000000002uLL, 0x000000007FFFFFFAuLL}, +{0x0000000280000000uLL, 0x0000000100000010uLL, 0x0000000000000002uLL, 0x000000007FFFFFE0uLL}, +{0x0000000280000000uLL, 0x00000001078644FAuLL, 0x0000000000000002uLL, 0x0000000070F3760CuLL}, +{0x0000000280000000uLL, 0x000000010747AE14uLL, 0x0000000000000002uLL, 0x000000007170A3D8uLL}, +{0x0000000280000000uLL, 0x000000017FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000100000001uLL}, +{0x0000000280000000uLL, 0x0000000180000000uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x0000000280000000uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000080000003uLL}, +{0x0000000280000000uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000080000002uLL}, +{0x0000000280000000uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000001uLL}, +{0x0000000280000000uLL, 0x0000000200000000uLL, 0x0000000000000001uLL, 0x0000000080000000uLL}, +{0x0000000280000000uLL, 0x0000000200000001uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0x0000000280000000uLL, 0x0000000200000002uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x0000000280000000uLL, 0x0000000200000003uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0x0000000280000000uLL, 0x0000000200000010uLL, 0x0000000000000001uLL, 0x000000007FFFFFF0uLL}, +{0x0000000280000000uLL, 0x00000002078644FAuLL, 0x0000000000000001uLL, 0x000000007879BB06uLL}, +{0x0000000280000000uLL, 0x000000020747AE14uLL, 0x0000000000000001uLL, 0x0000000078B851ECuLL}, +{0x0000000280000000uLL, 0x000000027FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x0000000280000000uLL, 0x0000000280000000uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0000000280000000uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x0000000280000000uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000280000000uLL}, +{0x00000002FFFFFFFDuLL, 0x0000000000000001uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000000uLL}, +{0x00000002FFFFFFFDuLL, 0x0000000000000002uLL, 0x000000017FFFFFFEuLL, 0x0000000000000001uLL}, +{0x00000002FFFFFFFDuLL, 0x0000000000000003uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000000uLL}, +{0x00000002FFFFFFFDuLL, 0x0000000000000010uLL, 0x000000002FFFFFFFuLL, 0x000000000000000DuLL}, +{0x00000002FFFFFFFDuLL, 0x00000000078644FAuLL, 0x0000000000000066uLL, 0x0000000000808461uLL}, +{0x00000002FFFFFFFDuLL, 0x000000000747AE14uLL, 0x0000000000000069uLL, 0x00000000039999C9uLL}, +{0x00000002FFFFFFFDuLL, 0x000000007FFFFFFFuLL, 0x0000000000000006uLL, 0x0000000000000003uLL}, +{0x00000002FFFFFFFDuLL, 0x0000000080000000uLL, 0x0000000000000005uLL, 0x000000007FFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x00000000FFFFFFFDuLL, 0x0000000000000003uLL, 0x0000000000000006uLL}, +{0x00000002FFFFFFFDuLL, 0x00000000FFFFFFFEuLL, 0x0000000000000003uLL, 0x0000000000000003uLL}, +{0x00000002FFFFFFFDuLL, 0x00000000FFFFFFFFuLL, 0x0000000000000003uLL, 0x0000000000000000uLL}, +{0x00000002FFFFFFFDuLL, 0x0000000100000000uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x0000000100000001uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFBuLL}, +{0x00000002FFFFFFFDuLL, 0x0000000100000002uLL, 0x0000000000000002uLL, 0x00000000FFFFFFF9uLL}, +{0x00000002FFFFFFFDuLL, 0x0000000100000003uLL, 0x0000000000000002uLL, 0x00000000FFFFFFF7uLL}, +{0x00000002FFFFFFFDuLL, 0x0000000100000010uLL, 0x0000000000000002uLL, 0x00000000FFFFFFDDuLL}, +{0x00000002FFFFFFFDuLL, 0x00000001078644FAuLL, 0x0000000000000002uLL, 0x00000000F0F37609uLL}, +{0x00000002FFFFFFFDuLL, 0x000000010747AE14uLL, 0x0000000000000002uLL, 0x00000000F170A3D5uLL}, +{0x00000002FFFFFFFDuLL, 0x000000017FFFFFFFuLL, 0x0000000000000001uLL, 0x000000017FFFFFFEuLL}, +{0x00000002FFFFFFFDuLL, 0x0000000180000000uLL, 0x0000000000000001uLL, 0x000000017FFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x00000001FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x00000002FFFFFFFDuLL, 0x00000001FFFFFFFEuLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0x00000002FFFFFFFDuLL, 0x00000001FFFFFFFFuLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0x00000002FFFFFFFDuLL, 0x0000000200000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x0000000200000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFCuLL}, +{0x00000002FFFFFFFDuLL, 0x0000000200000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFBuLL}, +{0x00000002FFFFFFFDuLL, 0x0000000200000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFAuLL}, +{0x00000002FFFFFFFDuLL, 0x0000000200000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFEDuLL}, +{0x00000002FFFFFFFDuLL, 0x00000002078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB03uLL}, +{0x00000002FFFFFFFDuLL, 0x000000020747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851E9uLL}, +{0x00000002FFFFFFFDuLL, 0x000000027FFFFFFFuLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x00000002FFFFFFFDuLL, 0x0000000280000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x00000002FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x00000002FFFFFFFDuLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFDuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFDuLL}, +{0x00000002FFFFFFFEuLL, 0x0000000000000001uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000000uLL}, +{0x00000002FFFFFFFEuLL, 0x0000000000000002uLL, 0x000000017FFFFFFFuLL, 0x0000000000000000uLL}, +{0x00000002FFFFFFFEuLL, 0x0000000000000003uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000001uLL}, +{0x00000002FFFFFFFEuLL, 0x0000000000000010uLL, 0x000000002FFFFFFFuLL, 0x000000000000000EuLL}, +{0x00000002FFFFFFFEuLL, 0x00000000078644FAuLL, 0x0000000000000066uLL, 0x0000000000808462uLL}, +{0x00000002FFFFFFFEuLL, 0x000000000747AE14uLL, 0x0000000000000069uLL, 0x00000000039999CAuLL}, +{0x00000002FFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x0000000000000006uLL, 0x0000000000000004uLL}, +{0x00000002FFFFFFFEuLL, 0x0000000080000000uLL, 0x0000000000000005uLL, 0x000000007FFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x00000000FFFFFFFDuLL, 0x0000000000000003uLL, 0x0000000000000007uLL}, +{0x00000002FFFFFFFEuLL, 0x00000000FFFFFFFEuLL, 0x0000000000000003uLL, 0x0000000000000004uLL}, +{0x00000002FFFFFFFEuLL, 0x00000000FFFFFFFFuLL, 0x0000000000000003uLL, 0x0000000000000001uLL}, +{0x00000002FFFFFFFEuLL, 0x0000000100000000uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x0000000100000001uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFCuLL}, +{0x00000002FFFFFFFEuLL, 0x0000000100000002uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFAuLL}, +{0x00000002FFFFFFFEuLL, 0x0000000100000003uLL, 0x0000000000000002uLL, 0x00000000FFFFFFF8uLL}, +{0x00000002FFFFFFFEuLL, 0x0000000100000010uLL, 0x0000000000000002uLL, 0x00000000FFFFFFDEuLL}, +{0x00000002FFFFFFFEuLL, 0x00000001078644FAuLL, 0x0000000000000002uLL, 0x00000000F0F3760AuLL}, +{0x00000002FFFFFFFEuLL, 0x000000010747AE14uLL, 0x0000000000000002uLL, 0x00000000F170A3D6uLL}, +{0x00000002FFFFFFFEuLL, 0x000000017FFFFFFFuLL, 0x0000000000000002uLL, 0x0000000000000000uLL}, +{0x00000002FFFFFFFEuLL, 0x0000000180000000uLL, 0x0000000000000001uLL, 0x000000017FFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x00000001FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000100000001uLL}, +{0x00000002FFFFFFFEuLL, 0x00000001FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x00000002FFFFFFFEuLL, 0x00000001FFFFFFFFuLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0x00000002FFFFFFFEuLL, 0x0000000200000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x0000000200000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0x00000002FFFFFFFEuLL, 0x0000000200000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFCuLL}, +{0x00000002FFFFFFFEuLL, 0x0000000200000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFBuLL}, +{0x00000002FFFFFFFEuLL, 0x0000000200000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFEEuLL}, +{0x00000002FFFFFFFEuLL, 0x00000002078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB04uLL}, +{0x00000002FFFFFFFEuLL, 0x000000020747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EAuLL}, +{0x00000002FFFFFFFEuLL, 0x000000027FFFFFFFuLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0x00000002FFFFFFFEuLL, 0x0000000280000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x00000002FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x00000002FFFFFFFEuLL, 0x00000002FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x00000002FFFFFFFEuLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFEuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFEuLL}, +{0x00000002FFFFFFFFuLL, 0x0000000000000001uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000000uLL}, +{0x00000002FFFFFFFFuLL, 0x0000000000000002uLL, 0x000000017FFFFFFFuLL, 0x0000000000000001uLL}, +{0x00000002FFFFFFFFuLL, 0x0000000000000003uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000002uLL}, +{0x00000002FFFFFFFFuLL, 0x0000000000000010uLL, 0x000000002FFFFFFFuLL, 0x000000000000000FuLL}, +{0x00000002FFFFFFFFuLL, 0x00000000078644FAuLL, 0x0000000000000066uLL, 0x0000000000808463uLL}, +{0x00000002FFFFFFFFuLL, 0x000000000747AE14uLL, 0x0000000000000069uLL, 0x00000000039999CBuLL}, +{0x00000002FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x0000000000000006uLL, 0x0000000000000005uLL}, +{0x00000002FFFFFFFFuLL, 0x0000000080000000uLL, 0x0000000000000005uLL, 0x000000007FFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x00000000FFFFFFFDuLL, 0x0000000000000003uLL, 0x0000000000000008uLL}, +{0x00000002FFFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x0000000000000003uLL, 0x0000000000000005uLL}, +{0x00000002FFFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x0000000000000003uLL, 0x0000000000000002uLL}, +{0x00000002FFFFFFFFuLL, 0x0000000100000000uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x0000000100000001uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFDuLL}, +{0x00000002FFFFFFFFuLL, 0x0000000100000002uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFBuLL}, +{0x00000002FFFFFFFFuLL, 0x0000000100000003uLL, 0x0000000000000002uLL, 0x00000000FFFFFFF9uLL}, +{0x00000002FFFFFFFFuLL, 0x0000000100000010uLL, 0x0000000000000002uLL, 0x00000000FFFFFFDFuLL}, +{0x00000002FFFFFFFFuLL, 0x00000001078644FAuLL, 0x0000000000000002uLL, 0x00000000F0F3760BuLL}, +{0x00000002FFFFFFFFuLL, 0x000000010747AE14uLL, 0x0000000000000002uLL, 0x00000000F170A3D7uLL}, +{0x00000002FFFFFFFFuLL, 0x000000017FFFFFFFuLL, 0x0000000000000002uLL, 0x0000000000000001uLL}, +{0x00000002FFFFFFFFuLL, 0x0000000180000000uLL, 0x0000000000000001uLL, 0x000000017FFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x00000001FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000100000002uLL}, +{0x00000002FFFFFFFFuLL, 0x00000001FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000100000001uLL}, +{0x00000002FFFFFFFFuLL, 0x00000001FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x00000002FFFFFFFFuLL, 0x0000000200000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x0000000200000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0x00000002FFFFFFFFuLL, 0x0000000200000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0x00000002FFFFFFFFuLL, 0x0000000200000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFCuLL}, +{0x00000002FFFFFFFFuLL, 0x0000000200000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFEFuLL}, +{0x00000002FFFFFFFFuLL, 0x00000002078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB05uLL}, +{0x00000002FFFFFFFFuLL, 0x000000020747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EBuLL}, +{0x00000002FFFFFFFFuLL, 0x000000027FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000000uLL}, +{0x00000002FFFFFFFFuLL, 0x0000000280000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x00000002FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0x00000002FFFFFFFFuLL, 0x00000002FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x00000002FFFFFFFFuLL, 0x00000002FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x00000002FFFFFFFFuLL, 0x0000000300000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x00000002FFFFFFFFuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000002FFFFFFFFuLL}, +{0x0000000300000000uLL, 0x0000000000000001uLL, 0x0000000300000000uLL, 0x0000000000000000uLL}, +{0x0000000300000000uLL, 0x0000000000000002uLL, 0x0000000180000000uLL, 0x0000000000000000uLL}, +{0x0000000300000000uLL, 0x0000000000000003uLL, 0x0000000100000000uLL, 0x0000000000000000uLL}, +{0x0000000300000000uLL, 0x0000000000000010uLL, 0x0000000030000000uLL, 0x0000000000000000uLL}, +{0x0000000300000000uLL, 0x00000000078644FAuLL, 0x0000000000000066uLL, 0x0000000000808464uLL}, +{0x0000000300000000uLL, 0x000000000747AE14uLL, 0x0000000000000069uLL, 0x00000000039999CCuLL}, +{0x0000000300000000uLL, 0x000000007FFFFFFFuLL, 0x0000000000000006uLL, 0x0000000000000006uLL}, +{0x0000000300000000uLL, 0x0000000080000000uLL, 0x0000000000000006uLL, 0x0000000000000000uLL}, +{0x0000000300000000uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000003uLL, 0x0000000000000009uLL}, +{0x0000000300000000uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000003uLL, 0x0000000000000006uLL}, +{0x0000000300000000uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000003uLL, 0x0000000000000003uLL}, +{0x0000000300000000uLL, 0x0000000100000000uLL, 0x0000000000000003uLL, 0x0000000000000000uLL}, +{0x0000000300000000uLL, 0x0000000100000001uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFEuLL}, +{0x0000000300000000uLL, 0x0000000100000002uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFCuLL}, +{0x0000000300000000uLL, 0x0000000100000003uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFAuLL}, +{0x0000000300000000uLL, 0x0000000100000010uLL, 0x0000000000000002uLL, 0x00000000FFFFFFE0uLL}, +{0x0000000300000000uLL, 0x00000001078644FAuLL, 0x0000000000000002uLL, 0x00000000F0F3760CuLL}, +{0x0000000300000000uLL, 0x000000010747AE14uLL, 0x0000000000000002uLL, 0x00000000F170A3D8uLL}, +{0x0000000300000000uLL, 0x000000017FFFFFFFuLL, 0x0000000000000002uLL, 0x0000000000000002uLL}, +{0x0000000300000000uLL, 0x0000000180000000uLL, 0x0000000000000002uLL, 0x0000000000000000uLL}, +{0x0000000300000000uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000100000003uLL}, +{0x0000000300000000uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000100000002uLL}, +{0x0000000300000000uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000100000001uLL}, +{0x0000000300000000uLL, 0x0000000200000000uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x0000000300000000uLL, 0x0000000200000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0x0000000300000000uLL, 0x0000000200000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0x0000000300000000uLL, 0x0000000200000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0x0000000300000000uLL, 0x0000000200000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFF0uLL}, +{0x0000000300000000uLL, 0x00000002078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB06uLL}, +{0x0000000300000000uLL, 0x000000020747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851ECuLL}, +{0x0000000300000000uLL, 0x000000027FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000001uLL}, +{0x0000000300000000uLL, 0x0000000280000000uLL, 0x0000000000000001uLL, 0x0000000080000000uLL}, +{0x0000000300000000uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000003uLL}, +{0x0000000300000000uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0x0000000300000000uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x0000000300000000uLL, 0x0000000300000000uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0000000300000000uLL, 0x0000000300000001uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000000uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000000uLL}, +{0x0000000300000001uLL, 0x0000000000000001uLL, 0x0000000300000001uLL, 0x0000000000000000uLL}, +{0x0000000300000001uLL, 0x0000000000000002uLL, 0x0000000180000000uLL, 0x0000000000000001uLL}, +{0x0000000300000001uLL, 0x0000000000000003uLL, 0x0000000100000000uLL, 0x0000000000000001uLL}, +{0x0000000300000001uLL, 0x0000000000000010uLL, 0x0000000030000000uLL, 0x0000000000000001uLL}, +{0x0000000300000001uLL, 0x00000000078644FAuLL, 0x0000000000000066uLL, 0x0000000000808465uLL}, +{0x0000000300000001uLL, 0x000000000747AE14uLL, 0x0000000000000069uLL, 0x00000000039999CDuLL}, +{0x0000000300000001uLL, 0x000000007FFFFFFFuLL, 0x0000000000000006uLL, 0x0000000000000007uLL}, +{0x0000000300000001uLL, 0x0000000080000000uLL, 0x0000000000000006uLL, 0x0000000000000001uLL}, +{0x0000000300000001uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000003uLL, 0x000000000000000AuLL}, +{0x0000000300000001uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000003uLL, 0x0000000000000007uLL}, +{0x0000000300000001uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000003uLL, 0x0000000000000004uLL}, +{0x0000000300000001uLL, 0x0000000100000000uLL, 0x0000000000000003uLL, 0x0000000000000001uLL}, +{0x0000000300000001uLL, 0x0000000100000001uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFFuLL}, +{0x0000000300000001uLL, 0x0000000100000002uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFDuLL}, +{0x0000000300000001uLL, 0x0000000100000003uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFBuLL}, +{0x0000000300000001uLL, 0x0000000100000010uLL, 0x0000000000000002uLL, 0x00000000FFFFFFE1uLL}, +{0x0000000300000001uLL, 0x00000001078644FAuLL, 0x0000000000000002uLL, 0x00000000F0F3760DuLL}, +{0x0000000300000001uLL, 0x000000010747AE14uLL, 0x0000000000000002uLL, 0x00000000F170A3D9uLL}, +{0x0000000300000001uLL, 0x000000017FFFFFFFuLL, 0x0000000000000002uLL, 0x0000000000000003uLL}, +{0x0000000300000001uLL, 0x0000000180000000uLL, 0x0000000000000002uLL, 0x0000000000000001uLL}, +{0x0000000300000001uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000100000004uLL}, +{0x0000000300000001uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000100000003uLL}, +{0x0000000300000001uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000100000002uLL}, +{0x0000000300000001uLL, 0x0000000200000000uLL, 0x0000000000000001uLL, 0x0000000100000001uLL}, +{0x0000000300000001uLL, 0x0000000200000001uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x0000000300000001uLL, 0x0000000200000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0x0000000300000001uLL, 0x0000000200000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0x0000000300000001uLL, 0x0000000200000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFF1uLL}, +{0x0000000300000001uLL, 0x00000002078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB07uLL}, +{0x0000000300000001uLL, 0x000000020747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EDuLL}, +{0x0000000300000001uLL, 0x000000027FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000002uLL}, +{0x0000000300000001uLL, 0x0000000280000000uLL, 0x0000000000000001uLL, 0x0000000080000001uLL}, +{0x0000000300000001uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000004uLL}, +{0x0000000300000001uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000003uLL}, +{0x0000000300000001uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0x0000000300000001uLL, 0x0000000300000000uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x0000000300000001uLL, 0x0000000300000001uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0000000300000001uLL, 0x0000000300000002uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000001uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000001uLL}, +{0x0000000300000002uLL, 0x0000000000000001uLL, 0x0000000300000002uLL, 0x0000000000000000uLL}, +{0x0000000300000002uLL, 0x0000000000000002uLL, 0x0000000180000001uLL, 0x0000000000000000uLL}, +{0x0000000300000002uLL, 0x0000000000000003uLL, 0x0000000100000000uLL, 0x0000000000000002uLL}, +{0x0000000300000002uLL, 0x0000000000000010uLL, 0x0000000030000000uLL, 0x0000000000000002uLL}, +{0x0000000300000002uLL, 0x00000000078644FAuLL, 0x0000000000000066uLL, 0x0000000000808466uLL}, +{0x0000000300000002uLL, 0x000000000747AE14uLL, 0x0000000000000069uLL, 0x00000000039999CEuLL}, +{0x0000000300000002uLL, 0x000000007FFFFFFFuLL, 0x0000000000000006uLL, 0x0000000000000008uLL}, +{0x0000000300000002uLL, 0x0000000080000000uLL, 0x0000000000000006uLL, 0x0000000000000002uLL}, +{0x0000000300000002uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000003uLL, 0x000000000000000BuLL}, +{0x0000000300000002uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000003uLL, 0x0000000000000008uLL}, +{0x0000000300000002uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000003uLL, 0x0000000000000005uLL}, +{0x0000000300000002uLL, 0x0000000100000000uLL, 0x0000000000000003uLL, 0x0000000000000002uLL}, +{0x0000000300000002uLL, 0x0000000100000001uLL, 0x0000000000000002uLL, 0x0000000100000000uLL}, +{0x0000000300000002uLL, 0x0000000100000002uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFEuLL}, +{0x0000000300000002uLL, 0x0000000100000003uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFCuLL}, +{0x0000000300000002uLL, 0x0000000100000010uLL, 0x0000000000000002uLL, 0x00000000FFFFFFE2uLL}, +{0x0000000300000002uLL, 0x00000001078644FAuLL, 0x0000000000000002uLL, 0x00000000F0F3760EuLL}, +{0x0000000300000002uLL, 0x000000010747AE14uLL, 0x0000000000000002uLL, 0x00000000F170A3DAuLL}, +{0x0000000300000002uLL, 0x000000017FFFFFFFuLL, 0x0000000000000002uLL, 0x0000000000000004uLL}, +{0x0000000300000002uLL, 0x0000000180000000uLL, 0x0000000000000002uLL, 0x0000000000000002uLL}, +{0x0000000300000002uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000100000005uLL}, +{0x0000000300000002uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000100000004uLL}, +{0x0000000300000002uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000100000003uLL}, +{0x0000000300000002uLL, 0x0000000200000000uLL, 0x0000000000000001uLL, 0x0000000100000002uLL}, +{0x0000000300000002uLL, 0x0000000200000001uLL, 0x0000000000000001uLL, 0x0000000100000001uLL}, +{0x0000000300000002uLL, 0x0000000200000002uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x0000000300000002uLL, 0x0000000200000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0x0000000300000002uLL, 0x0000000200000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFF2uLL}, +{0x0000000300000002uLL, 0x00000002078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB08uLL}, +{0x0000000300000002uLL, 0x000000020747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EEuLL}, +{0x0000000300000002uLL, 0x000000027FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000003uLL}, +{0x0000000300000002uLL, 0x0000000280000000uLL, 0x0000000000000001uLL, 0x0000000080000002uLL}, +{0x0000000300000002uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000005uLL}, +{0x0000000300000002uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000004uLL}, +{0x0000000300000002uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000003uLL}, +{0x0000000300000002uLL, 0x0000000300000000uLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0x0000000300000002uLL, 0x0000000300000001uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x0000000300000002uLL, 0x0000000300000002uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0000000300000002uLL, 0x0000000300000003uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000002uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000002uLL}, +{0x0000000300000003uLL, 0x0000000000000001uLL, 0x0000000300000003uLL, 0x0000000000000000uLL}, +{0x0000000300000003uLL, 0x0000000000000002uLL, 0x0000000180000001uLL, 0x0000000000000001uLL}, +{0x0000000300000003uLL, 0x0000000000000003uLL, 0x0000000100000001uLL, 0x0000000000000000uLL}, +{0x0000000300000003uLL, 0x0000000000000010uLL, 0x0000000030000000uLL, 0x0000000000000003uLL}, +{0x0000000300000003uLL, 0x00000000078644FAuLL, 0x0000000000000066uLL, 0x0000000000808467uLL}, +{0x0000000300000003uLL, 0x000000000747AE14uLL, 0x0000000000000069uLL, 0x00000000039999CFuLL}, +{0x0000000300000003uLL, 0x000000007FFFFFFFuLL, 0x0000000000000006uLL, 0x0000000000000009uLL}, +{0x0000000300000003uLL, 0x0000000080000000uLL, 0x0000000000000006uLL, 0x0000000000000003uLL}, +{0x0000000300000003uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000003uLL, 0x000000000000000CuLL}, +{0x0000000300000003uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000003uLL, 0x0000000000000009uLL}, +{0x0000000300000003uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000003uLL, 0x0000000000000006uLL}, +{0x0000000300000003uLL, 0x0000000100000000uLL, 0x0000000000000003uLL, 0x0000000000000003uLL}, +{0x0000000300000003uLL, 0x0000000100000001uLL, 0x0000000000000003uLL, 0x0000000000000000uLL}, +{0x0000000300000003uLL, 0x0000000100000002uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFFuLL}, +{0x0000000300000003uLL, 0x0000000100000003uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFDuLL}, +{0x0000000300000003uLL, 0x0000000100000010uLL, 0x0000000000000002uLL, 0x00000000FFFFFFE3uLL}, +{0x0000000300000003uLL, 0x00000001078644FAuLL, 0x0000000000000002uLL, 0x00000000F0F3760FuLL}, +{0x0000000300000003uLL, 0x000000010747AE14uLL, 0x0000000000000002uLL, 0x00000000F170A3DBuLL}, +{0x0000000300000003uLL, 0x000000017FFFFFFFuLL, 0x0000000000000002uLL, 0x0000000000000005uLL}, +{0x0000000300000003uLL, 0x0000000180000000uLL, 0x0000000000000002uLL, 0x0000000000000003uLL}, +{0x0000000300000003uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000100000006uLL}, +{0x0000000300000003uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000100000005uLL}, +{0x0000000300000003uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000100000004uLL}, +{0x0000000300000003uLL, 0x0000000200000000uLL, 0x0000000000000001uLL, 0x0000000100000003uLL}, +{0x0000000300000003uLL, 0x0000000200000001uLL, 0x0000000000000001uLL, 0x0000000100000002uLL}, +{0x0000000300000003uLL, 0x0000000200000002uLL, 0x0000000000000001uLL, 0x0000000100000001uLL}, +{0x0000000300000003uLL, 0x0000000200000003uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x0000000300000003uLL, 0x0000000200000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFF3uLL}, +{0x0000000300000003uLL, 0x00000002078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB09uLL}, +{0x0000000300000003uLL, 0x000000020747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EFuLL}, +{0x0000000300000003uLL, 0x000000027FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000004uLL}, +{0x0000000300000003uLL, 0x0000000280000000uLL, 0x0000000000000001uLL, 0x0000000080000003uLL}, +{0x0000000300000003uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000006uLL}, +{0x0000000300000003uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000005uLL}, +{0x0000000300000003uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000004uLL}, +{0x0000000300000003uLL, 0x0000000300000000uLL, 0x0000000000000001uLL, 0x0000000000000003uLL}, +{0x0000000300000003uLL, 0x0000000300000001uLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0x0000000300000003uLL, 0x0000000300000002uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x0000000300000003uLL, 0x0000000300000003uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0000000300000003uLL, 0x0000000300000010uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000003uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000003uLL}, +{0x0000000300000010uLL, 0x0000000000000001uLL, 0x0000000300000010uLL, 0x0000000000000000uLL}, +{0x0000000300000010uLL, 0x0000000000000002uLL, 0x0000000180000008uLL, 0x0000000000000000uLL}, +{0x0000000300000010uLL, 0x0000000000000003uLL, 0x0000000100000005uLL, 0x0000000000000001uLL}, +{0x0000000300000010uLL, 0x0000000000000010uLL, 0x0000000030000001uLL, 0x0000000000000000uLL}, +{0x0000000300000010uLL, 0x00000000078644FAuLL, 0x0000000000000066uLL, 0x0000000000808474uLL}, +{0x0000000300000010uLL, 0x000000000747AE14uLL, 0x0000000000000069uLL, 0x00000000039999DCuLL}, +{0x0000000300000010uLL, 0x000000007FFFFFFFuLL, 0x0000000000000006uLL, 0x0000000000000016uLL}, +{0x0000000300000010uLL, 0x0000000080000000uLL, 0x0000000000000006uLL, 0x0000000000000010uLL}, +{0x0000000300000010uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000003uLL, 0x0000000000000019uLL}, +{0x0000000300000010uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000003uLL, 0x0000000000000016uLL}, +{0x0000000300000010uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000003uLL, 0x0000000000000013uLL}, +{0x0000000300000010uLL, 0x0000000100000000uLL, 0x0000000000000003uLL, 0x0000000000000010uLL}, +{0x0000000300000010uLL, 0x0000000100000001uLL, 0x0000000000000003uLL, 0x000000000000000DuLL}, +{0x0000000300000010uLL, 0x0000000100000002uLL, 0x0000000000000003uLL, 0x000000000000000AuLL}, +{0x0000000300000010uLL, 0x0000000100000003uLL, 0x0000000000000003uLL, 0x0000000000000007uLL}, +{0x0000000300000010uLL, 0x0000000100000010uLL, 0x0000000000000002uLL, 0x00000000FFFFFFF0uLL}, +{0x0000000300000010uLL, 0x00000001078644FAuLL, 0x0000000000000002uLL, 0x00000000F0F3761CuLL}, +{0x0000000300000010uLL, 0x000000010747AE14uLL, 0x0000000000000002uLL, 0x00000000F170A3E8uLL}, +{0x0000000300000010uLL, 0x000000017FFFFFFFuLL, 0x0000000000000002uLL, 0x0000000000000012uLL}, +{0x0000000300000010uLL, 0x0000000180000000uLL, 0x0000000000000002uLL, 0x0000000000000010uLL}, +{0x0000000300000010uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000100000013uLL}, +{0x0000000300000010uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000100000012uLL}, +{0x0000000300000010uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000100000011uLL}, +{0x0000000300000010uLL, 0x0000000200000000uLL, 0x0000000000000001uLL, 0x0000000100000010uLL}, +{0x0000000300000010uLL, 0x0000000200000001uLL, 0x0000000000000001uLL, 0x000000010000000FuLL}, +{0x0000000300000010uLL, 0x0000000200000002uLL, 0x0000000000000001uLL, 0x000000010000000EuLL}, +{0x0000000300000010uLL, 0x0000000200000003uLL, 0x0000000000000001uLL, 0x000000010000000DuLL}, +{0x0000000300000010uLL, 0x0000000200000010uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x0000000300000010uLL, 0x00000002078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB16uLL}, +{0x0000000300000010uLL, 0x000000020747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851FCuLL}, +{0x0000000300000010uLL, 0x000000027FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000011uLL}, +{0x0000000300000010uLL, 0x0000000280000000uLL, 0x0000000000000001uLL, 0x0000000080000010uLL}, +{0x0000000300000010uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000013uLL}, +{0x0000000300000010uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000012uLL}, +{0x0000000300000010uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000011uLL}, +{0x0000000300000010uLL, 0x0000000300000000uLL, 0x0000000000000001uLL, 0x0000000000000010uLL}, +{0x0000000300000010uLL, 0x0000000300000001uLL, 0x0000000000000001uLL, 0x000000000000000FuLL}, +{0x0000000300000010uLL, 0x0000000300000002uLL, 0x0000000000000001uLL, 0x000000000000000EuLL}, +{0x0000000300000010uLL, 0x0000000300000003uLL, 0x0000000000000001uLL, 0x000000000000000DuLL}, +{0x0000000300000010uLL, 0x0000000300000010uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0000000300000010uLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x000000030747AE14uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x0000000300000010uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000300000010uLL}, +{0x00000003078644FAuLL, 0x0000000000000001uLL, 0x00000003078644FAuLL, 0x0000000000000000uLL}, +{0x00000003078644FAuLL, 0x0000000000000002uLL, 0x0000000183C3227DuLL, 0x0000000000000000uLL}, +{0x00000003078644FAuLL, 0x0000000000000003uLL, 0x00000001028216FEuLL, 0x0000000000000000uLL}, +{0x00000003078644FAuLL, 0x0000000000000010uLL, 0x000000003078644FuLL, 0x000000000000000AuLL}, +{0x00000003078644FAuLL, 0x00000000078644FAuLL, 0x0000000000000067uLL, 0x0000000000808464uLL}, +{0x00000003078644FAuLL, 0x000000000747AE14uLL, 0x000000000000006AuLL, 0x0000000003D830B2uLL}, +{0x00000003078644FAuLL, 0x000000007FFFFFFFuLL, 0x0000000000000006uLL, 0x0000000007864500uLL}, +{0x00000003078644FAuLL, 0x0000000080000000uLL, 0x0000000000000006uLL, 0x00000000078644FAuLL}, +{0x00000003078644FAuLL, 0x00000000FFFFFFFDuLL, 0x0000000000000003uLL, 0x0000000007864503uLL}, +{0x00000003078644FAuLL, 0x00000000FFFFFFFEuLL, 0x0000000000000003uLL, 0x0000000007864500uLL}, +{0x00000003078644FAuLL, 0x00000000FFFFFFFFuLL, 0x0000000000000003uLL, 0x00000000078644FDuLL}, +{0x00000003078644FAuLL, 0x0000000100000000uLL, 0x0000000000000003uLL, 0x00000000078644FAuLL}, +{0x00000003078644FAuLL, 0x0000000100000001uLL, 0x0000000000000003uLL, 0x00000000078644F7uLL}, +{0x00000003078644FAuLL, 0x0000000100000002uLL, 0x0000000000000003uLL, 0x00000000078644F4uLL}, +{0x00000003078644FAuLL, 0x0000000100000003uLL, 0x0000000000000003uLL, 0x00000000078644F1uLL}, +{0x00000003078644FAuLL, 0x0000000100000010uLL, 0x0000000000000003uLL, 0x00000000078644CAuLL}, +{0x00000003078644FAuLL, 0x00000001078644FAuLL, 0x0000000000000002uLL, 0x00000000F879BB06uLL}, +{0x00000003078644FAuLL, 0x000000010747AE14uLL, 0x0000000000000002uLL, 0x00000000F8F6E8D2uLL}, +{0x00000003078644FAuLL, 0x000000017FFFFFFFuLL, 0x0000000000000002uLL, 0x00000000078644FCuLL}, +{0x00000003078644FAuLL, 0x0000000180000000uLL, 0x0000000000000002uLL, 0x00000000078644FAuLL}, +{0x00000003078644FAuLL, 0x00000001FFFFFFFDuLL, 0x0000000000000001uLL, 0x00000001078644FDuLL}, +{0x00000003078644FAuLL, 0x00000001FFFFFFFEuLL, 0x0000000000000001uLL, 0x00000001078644FCuLL}, +{0x00000003078644FAuLL, 0x00000001FFFFFFFFuLL, 0x0000000000000001uLL, 0x00000001078644FBuLL}, +{0x00000003078644FAuLL, 0x0000000200000000uLL, 0x0000000000000001uLL, 0x00000001078644FAuLL}, +{0x00000003078644FAuLL, 0x0000000200000001uLL, 0x0000000000000001uLL, 0x00000001078644F9uLL}, +{0x00000003078644FAuLL, 0x0000000200000002uLL, 0x0000000000000001uLL, 0x00000001078644F8uLL}, +{0x00000003078644FAuLL, 0x0000000200000003uLL, 0x0000000000000001uLL, 0x00000001078644F7uLL}, +{0x00000003078644FAuLL, 0x0000000200000010uLL, 0x0000000000000001uLL, 0x00000001078644EAuLL}, +{0x00000003078644FAuLL, 0x00000002078644FAuLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x00000003078644FAuLL, 0x000000020747AE14uLL, 0x0000000000000001uLL, 0x00000001003E96E6uLL}, +{0x00000003078644FAuLL, 0x000000027FFFFFFFuLL, 0x0000000000000001uLL, 0x00000000878644FBuLL}, +{0x00000003078644FAuLL, 0x0000000280000000uLL, 0x0000000000000001uLL, 0x00000000878644FAuLL}, +{0x00000003078644FAuLL, 0x00000002FFFFFFFDuLL, 0x0000000000000001uLL, 0x00000000078644FDuLL}, +{0x00000003078644FAuLL, 0x00000002FFFFFFFEuLL, 0x0000000000000001uLL, 0x00000000078644FCuLL}, +{0x00000003078644FAuLL, 0x00000002FFFFFFFFuLL, 0x0000000000000001uLL, 0x00000000078644FBuLL}, +{0x00000003078644FAuLL, 0x0000000300000000uLL, 0x0000000000000001uLL, 0x00000000078644FAuLL}, +{0x00000003078644FAuLL, 0x0000000300000001uLL, 0x0000000000000001uLL, 0x00000000078644F9uLL}, +{0x00000003078644FAuLL, 0x0000000300000002uLL, 0x0000000000000001uLL, 0x00000000078644F8uLL}, +{0x00000003078644FAuLL, 0x0000000300000003uLL, 0x0000000000000001uLL, 0x00000000078644F7uLL}, +{0x00000003078644FAuLL, 0x0000000300000010uLL, 0x0000000000000001uLL, 0x00000000078644EAuLL}, +{0x00000003078644FAuLL, 0x00000003078644FAuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x00000003078644FAuLL, 0x000000030747AE14uLL, 0x0000000000000001uLL, 0x00000000003E96E6uLL}, +{0x00000003078644FAuLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x00000003078644FAuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003078644FAuLL}, +{0x000000030747AE14uLL, 0x0000000000000001uLL, 0x000000030747AE14uLL, 0x0000000000000000uLL}, +{0x000000030747AE14uLL, 0x0000000000000002uLL, 0x0000000183A3D70AuLL, 0x0000000000000000uLL}, +{0x000000030747AE14uLL, 0x0000000000000003uLL, 0x00000001026D3A06uLL, 0x0000000000000002uLL}, +{0x000000030747AE14uLL, 0x0000000000000010uLL, 0x0000000030747AE1uLL, 0x0000000000000004uLL}, +{0x000000030747AE14uLL, 0x00000000078644FAuLL, 0x0000000000000067uLL, 0x000000000041ED7EuLL}, +{0x000000030747AE14uLL, 0x000000000747AE14uLL, 0x000000000000006AuLL, 0x00000000039999CCuLL}, +{0x000000030747AE14uLL, 0x000000007FFFFFFFuLL, 0x0000000000000006uLL, 0x000000000747AE1AuLL}, +{0x000000030747AE14uLL, 0x0000000080000000uLL, 0x0000000000000006uLL, 0x000000000747AE14uLL}, +{0x000000030747AE14uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000003uLL, 0x000000000747AE1DuLL}, +{0x000000030747AE14uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000003uLL, 0x000000000747AE1AuLL}, +{0x000000030747AE14uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000003uLL, 0x000000000747AE17uLL}, +{0x000000030747AE14uLL, 0x0000000100000000uLL, 0x0000000000000003uLL, 0x000000000747AE14uLL}, +{0x000000030747AE14uLL, 0x0000000100000001uLL, 0x0000000000000003uLL, 0x000000000747AE11uLL}, +{0x000000030747AE14uLL, 0x0000000100000002uLL, 0x0000000000000003uLL, 0x000000000747AE0EuLL}, +{0x000000030747AE14uLL, 0x0000000100000003uLL, 0x0000000000000003uLL, 0x000000000747AE0BuLL}, +{0x000000030747AE14uLL, 0x0000000100000010uLL, 0x0000000000000003uLL, 0x000000000747ADE4uLL}, +{0x000000030747AE14uLL, 0x00000001078644FAuLL, 0x0000000000000002uLL, 0x00000000F83B2420uLL}, +{0x000000030747AE14uLL, 0x000000010747AE14uLL, 0x0000000000000002uLL, 0x00000000F8B851ECuLL}, +{0x000000030747AE14uLL, 0x000000017FFFFFFFuLL, 0x0000000000000002uLL, 0x000000000747AE16uLL}, +{0x000000030747AE14uLL, 0x0000000180000000uLL, 0x0000000000000002uLL, 0x000000000747AE14uLL}, +{0x000000030747AE14uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000001uLL, 0x000000010747AE17uLL}, +{0x000000030747AE14uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000001uLL, 0x000000010747AE16uLL}, +{0x000000030747AE14uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000001uLL, 0x000000010747AE15uLL}, +{0x000000030747AE14uLL, 0x0000000200000000uLL, 0x0000000000000001uLL, 0x000000010747AE14uLL}, +{0x000000030747AE14uLL, 0x0000000200000001uLL, 0x0000000000000001uLL, 0x000000010747AE13uLL}, +{0x000000030747AE14uLL, 0x0000000200000002uLL, 0x0000000000000001uLL, 0x000000010747AE12uLL}, +{0x000000030747AE14uLL, 0x0000000200000003uLL, 0x0000000000000001uLL, 0x000000010747AE11uLL}, +{0x000000030747AE14uLL, 0x0000000200000010uLL, 0x0000000000000001uLL, 0x000000010747AE04uLL}, +{0x000000030747AE14uLL, 0x00000002078644FAuLL, 0x0000000000000001uLL, 0x00000000FFC1691AuLL}, +{0x000000030747AE14uLL, 0x000000020747AE14uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x000000030747AE14uLL, 0x000000027FFFFFFFuLL, 0x0000000000000001uLL, 0x000000008747AE15uLL}, +{0x000000030747AE14uLL, 0x0000000280000000uLL, 0x0000000000000001uLL, 0x000000008747AE14uLL}, +{0x000000030747AE14uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000001uLL, 0x000000000747AE17uLL}, +{0x000000030747AE14uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000001uLL, 0x000000000747AE16uLL}, +{0x000000030747AE14uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000001uLL, 0x000000000747AE15uLL}, +{0x000000030747AE14uLL, 0x0000000300000000uLL, 0x0000000000000001uLL, 0x000000000747AE14uLL}, +{0x000000030747AE14uLL, 0x0000000300000001uLL, 0x0000000000000001uLL, 0x000000000747AE13uLL}, +{0x000000030747AE14uLL, 0x0000000300000002uLL, 0x0000000000000001uLL, 0x000000000747AE12uLL}, +{0x000000030747AE14uLL, 0x0000000300000003uLL, 0x0000000000000001uLL, 0x000000000747AE11uLL}, +{0x000000030747AE14uLL, 0x0000000300000010uLL, 0x0000000000000001uLL, 0x000000000747AE04uLL}, +{0x000000030747AE14uLL, 0x00000003078644FAuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x000000030747AE14uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x000000030747AE14uLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000030747AE14uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000030747AE14uLL}, +{0x000000037FFFFFFFuLL, 0x0000000000000001uLL, 0x000000037FFFFFFFuLL, 0x0000000000000000uLL}, +{0x000000037FFFFFFFuLL, 0x0000000000000002uLL, 0x00000001BFFFFFFFuLL, 0x0000000000000001uLL}, +{0x000000037FFFFFFFuLL, 0x0000000000000003uLL, 0x000000012AAAAAAAuLL, 0x0000000000000001uLL}, +{0x000000037FFFFFFFuLL, 0x0000000000000010uLL, 0x0000000037FFFFFFuLL, 0x000000000000000FuLL}, +{0x000000037FFFFFFFuLL, 0x00000000078644FAuLL, 0x0000000000000077uLL, 0x000000000095EFC9uLL}, +{0x000000037FFFFFFFuLL, 0x000000000747AE14uLL, 0x000000000000007BuLL, 0x00000000008F5C63uLL}, +{0x000000037FFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x0000000000000007uLL, 0x0000000000000006uLL}, +{0x000000037FFFFFFFuLL, 0x0000000080000000uLL, 0x0000000000000006uLL, 0x000000007FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x00000000FFFFFFFDuLL, 0x0000000000000003uLL, 0x0000000080000008uLL}, +{0x000000037FFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x0000000000000003uLL, 0x0000000080000005uLL}, +{0x000000037FFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x0000000000000003uLL, 0x0000000080000002uLL}, +{0x000000037FFFFFFFuLL, 0x0000000100000000uLL, 0x0000000000000003uLL, 0x000000007FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x0000000100000001uLL, 0x0000000000000003uLL, 0x000000007FFFFFFCuLL}, +{0x000000037FFFFFFFuLL, 0x0000000100000002uLL, 0x0000000000000003uLL, 0x000000007FFFFFF9uLL}, +{0x000000037FFFFFFFuLL, 0x0000000100000003uLL, 0x0000000000000003uLL, 0x000000007FFFFFF6uLL}, +{0x000000037FFFFFFFuLL, 0x0000000100000010uLL, 0x0000000000000003uLL, 0x000000007FFFFFCFuLL}, +{0x000000037FFFFFFFuLL, 0x00000001078644FAuLL, 0x0000000000000003uLL, 0x00000000696D3111uLL}, +{0x000000037FFFFFFFuLL, 0x000000010747AE14uLL, 0x0000000000000003uLL, 0x000000006A28F5C3uLL}, +{0x000000037FFFFFFFuLL, 0x000000017FFFFFFFuLL, 0x0000000000000002uLL, 0x0000000080000001uLL}, +{0x000000037FFFFFFFuLL, 0x0000000180000000uLL, 0x0000000000000002uLL, 0x000000007FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x00000001FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000180000002uLL}, +{0x000000037FFFFFFFuLL, 0x00000001FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000180000001uLL}, +{0x000000037FFFFFFFuLL, 0x00000001FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000180000000uLL}, +{0x000000037FFFFFFFuLL, 0x0000000200000000uLL, 0x0000000000000001uLL, 0x000000017FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x0000000200000001uLL, 0x0000000000000001uLL, 0x000000017FFFFFFEuLL}, +{0x000000037FFFFFFFuLL, 0x0000000200000002uLL, 0x0000000000000001uLL, 0x000000017FFFFFFDuLL}, +{0x000000037FFFFFFFuLL, 0x0000000200000003uLL, 0x0000000000000001uLL, 0x000000017FFFFFFCuLL}, +{0x000000037FFFFFFFuLL, 0x0000000200000010uLL, 0x0000000000000001uLL, 0x000000017FFFFFEFuLL}, +{0x000000037FFFFFFFuLL, 0x00000002078644FAuLL, 0x0000000000000001uLL, 0x000000017879BB05uLL}, +{0x000000037FFFFFFFuLL, 0x000000020747AE14uLL, 0x0000000000000001uLL, 0x0000000178B851EBuLL}, +{0x000000037FFFFFFFuLL, 0x000000027FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x000000037FFFFFFFuLL, 0x0000000280000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x00000002FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000080000002uLL}, +{0x000000037FFFFFFFuLL, 0x00000002FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000080000001uLL}, +{0x000000037FFFFFFFuLL, 0x00000002FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000000uLL}, +{0x000000037FFFFFFFuLL, 0x0000000300000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x0000000300000001uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x000000037FFFFFFFuLL, 0x0000000300000002uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0x000000037FFFFFFFuLL, 0x0000000300000003uLL, 0x0000000000000001uLL, 0x000000007FFFFFFCuLL}, +{0x000000037FFFFFFFuLL, 0x0000000300000010uLL, 0x0000000000000001uLL, 0x000000007FFFFFEFuLL}, +{0x000000037FFFFFFFuLL, 0x00000003078644FAuLL, 0x0000000000000001uLL, 0x000000007879BB05uLL}, +{0x000000037FFFFFFFuLL, 0x000000030747AE14uLL, 0x0000000000000001uLL, 0x0000000078B851EBuLL}, +{0x000000037FFFFFFFuLL, 0x000000037FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x000000037FFFFFFFuLL, 0x0000000380000000uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x000000037FFFFFFFuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000037FFFFFFFuLL}, +{0x0000000380000000uLL, 0x0000000000000001uLL, 0x0000000380000000uLL, 0x0000000000000000uLL}, +{0x0000000380000000uLL, 0x0000000000000002uLL, 0x00000001C0000000uLL, 0x0000000000000000uLL}, +{0x0000000380000000uLL, 0x0000000000000003uLL, 0x000000012AAAAAAAuLL, 0x0000000000000002uLL}, +{0x0000000380000000uLL, 0x0000000000000010uLL, 0x0000000038000000uLL, 0x0000000000000000uLL}, +{0x0000000380000000uLL, 0x00000000078644FAuLL, 0x0000000000000077uLL, 0x000000000095EFCAuLL}, +{0x0000000380000000uLL, 0x000000000747AE14uLL, 0x000000000000007BuLL, 0x00000000008F5C64uLL}, +{0x0000000380000000uLL, 0x000000007FFFFFFFuLL, 0x0000000000000007uLL, 0x0000000000000007uLL}, +{0x0000000380000000uLL, 0x0000000080000000uLL, 0x0000000000000007uLL, 0x0000000000000000uLL}, +{0x0000000380000000uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000003uLL, 0x0000000080000009uLL}, +{0x0000000380000000uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000003uLL, 0x0000000080000006uLL}, +{0x0000000380000000uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000003uLL, 0x0000000080000003uLL}, +{0x0000000380000000uLL, 0x0000000100000000uLL, 0x0000000000000003uLL, 0x0000000080000000uLL}, +{0x0000000380000000uLL, 0x0000000100000001uLL, 0x0000000000000003uLL, 0x000000007FFFFFFDuLL}, +{0x0000000380000000uLL, 0x0000000100000002uLL, 0x0000000000000003uLL, 0x000000007FFFFFFAuLL}, +{0x0000000380000000uLL, 0x0000000100000003uLL, 0x0000000000000003uLL, 0x000000007FFFFFF7uLL}, +{0x0000000380000000uLL, 0x0000000100000010uLL, 0x0000000000000003uLL, 0x000000007FFFFFD0uLL}, +{0x0000000380000000uLL, 0x00000001078644FAuLL, 0x0000000000000003uLL, 0x00000000696D3112uLL}, +{0x0000000380000000uLL, 0x000000010747AE14uLL, 0x0000000000000003uLL, 0x000000006A28F5C4uLL}, +{0x0000000380000000uLL, 0x000000017FFFFFFFuLL, 0x0000000000000002uLL, 0x0000000080000002uLL}, +{0x0000000380000000uLL, 0x0000000180000000uLL, 0x0000000000000002uLL, 0x0000000080000000uLL}, +{0x0000000380000000uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000180000003uLL}, +{0x0000000380000000uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000180000002uLL}, +{0x0000000380000000uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000180000001uLL}, +{0x0000000380000000uLL, 0x0000000200000000uLL, 0x0000000000000001uLL, 0x0000000180000000uLL}, +{0x0000000380000000uLL, 0x0000000200000001uLL, 0x0000000000000001uLL, 0x000000017FFFFFFFuLL}, +{0x0000000380000000uLL, 0x0000000200000002uLL, 0x0000000000000001uLL, 0x000000017FFFFFFEuLL}, +{0x0000000380000000uLL, 0x0000000200000003uLL, 0x0000000000000001uLL, 0x000000017FFFFFFDuLL}, +{0x0000000380000000uLL, 0x0000000200000010uLL, 0x0000000000000001uLL, 0x000000017FFFFFF0uLL}, +{0x0000000380000000uLL, 0x00000002078644FAuLL, 0x0000000000000001uLL, 0x000000017879BB06uLL}, +{0x0000000380000000uLL, 0x000000020747AE14uLL, 0x0000000000000001uLL, 0x0000000178B851ECuLL}, +{0x0000000380000000uLL, 0x000000027FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000100000001uLL}, +{0x0000000380000000uLL, 0x0000000280000000uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x0000000380000000uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000080000003uLL}, +{0x0000000380000000uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000080000002uLL}, +{0x0000000380000000uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000001uLL}, +{0x0000000380000000uLL, 0x0000000300000000uLL, 0x0000000000000001uLL, 0x0000000080000000uLL}, +{0x0000000380000000uLL, 0x0000000300000001uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0x0000000380000000uLL, 0x0000000300000002uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x0000000380000000uLL, 0x0000000300000003uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0x0000000380000000uLL, 0x0000000300000010uLL, 0x0000000000000001uLL, 0x000000007FFFFFF0uLL}, +{0x0000000380000000uLL, 0x00000003078644FAuLL, 0x0000000000000001uLL, 0x000000007879BB06uLL}, +{0x0000000380000000uLL, 0x000000030747AE14uLL, 0x0000000000000001uLL, 0x0000000078B851ECuLL}, +{0x0000000380000000uLL, 0x000000037FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x0000000380000000uLL, 0x0000000380000000uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0000000380000000uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x0000000380000000uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000000380000000uLL}, +{0x00000003FFFFFFFDuLL, 0x0000000000000001uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000000uLL}, +{0x00000003FFFFFFFDuLL, 0x0000000000000002uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000001uLL}, +{0x00000003FFFFFFFDuLL, 0x0000000000000003uLL, 0x0000000155555554uLL, 0x0000000000000001uLL}, +{0x00000003FFFFFFFDuLL, 0x0000000000000010uLL, 0x000000003FFFFFFFuLL, 0x000000000000000DuLL}, +{0x00000003FFFFFFFDuLL, 0x00000000078644FAuLL, 0x0000000000000088uLL, 0x0000000000AB5B2DuLL}, +{0x00000003FFFFFFFDuLL, 0x000000000747AE14uLL, 0x000000000000008CuLL, 0x0000000004CCCD0DuLL}, +{0x00000003FFFFFFFDuLL, 0x000000007FFFFFFFuLL, 0x0000000000000008uLL, 0x0000000000000005uLL}, +{0x00000003FFFFFFFDuLL, 0x0000000080000000uLL, 0x0000000000000007uLL, 0x000000007FFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x00000000FFFFFFFDuLL, 0x0000000000000004uLL, 0x0000000000000009uLL}, +{0x00000003FFFFFFFDuLL, 0x00000000FFFFFFFEuLL, 0x0000000000000004uLL, 0x0000000000000005uLL}, +{0x00000003FFFFFFFDuLL, 0x00000000FFFFFFFFuLL, 0x0000000000000004uLL, 0x0000000000000001uLL}, +{0x00000003FFFFFFFDuLL, 0x0000000100000000uLL, 0x0000000000000003uLL, 0x00000000FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x0000000100000001uLL, 0x0000000000000003uLL, 0x00000000FFFFFFFAuLL}, +{0x00000003FFFFFFFDuLL, 0x0000000100000002uLL, 0x0000000000000003uLL, 0x00000000FFFFFFF7uLL}, +{0x00000003FFFFFFFDuLL, 0x0000000100000003uLL, 0x0000000000000003uLL, 0x00000000FFFFFFF4uLL}, +{0x00000003FFFFFFFDuLL, 0x0000000100000010uLL, 0x0000000000000003uLL, 0x00000000FFFFFFCDuLL}, +{0x00000003FFFFFFFDuLL, 0x00000001078644FAuLL, 0x0000000000000003uLL, 0x00000000E96D310FuLL}, +{0x00000003FFFFFFFDuLL, 0x000000010747AE14uLL, 0x0000000000000003uLL, 0x00000000EA28F5C1uLL}, +{0x00000003FFFFFFFDuLL, 0x000000017FFFFFFFuLL, 0x0000000000000002uLL, 0x00000000FFFFFFFFuLL}, +{0x00000003FFFFFFFDuLL, 0x0000000180000000uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x00000001FFFFFFFDuLL, 0x0000000000000002uLL, 0x0000000000000003uLL}, +{0x00000003FFFFFFFDuLL, 0x00000001FFFFFFFEuLL, 0x0000000000000002uLL, 0x0000000000000001uLL}, +{0x00000003FFFFFFFDuLL, 0x00000001FFFFFFFFuLL, 0x0000000000000001uLL, 0x00000001FFFFFFFEuLL}, +{0x00000003FFFFFFFDuLL, 0x0000000200000000uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x0000000200000001uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFCuLL}, +{0x00000003FFFFFFFDuLL, 0x0000000200000002uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFBuLL}, +{0x00000003FFFFFFFDuLL, 0x0000000200000003uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFAuLL}, +{0x00000003FFFFFFFDuLL, 0x0000000200000010uLL, 0x0000000000000001uLL, 0x00000001FFFFFFEDuLL}, +{0x00000003FFFFFFFDuLL, 0x00000002078644FAuLL, 0x0000000000000001uLL, 0x00000001F879BB03uLL}, +{0x00000003FFFFFFFDuLL, 0x000000020747AE14uLL, 0x0000000000000001uLL, 0x00000001F8B851E9uLL}, +{0x00000003FFFFFFFDuLL, 0x000000027FFFFFFFuLL, 0x0000000000000001uLL, 0x000000017FFFFFFEuLL}, +{0x00000003FFFFFFFDuLL, 0x0000000280000000uLL, 0x0000000000000001uLL, 0x000000017FFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x00000002FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x00000003FFFFFFFDuLL, 0x00000002FFFFFFFEuLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0x00000003FFFFFFFDuLL, 0x00000002FFFFFFFFuLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0x00000003FFFFFFFDuLL, 0x0000000300000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x0000000300000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFCuLL}, +{0x00000003FFFFFFFDuLL, 0x0000000300000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFBuLL}, +{0x00000003FFFFFFFDuLL, 0x0000000300000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFAuLL}, +{0x00000003FFFFFFFDuLL, 0x0000000300000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFEDuLL}, +{0x00000003FFFFFFFDuLL, 0x00000003078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB03uLL}, +{0x00000003FFFFFFFDuLL, 0x000000030747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851E9uLL}, +{0x00000003FFFFFFFDuLL, 0x000000037FFFFFFFuLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x00000003FFFFFFFDuLL, 0x0000000380000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x00000003FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x00000003FFFFFFFDuLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFDuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFDuLL}, +{0x00000003FFFFFFFEuLL, 0x0000000000000001uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000000uLL}, +{0x00000003FFFFFFFEuLL, 0x0000000000000002uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000000uLL}, +{0x00000003FFFFFFFEuLL, 0x0000000000000003uLL, 0x0000000155555554uLL, 0x0000000000000002uLL}, +{0x00000003FFFFFFFEuLL, 0x0000000000000010uLL, 0x000000003FFFFFFFuLL, 0x000000000000000EuLL}, +{0x00000003FFFFFFFEuLL, 0x00000000078644FAuLL, 0x0000000000000088uLL, 0x0000000000AB5B2EuLL}, +{0x00000003FFFFFFFEuLL, 0x000000000747AE14uLL, 0x000000000000008CuLL, 0x0000000004CCCD0EuLL}, +{0x00000003FFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x0000000000000008uLL, 0x0000000000000006uLL}, +{0x00000003FFFFFFFEuLL, 0x0000000080000000uLL, 0x0000000000000007uLL, 0x000000007FFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x00000000FFFFFFFDuLL, 0x0000000000000004uLL, 0x000000000000000AuLL}, +{0x00000003FFFFFFFEuLL, 0x00000000FFFFFFFEuLL, 0x0000000000000004uLL, 0x0000000000000006uLL}, +{0x00000003FFFFFFFEuLL, 0x00000000FFFFFFFFuLL, 0x0000000000000004uLL, 0x0000000000000002uLL}, +{0x00000003FFFFFFFEuLL, 0x0000000100000000uLL, 0x0000000000000003uLL, 0x00000000FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x0000000100000001uLL, 0x0000000000000003uLL, 0x00000000FFFFFFFBuLL}, +{0x00000003FFFFFFFEuLL, 0x0000000100000002uLL, 0x0000000000000003uLL, 0x00000000FFFFFFF8uLL}, +{0x00000003FFFFFFFEuLL, 0x0000000100000003uLL, 0x0000000000000003uLL, 0x00000000FFFFFFF5uLL}, +{0x00000003FFFFFFFEuLL, 0x0000000100000010uLL, 0x0000000000000003uLL, 0x00000000FFFFFFCEuLL}, +{0x00000003FFFFFFFEuLL, 0x00000001078644FAuLL, 0x0000000000000003uLL, 0x00000000E96D3110uLL}, +{0x00000003FFFFFFFEuLL, 0x000000010747AE14uLL, 0x0000000000000003uLL, 0x00000000EA28F5C2uLL}, +{0x00000003FFFFFFFEuLL, 0x000000017FFFFFFFuLL, 0x0000000000000002uLL, 0x0000000100000000uLL}, +{0x00000003FFFFFFFEuLL, 0x0000000180000000uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x00000001FFFFFFFDuLL, 0x0000000000000002uLL, 0x0000000000000004uLL}, +{0x00000003FFFFFFFEuLL, 0x00000001FFFFFFFEuLL, 0x0000000000000002uLL, 0x0000000000000002uLL}, +{0x00000003FFFFFFFEuLL, 0x00000001FFFFFFFFuLL, 0x0000000000000002uLL, 0x0000000000000000uLL}, +{0x00000003FFFFFFFEuLL, 0x0000000200000000uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x0000000200000001uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFDuLL}, +{0x00000003FFFFFFFEuLL, 0x0000000200000002uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFCuLL}, +{0x00000003FFFFFFFEuLL, 0x0000000200000003uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFBuLL}, +{0x00000003FFFFFFFEuLL, 0x0000000200000010uLL, 0x0000000000000001uLL, 0x00000001FFFFFFEEuLL}, +{0x00000003FFFFFFFEuLL, 0x00000002078644FAuLL, 0x0000000000000001uLL, 0x00000001F879BB04uLL}, +{0x00000003FFFFFFFEuLL, 0x000000020747AE14uLL, 0x0000000000000001uLL, 0x00000001F8B851EAuLL}, +{0x00000003FFFFFFFEuLL, 0x000000027FFFFFFFuLL, 0x0000000000000001uLL, 0x000000017FFFFFFFuLL}, +{0x00000003FFFFFFFEuLL, 0x0000000280000000uLL, 0x0000000000000001uLL, 0x000000017FFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x00000002FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000100000001uLL}, +{0x00000003FFFFFFFEuLL, 0x00000002FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x00000003FFFFFFFEuLL, 0x00000002FFFFFFFFuLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0x00000003FFFFFFFEuLL, 0x0000000300000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x0000000300000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0x00000003FFFFFFFEuLL, 0x0000000300000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFCuLL}, +{0x00000003FFFFFFFEuLL, 0x0000000300000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFBuLL}, +{0x00000003FFFFFFFEuLL, 0x0000000300000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFEEuLL}, +{0x00000003FFFFFFFEuLL, 0x00000003078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB04uLL}, +{0x00000003FFFFFFFEuLL, 0x000000030747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EAuLL}, +{0x00000003FFFFFFFEuLL, 0x000000037FFFFFFFuLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0x00000003FFFFFFFEuLL, 0x0000000380000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x00000003FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x00000003FFFFFFFEuLL, 0x00000003FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x00000003FFFFFFFEuLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFEuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFEuLL}, +{0x00000003FFFFFFFFuLL, 0x0000000000000001uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000000uLL}, +{0x00000003FFFFFFFFuLL, 0x0000000000000002uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000001uLL}, +{0x00000003FFFFFFFFuLL, 0x0000000000000003uLL, 0x0000000155555555uLL, 0x0000000000000000uLL}, +{0x00000003FFFFFFFFuLL, 0x0000000000000010uLL, 0x000000003FFFFFFFuLL, 0x000000000000000FuLL}, +{0x00000003FFFFFFFFuLL, 0x00000000078644FAuLL, 0x0000000000000088uLL, 0x0000000000AB5B2FuLL}, +{0x00000003FFFFFFFFuLL, 0x000000000747AE14uLL, 0x000000000000008CuLL, 0x0000000004CCCD0FuLL}, +{0x00000003FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x0000000000000008uLL, 0x0000000000000007uLL}, +{0x00000003FFFFFFFFuLL, 0x0000000080000000uLL, 0x0000000000000007uLL, 0x000000007FFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x00000000FFFFFFFDuLL, 0x0000000000000004uLL, 0x000000000000000BuLL}, +{0x00000003FFFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x0000000000000004uLL, 0x0000000000000007uLL}, +{0x00000003FFFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x0000000000000004uLL, 0x0000000000000003uLL}, +{0x00000003FFFFFFFFuLL, 0x0000000100000000uLL, 0x0000000000000003uLL, 0x00000000FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x0000000100000001uLL, 0x0000000000000003uLL, 0x00000000FFFFFFFCuLL}, +{0x00000003FFFFFFFFuLL, 0x0000000100000002uLL, 0x0000000000000003uLL, 0x00000000FFFFFFF9uLL}, +{0x00000003FFFFFFFFuLL, 0x0000000100000003uLL, 0x0000000000000003uLL, 0x00000000FFFFFFF6uLL}, +{0x00000003FFFFFFFFuLL, 0x0000000100000010uLL, 0x0000000000000003uLL, 0x00000000FFFFFFCFuLL}, +{0x00000003FFFFFFFFuLL, 0x00000001078644FAuLL, 0x0000000000000003uLL, 0x00000000E96D3111uLL}, +{0x00000003FFFFFFFFuLL, 0x000000010747AE14uLL, 0x0000000000000003uLL, 0x00000000EA28F5C3uLL}, +{0x00000003FFFFFFFFuLL, 0x000000017FFFFFFFuLL, 0x0000000000000002uLL, 0x0000000100000001uLL}, +{0x00000003FFFFFFFFuLL, 0x0000000180000000uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x00000001FFFFFFFDuLL, 0x0000000000000002uLL, 0x0000000000000005uLL}, +{0x00000003FFFFFFFFuLL, 0x00000001FFFFFFFEuLL, 0x0000000000000002uLL, 0x0000000000000003uLL}, +{0x00000003FFFFFFFFuLL, 0x00000001FFFFFFFFuLL, 0x0000000000000002uLL, 0x0000000000000001uLL}, +{0x00000003FFFFFFFFuLL, 0x0000000200000000uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x0000000200000001uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFEuLL}, +{0x00000003FFFFFFFFuLL, 0x0000000200000002uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFDuLL}, +{0x00000003FFFFFFFFuLL, 0x0000000200000003uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFCuLL}, +{0x00000003FFFFFFFFuLL, 0x0000000200000010uLL, 0x0000000000000001uLL, 0x00000001FFFFFFEFuLL}, +{0x00000003FFFFFFFFuLL, 0x00000002078644FAuLL, 0x0000000000000001uLL, 0x00000001F879BB05uLL}, +{0x00000003FFFFFFFFuLL, 0x000000020747AE14uLL, 0x0000000000000001uLL, 0x00000001F8B851EBuLL}, +{0x00000003FFFFFFFFuLL, 0x000000027FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000180000000uLL}, +{0x00000003FFFFFFFFuLL, 0x0000000280000000uLL, 0x0000000000000001uLL, 0x000000017FFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x00000002FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000100000002uLL}, +{0x00000003FFFFFFFFuLL, 0x00000002FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000100000001uLL}, +{0x00000003FFFFFFFFuLL, 0x00000002FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x00000003FFFFFFFFuLL, 0x0000000300000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x0000000300000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0x00000003FFFFFFFFuLL, 0x0000000300000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0x00000003FFFFFFFFuLL, 0x0000000300000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFCuLL}, +{0x00000003FFFFFFFFuLL, 0x0000000300000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFEFuLL}, +{0x00000003FFFFFFFFuLL, 0x00000003078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB05uLL}, +{0x00000003FFFFFFFFuLL, 0x000000030747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EBuLL}, +{0x00000003FFFFFFFFuLL, 0x000000037FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000000uLL}, +{0x00000003FFFFFFFFuLL, 0x0000000380000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x00000003FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0x00000003FFFFFFFFuLL, 0x00000003FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x00000003FFFFFFFFuLL, 0x00000003FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x00000003FFFFFFFFuLL, 0x0000001000000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x00000003FFFFFFFFuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000003FFFFFFFFuLL}, +{0x0000001000000000uLL, 0x0000000000000001uLL, 0x0000001000000000uLL, 0x0000000000000000uLL}, +{0x0000001000000000uLL, 0x0000000000000002uLL, 0x0000000800000000uLL, 0x0000000000000000uLL}, +{0x0000001000000000uLL, 0x0000000000000003uLL, 0x0000000555555555uLL, 0x0000000000000001uLL}, +{0x0000001000000000uLL, 0x0000000000000010uLL, 0x0000000100000000uLL, 0x0000000000000000uLL}, +{0x0000001000000000uLL, 0x00000000078644FAuLL, 0x0000000000000220uLL, 0x0000000002AD6CC0uLL}, +{0x0000001000000000uLL, 0x000000000747AE14uLL, 0x0000000000000232uLL, 0x0000000004A3D818uLL}, +{0x0000001000000000uLL, 0x000000007FFFFFFFuLL, 0x0000000000000020uLL, 0x0000000000000020uLL}, +{0x0000001000000000uLL, 0x0000000080000000uLL, 0x0000000000000020uLL, 0x0000000000000000uLL}, +{0x0000001000000000uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000010uLL, 0x0000000000000030uLL}, +{0x0000001000000000uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000010uLL, 0x0000000000000020uLL}, +{0x0000001000000000uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000010uLL, 0x0000000000000010uLL}, +{0x0000001000000000uLL, 0x0000000100000000uLL, 0x0000000000000010uLL, 0x0000000000000000uLL}, +{0x0000001000000000uLL, 0x0000000100000001uLL, 0x000000000000000FuLL, 0x00000000FFFFFFF1uLL}, +{0x0000001000000000uLL, 0x0000000100000002uLL, 0x000000000000000FuLL, 0x00000000FFFFFFE2uLL}, +{0x0000001000000000uLL, 0x0000000100000003uLL, 0x000000000000000FuLL, 0x00000000FFFFFFD3uLL}, +{0x0000001000000000uLL, 0x0000000100000010uLL, 0x000000000000000FuLL, 0x00000000FFFFFF10uLL}, +{0x0000001000000000uLL, 0x00000001078644FAuLL, 0x000000000000000FuLL, 0x000000008F21F55AuLL}, +{0x0000001000000000uLL, 0x000000010747AE14uLL, 0x000000000000000FuLL, 0x0000000092CCCCD4uLL}, +{0x0000001000000000uLL, 0x000000017FFFFFFFuLL, 0x000000000000000AuLL, 0x000000010000000AuLL}, +{0x0000001000000000uLL, 0x0000000180000000uLL, 0x000000000000000AuLL, 0x0000000100000000uLL}, +{0x0000001000000000uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000008uLL, 0x0000000000000018uLL}, +{0x0000001000000000uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000008uLL, 0x0000000000000010uLL}, +{0x0000001000000000uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000008uLL, 0x0000000000000008uLL}, +{0x0000001000000000uLL, 0x0000000200000000uLL, 0x0000000000000008uLL, 0x0000000000000000uLL}, +{0x0000001000000000uLL, 0x0000000200000001uLL, 0x0000000000000007uLL, 0x00000001FFFFFFF9uLL}, +{0x0000001000000000uLL, 0x0000000200000002uLL, 0x0000000000000007uLL, 0x00000001FFFFFFF2uLL}, +{0x0000001000000000uLL, 0x0000000200000003uLL, 0x0000000000000007uLL, 0x00000001FFFFFFEBuLL}, +{0x0000001000000000uLL, 0x0000000200000010uLL, 0x0000000000000007uLL, 0x00000001FFFFFF90uLL}, +{0x0000001000000000uLL, 0x00000002078644FAuLL, 0x0000000000000007uLL, 0x00000001CB541D2AuLL}, +{0x0000001000000000uLL, 0x000000020747AE14uLL, 0x0000000000000007uLL, 0x00000001CD0A3D74uLL}, +{0x0000001000000000uLL, 0x000000027FFFFFFFuLL, 0x0000000000000006uLL, 0x0000000100000006uLL}, +{0x0000001000000000uLL, 0x0000000280000000uLL, 0x0000000000000006uLL, 0x0000000100000000uLL}, +{0x0000001000000000uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000005uLL, 0x000000010000000FuLL}, +{0x0000001000000000uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000005uLL, 0x000000010000000AuLL}, +{0x0000001000000000uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000005uLL, 0x0000000100000005uLL}, +{0x0000001000000000uLL, 0x0000000300000000uLL, 0x0000000000000005uLL, 0x0000000100000000uLL}, +{0x0000001000000000uLL, 0x0000000300000001uLL, 0x0000000000000005uLL, 0x00000000FFFFFFFBuLL}, +{0x0000001000000000uLL, 0x0000000300000002uLL, 0x0000000000000005uLL, 0x00000000FFFFFFF6uLL}, +{0x0000001000000000uLL, 0x0000000300000003uLL, 0x0000000000000005uLL, 0x00000000FFFFFFF1uLL}, +{0x0000001000000000uLL, 0x0000000300000010uLL, 0x0000000000000005uLL, 0x00000000FFFFFFB0uLL}, +{0x0000001000000000uLL, 0x00000003078644FAuLL, 0x0000000000000005uLL, 0x00000000DA60A71EuLL}, +{0x0000001000000000uLL, 0x000000030747AE14uLL, 0x0000000000000005uLL, 0x00000000DB99999CuLL}, +{0x0000001000000000uLL, 0x000000037FFFFFFFuLL, 0x0000000000000004uLL, 0x0000000200000004uLL}, +{0x0000001000000000uLL, 0x0000000380000000uLL, 0x0000000000000004uLL, 0x0000000200000000uLL}, +{0x0000001000000000uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000004uLL, 0x000000000000000CuLL}, +{0x0000001000000000uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000004uLL, 0x0000000000000008uLL}, +{0x0000001000000000uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000004uLL, 0x0000000000000004uLL}, +{0x0000001000000000uLL, 0x0000001000000000uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0000001000000000uLL, 0x0000001000000001uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000000uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000000uLL}, +{0x0000001000000001uLL, 0x0000000000000001uLL, 0x0000001000000001uLL, 0x0000000000000000uLL}, +{0x0000001000000001uLL, 0x0000000000000002uLL, 0x0000000800000000uLL, 0x0000000000000001uLL}, +{0x0000001000000001uLL, 0x0000000000000003uLL, 0x0000000555555555uLL, 0x0000000000000002uLL}, +{0x0000001000000001uLL, 0x0000000000000010uLL, 0x0000000100000000uLL, 0x0000000000000001uLL}, +{0x0000001000000001uLL, 0x00000000078644FAuLL, 0x0000000000000220uLL, 0x0000000002AD6CC1uLL}, +{0x0000001000000001uLL, 0x000000000747AE14uLL, 0x0000000000000232uLL, 0x0000000004A3D819uLL}, +{0x0000001000000001uLL, 0x000000007FFFFFFFuLL, 0x0000000000000020uLL, 0x0000000000000021uLL}, +{0x0000001000000001uLL, 0x0000000080000000uLL, 0x0000000000000020uLL, 0x0000000000000001uLL}, +{0x0000001000000001uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000010uLL, 0x0000000000000031uLL}, +{0x0000001000000001uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000010uLL, 0x0000000000000021uLL}, +{0x0000001000000001uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000010uLL, 0x0000000000000011uLL}, +{0x0000001000000001uLL, 0x0000000100000000uLL, 0x0000000000000010uLL, 0x0000000000000001uLL}, +{0x0000001000000001uLL, 0x0000000100000001uLL, 0x000000000000000FuLL, 0x00000000FFFFFFF2uLL}, +{0x0000001000000001uLL, 0x0000000100000002uLL, 0x000000000000000FuLL, 0x00000000FFFFFFE3uLL}, +{0x0000001000000001uLL, 0x0000000100000003uLL, 0x000000000000000FuLL, 0x00000000FFFFFFD4uLL}, +{0x0000001000000001uLL, 0x0000000100000010uLL, 0x000000000000000FuLL, 0x00000000FFFFFF11uLL}, +{0x0000001000000001uLL, 0x00000001078644FAuLL, 0x000000000000000FuLL, 0x000000008F21F55BuLL}, +{0x0000001000000001uLL, 0x000000010747AE14uLL, 0x000000000000000FuLL, 0x0000000092CCCCD5uLL}, +{0x0000001000000001uLL, 0x000000017FFFFFFFuLL, 0x000000000000000AuLL, 0x000000010000000BuLL}, +{0x0000001000000001uLL, 0x0000000180000000uLL, 0x000000000000000AuLL, 0x0000000100000001uLL}, +{0x0000001000000001uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000008uLL, 0x0000000000000019uLL}, +{0x0000001000000001uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000008uLL, 0x0000000000000011uLL}, +{0x0000001000000001uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000008uLL, 0x0000000000000009uLL}, +{0x0000001000000001uLL, 0x0000000200000000uLL, 0x0000000000000008uLL, 0x0000000000000001uLL}, +{0x0000001000000001uLL, 0x0000000200000001uLL, 0x0000000000000007uLL, 0x00000001FFFFFFFAuLL}, +{0x0000001000000001uLL, 0x0000000200000002uLL, 0x0000000000000007uLL, 0x00000001FFFFFFF3uLL}, +{0x0000001000000001uLL, 0x0000000200000003uLL, 0x0000000000000007uLL, 0x00000001FFFFFFECuLL}, +{0x0000001000000001uLL, 0x0000000200000010uLL, 0x0000000000000007uLL, 0x00000001FFFFFF91uLL}, +{0x0000001000000001uLL, 0x00000002078644FAuLL, 0x0000000000000007uLL, 0x00000001CB541D2BuLL}, +{0x0000001000000001uLL, 0x000000020747AE14uLL, 0x0000000000000007uLL, 0x00000001CD0A3D75uLL}, +{0x0000001000000001uLL, 0x000000027FFFFFFFuLL, 0x0000000000000006uLL, 0x0000000100000007uLL}, +{0x0000001000000001uLL, 0x0000000280000000uLL, 0x0000000000000006uLL, 0x0000000100000001uLL}, +{0x0000001000000001uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000005uLL, 0x0000000100000010uLL}, +{0x0000001000000001uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000005uLL, 0x000000010000000BuLL}, +{0x0000001000000001uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000005uLL, 0x0000000100000006uLL}, +{0x0000001000000001uLL, 0x0000000300000000uLL, 0x0000000000000005uLL, 0x0000000100000001uLL}, +{0x0000001000000001uLL, 0x0000000300000001uLL, 0x0000000000000005uLL, 0x00000000FFFFFFFCuLL}, +{0x0000001000000001uLL, 0x0000000300000002uLL, 0x0000000000000005uLL, 0x00000000FFFFFFF7uLL}, +{0x0000001000000001uLL, 0x0000000300000003uLL, 0x0000000000000005uLL, 0x00000000FFFFFFF2uLL}, +{0x0000001000000001uLL, 0x0000000300000010uLL, 0x0000000000000005uLL, 0x00000000FFFFFFB1uLL}, +{0x0000001000000001uLL, 0x00000003078644FAuLL, 0x0000000000000005uLL, 0x00000000DA60A71FuLL}, +{0x0000001000000001uLL, 0x000000030747AE14uLL, 0x0000000000000005uLL, 0x00000000DB99999DuLL}, +{0x0000001000000001uLL, 0x000000037FFFFFFFuLL, 0x0000000000000004uLL, 0x0000000200000005uLL}, +{0x0000001000000001uLL, 0x0000000380000000uLL, 0x0000000000000004uLL, 0x0000000200000001uLL}, +{0x0000001000000001uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000004uLL, 0x000000000000000DuLL}, +{0x0000001000000001uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000004uLL, 0x0000000000000009uLL}, +{0x0000001000000001uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000004uLL, 0x0000000000000005uLL}, +{0x0000001000000001uLL, 0x0000001000000000uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x0000001000000001uLL, 0x0000001000000001uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0000001000000001uLL, 0x0000001000000002uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000001uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000001uLL}, +{0x0000001000000002uLL, 0x0000000000000001uLL, 0x0000001000000002uLL, 0x0000000000000000uLL}, +{0x0000001000000002uLL, 0x0000000000000002uLL, 0x0000000800000001uLL, 0x0000000000000000uLL}, +{0x0000001000000002uLL, 0x0000000000000003uLL, 0x0000000555555556uLL, 0x0000000000000000uLL}, +{0x0000001000000002uLL, 0x0000000000000010uLL, 0x0000000100000000uLL, 0x0000000000000002uLL}, +{0x0000001000000002uLL, 0x00000000078644FAuLL, 0x0000000000000220uLL, 0x0000000002AD6CC2uLL}, +{0x0000001000000002uLL, 0x000000000747AE14uLL, 0x0000000000000232uLL, 0x0000000004A3D81AuLL}, +{0x0000001000000002uLL, 0x000000007FFFFFFFuLL, 0x0000000000000020uLL, 0x0000000000000022uLL}, +{0x0000001000000002uLL, 0x0000000080000000uLL, 0x0000000000000020uLL, 0x0000000000000002uLL}, +{0x0000001000000002uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000010uLL, 0x0000000000000032uLL}, +{0x0000001000000002uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000010uLL, 0x0000000000000022uLL}, +{0x0000001000000002uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000010uLL, 0x0000000000000012uLL}, +{0x0000001000000002uLL, 0x0000000100000000uLL, 0x0000000000000010uLL, 0x0000000000000002uLL}, +{0x0000001000000002uLL, 0x0000000100000001uLL, 0x000000000000000FuLL, 0x00000000FFFFFFF3uLL}, +{0x0000001000000002uLL, 0x0000000100000002uLL, 0x000000000000000FuLL, 0x00000000FFFFFFE4uLL}, +{0x0000001000000002uLL, 0x0000000100000003uLL, 0x000000000000000FuLL, 0x00000000FFFFFFD5uLL}, +{0x0000001000000002uLL, 0x0000000100000010uLL, 0x000000000000000FuLL, 0x00000000FFFFFF12uLL}, +{0x0000001000000002uLL, 0x00000001078644FAuLL, 0x000000000000000FuLL, 0x000000008F21F55CuLL}, +{0x0000001000000002uLL, 0x000000010747AE14uLL, 0x000000000000000FuLL, 0x0000000092CCCCD6uLL}, +{0x0000001000000002uLL, 0x000000017FFFFFFFuLL, 0x000000000000000AuLL, 0x000000010000000CuLL}, +{0x0000001000000002uLL, 0x0000000180000000uLL, 0x000000000000000AuLL, 0x0000000100000002uLL}, +{0x0000001000000002uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000008uLL, 0x000000000000001AuLL}, +{0x0000001000000002uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000008uLL, 0x0000000000000012uLL}, +{0x0000001000000002uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000008uLL, 0x000000000000000AuLL}, +{0x0000001000000002uLL, 0x0000000200000000uLL, 0x0000000000000008uLL, 0x0000000000000002uLL}, +{0x0000001000000002uLL, 0x0000000200000001uLL, 0x0000000000000007uLL, 0x00000001FFFFFFFBuLL}, +{0x0000001000000002uLL, 0x0000000200000002uLL, 0x0000000000000007uLL, 0x00000001FFFFFFF4uLL}, +{0x0000001000000002uLL, 0x0000000200000003uLL, 0x0000000000000007uLL, 0x00000001FFFFFFEDuLL}, +{0x0000001000000002uLL, 0x0000000200000010uLL, 0x0000000000000007uLL, 0x00000001FFFFFF92uLL}, +{0x0000001000000002uLL, 0x00000002078644FAuLL, 0x0000000000000007uLL, 0x00000001CB541D2CuLL}, +{0x0000001000000002uLL, 0x000000020747AE14uLL, 0x0000000000000007uLL, 0x00000001CD0A3D76uLL}, +{0x0000001000000002uLL, 0x000000027FFFFFFFuLL, 0x0000000000000006uLL, 0x0000000100000008uLL}, +{0x0000001000000002uLL, 0x0000000280000000uLL, 0x0000000000000006uLL, 0x0000000100000002uLL}, +{0x0000001000000002uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000005uLL, 0x0000000100000011uLL}, +{0x0000001000000002uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000005uLL, 0x000000010000000CuLL}, +{0x0000001000000002uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000005uLL, 0x0000000100000007uLL}, +{0x0000001000000002uLL, 0x0000000300000000uLL, 0x0000000000000005uLL, 0x0000000100000002uLL}, +{0x0000001000000002uLL, 0x0000000300000001uLL, 0x0000000000000005uLL, 0x00000000FFFFFFFDuLL}, +{0x0000001000000002uLL, 0x0000000300000002uLL, 0x0000000000000005uLL, 0x00000000FFFFFFF8uLL}, +{0x0000001000000002uLL, 0x0000000300000003uLL, 0x0000000000000005uLL, 0x00000000FFFFFFF3uLL}, +{0x0000001000000002uLL, 0x0000000300000010uLL, 0x0000000000000005uLL, 0x00000000FFFFFFB2uLL}, +{0x0000001000000002uLL, 0x00000003078644FAuLL, 0x0000000000000005uLL, 0x00000000DA60A720uLL}, +{0x0000001000000002uLL, 0x000000030747AE14uLL, 0x0000000000000005uLL, 0x00000000DB99999EuLL}, +{0x0000001000000002uLL, 0x000000037FFFFFFFuLL, 0x0000000000000004uLL, 0x0000000200000006uLL}, +{0x0000001000000002uLL, 0x0000000380000000uLL, 0x0000000000000004uLL, 0x0000000200000002uLL}, +{0x0000001000000002uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000004uLL, 0x000000000000000EuLL}, +{0x0000001000000002uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000004uLL, 0x000000000000000AuLL}, +{0x0000001000000002uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000004uLL, 0x0000000000000006uLL}, +{0x0000001000000002uLL, 0x0000001000000000uLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0x0000001000000002uLL, 0x0000001000000001uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x0000001000000002uLL, 0x0000001000000002uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0000001000000002uLL, 0x0000001000000003uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000002uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000002uLL}, +{0x0000001000000003uLL, 0x0000000000000001uLL, 0x0000001000000003uLL, 0x0000000000000000uLL}, +{0x0000001000000003uLL, 0x0000000000000002uLL, 0x0000000800000001uLL, 0x0000000000000001uLL}, +{0x0000001000000003uLL, 0x0000000000000003uLL, 0x0000000555555556uLL, 0x0000000000000001uLL}, +{0x0000001000000003uLL, 0x0000000000000010uLL, 0x0000000100000000uLL, 0x0000000000000003uLL}, +{0x0000001000000003uLL, 0x00000000078644FAuLL, 0x0000000000000220uLL, 0x0000000002AD6CC3uLL}, +{0x0000001000000003uLL, 0x000000000747AE14uLL, 0x0000000000000232uLL, 0x0000000004A3D81BuLL}, +{0x0000001000000003uLL, 0x000000007FFFFFFFuLL, 0x0000000000000020uLL, 0x0000000000000023uLL}, +{0x0000001000000003uLL, 0x0000000080000000uLL, 0x0000000000000020uLL, 0x0000000000000003uLL}, +{0x0000001000000003uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000010uLL, 0x0000000000000033uLL}, +{0x0000001000000003uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000010uLL, 0x0000000000000023uLL}, +{0x0000001000000003uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000010uLL, 0x0000000000000013uLL}, +{0x0000001000000003uLL, 0x0000000100000000uLL, 0x0000000000000010uLL, 0x0000000000000003uLL}, +{0x0000001000000003uLL, 0x0000000100000001uLL, 0x000000000000000FuLL, 0x00000000FFFFFFF4uLL}, +{0x0000001000000003uLL, 0x0000000100000002uLL, 0x000000000000000FuLL, 0x00000000FFFFFFE5uLL}, +{0x0000001000000003uLL, 0x0000000100000003uLL, 0x000000000000000FuLL, 0x00000000FFFFFFD6uLL}, +{0x0000001000000003uLL, 0x0000000100000010uLL, 0x000000000000000FuLL, 0x00000000FFFFFF13uLL}, +{0x0000001000000003uLL, 0x00000001078644FAuLL, 0x000000000000000FuLL, 0x000000008F21F55DuLL}, +{0x0000001000000003uLL, 0x000000010747AE14uLL, 0x000000000000000FuLL, 0x0000000092CCCCD7uLL}, +{0x0000001000000003uLL, 0x000000017FFFFFFFuLL, 0x000000000000000AuLL, 0x000000010000000DuLL}, +{0x0000001000000003uLL, 0x0000000180000000uLL, 0x000000000000000AuLL, 0x0000000100000003uLL}, +{0x0000001000000003uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000008uLL, 0x000000000000001BuLL}, +{0x0000001000000003uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000008uLL, 0x0000000000000013uLL}, +{0x0000001000000003uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000008uLL, 0x000000000000000BuLL}, +{0x0000001000000003uLL, 0x0000000200000000uLL, 0x0000000000000008uLL, 0x0000000000000003uLL}, +{0x0000001000000003uLL, 0x0000000200000001uLL, 0x0000000000000007uLL, 0x00000001FFFFFFFCuLL}, +{0x0000001000000003uLL, 0x0000000200000002uLL, 0x0000000000000007uLL, 0x00000001FFFFFFF5uLL}, +{0x0000001000000003uLL, 0x0000000200000003uLL, 0x0000000000000007uLL, 0x00000001FFFFFFEEuLL}, +{0x0000001000000003uLL, 0x0000000200000010uLL, 0x0000000000000007uLL, 0x00000001FFFFFF93uLL}, +{0x0000001000000003uLL, 0x00000002078644FAuLL, 0x0000000000000007uLL, 0x00000001CB541D2DuLL}, +{0x0000001000000003uLL, 0x000000020747AE14uLL, 0x0000000000000007uLL, 0x00000001CD0A3D77uLL}, +{0x0000001000000003uLL, 0x000000027FFFFFFFuLL, 0x0000000000000006uLL, 0x0000000100000009uLL}, +{0x0000001000000003uLL, 0x0000000280000000uLL, 0x0000000000000006uLL, 0x0000000100000003uLL}, +{0x0000001000000003uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000005uLL, 0x0000000100000012uLL}, +{0x0000001000000003uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000005uLL, 0x000000010000000DuLL}, +{0x0000001000000003uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000005uLL, 0x0000000100000008uLL}, +{0x0000001000000003uLL, 0x0000000300000000uLL, 0x0000000000000005uLL, 0x0000000100000003uLL}, +{0x0000001000000003uLL, 0x0000000300000001uLL, 0x0000000000000005uLL, 0x00000000FFFFFFFEuLL}, +{0x0000001000000003uLL, 0x0000000300000002uLL, 0x0000000000000005uLL, 0x00000000FFFFFFF9uLL}, +{0x0000001000000003uLL, 0x0000000300000003uLL, 0x0000000000000005uLL, 0x00000000FFFFFFF4uLL}, +{0x0000001000000003uLL, 0x0000000300000010uLL, 0x0000000000000005uLL, 0x00000000FFFFFFB3uLL}, +{0x0000001000000003uLL, 0x00000003078644FAuLL, 0x0000000000000005uLL, 0x00000000DA60A721uLL}, +{0x0000001000000003uLL, 0x000000030747AE14uLL, 0x0000000000000005uLL, 0x00000000DB99999FuLL}, +{0x0000001000000003uLL, 0x000000037FFFFFFFuLL, 0x0000000000000004uLL, 0x0000000200000007uLL}, +{0x0000001000000003uLL, 0x0000000380000000uLL, 0x0000000000000004uLL, 0x0000000200000003uLL}, +{0x0000001000000003uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000004uLL, 0x000000000000000FuLL}, +{0x0000001000000003uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000004uLL, 0x000000000000000BuLL}, +{0x0000001000000003uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000004uLL, 0x0000000000000007uLL}, +{0x0000001000000003uLL, 0x0000001000000000uLL, 0x0000000000000001uLL, 0x0000000000000003uLL}, +{0x0000001000000003uLL, 0x0000001000000001uLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0x0000001000000003uLL, 0x0000001000000002uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x0000001000000003uLL, 0x0000001000000003uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0000001000000003uLL, 0x0000001000000010uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000003uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000003uLL}, +{0x0000001000000010uLL, 0x0000000000000001uLL, 0x0000001000000010uLL, 0x0000000000000000uLL}, +{0x0000001000000010uLL, 0x0000000000000002uLL, 0x0000000800000008uLL, 0x0000000000000000uLL}, +{0x0000001000000010uLL, 0x0000000000000003uLL, 0x000000055555555AuLL, 0x0000000000000002uLL}, +{0x0000001000000010uLL, 0x0000000000000010uLL, 0x0000000100000001uLL, 0x0000000000000000uLL}, +{0x0000001000000010uLL, 0x00000000078644FAuLL, 0x0000000000000220uLL, 0x0000000002AD6CD0uLL}, +{0x0000001000000010uLL, 0x000000000747AE14uLL, 0x0000000000000232uLL, 0x0000000004A3D828uLL}, +{0x0000001000000010uLL, 0x000000007FFFFFFFuLL, 0x0000000000000020uLL, 0x0000000000000030uLL}, +{0x0000001000000010uLL, 0x0000000080000000uLL, 0x0000000000000020uLL, 0x0000000000000010uLL}, +{0x0000001000000010uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000010uLL, 0x0000000000000040uLL}, +{0x0000001000000010uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000010uLL, 0x0000000000000030uLL}, +{0x0000001000000010uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000010uLL, 0x0000000000000020uLL}, +{0x0000001000000010uLL, 0x0000000100000000uLL, 0x0000000000000010uLL, 0x0000000000000010uLL}, +{0x0000001000000010uLL, 0x0000000100000001uLL, 0x0000000000000010uLL, 0x0000000000000000uLL}, +{0x0000001000000010uLL, 0x0000000100000002uLL, 0x000000000000000FuLL, 0x00000000FFFFFFF2uLL}, +{0x0000001000000010uLL, 0x0000000100000003uLL, 0x000000000000000FuLL, 0x00000000FFFFFFE3uLL}, +{0x0000001000000010uLL, 0x0000000100000010uLL, 0x000000000000000FuLL, 0x00000000FFFFFF20uLL}, +{0x0000001000000010uLL, 0x00000001078644FAuLL, 0x000000000000000FuLL, 0x000000008F21F56AuLL}, +{0x0000001000000010uLL, 0x000000010747AE14uLL, 0x000000000000000FuLL, 0x0000000092CCCCE4uLL}, +{0x0000001000000010uLL, 0x000000017FFFFFFFuLL, 0x000000000000000AuLL, 0x000000010000001AuLL}, +{0x0000001000000010uLL, 0x0000000180000000uLL, 0x000000000000000AuLL, 0x0000000100000010uLL}, +{0x0000001000000010uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000008uLL, 0x0000000000000028uLL}, +{0x0000001000000010uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000008uLL, 0x0000000000000020uLL}, +{0x0000001000000010uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000008uLL, 0x0000000000000018uLL}, +{0x0000001000000010uLL, 0x0000000200000000uLL, 0x0000000000000008uLL, 0x0000000000000010uLL}, +{0x0000001000000010uLL, 0x0000000200000001uLL, 0x0000000000000008uLL, 0x0000000000000008uLL}, +{0x0000001000000010uLL, 0x0000000200000002uLL, 0x0000000000000008uLL, 0x0000000000000000uLL}, +{0x0000001000000010uLL, 0x0000000200000003uLL, 0x0000000000000007uLL, 0x00000001FFFFFFFBuLL}, +{0x0000001000000010uLL, 0x0000000200000010uLL, 0x0000000000000007uLL, 0x00000001FFFFFFA0uLL}, +{0x0000001000000010uLL, 0x00000002078644FAuLL, 0x0000000000000007uLL, 0x00000001CB541D3AuLL}, +{0x0000001000000010uLL, 0x000000020747AE14uLL, 0x0000000000000007uLL, 0x00000001CD0A3D84uLL}, +{0x0000001000000010uLL, 0x000000027FFFFFFFuLL, 0x0000000000000006uLL, 0x0000000100000016uLL}, +{0x0000001000000010uLL, 0x0000000280000000uLL, 0x0000000000000006uLL, 0x0000000100000010uLL}, +{0x0000001000000010uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000005uLL, 0x000000010000001FuLL}, +{0x0000001000000010uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000005uLL, 0x000000010000001AuLL}, +{0x0000001000000010uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000005uLL, 0x0000000100000015uLL}, +{0x0000001000000010uLL, 0x0000000300000000uLL, 0x0000000000000005uLL, 0x0000000100000010uLL}, +{0x0000001000000010uLL, 0x0000000300000001uLL, 0x0000000000000005uLL, 0x000000010000000BuLL}, +{0x0000001000000010uLL, 0x0000000300000002uLL, 0x0000000000000005uLL, 0x0000000100000006uLL}, +{0x0000001000000010uLL, 0x0000000300000003uLL, 0x0000000000000005uLL, 0x0000000100000001uLL}, +{0x0000001000000010uLL, 0x0000000300000010uLL, 0x0000000000000005uLL, 0x00000000FFFFFFC0uLL}, +{0x0000001000000010uLL, 0x00000003078644FAuLL, 0x0000000000000005uLL, 0x00000000DA60A72EuLL}, +{0x0000001000000010uLL, 0x000000030747AE14uLL, 0x0000000000000005uLL, 0x00000000DB9999ACuLL}, +{0x0000001000000010uLL, 0x000000037FFFFFFFuLL, 0x0000000000000004uLL, 0x0000000200000014uLL}, +{0x0000001000000010uLL, 0x0000000380000000uLL, 0x0000000000000004uLL, 0x0000000200000010uLL}, +{0x0000001000000010uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000004uLL, 0x000000000000001CuLL}, +{0x0000001000000010uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000004uLL, 0x0000000000000018uLL}, +{0x0000001000000010uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000004uLL, 0x0000000000000014uLL}, +{0x0000001000000010uLL, 0x0000001000000000uLL, 0x0000000000000001uLL, 0x0000000000000010uLL}, +{0x0000001000000010uLL, 0x0000001000000001uLL, 0x0000000000000001uLL, 0x000000000000000FuLL}, +{0x0000001000000010uLL, 0x0000001000000002uLL, 0x0000000000000001uLL, 0x000000000000000EuLL}, +{0x0000001000000010uLL, 0x0000001000000003uLL, 0x0000000000000001uLL, 0x000000000000000DuLL}, +{0x0000001000000010uLL, 0x0000001000000010uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0000001000000010uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x0000001000000010uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001000000010uLL}, +{0x00000010078644FAuLL, 0x0000000000000001uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL}, +{0x00000010078644FAuLL, 0x0000000000000002uLL, 0x0000000803C3227DuLL, 0x0000000000000000uLL}, +{0x00000010078644FAuLL, 0x0000000000000003uLL, 0x0000000557D76C53uLL, 0x0000000000000001uLL}, +{0x00000010078644FAuLL, 0x0000000000000010uLL, 0x000000010078644FuLL, 0x000000000000000AuLL}, +{0x00000010078644FAuLL, 0x00000000078644FAuLL, 0x0000000000000221uLL, 0x0000000002AD6CC0uLL}, +{0x00000010078644FAuLL, 0x000000000747AE14uLL, 0x0000000000000233uLL, 0x0000000004E26EFEuLL}, +{0x00000010078644FAuLL, 0x000000007FFFFFFFuLL, 0x0000000000000020uLL, 0x000000000786451AuLL}, +{0x00000010078644FAuLL, 0x0000000080000000uLL, 0x0000000000000020uLL, 0x00000000078644FAuLL}, +{0x00000010078644FAuLL, 0x00000000FFFFFFFDuLL, 0x0000000000000010uLL, 0x000000000786452AuLL}, +{0x00000010078644FAuLL, 0x00000000FFFFFFFEuLL, 0x0000000000000010uLL, 0x000000000786451AuLL}, +{0x00000010078644FAuLL, 0x00000000FFFFFFFFuLL, 0x0000000000000010uLL, 0x000000000786450AuLL}, +{0x00000010078644FAuLL, 0x0000000100000000uLL, 0x0000000000000010uLL, 0x00000000078644FAuLL}, +{0x00000010078644FAuLL, 0x0000000100000001uLL, 0x0000000000000010uLL, 0x00000000078644EAuLL}, +{0x00000010078644FAuLL, 0x0000000100000002uLL, 0x0000000000000010uLL, 0x00000000078644DAuLL}, +{0x00000010078644FAuLL, 0x0000000100000003uLL, 0x0000000000000010uLL, 0x00000000078644CAuLL}, +{0x00000010078644FAuLL, 0x0000000100000010uLL, 0x0000000000000010uLL, 0x00000000078643FAuLL}, +{0x00000010078644FAuLL, 0x00000001078644FAuLL, 0x000000000000000FuLL, 0x0000000096A83A54uLL}, +{0x00000010078644FAuLL, 0x000000010747AE14uLL, 0x000000000000000FuLL, 0x000000009A5311CEuLL}, +{0x00000010078644FAuLL, 0x000000017FFFFFFFuLL, 0x000000000000000AuLL, 0x0000000107864504uLL}, +{0x00000010078644FAuLL, 0x0000000180000000uLL, 0x000000000000000AuLL, 0x00000001078644FAuLL}, +{0x00000010078644FAuLL, 0x00000001FFFFFFFDuLL, 0x0000000000000008uLL, 0x0000000007864512uLL}, +{0x00000010078644FAuLL, 0x00000001FFFFFFFEuLL, 0x0000000000000008uLL, 0x000000000786450AuLL}, +{0x00000010078644FAuLL, 0x00000001FFFFFFFFuLL, 0x0000000000000008uLL, 0x0000000007864502uLL}, +{0x00000010078644FAuLL, 0x0000000200000000uLL, 0x0000000000000008uLL, 0x00000000078644FAuLL}, +{0x00000010078644FAuLL, 0x0000000200000001uLL, 0x0000000000000008uLL, 0x00000000078644F2uLL}, +{0x00000010078644FAuLL, 0x0000000200000002uLL, 0x0000000000000008uLL, 0x00000000078644EAuLL}, +{0x00000010078644FAuLL, 0x0000000200000003uLL, 0x0000000000000008uLL, 0x00000000078644E2uLL}, +{0x00000010078644FAuLL, 0x0000000200000010uLL, 0x0000000000000008uLL, 0x000000000786447AuLL}, +{0x00000010078644FAuLL, 0x00000002078644FAuLL, 0x0000000000000007uLL, 0x00000001D2DA6224uLL}, +{0x00000010078644FAuLL, 0x000000020747AE14uLL, 0x0000000000000007uLL, 0x00000001D490826EuLL}, +{0x00000010078644FAuLL, 0x000000027FFFFFFFuLL, 0x0000000000000006uLL, 0x0000000107864500uLL}, +{0x00000010078644FAuLL, 0x0000000280000000uLL, 0x0000000000000006uLL, 0x00000001078644FAuLL}, +{0x00000010078644FAuLL, 0x00000002FFFFFFFDuLL, 0x0000000000000005uLL, 0x0000000107864509uLL}, +{0x00000010078644FAuLL, 0x00000002FFFFFFFEuLL, 0x0000000000000005uLL, 0x0000000107864504uLL}, +{0x00000010078644FAuLL, 0x00000002FFFFFFFFuLL, 0x0000000000000005uLL, 0x00000001078644FFuLL}, +{0x00000010078644FAuLL, 0x0000000300000000uLL, 0x0000000000000005uLL, 0x00000001078644FAuLL}, +{0x00000010078644FAuLL, 0x0000000300000001uLL, 0x0000000000000005uLL, 0x00000001078644F5uLL}, +{0x00000010078644FAuLL, 0x0000000300000002uLL, 0x0000000000000005uLL, 0x00000001078644F0uLL}, +{0x00000010078644FAuLL, 0x0000000300000003uLL, 0x0000000000000005uLL, 0x00000001078644EBuLL}, +{0x00000010078644FAuLL, 0x0000000300000010uLL, 0x0000000000000005uLL, 0x00000001078644AAuLL}, +{0x00000010078644FAuLL, 0x00000003078644FAuLL, 0x0000000000000005uLL, 0x00000000E1E6EC18uLL}, +{0x00000010078644FAuLL, 0x000000030747AE14uLL, 0x0000000000000005uLL, 0x00000000E31FDE96uLL}, +{0x00000010078644FAuLL, 0x000000037FFFFFFFuLL, 0x0000000000000004uLL, 0x00000002078644FEuLL}, +{0x00000010078644FAuLL, 0x0000000380000000uLL, 0x0000000000000004uLL, 0x00000002078644FAuLL}, +{0x00000010078644FAuLL, 0x00000003FFFFFFFDuLL, 0x0000000000000004uLL, 0x0000000007864506uLL}, +{0x00000010078644FAuLL, 0x00000003FFFFFFFEuLL, 0x0000000000000004uLL, 0x0000000007864502uLL}, +{0x00000010078644FAuLL, 0x00000003FFFFFFFFuLL, 0x0000000000000004uLL, 0x00000000078644FEuLL}, +{0x00000010078644FAuLL, 0x0000001000000000uLL, 0x0000000000000001uLL, 0x00000000078644FAuLL}, +{0x00000010078644FAuLL, 0x0000001000000001uLL, 0x0000000000000001uLL, 0x00000000078644F9uLL}, +{0x00000010078644FAuLL, 0x0000001000000002uLL, 0x0000000000000001uLL, 0x00000000078644F8uLL}, +{0x00000010078644FAuLL, 0x0000001000000003uLL, 0x0000000000000001uLL, 0x00000000078644F7uLL}, +{0x00000010078644FAuLL, 0x0000001000000010uLL, 0x0000000000000001uLL, 0x00000000078644EAuLL}, +{0x00000010078644FAuLL, 0x00000010078644FAuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x00000010078644FAuLL, 0x000000100747AE14uLL, 0x0000000000000001uLL, 0x00000000003E96E6uLL}, +{0x00000010078644FAuLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x00000010078644FAuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000010078644FAuLL}, +{0x000000100747AE14uLL, 0x0000000000000001uLL, 0x000000100747AE14uLL, 0x0000000000000000uLL}, +{0x000000100747AE14uLL, 0x0000000000000002uLL, 0x0000000803A3D70AuLL, 0x0000000000000000uLL}, +{0x000000100747AE14uLL, 0x0000000000000003uLL, 0x0000000557C28F5CuLL, 0x0000000000000000uLL}, +{0x000000100747AE14uLL, 0x0000000000000010uLL, 0x0000000100747AE1uLL, 0x0000000000000004uLL}, +{0x000000100747AE14uLL, 0x00000000078644FAuLL, 0x0000000000000221uLL, 0x00000000026ED5DAuLL}, +{0x000000100747AE14uLL, 0x000000000747AE14uLL, 0x0000000000000233uLL, 0x0000000004A3D818uLL}, +{0x000000100747AE14uLL, 0x000000007FFFFFFFuLL, 0x0000000000000020uLL, 0x000000000747AE34uLL}, +{0x000000100747AE14uLL, 0x0000000080000000uLL, 0x0000000000000020uLL, 0x000000000747AE14uLL}, +{0x000000100747AE14uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000010uLL, 0x000000000747AE44uLL}, +{0x000000100747AE14uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000010uLL, 0x000000000747AE34uLL}, +{0x000000100747AE14uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000010uLL, 0x000000000747AE24uLL}, +{0x000000100747AE14uLL, 0x0000000100000000uLL, 0x0000000000000010uLL, 0x000000000747AE14uLL}, +{0x000000100747AE14uLL, 0x0000000100000001uLL, 0x0000000000000010uLL, 0x000000000747AE04uLL}, +{0x000000100747AE14uLL, 0x0000000100000002uLL, 0x0000000000000010uLL, 0x000000000747ADF4uLL}, +{0x000000100747AE14uLL, 0x0000000100000003uLL, 0x0000000000000010uLL, 0x000000000747ADE4uLL}, +{0x000000100747AE14uLL, 0x0000000100000010uLL, 0x0000000000000010uLL, 0x000000000747AD14uLL}, +{0x000000100747AE14uLL, 0x00000001078644FAuLL, 0x000000000000000FuLL, 0x000000009669A36EuLL}, +{0x000000100747AE14uLL, 0x000000010747AE14uLL, 0x000000000000000FuLL, 0x000000009A147AE8uLL}, +{0x000000100747AE14uLL, 0x000000017FFFFFFFuLL, 0x000000000000000AuLL, 0x000000010747AE1EuLL}, +{0x000000100747AE14uLL, 0x0000000180000000uLL, 0x000000000000000AuLL, 0x000000010747AE14uLL}, +{0x000000100747AE14uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000008uLL, 0x000000000747AE2CuLL}, +{0x000000100747AE14uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000008uLL, 0x000000000747AE24uLL}, +{0x000000100747AE14uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000008uLL, 0x000000000747AE1CuLL}, +{0x000000100747AE14uLL, 0x0000000200000000uLL, 0x0000000000000008uLL, 0x000000000747AE14uLL}, +{0x000000100747AE14uLL, 0x0000000200000001uLL, 0x0000000000000008uLL, 0x000000000747AE0CuLL}, +{0x000000100747AE14uLL, 0x0000000200000002uLL, 0x0000000000000008uLL, 0x000000000747AE04uLL}, +{0x000000100747AE14uLL, 0x0000000200000003uLL, 0x0000000000000008uLL, 0x000000000747ADFCuLL}, +{0x000000100747AE14uLL, 0x0000000200000010uLL, 0x0000000000000008uLL, 0x000000000747AD94uLL}, +{0x000000100747AE14uLL, 0x00000002078644FAuLL, 0x0000000000000007uLL, 0x00000001D29BCB3EuLL}, +{0x000000100747AE14uLL, 0x000000020747AE14uLL, 0x0000000000000007uLL, 0x00000001D451EB88uLL}, +{0x000000100747AE14uLL, 0x000000027FFFFFFFuLL, 0x0000000000000006uLL, 0x000000010747AE1AuLL}, +{0x000000100747AE14uLL, 0x0000000280000000uLL, 0x0000000000000006uLL, 0x000000010747AE14uLL}, +{0x000000100747AE14uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000005uLL, 0x000000010747AE23uLL}, +{0x000000100747AE14uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000005uLL, 0x000000010747AE1EuLL}, +{0x000000100747AE14uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000005uLL, 0x000000010747AE19uLL}, +{0x000000100747AE14uLL, 0x0000000300000000uLL, 0x0000000000000005uLL, 0x000000010747AE14uLL}, +{0x000000100747AE14uLL, 0x0000000300000001uLL, 0x0000000000000005uLL, 0x000000010747AE0FuLL}, +{0x000000100747AE14uLL, 0x0000000300000002uLL, 0x0000000000000005uLL, 0x000000010747AE0AuLL}, +{0x000000100747AE14uLL, 0x0000000300000003uLL, 0x0000000000000005uLL, 0x000000010747AE05uLL}, +{0x000000100747AE14uLL, 0x0000000300000010uLL, 0x0000000000000005uLL, 0x000000010747ADC4uLL}, +{0x000000100747AE14uLL, 0x00000003078644FAuLL, 0x0000000000000005uLL, 0x00000000E1A85532uLL}, +{0x000000100747AE14uLL, 0x000000030747AE14uLL, 0x0000000000000005uLL, 0x00000000E2E147B0uLL}, +{0x000000100747AE14uLL, 0x000000037FFFFFFFuLL, 0x0000000000000004uLL, 0x000000020747AE18uLL}, +{0x000000100747AE14uLL, 0x0000000380000000uLL, 0x0000000000000004uLL, 0x000000020747AE14uLL}, +{0x000000100747AE14uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000004uLL, 0x000000000747AE20uLL}, +{0x000000100747AE14uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000004uLL, 0x000000000747AE1CuLL}, +{0x000000100747AE14uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000004uLL, 0x000000000747AE18uLL}, +{0x000000100747AE14uLL, 0x0000001000000000uLL, 0x0000000000000001uLL, 0x000000000747AE14uLL}, +{0x000000100747AE14uLL, 0x0000001000000001uLL, 0x0000000000000001uLL, 0x000000000747AE13uLL}, +{0x000000100747AE14uLL, 0x0000001000000002uLL, 0x0000000000000001uLL, 0x000000000747AE12uLL}, +{0x000000100747AE14uLL, 0x0000001000000003uLL, 0x0000000000000001uLL, 0x000000000747AE11uLL}, +{0x000000100747AE14uLL, 0x0000001000000010uLL, 0x0000000000000001uLL, 0x000000000747AE04uLL}, +{0x000000100747AE14uLL, 0x00000010078644FAuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x000000100747AE14uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x000000100747AE14uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000100747AE14uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000100747AE14uLL}, +{0x000000107FFFFFFFuLL, 0x0000000000000001uLL, 0x000000107FFFFFFFuLL, 0x0000000000000000uLL}, +{0x000000107FFFFFFFuLL, 0x0000000000000002uLL, 0x000000083FFFFFFFuLL, 0x0000000000000001uLL}, +{0x000000107FFFFFFFuLL, 0x0000000000000003uLL, 0x000000057FFFFFFFuLL, 0x0000000000000002uLL}, +{0x000000107FFFFFFFuLL, 0x0000000000000010uLL, 0x0000000107FFFFFFuLL, 0x000000000000000FuLL}, +{0x000000107FFFFFFFuLL, 0x00000000078644FAuLL, 0x0000000000000231uLL, 0x0000000002C2D825uLL}, +{0x000000107FFFFFFFuLL, 0x000000000747AE14uLL, 0x0000000000000244uLL, 0x0000000001999AAFuLL}, +{0x000000107FFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x0000000000000021uLL, 0x0000000000000020uLL}, +{0x000000107FFFFFFFuLL, 0x0000000080000000uLL, 0x0000000000000020uLL, 0x000000007FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x00000000FFFFFFFDuLL, 0x0000000000000010uLL, 0x000000008000002FuLL}, +{0x000000107FFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x0000000000000010uLL, 0x000000008000001FuLL}, +{0x000000107FFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x0000000000000010uLL, 0x000000008000000FuLL}, +{0x000000107FFFFFFFuLL, 0x0000000100000000uLL, 0x0000000000000010uLL, 0x000000007FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x0000000100000001uLL, 0x0000000000000010uLL, 0x000000007FFFFFEFuLL}, +{0x000000107FFFFFFFuLL, 0x0000000100000002uLL, 0x0000000000000010uLL, 0x000000007FFFFFDFuLL}, +{0x000000107FFFFFFFuLL, 0x0000000100000003uLL, 0x0000000000000010uLL, 0x000000007FFFFFCFuLL}, +{0x000000107FFFFFFFuLL, 0x0000000100000010uLL, 0x0000000000000010uLL, 0x000000007FFFFEFFuLL}, +{0x000000107FFFFFFFuLL, 0x00000001078644FAuLL, 0x0000000000000010uLL, 0x00000000079BB05FuLL}, +{0x000000107FFFFFFFuLL, 0x000000010747AE14uLL, 0x0000000000000010uLL, 0x000000000B851EBFuLL}, +{0x000000107FFFFFFFuLL, 0x000000017FFFFFFFuLL, 0x000000000000000BuLL, 0x000000000000000AuLL}, +{0x000000107FFFFFFFuLL, 0x0000000180000000uLL, 0x000000000000000AuLL, 0x000000017FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x00000001FFFFFFFDuLL, 0x0000000000000008uLL, 0x0000000080000017uLL}, +{0x000000107FFFFFFFuLL, 0x00000001FFFFFFFEuLL, 0x0000000000000008uLL, 0x000000008000000FuLL}, +{0x000000107FFFFFFFuLL, 0x00000001FFFFFFFFuLL, 0x0000000000000008uLL, 0x0000000080000007uLL}, +{0x000000107FFFFFFFuLL, 0x0000000200000000uLL, 0x0000000000000008uLL, 0x000000007FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x0000000200000001uLL, 0x0000000000000008uLL, 0x000000007FFFFFF7uLL}, +{0x000000107FFFFFFFuLL, 0x0000000200000002uLL, 0x0000000000000008uLL, 0x000000007FFFFFEFuLL}, +{0x000000107FFFFFFFuLL, 0x0000000200000003uLL, 0x0000000000000008uLL, 0x000000007FFFFFE7uLL}, +{0x000000107FFFFFFFuLL, 0x0000000200000010uLL, 0x0000000000000008uLL, 0x000000007FFFFF7FuLL}, +{0x000000107FFFFFFFuLL, 0x00000002078644FAuLL, 0x0000000000000008uLL, 0x0000000043CDD82FuLL}, +{0x000000107FFFFFFFuLL, 0x000000020747AE14uLL, 0x0000000000000008uLL, 0x0000000045C28F5FuLL}, +{0x000000107FFFFFFFuLL, 0x000000027FFFFFFFuLL, 0x0000000000000006uLL, 0x0000000180000005uLL}, +{0x000000107FFFFFFFuLL, 0x0000000280000000uLL, 0x0000000000000006uLL, 0x000000017FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x00000002FFFFFFFDuLL, 0x0000000000000005uLL, 0x000000018000000EuLL}, +{0x000000107FFFFFFFuLL, 0x00000002FFFFFFFEuLL, 0x0000000000000005uLL, 0x0000000180000009uLL}, +{0x000000107FFFFFFFuLL, 0x00000002FFFFFFFFuLL, 0x0000000000000005uLL, 0x0000000180000004uLL}, +{0x000000107FFFFFFFuLL, 0x0000000300000000uLL, 0x0000000000000005uLL, 0x000000017FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x0000000300000001uLL, 0x0000000000000005uLL, 0x000000017FFFFFFAuLL}, +{0x000000107FFFFFFFuLL, 0x0000000300000002uLL, 0x0000000000000005uLL, 0x000000017FFFFFF5uLL}, +{0x000000107FFFFFFFuLL, 0x0000000300000003uLL, 0x0000000000000005uLL, 0x000000017FFFFFF0uLL}, +{0x000000107FFFFFFFuLL, 0x0000000300000010uLL, 0x0000000000000005uLL, 0x000000017FFFFFAFuLL}, +{0x000000107FFFFFFFuLL, 0x00000003078644FAuLL, 0x0000000000000005uLL, 0x000000015A60A71DuLL}, +{0x000000107FFFFFFFuLL, 0x000000030747AE14uLL, 0x0000000000000005uLL, 0x000000015B99999BuLL}, +{0x000000107FFFFFFFuLL, 0x000000037FFFFFFFuLL, 0x0000000000000004uLL, 0x0000000280000003uLL}, +{0x000000107FFFFFFFuLL, 0x0000000380000000uLL, 0x0000000000000004uLL, 0x000000027FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x00000003FFFFFFFDuLL, 0x0000000000000004uLL, 0x000000008000000BuLL}, +{0x000000107FFFFFFFuLL, 0x00000003FFFFFFFEuLL, 0x0000000000000004uLL, 0x0000000080000007uLL}, +{0x000000107FFFFFFFuLL, 0x00000003FFFFFFFFuLL, 0x0000000000000004uLL, 0x0000000080000003uLL}, +{0x000000107FFFFFFFuLL, 0x0000001000000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x0000001000000001uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x000000107FFFFFFFuLL, 0x0000001000000002uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0x000000107FFFFFFFuLL, 0x0000001000000003uLL, 0x0000000000000001uLL, 0x000000007FFFFFFCuLL}, +{0x000000107FFFFFFFuLL, 0x0000001000000010uLL, 0x0000000000000001uLL, 0x000000007FFFFFEFuLL}, +{0x000000107FFFFFFFuLL, 0x00000010078644FAuLL, 0x0000000000000001uLL, 0x000000007879BB05uLL}, +{0x000000107FFFFFFFuLL, 0x000000100747AE14uLL, 0x0000000000000001uLL, 0x0000000078B851EBuLL}, +{0x000000107FFFFFFFuLL, 0x000000107FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x000000107FFFFFFFuLL, 0x0000001080000000uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x000000107FFFFFFFuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x000000107FFFFFFFuLL}, +{0x0000001080000000uLL, 0x0000000000000001uLL, 0x0000001080000000uLL, 0x0000000000000000uLL}, +{0x0000001080000000uLL, 0x0000000000000002uLL, 0x0000000840000000uLL, 0x0000000000000000uLL}, +{0x0000001080000000uLL, 0x0000000000000003uLL, 0x0000000580000000uLL, 0x0000000000000000uLL}, +{0x0000001080000000uLL, 0x0000000000000010uLL, 0x0000000108000000uLL, 0x0000000000000000uLL}, +{0x0000001080000000uLL, 0x00000000078644FAuLL, 0x0000000000000231uLL, 0x0000000002C2D826uLL}, +{0x0000001080000000uLL, 0x000000000747AE14uLL, 0x0000000000000244uLL, 0x0000000001999AB0uLL}, +{0x0000001080000000uLL, 0x000000007FFFFFFFuLL, 0x0000000000000021uLL, 0x0000000000000021uLL}, +{0x0000001080000000uLL, 0x0000000080000000uLL, 0x0000000000000021uLL, 0x0000000000000000uLL}, +{0x0000001080000000uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000010uLL, 0x0000000080000030uLL}, +{0x0000001080000000uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000010uLL, 0x0000000080000020uLL}, +{0x0000001080000000uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000010uLL, 0x0000000080000010uLL}, +{0x0000001080000000uLL, 0x0000000100000000uLL, 0x0000000000000010uLL, 0x0000000080000000uLL}, +{0x0000001080000000uLL, 0x0000000100000001uLL, 0x0000000000000010uLL, 0x000000007FFFFFF0uLL}, +{0x0000001080000000uLL, 0x0000000100000002uLL, 0x0000000000000010uLL, 0x000000007FFFFFE0uLL}, +{0x0000001080000000uLL, 0x0000000100000003uLL, 0x0000000000000010uLL, 0x000000007FFFFFD0uLL}, +{0x0000001080000000uLL, 0x0000000100000010uLL, 0x0000000000000010uLL, 0x000000007FFFFF00uLL}, +{0x0000001080000000uLL, 0x00000001078644FAuLL, 0x0000000000000010uLL, 0x00000000079BB060uLL}, +{0x0000001080000000uLL, 0x000000010747AE14uLL, 0x0000000000000010uLL, 0x000000000B851EC0uLL}, +{0x0000001080000000uLL, 0x000000017FFFFFFFuLL, 0x000000000000000BuLL, 0x000000000000000BuLL}, +{0x0000001080000000uLL, 0x0000000180000000uLL, 0x000000000000000BuLL, 0x0000000000000000uLL}, +{0x0000001080000000uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000008uLL, 0x0000000080000018uLL}, +{0x0000001080000000uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000008uLL, 0x0000000080000010uLL}, +{0x0000001080000000uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000008uLL, 0x0000000080000008uLL}, +{0x0000001080000000uLL, 0x0000000200000000uLL, 0x0000000000000008uLL, 0x0000000080000000uLL}, +{0x0000001080000000uLL, 0x0000000200000001uLL, 0x0000000000000008uLL, 0x000000007FFFFFF8uLL}, +{0x0000001080000000uLL, 0x0000000200000002uLL, 0x0000000000000008uLL, 0x000000007FFFFFF0uLL}, +{0x0000001080000000uLL, 0x0000000200000003uLL, 0x0000000000000008uLL, 0x000000007FFFFFE8uLL}, +{0x0000001080000000uLL, 0x0000000200000010uLL, 0x0000000000000008uLL, 0x000000007FFFFF80uLL}, +{0x0000001080000000uLL, 0x00000002078644FAuLL, 0x0000000000000008uLL, 0x0000000043CDD830uLL}, +{0x0000001080000000uLL, 0x000000020747AE14uLL, 0x0000000000000008uLL, 0x0000000045C28F60uLL}, +{0x0000001080000000uLL, 0x000000027FFFFFFFuLL, 0x0000000000000006uLL, 0x0000000180000006uLL}, +{0x0000001080000000uLL, 0x0000000280000000uLL, 0x0000000000000006uLL, 0x0000000180000000uLL}, +{0x0000001080000000uLL, 0x00000002FFFFFFFDuLL, 0x0000000000000005uLL, 0x000000018000000FuLL}, +{0x0000001080000000uLL, 0x00000002FFFFFFFEuLL, 0x0000000000000005uLL, 0x000000018000000AuLL}, +{0x0000001080000000uLL, 0x00000002FFFFFFFFuLL, 0x0000000000000005uLL, 0x0000000180000005uLL}, +{0x0000001080000000uLL, 0x0000000300000000uLL, 0x0000000000000005uLL, 0x0000000180000000uLL}, +{0x0000001080000000uLL, 0x0000000300000001uLL, 0x0000000000000005uLL, 0x000000017FFFFFFBuLL}, +{0x0000001080000000uLL, 0x0000000300000002uLL, 0x0000000000000005uLL, 0x000000017FFFFFF6uLL}, +{0x0000001080000000uLL, 0x0000000300000003uLL, 0x0000000000000005uLL, 0x000000017FFFFFF1uLL}, +{0x0000001080000000uLL, 0x0000000300000010uLL, 0x0000000000000005uLL, 0x000000017FFFFFB0uLL}, +{0x0000001080000000uLL, 0x00000003078644FAuLL, 0x0000000000000005uLL, 0x000000015A60A71EuLL}, +{0x0000001080000000uLL, 0x000000030747AE14uLL, 0x0000000000000005uLL, 0x000000015B99999CuLL}, +{0x0000001080000000uLL, 0x000000037FFFFFFFuLL, 0x0000000000000004uLL, 0x0000000280000004uLL}, +{0x0000001080000000uLL, 0x0000000380000000uLL, 0x0000000000000004uLL, 0x0000000280000000uLL}, +{0x0000001080000000uLL, 0x00000003FFFFFFFDuLL, 0x0000000000000004uLL, 0x000000008000000CuLL}, +{0x0000001080000000uLL, 0x00000003FFFFFFFEuLL, 0x0000000000000004uLL, 0x0000000080000008uLL}, +{0x0000001080000000uLL, 0x00000003FFFFFFFFuLL, 0x0000000000000004uLL, 0x0000000080000004uLL}, +{0x0000001080000000uLL, 0x0000001000000000uLL, 0x0000000000000001uLL, 0x0000000080000000uLL}, +{0x0000001080000000uLL, 0x0000001000000001uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0x0000001080000000uLL, 0x0000001000000002uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x0000001080000000uLL, 0x0000001000000003uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0x0000001080000000uLL, 0x0000001000000010uLL, 0x0000000000000001uLL, 0x000000007FFFFFF0uLL}, +{0x0000001080000000uLL, 0x00000010078644FAuLL, 0x0000000000000001uLL, 0x000000007879BB06uLL}, +{0x0000001080000000uLL, 0x000000100747AE14uLL, 0x0000000000000001uLL, 0x0000000078B851ECuLL}, +{0x0000001080000000uLL, 0x000000107FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x0000001080000000uLL, 0x0000001080000000uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0000001080000000uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x0000001080000000uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0000001080000000uLL}, +{0x00000010FFFFFFFDuLL, 0x0000000000000001uLL, 0x00000010FFFFFFFDuLL, 0x0000000000000000uLL}, +{0x00000010FFFFFFFDuLL, 0x0000000000000002uLL, 0x000000087FFFFFFEuLL, 0x0000000000000001uLL}, +{0x00000010FFFFFFFDuLL, 0x0000000000000003uLL, 0x00000005AAAAAAA9uLL, 0x0000000000000002uLL}, +{0x00000010FFFFFFFDuLL, 0x0000000000000010uLL, 0x000000010FFFFFFFuLL, 0x000000000000000DuLL}, +{0x00000010FFFFFFFDuLL, 0x00000000078644FAuLL, 0x0000000000000242uLL, 0x0000000002D84389uLL}, +{0x00000010FFFFFFFDuLL, 0x000000000747AE14uLL, 0x0000000000000255uLL, 0x0000000005D70B59uLL}, +{0x00000010FFFFFFFDuLL, 0x000000007FFFFFFFuLL, 0x0000000000000022uLL, 0x000000000000001FuLL}, +{0x00000010FFFFFFFDuLL, 0x0000000080000000uLL, 0x0000000000000021uLL, 0x000000007FFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x00000000FFFFFFFDuLL, 0x0000000000000011uLL, 0x0000000000000030uLL}, +{0x00000010FFFFFFFDuLL, 0x00000000FFFFFFFEuLL, 0x0000000000000011uLL, 0x000000000000001FuLL}, +{0x00000010FFFFFFFDuLL, 0x00000000FFFFFFFFuLL, 0x0000000000000011uLL, 0x000000000000000EuLL}, +{0x00000010FFFFFFFDuLL, 0x0000000100000000uLL, 0x0000000000000010uLL, 0x00000000FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x0000000100000001uLL, 0x0000000000000010uLL, 0x00000000FFFFFFEDuLL}, +{0x00000010FFFFFFFDuLL, 0x0000000100000002uLL, 0x0000000000000010uLL, 0x00000000FFFFFFDDuLL}, +{0x00000010FFFFFFFDuLL, 0x0000000100000003uLL, 0x0000000000000010uLL, 0x00000000FFFFFFCDuLL}, +{0x00000010FFFFFFFDuLL, 0x0000000100000010uLL, 0x0000000000000010uLL, 0x00000000FFFFFEFDuLL}, +{0x00000010FFFFFFFDuLL, 0x00000001078644FAuLL, 0x0000000000000010uLL, 0x00000000879BB05DuLL}, +{0x00000010FFFFFFFDuLL, 0x000000010747AE14uLL, 0x0000000000000010uLL, 0x000000008B851EBDuLL}, +{0x00000010FFFFFFFDuLL, 0x000000017FFFFFFFuLL, 0x000000000000000BuLL, 0x0000000080000008uLL}, +{0x00000010FFFFFFFDuLL, 0x0000000180000000uLL, 0x000000000000000BuLL, 0x000000007FFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x00000001FFFFFFFDuLL, 0x0000000000000008uLL, 0x0000000100000015uLL}, +{0x00000010FFFFFFFDuLL, 0x00000001FFFFFFFEuLL, 0x0000000000000008uLL, 0x000000010000000DuLL}, +{0x00000010FFFFFFFDuLL, 0x00000001FFFFFFFFuLL, 0x0000000000000008uLL, 0x0000000100000005uLL}, +{0x00000010FFFFFFFDuLL, 0x0000000200000000uLL, 0x0000000000000008uLL, 0x00000000FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x0000000200000001uLL, 0x0000000000000008uLL, 0x00000000FFFFFFF5uLL}, +{0x00000010FFFFFFFDuLL, 0x0000000200000002uLL, 0x0000000000000008uLL, 0x00000000FFFFFFEDuLL}, +{0x00000010FFFFFFFDuLL, 0x0000000200000003uLL, 0x0000000000000008uLL, 0x00000000FFFFFFE5uLL}, +{0x00000010FFFFFFFDuLL, 0x0000000200000010uLL, 0x0000000000000008uLL, 0x00000000FFFFFF7DuLL}, +{0x00000010FFFFFFFDuLL, 0x00000002078644FAuLL, 0x0000000000000008uLL, 0x00000000C3CDD82DuLL}, +{0x00000010FFFFFFFDuLL, 0x000000020747AE14uLL, 0x0000000000000008uLL, 0x00000000C5C28F5DuLL}, +{0x00000010FFFFFFFDuLL, 0x000000027FFFFFFFuLL, 0x0000000000000006uLL, 0x0000000200000003uLL}, +{0x00000010FFFFFFFDuLL, 0x0000000280000000uLL, 0x0000000000000006uLL, 0x00000001FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x00000002FFFFFFFDuLL, 0x0000000000000005uLL, 0x000000020000000CuLL}, +{0x00000010FFFFFFFDuLL, 0x00000002FFFFFFFEuLL, 0x0000000000000005uLL, 0x0000000200000007uLL}, +{0x00000010FFFFFFFDuLL, 0x00000002FFFFFFFFuLL, 0x0000000000000005uLL, 0x0000000200000002uLL}, +{0x00000010FFFFFFFDuLL, 0x0000000300000000uLL, 0x0000000000000005uLL, 0x00000001FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x0000000300000001uLL, 0x0000000000000005uLL, 0x00000001FFFFFFF8uLL}, +{0x00000010FFFFFFFDuLL, 0x0000000300000002uLL, 0x0000000000000005uLL, 0x00000001FFFFFFF3uLL}, +{0x00000010FFFFFFFDuLL, 0x0000000300000003uLL, 0x0000000000000005uLL, 0x00000001FFFFFFEEuLL}, +{0x00000010FFFFFFFDuLL, 0x0000000300000010uLL, 0x0000000000000005uLL, 0x00000001FFFFFFADuLL}, +{0x00000010FFFFFFFDuLL, 0x00000003078644FAuLL, 0x0000000000000005uLL, 0x00000001DA60A71BuLL}, +{0x00000010FFFFFFFDuLL, 0x000000030747AE14uLL, 0x0000000000000005uLL, 0x00000001DB999999uLL}, +{0x00000010FFFFFFFDuLL, 0x000000037FFFFFFFuLL, 0x0000000000000004uLL, 0x0000000300000001uLL}, +{0x00000010FFFFFFFDuLL, 0x0000000380000000uLL, 0x0000000000000004uLL, 0x00000002FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x00000003FFFFFFFDuLL, 0x0000000000000004uLL, 0x0000000100000009uLL}, +{0x00000010FFFFFFFDuLL, 0x00000003FFFFFFFEuLL, 0x0000000000000004uLL, 0x0000000100000005uLL}, +{0x00000010FFFFFFFDuLL, 0x00000003FFFFFFFFuLL, 0x0000000000000004uLL, 0x0000000100000001uLL}, +{0x00000010FFFFFFFDuLL, 0x0000001000000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x0000001000000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFCuLL}, +{0x00000010FFFFFFFDuLL, 0x0000001000000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFBuLL}, +{0x00000010FFFFFFFDuLL, 0x0000001000000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFAuLL}, +{0x00000010FFFFFFFDuLL, 0x0000001000000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFEDuLL}, +{0x00000010FFFFFFFDuLL, 0x00000010078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB03uLL}, +{0x00000010FFFFFFFDuLL, 0x000000100747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851E9uLL}, +{0x00000010FFFFFFFDuLL, 0x000000107FFFFFFFuLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x00000010FFFFFFFDuLL, 0x0000001080000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x00000010FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x00000010FFFFFFFDuLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFDuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFDuLL}, +{0x00000010FFFFFFFEuLL, 0x0000000000000001uLL, 0x00000010FFFFFFFEuLL, 0x0000000000000000uLL}, +{0x00000010FFFFFFFEuLL, 0x0000000000000002uLL, 0x000000087FFFFFFFuLL, 0x0000000000000000uLL}, +{0x00000010FFFFFFFEuLL, 0x0000000000000003uLL, 0x00000005AAAAAAAAuLL, 0x0000000000000000uLL}, +{0x00000010FFFFFFFEuLL, 0x0000000000000010uLL, 0x000000010FFFFFFFuLL, 0x000000000000000EuLL}, +{0x00000010FFFFFFFEuLL, 0x00000000078644FAuLL, 0x0000000000000242uLL, 0x0000000002D8438AuLL}, +{0x00000010FFFFFFFEuLL, 0x000000000747AE14uLL, 0x0000000000000255uLL, 0x0000000005D70B5AuLL}, +{0x00000010FFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x0000000000000022uLL, 0x0000000000000020uLL}, +{0x00000010FFFFFFFEuLL, 0x0000000080000000uLL, 0x0000000000000021uLL, 0x000000007FFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x00000000FFFFFFFDuLL, 0x0000000000000011uLL, 0x0000000000000031uLL}, +{0x00000010FFFFFFFEuLL, 0x00000000FFFFFFFEuLL, 0x0000000000000011uLL, 0x0000000000000020uLL}, +{0x00000010FFFFFFFEuLL, 0x00000000FFFFFFFFuLL, 0x0000000000000011uLL, 0x000000000000000FuLL}, +{0x00000010FFFFFFFEuLL, 0x0000000100000000uLL, 0x0000000000000010uLL, 0x00000000FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x0000000100000001uLL, 0x0000000000000010uLL, 0x00000000FFFFFFEEuLL}, +{0x00000010FFFFFFFEuLL, 0x0000000100000002uLL, 0x0000000000000010uLL, 0x00000000FFFFFFDEuLL}, +{0x00000010FFFFFFFEuLL, 0x0000000100000003uLL, 0x0000000000000010uLL, 0x00000000FFFFFFCEuLL}, +{0x00000010FFFFFFFEuLL, 0x0000000100000010uLL, 0x0000000000000010uLL, 0x00000000FFFFFEFEuLL}, +{0x00000010FFFFFFFEuLL, 0x00000001078644FAuLL, 0x0000000000000010uLL, 0x00000000879BB05EuLL}, +{0x00000010FFFFFFFEuLL, 0x000000010747AE14uLL, 0x0000000000000010uLL, 0x000000008B851EBEuLL}, +{0x00000010FFFFFFFEuLL, 0x000000017FFFFFFFuLL, 0x000000000000000BuLL, 0x0000000080000009uLL}, +{0x00000010FFFFFFFEuLL, 0x0000000180000000uLL, 0x000000000000000BuLL, 0x000000007FFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x00000001FFFFFFFDuLL, 0x0000000000000008uLL, 0x0000000100000016uLL}, +{0x00000010FFFFFFFEuLL, 0x00000001FFFFFFFEuLL, 0x0000000000000008uLL, 0x000000010000000EuLL}, +{0x00000010FFFFFFFEuLL, 0x00000001FFFFFFFFuLL, 0x0000000000000008uLL, 0x0000000100000006uLL}, +{0x00000010FFFFFFFEuLL, 0x0000000200000000uLL, 0x0000000000000008uLL, 0x00000000FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x0000000200000001uLL, 0x0000000000000008uLL, 0x00000000FFFFFFF6uLL}, +{0x00000010FFFFFFFEuLL, 0x0000000200000002uLL, 0x0000000000000008uLL, 0x00000000FFFFFFEEuLL}, +{0x00000010FFFFFFFEuLL, 0x0000000200000003uLL, 0x0000000000000008uLL, 0x00000000FFFFFFE6uLL}, +{0x00000010FFFFFFFEuLL, 0x0000000200000010uLL, 0x0000000000000008uLL, 0x00000000FFFFFF7EuLL}, +{0x00000010FFFFFFFEuLL, 0x00000002078644FAuLL, 0x0000000000000008uLL, 0x00000000C3CDD82EuLL}, +{0x00000010FFFFFFFEuLL, 0x000000020747AE14uLL, 0x0000000000000008uLL, 0x00000000C5C28F5EuLL}, +{0x00000010FFFFFFFEuLL, 0x000000027FFFFFFFuLL, 0x0000000000000006uLL, 0x0000000200000004uLL}, +{0x00000010FFFFFFFEuLL, 0x0000000280000000uLL, 0x0000000000000006uLL, 0x00000001FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x00000002FFFFFFFDuLL, 0x0000000000000005uLL, 0x000000020000000DuLL}, +{0x00000010FFFFFFFEuLL, 0x00000002FFFFFFFEuLL, 0x0000000000000005uLL, 0x0000000200000008uLL}, +{0x00000010FFFFFFFEuLL, 0x00000002FFFFFFFFuLL, 0x0000000000000005uLL, 0x0000000200000003uLL}, +{0x00000010FFFFFFFEuLL, 0x0000000300000000uLL, 0x0000000000000005uLL, 0x00000001FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x0000000300000001uLL, 0x0000000000000005uLL, 0x00000001FFFFFFF9uLL}, +{0x00000010FFFFFFFEuLL, 0x0000000300000002uLL, 0x0000000000000005uLL, 0x00000001FFFFFFF4uLL}, +{0x00000010FFFFFFFEuLL, 0x0000000300000003uLL, 0x0000000000000005uLL, 0x00000001FFFFFFEFuLL}, +{0x00000010FFFFFFFEuLL, 0x0000000300000010uLL, 0x0000000000000005uLL, 0x00000001FFFFFFAEuLL}, +{0x00000010FFFFFFFEuLL, 0x00000003078644FAuLL, 0x0000000000000005uLL, 0x00000001DA60A71CuLL}, +{0x00000010FFFFFFFEuLL, 0x000000030747AE14uLL, 0x0000000000000005uLL, 0x00000001DB99999AuLL}, +{0x00000010FFFFFFFEuLL, 0x000000037FFFFFFFuLL, 0x0000000000000004uLL, 0x0000000300000002uLL}, +{0x00000010FFFFFFFEuLL, 0x0000000380000000uLL, 0x0000000000000004uLL, 0x00000002FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x00000003FFFFFFFDuLL, 0x0000000000000004uLL, 0x000000010000000AuLL}, +{0x00000010FFFFFFFEuLL, 0x00000003FFFFFFFEuLL, 0x0000000000000004uLL, 0x0000000100000006uLL}, +{0x00000010FFFFFFFEuLL, 0x00000003FFFFFFFFuLL, 0x0000000000000004uLL, 0x0000000100000002uLL}, +{0x00000010FFFFFFFEuLL, 0x0000001000000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x0000001000000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0x00000010FFFFFFFEuLL, 0x0000001000000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFCuLL}, +{0x00000010FFFFFFFEuLL, 0x0000001000000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFBuLL}, +{0x00000010FFFFFFFEuLL, 0x0000001000000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFEEuLL}, +{0x00000010FFFFFFFEuLL, 0x00000010078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB04uLL}, +{0x00000010FFFFFFFEuLL, 0x000000100747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EAuLL}, +{0x00000010FFFFFFFEuLL, 0x000000107FFFFFFFuLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0x00000010FFFFFFFEuLL, 0x0000001080000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x00000010FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x00000010FFFFFFFEuLL, 0x00000010FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x00000010FFFFFFFEuLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFEuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFEuLL}, +{0x00000010FFFFFFFFuLL, 0x0000000000000001uLL, 0x00000010FFFFFFFFuLL, 0x0000000000000000uLL}, +{0x00000010FFFFFFFFuLL, 0x0000000000000002uLL, 0x000000087FFFFFFFuLL, 0x0000000000000001uLL}, +{0x00000010FFFFFFFFuLL, 0x0000000000000003uLL, 0x00000005AAAAAAAAuLL, 0x0000000000000001uLL}, +{0x00000010FFFFFFFFuLL, 0x0000000000000010uLL, 0x000000010FFFFFFFuLL, 0x000000000000000FuLL}, +{0x00000010FFFFFFFFuLL, 0x00000000078644FAuLL, 0x0000000000000242uLL, 0x0000000002D8438BuLL}, +{0x00000010FFFFFFFFuLL, 0x000000000747AE14uLL, 0x0000000000000255uLL, 0x0000000005D70B5BuLL}, +{0x00000010FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x0000000000000022uLL, 0x0000000000000021uLL}, +{0x00000010FFFFFFFFuLL, 0x0000000080000000uLL, 0x0000000000000021uLL, 0x000000007FFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x00000000FFFFFFFDuLL, 0x0000000000000011uLL, 0x0000000000000032uLL}, +{0x00000010FFFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x0000000000000011uLL, 0x0000000000000021uLL}, +{0x00000010FFFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x0000000000000011uLL, 0x0000000000000010uLL}, +{0x00000010FFFFFFFFuLL, 0x0000000100000000uLL, 0x0000000000000010uLL, 0x00000000FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x0000000100000001uLL, 0x0000000000000010uLL, 0x00000000FFFFFFEFuLL}, +{0x00000010FFFFFFFFuLL, 0x0000000100000002uLL, 0x0000000000000010uLL, 0x00000000FFFFFFDFuLL}, +{0x00000010FFFFFFFFuLL, 0x0000000100000003uLL, 0x0000000000000010uLL, 0x00000000FFFFFFCFuLL}, +{0x00000010FFFFFFFFuLL, 0x0000000100000010uLL, 0x0000000000000010uLL, 0x00000000FFFFFEFFuLL}, +{0x00000010FFFFFFFFuLL, 0x00000001078644FAuLL, 0x0000000000000010uLL, 0x00000000879BB05FuLL}, +{0x00000010FFFFFFFFuLL, 0x000000010747AE14uLL, 0x0000000000000010uLL, 0x000000008B851EBFuLL}, +{0x00000010FFFFFFFFuLL, 0x000000017FFFFFFFuLL, 0x000000000000000BuLL, 0x000000008000000AuLL}, +{0x00000010FFFFFFFFuLL, 0x0000000180000000uLL, 0x000000000000000BuLL, 0x000000007FFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x00000001FFFFFFFDuLL, 0x0000000000000008uLL, 0x0000000100000017uLL}, +{0x00000010FFFFFFFFuLL, 0x00000001FFFFFFFEuLL, 0x0000000000000008uLL, 0x000000010000000FuLL}, +{0x00000010FFFFFFFFuLL, 0x00000001FFFFFFFFuLL, 0x0000000000000008uLL, 0x0000000100000007uLL}, +{0x00000010FFFFFFFFuLL, 0x0000000200000000uLL, 0x0000000000000008uLL, 0x00000000FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x0000000200000001uLL, 0x0000000000000008uLL, 0x00000000FFFFFFF7uLL}, +{0x00000010FFFFFFFFuLL, 0x0000000200000002uLL, 0x0000000000000008uLL, 0x00000000FFFFFFEFuLL}, +{0x00000010FFFFFFFFuLL, 0x0000000200000003uLL, 0x0000000000000008uLL, 0x00000000FFFFFFE7uLL}, +{0x00000010FFFFFFFFuLL, 0x0000000200000010uLL, 0x0000000000000008uLL, 0x00000000FFFFFF7FuLL}, +{0x00000010FFFFFFFFuLL, 0x00000002078644FAuLL, 0x0000000000000008uLL, 0x00000000C3CDD82FuLL}, +{0x00000010FFFFFFFFuLL, 0x000000020747AE14uLL, 0x0000000000000008uLL, 0x00000000C5C28F5FuLL}, +{0x00000010FFFFFFFFuLL, 0x000000027FFFFFFFuLL, 0x0000000000000006uLL, 0x0000000200000005uLL}, +{0x00000010FFFFFFFFuLL, 0x0000000280000000uLL, 0x0000000000000006uLL, 0x00000001FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x00000002FFFFFFFDuLL, 0x0000000000000005uLL, 0x000000020000000EuLL}, +{0x00000010FFFFFFFFuLL, 0x00000002FFFFFFFEuLL, 0x0000000000000005uLL, 0x0000000200000009uLL}, +{0x00000010FFFFFFFFuLL, 0x00000002FFFFFFFFuLL, 0x0000000000000005uLL, 0x0000000200000004uLL}, +{0x00000010FFFFFFFFuLL, 0x0000000300000000uLL, 0x0000000000000005uLL, 0x00000001FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x0000000300000001uLL, 0x0000000000000005uLL, 0x00000001FFFFFFFAuLL}, +{0x00000010FFFFFFFFuLL, 0x0000000300000002uLL, 0x0000000000000005uLL, 0x00000001FFFFFFF5uLL}, +{0x00000010FFFFFFFFuLL, 0x0000000300000003uLL, 0x0000000000000005uLL, 0x00000001FFFFFFF0uLL}, +{0x00000010FFFFFFFFuLL, 0x0000000300000010uLL, 0x0000000000000005uLL, 0x00000001FFFFFFAFuLL}, +{0x00000010FFFFFFFFuLL, 0x00000003078644FAuLL, 0x0000000000000005uLL, 0x00000001DA60A71DuLL}, +{0x00000010FFFFFFFFuLL, 0x000000030747AE14uLL, 0x0000000000000005uLL, 0x00000001DB99999BuLL}, +{0x00000010FFFFFFFFuLL, 0x000000037FFFFFFFuLL, 0x0000000000000004uLL, 0x0000000300000003uLL}, +{0x00000010FFFFFFFFuLL, 0x0000000380000000uLL, 0x0000000000000004uLL, 0x00000002FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x00000003FFFFFFFDuLL, 0x0000000000000004uLL, 0x000000010000000BuLL}, +{0x00000010FFFFFFFFuLL, 0x00000003FFFFFFFEuLL, 0x0000000000000004uLL, 0x0000000100000007uLL}, +{0x00000010FFFFFFFFuLL, 0x00000003FFFFFFFFuLL, 0x0000000000000004uLL, 0x0000000100000003uLL}, +{0x00000010FFFFFFFFuLL, 0x0000001000000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x0000001000000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0x00000010FFFFFFFFuLL, 0x0000001000000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0x00000010FFFFFFFFuLL, 0x0000001000000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFCuLL}, +{0x00000010FFFFFFFFuLL, 0x0000001000000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFEFuLL}, +{0x00000010FFFFFFFFuLL, 0x00000010078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB05uLL}, +{0x00000010FFFFFFFFuLL, 0x000000100747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EBuLL}, +{0x00000010FFFFFFFFuLL, 0x000000107FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000000uLL}, +{0x00000010FFFFFFFFuLL, 0x0000001080000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x00000010FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0x00000010FFFFFFFFuLL, 0x00000010FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x00000010FFFFFFFFuLL, 0x00000010FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x00000010FFFFFFFFuLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x00000010FFFFFFFFuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x00000010FFFFFFFFuLL}, +{0x078644FA00000000uLL, 0x0000000000000001uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL}, +{0x078644FA00000000uLL, 0x0000000000000002uLL, 0x03C3227D00000000uLL, 0x0000000000000000uLL}, +{0x078644FA00000000uLL, 0x0000000000000003uLL, 0x028216FE00000000uLL, 0x0000000000000000uLL}, +{0x078644FA00000000uLL, 0x0000000000000010uLL, 0x0078644FA0000000uLL, 0x0000000000000000uLL}, +{0x078644FA00000000uLL, 0x00000000078644FAuLL, 0x0000000100000000uLL, 0x0000000000000000uLL}, +{0x078644FA00000000uLL, 0x000000000747AE14uLL, 0x000000010898F295uLL, 0x0000000004D8C65CuLL}, +{0x078644FA00000000uLL, 0x000000007FFFFFFFuLL, 0x000000000F0C89F4uLL, 0x000000000F0C89F4uLL}, +{0x078644FA00000000uLL, 0x0000000080000000uLL, 0x000000000F0C89F4uLL, 0x0000000000000000uLL}, +{0x078644FA00000000uLL, 0x00000000FFFFFFFDuLL, 0x00000000078644FAuLL, 0x000000001692CEEEuLL}, +{0x078644FA00000000uLL, 0x00000000FFFFFFFEuLL, 0x00000000078644FAuLL, 0x000000000F0C89F4uLL}, +{0x078644FA00000000uLL, 0x00000000FFFFFFFFuLL, 0x00000000078644FAuLL, 0x00000000078644FAuLL}, +{0x078644FA00000000uLL, 0x0000000100000000uLL, 0x00000000078644FAuLL, 0x0000000000000000uLL}, +{0x078644FA00000000uLL, 0x0000000100000001uLL, 0x00000000078644F9uLL, 0x00000000F879BB07uLL}, +{0x078644FA00000000uLL, 0x0000000100000002uLL, 0x00000000078644F9uLL, 0x00000000F0F3760EuLL}, +{0x078644FA00000000uLL, 0x0000000100000003uLL, 0x00000000078644F9uLL, 0x00000000E96D3115uLL}, +{0x078644FA00000000uLL, 0x0000000100000010uLL, 0x00000000078644F9uLL, 0x00000000879BB070uLL}, +{0x078644FA00000000uLL, 0x00000001078644FAuLL, 0x00000000074F44A3uLL, 0x000000006C09ACD2uLL}, +{0x078644FA00000000uLL, 0x000000010747AE14uLL, 0x000000000751017EuLL, 0x0000000082B63E28uLL}, +{0x078644FA00000000uLL, 0x000000017FFFFFFFuLL, 0x0000000005042DFCuLL, 0x0000000005042DFCuLL}, +{0x078644FA00000000uLL, 0x0000000180000000uLL, 0x0000000005042DFCuLL, 0x0000000000000000uLL}, +{0x078644FA00000000uLL, 0x00000001FFFFFFFDuLL, 0x0000000003C3227DuLL, 0x000000000B496777uLL}, +{0x078644FA00000000uLL, 0x00000001FFFFFFFEuLL, 0x0000000003C3227DuLL, 0x00000000078644FAuLL}, +{0x078644FA00000000uLL, 0x00000001FFFFFFFFuLL, 0x0000000003C3227DuLL, 0x0000000003C3227DuLL}, +{0x078644FA00000000uLL, 0x0000000200000000uLL, 0x0000000003C3227DuLL, 0x0000000000000000uLL}, +{0x078644FA00000000uLL, 0x0000000200000001uLL, 0x0000000003C3227CuLL, 0x00000001FC3CDD84uLL}, +{0x078644FA00000000uLL, 0x0000000200000002uLL, 0x0000000003C3227CuLL, 0x00000001F879BB08uLL}, +{0x078644FA00000000uLL, 0x0000000200000003uLL, 0x0000000003C3227CuLL, 0x00000001F4B6988CuLL}, +{0x078644FA00000000uLL, 0x0000000200000010uLL, 0x0000000003C3227CuLL, 0x00000001C3CDD840uLL}, +{0x078644FA00000000uLL, 0x00000002078644FAuLL, 0x0000000003B52F6BuLL, 0x0000000181754582uLL}, +{0x078644FA00000000uLL, 0x000000020747AE14uLL, 0x0000000003B5A1D3uLL, 0x000000019B4CF184uLL}, +{0x078644FA00000000uLL, 0x000000027FFFFFFFuLL, 0x00000000030281FDuLL, 0x00000001830281FDuLL}, +{0x078644FA00000000uLL, 0x0000000280000000uLL, 0x00000000030281FDuLL, 0x0000000180000000uLL}, +{0x078644FA00000000uLL, 0x00000002FFFFFFFDuLL, 0x00000000028216FEuLL, 0x00000000078644FAuLL}, +{0x078644FA00000000uLL, 0x00000002FFFFFFFEuLL, 0x00000000028216FEuLL, 0x0000000005042DFCuLL}, +{0x078644FA00000000uLL, 0x00000002FFFFFFFFuLL, 0x00000000028216FEuLL, 0x00000000028216FEuLL}, +{0x078644FA00000000uLL, 0x0000000300000000uLL, 0x00000000028216FEuLL, 0x0000000000000000uLL}, +{0x078644FA00000000uLL, 0x0000000300000001uLL, 0x00000000028216FDuLL, 0x00000002FD7DE903uLL}, +{0x078644FA00000000uLL, 0x0000000300000002uLL, 0x00000000028216FDuLL, 0x00000002FAFBD206uLL}, +{0x078644FA00000000uLL, 0x0000000300000003uLL, 0x00000000028216FDuLL, 0x00000002F879BB09uLL}, +{0x078644FA00000000uLL, 0x0000000300000010uLL, 0x00000000028216FDuLL, 0x00000002D7DE9030uLL}, +{0x078644FA00000000uLL, 0x00000003078644FAuLL, 0x00000000027BDC26uLL, 0x0000000266ACEAE4uLL}, +{0x078644FA00000000uLL, 0x000000030747AE14uLL, 0x00000000027C0F7CuLL, 0x00000000CC648250uLL}, +{0x078644FA00000000uLL, 0x000000037FFFFFFFuLL, 0x0000000002265CD9uLL, 0x0000000282265CD9uLL}, +{0x078644FA00000000uLL, 0x0000000380000000uLL, 0x0000000002265CD9uLL, 0x0000000280000000uLL}, +{0x078644FA00000000uLL, 0x00000003FFFFFFFDuLL, 0x0000000001E1913EuLL, 0x0000000205A4B3BAuLL}, +{0x078644FA00000000uLL, 0x00000003FFFFFFFEuLL, 0x0000000001E1913EuLL, 0x0000000203C3227CuLL}, +{0x078644FA00000000uLL, 0x00000003FFFFFFFFuLL, 0x0000000001E1913EuLL, 0x0000000201E1913EuLL}, +{0x078644FA00000000uLL, 0x0000001000000000uLL, 0x000000000078644FuLL, 0x0000000A00000000uLL}, +{0x078644FA00000000uLL, 0x0000001000000001uLL, 0x000000000078644FuLL, 0x00000009FF879BB1uLL}, +{0x078644FA00000000uLL, 0x0000001000000002uLL, 0x000000000078644FuLL, 0x00000009FF0F3762uLL}, +{0x078644FA00000000uLL, 0x0000001000000003uLL, 0x000000000078644FuLL, 0x00000009FE96D313uLL}, +{0x078644FA00000000uLL, 0x0000001000000010uLL, 0x000000000078644FuLL, 0x00000009F879BB10uLL}, +{0x078644FA00000000uLL, 0x00000010078644FAuLL, 0x0000000000782BCCuLL, 0x000000001E3B0AC8uLL}, +{0x078644FA00000000uLL, 0x000000100747AE14uLL, 0x0000000000782DA1uLL, 0x0000000438F2016CuLL}, +{0x078644FA00000000uLL, 0x000000107FFFFFFFuLL, 0x000000000074BE5CuLL, 0x0000000C0074BE5CuLL}, +{0x078644FA00000000uLL, 0x0000001080000000uLL, 0x000000000074BE5CuLL, 0x0000000C00000000uLL}, +{0x078644FA00000000uLL, 0x00000010FFFFFFFDuLL, 0x0000000000714F5AuLL, 0x000000000153EE0EuLL}, +{0x078644FA00000000uLL, 0x00000010FFFFFFFEuLL, 0x0000000000714F5AuLL, 0x0000000000E29EB4uLL}, +{0x078644FA00000000uLL, 0x00000010FFFFFFFFuLL, 0x0000000000714F5AuLL, 0x0000000000714F5AuLL}, +{0x078644FA00000000uLL, 0x078644FA00000000uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x078644FA00000000uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x0747AE1400000000uLL, 0x0000000000000001uLL, 0x003E96E600000000uLL}, +{0x078644FA00000000uLL, 0x0747AE1400000001uLL, 0x0000000000000001uLL, 0x003E96E5FFFFFFFFuLL}, +{0x078644FA00000000uLL, 0x0747AE1400000002uLL, 0x0000000000000001uLL, 0x003E96E5FFFFFFFEuLL}, +{0x078644FA00000000uLL, 0x0747AE1400000003uLL, 0x0000000000000001uLL, 0x003E96E5FFFFFFFDuLL}, +{0x078644FA00000000uLL, 0x0747AE1400000010uLL, 0x0000000000000001uLL, 0x003E96E5FFFFFFF0uLL}, +{0x078644FA00000000uLL, 0x0747AE14078644FAuLL, 0x0000000000000001uLL, 0x003E96E5F879BB06uLL}, +{0x078644FA00000000uLL, 0x0747AE140747AE14uLL, 0x0000000000000001uLL, 0x003E96E5F8B851ECuLL}, +{0x078644FA00000000uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000001uLL, 0x003E96E580000001uLL}, +{0x078644FA00000000uLL, 0x0747AE1480000000uLL, 0x0000000000000001uLL, 0x003E96E580000000uLL}, +{0x078644FA00000000uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000001uLL, 0x003E96E500000003uLL}, +{0x078644FA00000000uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000001uLL, 0x003E96E500000002uLL}, +{0x078644FA00000000uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000001uLL, 0x003E96E500000001uLL}, +{0x078644FA00000000uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000000uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000000uLL}, +{0x078644FA00000001uLL, 0x0000000000000001uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL}, +{0x078644FA00000001uLL, 0x0000000000000002uLL, 0x03C3227D00000000uLL, 0x0000000000000001uLL}, +{0x078644FA00000001uLL, 0x0000000000000003uLL, 0x028216FE00000000uLL, 0x0000000000000001uLL}, +{0x078644FA00000001uLL, 0x0000000000000010uLL, 0x0078644FA0000000uLL, 0x0000000000000001uLL}, +{0x078644FA00000001uLL, 0x00000000078644FAuLL, 0x0000000100000000uLL, 0x0000000000000001uLL}, +{0x078644FA00000001uLL, 0x000000000747AE14uLL, 0x000000010898F295uLL, 0x0000000004D8C65DuLL}, +{0x078644FA00000001uLL, 0x000000007FFFFFFFuLL, 0x000000000F0C89F4uLL, 0x000000000F0C89F5uLL}, +{0x078644FA00000001uLL, 0x0000000080000000uLL, 0x000000000F0C89F4uLL, 0x0000000000000001uLL}, +{0x078644FA00000001uLL, 0x00000000FFFFFFFDuLL, 0x00000000078644FAuLL, 0x000000001692CEEFuLL}, +{0x078644FA00000001uLL, 0x00000000FFFFFFFEuLL, 0x00000000078644FAuLL, 0x000000000F0C89F5uLL}, +{0x078644FA00000001uLL, 0x00000000FFFFFFFFuLL, 0x00000000078644FAuLL, 0x00000000078644FBuLL}, +{0x078644FA00000001uLL, 0x0000000100000000uLL, 0x00000000078644FAuLL, 0x0000000000000001uLL}, +{0x078644FA00000001uLL, 0x0000000100000001uLL, 0x00000000078644F9uLL, 0x00000000F879BB08uLL}, +{0x078644FA00000001uLL, 0x0000000100000002uLL, 0x00000000078644F9uLL, 0x00000000F0F3760FuLL}, +{0x078644FA00000001uLL, 0x0000000100000003uLL, 0x00000000078644F9uLL, 0x00000000E96D3116uLL}, +{0x078644FA00000001uLL, 0x0000000100000010uLL, 0x00000000078644F9uLL, 0x00000000879BB071uLL}, +{0x078644FA00000001uLL, 0x00000001078644FAuLL, 0x00000000074F44A3uLL, 0x000000006C09ACD3uLL}, +{0x078644FA00000001uLL, 0x000000010747AE14uLL, 0x000000000751017EuLL, 0x0000000082B63E29uLL}, +{0x078644FA00000001uLL, 0x000000017FFFFFFFuLL, 0x0000000005042DFCuLL, 0x0000000005042DFDuLL}, +{0x078644FA00000001uLL, 0x0000000180000000uLL, 0x0000000005042DFCuLL, 0x0000000000000001uLL}, +{0x078644FA00000001uLL, 0x00000001FFFFFFFDuLL, 0x0000000003C3227DuLL, 0x000000000B496778uLL}, +{0x078644FA00000001uLL, 0x00000001FFFFFFFEuLL, 0x0000000003C3227DuLL, 0x00000000078644FBuLL}, +{0x078644FA00000001uLL, 0x00000001FFFFFFFFuLL, 0x0000000003C3227DuLL, 0x0000000003C3227EuLL}, +{0x078644FA00000001uLL, 0x0000000200000000uLL, 0x0000000003C3227DuLL, 0x0000000000000001uLL}, +{0x078644FA00000001uLL, 0x0000000200000001uLL, 0x0000000003C3227CuLL, 0x00000001FC3CDD85uLL}, +{0x078644FA00000001uLL, 0x0000000200000002uLL, 0x0000000003C3227CuLL, 0x00000001F879BB09uLL}, +{0x078644FA00000001uLL, 0x0000000200000003uLL, 0x0000000003C3227CuLL, 0x00000001F4B6988DuLL}, +{0x078644FA00000001uLL, 0x0000000200000010uLL, 0x0000000003C3227CuLL, 0x00000001C3CDD841uLL}, +{0x078644FA00000001uLL, 0x00000002078644FAuLL, 0x0000000003B52F6BuLL, 0x0000000181754583uLL}, +{0x078644FA00000001uLL, 0x000000020747AE14uLL, 0x0000000003B5A1D3uLL, 0x000000019B4CF185uLL}, +{0x078644FA00000001uLL, 0x000000027FFFFFFFuLL, 0x00000000030281FDuLL, 0x00000001830281FEuLL}, +{0x078644FA00000001uLL, 0x0000000280000000uLL, 0x00000000030281FDuLL, 0x0000000180000001uLL}, +{0x078644FA00000001uLL, 0x00000002FFFFFFFDuLL, 0x00000000028216FEuLL, 0x00000000078644FBuLL}, +{0x078644FA00000001uLL, 0x00000002FFFFFFFEuLL, 0x00000000028216FEuLL, 0x0000000005042DFDuLL}, +{0x078644FA00000001uLL, 0x00000002FFFFFFFFuLL, 0x00000000028216FEuLL, 0x00000000028216FFuLL}, +{0x078644FA00000001uLL, 0x0000000300000000uLL, 0x00000000028216FEuLL, 0x0000000000000001uLL}, +{0x078644FA00000001uLL, 0x0000000300000001uLL, 0x00000000028216FDuLL, 0x00000002FD7DE904uLL}, +{0x078644FA00000001uLL, 0x0000000300000002uLL, 0x00000000028216FDuLL, 0x00000002FAFBD207uLL}, +{0x078644FA00000001uLL, 0x0000000300000003uLL, 0x00000000028216FDuLL, 0x00000002F879BB0AuLL}, +{0x078644FA00000001uLL, 0x0000000300000010uLL, 0x00000000028216FDuLL, 0x00000002D7DE9031uLL}, +{0x078644FA00000001uLL, 0x00000003078644FAuLL, 0x00000000027BDC26uLL, 0x0000000266ACEAE5uLL}, +{0x078644FA00000001uLL, 0x000000030747AE14uLL, 0x00000000027C0F7CuLL, 0x00000000CC648251uLL}, +{0x078644FA00000001uLL, 0x000000037FFFFFFFuLL, 0x0000000002265CD9uLL, 0x0000000282265CDAuLL}, +{0x078644FA00000001uLL, 0x0000000380000000uLL, 0x0000000002265CD9uLL, 0x0000000280000001uLL}, +{0x078644FA00000001uLL, 0x00000003FFFFFFFDuLL, 0x0000000001E1913EuLL, 0x0000000205A4B3BBuLL}, +{0x078644FA00000001uLL, 0x00000003FFFFFFFEuLL, 0x0000000001E1913EuLL, 0x0000000203C3227DuLL}, +{0x078644FA00000001uLL, 0x00000003FFFFFFFFuLL, 0x0000000001E1913EuLL, 0x0000000201E1913FuLL}, +{0x078644FA00000001uLL, 0x0000001000000000uLL, 0x000000000078644FuLL, 0x0000000A00000001uLL}, +{0x078644FA00000001uLL, 0x0000001000000001uLL, 0x000000000078644FuLL, 0x00000009FF879BB2uLL}, +{0x078644FA00000001uLL, 0x0000001000000002uLL, 0x000000000078644FuLL, 0x00000009FF0F3763uLL}, +{0x078644FA00000001uLL, 0x0000001000000003uLL, 0x000000000078644FuLL, 0x00000009FE96D314uLL}, +{0x078644FA00000001uLL, 0x0000001000000010uLL, 0x000000000078644FuLL, 0x00000009F879BB11uLL}, +{0x078644FA00000001uLL, 0x00000010078644FAuLL, 0x0000000000782BCCuLL, 0x000000001E3B0AC9uLL}, +{0x078644FA00000001uLL, 0x000000100747AE14uLL, 0x0000000000782DA1uLL, 0x0000000438F2016DuLL}, +{0x078644FA00000001uLL, 0x000000107FFFFFFFuLL, 0x000000000074BE5CuLL, 0x0000000C0074BE5DuLL}, +{0x078644FA00000001uLL, 0x0000001080000000uLL, 0x000000000074BE5CuLL, 0x0000000C00000001uLL}, +{0x078644FA00000001uLL, 0x00000010FFFFFFFDuLL, 0x0000000000714F5AuLL, 0x000000000153EE0FuLL}, +{0x078644FA00000001uLL, 0x00000010FFFFFFFEuLL, 0x0000000000714F5AuLL, 0x0000000000E29EB5uLL}, +{0x078644FA00000001uLL, 0x00000010FFFFFFFFuLL, 0x0000000000714F5AuLL, 0x0000000000714F5BuLL}, +{0x078644FA00000001uLL, 0x078644FA00000000uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x078644FA00000001uLL, 0x078644FA00000001uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x078644FA00000001uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0x0747AE1400000000uLL, 0x0000000000000001uLL, 0x003E96E600000001uLL}, +{0x078644FA00000001uLL, 0x0747AE1400000001uLL, 0x0000000000000001uLL, 0x003E96E600000000uLL}, +{0x078644FA00000001uLL, 0x0747AE1400000002uLL, 0x0000000000000001uLL, 0x003E96E5FFFFFFFFuLL}, +{0x078644FA00000001uLL, 0x0747AE1400000003uLL, 0x0000000000000001uLL, 0x003E96E5FFFFFFFEuLL}, +{0x078644FA00000001uLL, 0x0747AE1400000010uLL, 0x0000000000000001uLL, 0x003E96E5FFFFFFF1uLL}, +{0x078644FA00000001uLL, 0x0747AE14078644FAuLL, 0x0000000000000001uLL, 0x003E96E5F879BB07uLL}, +{0x078644FA00000001uLL, 0x0747AE140747AE14uLL, 0x0000000000000001uLL, 0x003E96E5F8B851EDuLL}, +{0x078644FA00000001uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000001uLL, 0x003E96E580000002uLL}, +{0x078644FA00000001uLL, 0x0747AE1480000000uLL, 0x0000000000000001uLL, 0x003E96E580000001uLL}, +{0x078644FA00000001uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000001uLL, 0x003E96E500000004uLL}, +{0x078644FA00000001uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000001uLL, 0x003E96E500000003uLL}, +{0x078644FA00000001uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000001uLL, 0x003E96E500000002uLL}, +{0x078644FA00000001uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000001uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000001uLL}, +{0x078644FA00000002uLL, 0x0000000000000001uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL}, +{0x078644FA00000002uLL, 0x0000000000000002uLL, 0x03C3227D00000001uLL, 0x0000000000000000uLL}, +{0x078644FA00000002uLL, 0x0000000000000003uLL, 0x028216FE00000000uLL, 0x0000000000000002uLL}, +{0x078644FA00000002uLL, 0x0000000000000010uLL, 0x0078644FA0000000uLL, 0x0000000000000002uLL}, +{0x078644FA00000002uLL, 0x00000000078644FAuLL, 0x0000000100000000uLL, 0x0000000000000002uLL}, +{0x078644FA00000002uLL, 0x000000000747AE14uLL, 0x000000010898F295uLL, 0x0000000004D8C65EuLL}, +{0x078644FA00000002uLL, 0x000000007FFFFFFFuLL, 0x000000000F0C89F4uLL, 0x000000000F0C89F6uLL}, +{0x078644FA00000002uLL, 0x0000000080000000uLL, 0x000000000F0C89F4uLL, 0x0000000000000002uLL}, +{0x078644FA00000002uLL, 0x00000000FFFFFFFDuLL, 0x00000000078644FAuLL, 0x000000001692CEF0uLL}, +{0x078644FA00000002uLL, 0x00000000FFFFFFFEuLL, 0x00000000078644FAuLL, 0x000000000F0C89F6uLL}, +{0x078644FA00000002uLL, 0x00000000FFFFFFFFuLL, 0x00000000078644FAuLL, 0x00000000078644FCuLL}, +{0x078644FA00000002uLL, 0x0000000100000000uLL, 0x00000000078644FAuLL, 0x0000000000000002uLL}, +{0x078644FA00000002uLL, 0x0000000100000001uLL, 0x00000000078644F9uLL, 0x00000000F879BB09uLL}, +{0x078644FA00000002uLL, 0x0000000100000002uLL, 0x00000000078644F9uLL, 0x00000000F0F37610uLL}, +{0x078644FA00000002uLL, 0x0000000100000003uLL, 0x00000000078644F9uLL, 0x00000000E96D3117uLL}, +{0x078644FA00000002uLL, 0x0000000100000010uLL, 0x00000000078644F9uLL, 0x00000000879BB072uLL}, +{0x078644FA00000002uLL, 0x00000001078644FAuLL, 0x00000000074F44A3uLL, 0x000000006C09ACD4uLL}, +{0x078644FA00000002uLL, 0x000000010747AE14uLL, 0x000000000751017EuLL, 0x0000000082B63E2AuLL}, +{0x078644FA00000002uLL, 0x000000017FFFFFFFuLL, 0x0000000005042DFCuLL, 0x0000000005042DFEuLL}, +{0x078644FA00000002uLL, 0x0000000180000000uLL, 0x0000000005042DFCuLL, 0x0000000000000002uLL}, +{0x078644FA00000002uLL, 0x00000001FFFFFFFDuLL, 0x0000000003C3227DuLL, 0x000000000B496779uLL}, +{0x078644FA00000002uLL, 0x00000001FFFFFFFEuLL, 0x0000000003C3227DuLL, 0x00000000078644FCuLL}, +{0x078644FA00000002uLL, 0x00000001FFFFFFFFuLL, 0x0000000003C3227DuLL, 0x0000000003C3227FuLL}, +{0x078644FA00000002uLL, 0x0000000200000000uLL, 0x0000000003C3227DuLL, 0x0000000000000002uLL}, +{0x078644FA00000002uLL, 0x0000000200000001uLL, 0x0000000003C3227CuLL, 0x00000001FC3CDD86uLL}, +{0x078644FA00000002uLL, 0x0000000200000002uLL, 0x0000000003C3227CuLL, 0x00000001F879BB0AuLL}, +{0x078644FA00000002uLL, 0x0000000200000003uLL, 0x0000000003C3227CuLL, 0x00000001F4B6988EuLL}, +{0x078644FA00000002uLL, 0x0000000200000010uLL, 0x0000000003C3227CuLL, 0x00000001C3CDD842uLL}, +{0x078644FA00000002uLL, 0x00000002078644FAuLL, 0x0000000003B52F6BuLL, 0x0000000181754584uLL}, +{0x078644FA00000002uLL, 0x000000020747AE14uLL, 0x0000000003B5A1D3uLL, 0x000000019B4CF186uLL}, +{0x078644FA00000002uLL, 0x000000027FFFFFFFuLL, 0x00000000030281FDuLL, 0x00000001830281FFuLL}, +{0x078644FA00000002uLL, 0x0000000280000000uLL, 0x00000000030281FDuLL, 0x0000000180000002uLL}, +{0x078644FA00000002uLL, 0x00000002FFFFFFFDuLL, 0x00000000028216FEuLL, 0x00000000078644FCuLL}, +{0x078644FA00000002uLL, 0x00000002FFFFFFFEuLL, 0x00000000028216FEuLL, 0x0000000005042DFEuLL}, +{0x078644FA00000002uLL, 0x00000002FFFFFFFFuLL, 0x00000000028216FEuLL, 0x0000000002821700uLL}, +{0x078644FA00000002uLL, 0x0000000300000000uLL, 0x00000000028216FEuLL, 0x0000000000000002uLL}, +{0x078644FA00000002uLL, 0x0000000300000001uLL, 0x00000000028216FDuLL, 0x00000002FD7DE905uLL}, +{0x078644FA00000002uLL, 0x0000000300000002uLL, 0x00000000028216FDuLL, 0x00000002FAFBD208uLL}, +{0x078644FA00000002uLL, 0x0000000300000003uLL, 0x00000000028216FDuLL, 0x00000002F879BB0BuLL}, +{0x078644FA00000002uLL, 0x0000000300000010uLL, 0x00000000028216FDuLL, 0x00000002D7DE9032uLL}, +{0x078644FA00000002uLL, 0x00000003078644FAuLL, 0x00000000027BDC26uLL, 0x0000000266ACEAE6uLL}, +{0x078644FA00000002uLL, 0x000000030747AE14uLL, 0x00000000027C0F7CuLL, 0x00000000CC648252uLL}, +{0x078644FA00000002uLL, 0x000000037FFFFFFFuLL, 0x0000000002265CD9uLL, 0x0000000282265CDBuLL}, +{0x078644FA00000002uLL, 0x0000000380000000uLL, 0x0000000002265CD9uLL, 0x0000000280000002uLL}, +{0x078644FA00000002uLL, 0x00000003FFFFFFFDuLL, 0x0000000001E1913EuLL, 0x0000000205A4B3BCuLL}, +{0x078644FA00000002uLL, 0x00000003FFFFFFFEuLL, 0x0000000001E1913EuLL, 0x0000000203C3227EuLL}, +{0x078644FA00000002uLL, 0x00000003FFFFFFFFuLL, 0x0000000001E1913EuLL, 0x0000000201E19140uLL}, +{0x078644FA00000002uLL, 0x0000001000000000uLL, 0x000000000078644FuLL, 0x0000000A00000002uLL}, +{0x078644FA00000002uLL, 0x0000001000000001uLL, 0x000000000078644FuLL, 0x00000009FF879BB3uLL}, +{0x078644FA00000002uLL, 0x0000001000000002uLL, 0x000000000078644FuLL, 0x00000009FF0F3764uLL}, +{0x078644FA00000002uLL, 0x0000001000000003uLL, 0x000000000078644FuLL, 0x00000009FE96D315uLL}, +{0x078644FA00000002uLL, 0x0000001000000010uLL, 0x000000000078644FuLL, 0x00000009F879BB12uLL}, +{0x078644FA00000002uLL, 0x00000010078644FAuLL, 0x0000000000782BCCuLL, 0x000000001E3B0ACAuLL}, +{0x078644FA00000002uLL, 0x000000100747AE14uLL, 0x0000000000782DA1uLL, 0x0000000438F2016EuLL}, +{0x078644FA00000002uLL, 0x000000107FFFFFFFuLL, 0x000000000074BE5CuLL, 0x0000000C0074BE5EuLL}, +{0x078644FA00000002uLL, 0x0000001080000000uLL, 0x000000000074BE5CuLL, 0x0000000C00000002uLL}, +{0x078644FA00000002uLL, 0x00000010FFFFFFFDuLL, 0x0000000000714F5AuLL, 0x000000000153EE10uLL}, +{0x078644FA00000002uLL, 0x00000010FFFFFFFEuLL, 0x0000000000714F5AuLL, 0x0000000000E29EB6uLL}, +{0x078644FA00000002uLL, 0x00000010FFFFFFFFuLL, 0x0000000000714F5AuLL, 0x0000000000714F5CuLL}, +{0x078644FA00000002uLL, 0x078644FA00000000uLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0x078644FA00000002uLL, 0x078644FA00000001uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x078644FA00000002uLL, 0x078644FA00000002uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x078644FA00000002uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0x0747AE1400000000uLL, 0x0000000000000001uLL, 0x003E96E600000002uLL}, +{0x078644FA00000002uLL, 0x0747AE1400000001uLL, 0x0000000000000001uLL, 0x003E96E600000001uLL}, +{0x078644FA00000002uLL, 0x0747AE1400000002uLL, 0x0000000000000001uLL, 0x003E96E600000000uLL}, +{0x078644FA00000002uLL, 0x0747AE1400000003uLL, 0x0000000000000001uLL, 0x003E96E5FFFFFFFFuLL}, +{0x078644FA00000002uLL, 0x0747AE1400000010uLL, 0x0000000000000001uLL, 0x003E96E5FFFFFFF2uLL}, +{0x078644FA00000002uLL, 0x0747AE14078644FAuLL, 0x0000000000000001uLL, 0x003E96E5F879BB08uLL}, +{0x078644FA00000002uLL, 0x0747AE140747AE14uLL, 0x0000000000000001uLL, 0x003E96E5F8B851EEuLL}, +{0x078644FA00000002uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000001uLL, 0x003E96E580000003uLL}, +{0x078644FA00000002uLL, 0x0747AE1480000000uLL, 0x0000000000000001uLL, 0x003E96E580000002uLL}, +{0x078644FA00000002uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000001uLL, 0x003E96E500000005uLL}, +{0x078644FA00000002uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000001uLL, 0x003E96E500000004uLL}, +{0x078644FA00000002uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000001uLL, 0x003E96E500000003uLL}, +{0x078644FA00000002uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000002uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000002uLL}, +{0x078644FA00000003uLL, 0x0000000000000001uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL}, +{0x078644FA00000003uLL, 0x0000000000000002uLL, 0x03C3227D00000001uLL, 0x0000000000000001uLL}, +{0x078644FA00000003uLL, 0x0000000000000003uLL, 0x028216FE00000001uLL, 0x0000000000000000uLL}, +{0x078644FA00000003uLL, 0x0000000000000010uLL, 0x0078644FA0000000uLL, 0x0000000000000003uLL}, +{0x078644FA00000003uLL, 0x00000000078644FAuLL, 0x0000000100000000uLL, 0x0000000000000003uLL}, +{0x078644FA00000003uLL, 0x000000000747AE14uLL, 0x000000010898F295uLL, 0x0000000004D8C65FuLL}, +{0x078644FA00000003uLL, 0x000000007FFFFFFFuLL, 0x000000000F0C89F4uLL, 0x000000000F0C89F7uLL}, +{0x078644FA00000003uLL, 0x0000000080000000uLL, 0x000000000F0C89F4uLL, 0x0000000000000003uLL}, +{0x078644FA00000003uLL, 0x00000000FFFFFFFDuLL, 0x00000000078644FAuLL, 0x000000001692CEF1uLL}, +{0x078644FA00000003uLL, 0x00000000FFFFFFFEuLL, 0x00000000078644FAuLL, 0x000000000F0C89F7uLL}, +{0x078644FA00000003uLL, 0x00000000FFFFFFFFuLL, 0x00000000078644FAuLL, 0x00000000078644FDuLL}, +{0x078644FA00000003uLL, 0x0000000100000000uLL, 0x00000000078644FAuLL, 0x0000000000000003uLL}, +{0x078644FA00000003uLL, 0x0000000100000001uLL, 0x00000000078644F9uLL, 0x00000000F879BB0AuLL}, +{0x078644FA00000003uLL, 0x0000000100000002uLL, 0x00000000078644F9uLL, 0x00000000F0F37611uLL}, +{0x078644FA00000003uLL, 0x0000000100000003uLL, 0x00000000078644F9uLL, 0x00000000E96D3118uLL}, +{0x078644FA00000003uLL, 0x0000000100000010uLL, 0x00000000078644F9uLL, 0x00000000879BB073uLL}, +{0x078644FA00000003uLL, 0x00000001078644FAuLL, 0x00000000074F44A3uLL, 0x000000006C09ACD5uLL}, +{0x078644FA00000003uLL, 0x000000010747AE14uLL, 0x000000000751017EuLL, 0x0000000082B63E2BuLL}, +{0x078644FA00000003uLL, 0x000000017FFFFFFFuLL, 0x0000000005042DFCuLL, 0x0000000005042DFFuLL}, +{0x078644FA00000003uLL, 0x0000000180000000uLL, 0x0000000005042DFCuLL, 0x0000000000000003uLL}, +{0x078644FA00000003uLL, 0x00000001FFFFFFFDuLL, 0x0000000003C3227DuLL, 0x000000000B49677AuLL}, +{0x078644FA00000003uLL, 0x00000001FFFFFFFEuLL, 0x0000000003C3227DuLL, 0x00000000078644FDuLL}, +{0x078644FA00000003uLL, 0x00000001FFFFFFFFuLL, 0x0000000003C3227DuLL, 0x0000000003C32280uLL}, +{0x078644FA00000003uLL, 0x0000000200000000uLL, 0x0000000003C3227DuLL, 0x0000000000000003uLL}, +{0x078644FA00000003uLL, 0x0000000200000001uLL, 0x0000000003C3227CuLL, 0x00000001FC3CDD87uLL}, +{0x078644FA00000003uLL, 0x0000000200000002uLL, 0x0000000003C3227CuLL, 0x00000001F879BB0BuLL}, +{0x078644FA00000003uLL, 0x0000000200000003uLL, 0x0000000003C3227CuLL, 0x00000001F4B6988FuLL}, +{0x078644FA00000003uLL, 0x0000000200000010uLL, 0x0000000003C3227CuLL, 0x00000001C3CDD843uLL}, +{0x078644FA00000003uLL, 0x00000002078644FAuLL, 0x0000000003B52F6BuLL, 0x0000000181754585uLL}, +{0x078644FA00000003uLL, 0x000000020747AE14uLL, 0x0000000003B5A1D3uLL, 0x000000019B4CF187uLL}, +{0x078644FA00000003uLL, 0x000000027FFFFFFFuLL, 0x00000000030281FDuLL, 0x0000000183028200uLL}, +{0x078644FA00000003uLL, 0x0000000280000000uLL, 0x00000000030281FDuLL, 0x0000000180000003uLL}, +{0x078644FA00000003uLL, 0x00000002FFFFFFFDuLL, 0x00000000028216FEuLL, 0x00000000078644FDuLL}, +{0x078644FA00000003uLL, 0x00000002FFFFFFFEuLL, 0x00000000028216FEuLL, 0x0000000005042DFFuLL}, +{0x078644FA00000003uLL, 0x00000002FFFFFFFFuLL, 0x00000000028216FEuLL, 0x0000000002821701uLL}, +{0x078644FA00000003uLL, 0x0000000300000000uLL, 0x00000000028216FEuLL, 0x0000000000000003uLL}, +{0x078644FA00000003uLL, 0x0000000300000001uLL, 0x00000000028216FDuLL, 0x00000002FD7DE906uLL}, +{0x078644FA00000003uLL, 0x0000000300000002uLL, 0x00000000028216FDuLL, 0x00000002FAFBD209uLL}, +{0x078644FA00000003uLL, 0x0000000300000003uLL, 0x00000000028216FDuLL, 0x00000002F879BB0CuLL}, +{0x078644FA00000003uLL, 0x0000000300000010uLL, 0x00000000028216FDuLL, 0x00000002D7DE9033uLL}, +{0x078644FA00000003uLL, 0x00000003078644FAuLL, 0x00000000027BDC26uLL, 0x0000000266ACEAE7uLL}, +{0x078644FA00000003uLL, 0x000000030747AE14uLL, 0x00000000027C0F7CuLL, 0x00000000CC648253uLL}, +{0x078644FA00000003uLL, 0x000000037FFFFFFFuLL, 0x0000000002265CD9uLL, 0x0000000282265CDCuLL}, +{0x078644FA00000003uLL, 0x0000000380000000uLL, 0x0000000002265CD9uLL, 0x0000000280000003uLL}, +{0x078644FA00000003uLL, 0x00000003FFFFFFFDuLL, 0x0000000001E1913EuLL, 0x0000000205A4B3BDuLL}, +{0x078644FA00000003uLL, 0x00000003FFFFFFFEuLL, 0x0000000001E1913EuLL, 0x0000000203C3227FuLL}, +{0x078644FA00000003uLL, 0x00000003FFFFFFFFuLL, 0x0000000001E1913EuLL, 0x0000000201E19141uLL}, +{0x078644FA00000003uLL, 0x0000001000000000uLL, 0x000000000078644FuLL, 0x0000000A00000003uLL}, +{0x078644FA00000003uLL, 0x0000001000000001uLL, 0x000000000078644FuLL, 0x00000009FF879BB4uLL}, +{0x078644FA00000003uLL, 0x0000001000000002uLL, 0x000000000078644FuLL, 0x00000009FF0F3765uLL}, +{0x078644FA00000003uLL, 0x0000001000000003uLL, 0x000000000078644FuLL, 0x00000009FE96D316uLL}, +{0x078644FA00000003uLL, 0x0000001000000010uLL, 0x000000000078644FuLL, 0x00000009F879BB13uLL}, +{0x078644FA00000003uLL, 0x00000010078644FAuLL, 0x0000000000782BCCuLL, 0x000000001E3B0ACBuLL}, +{0x078644FA00000003uLL, 0x000000100747AE14uLL, 0x0000000000782DA1uLL, 0x0000000438F2016FuLL}, +{0x078644FA00000003uLL, 0x000000107FFFFFFFuLL, 0x000000000074BE5CuLL, 0x0000000C0074BE5FuLL}, +{0x078644FA00000003uLL, 0x0000001080000000uLL, 0x000000000074BE5CuLL, 0x0000000C00000003uLL}, +{0x078644FA00000003uLL, 0x00000010FFFFFFFDuLL, 0x0000000000714F5AuLL, 0x000000000153EE11uLL}, +{0x078644FA00000003uLL, 0x00000010FFFFFFFEuLL, 0x0000000000714F5AuLL, 0x0000000000E29EB7uLL}, +{0x078644FA00000003uLL, 0x00000010FFFFFFFFuLL, 0x0000000000714F5AuLL, 0x0000000000714F5DuLL}, +{0x078644FA00000003uLL, 0x078644FA00000000uLL, 0x0000000000000001uLL, 0x0000000000000003uLL}, +{0x078644FA00000003uLL, 0x078644FA00000001uLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0x078644FA00000003uLL, 0x078644FA00000002uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x078644FA00000003uLL, 0x078644FA00000003uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x078644FA00000003uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0x0747AE1400000000uLL, 0x0000000000000001uLL, 0x003E96E600000003uLL}, +{0x078644FA00000003uLL, 0x0747AE1400000001uLL, 0x0000000000000001uLL, 0x003E96E600000002uLL}, +{0x078644FA00000003uLL, 0x0747AE1400000002uLL, 0x0000000000000001uLL, 0x003E96E600000001uLL}, +{0x078644FA00000003uLL, 0x0747AE1400000003uLL, 0x0000000000000001uLL, 0x003E96E600000000uLL}, +{0x078644FA00000003uLL, 0x0747AE1400000010uLL, 0x0000000000000001uLL, 0x003E96E5FFFFFFF3uLL}, +{0x078644FA00000003uLL, 0x0747AE14078644FAuLL, 0x0000000000000001uLL, 0x003E96E5F879BB09uLL}, +{0x078644FA00000003uLL, 0x0747AE140747AE14uLL, 0x0000000000000001uLL, 0x003E96E5F8B851EFuLL}, +{0x078644FA00000003uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000001uLL, 0x003E96E580000004uLL}, +{0x078644FA00000003uLL, 0x0747AE1480000000uLL, 0x0000000000000001uLL, 0x003E96E580000003uLL}, +{0x078644FA00000003uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000001uLL, 0x003E96E500000006uLL}, +{0x078644FA00000003uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000001uLL, 0x003E96E500000005uLL}, +{0x078644FA00000003uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000001uLL, 0x003E96E500000004uLL}, +{0x078644FA00000003uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000003uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000003uLL}, +{0x078644FA00000010uLL, 0x0000000000000001uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL}, +{0x078644FA00000010uLL, 0x0000000000000002uLL, 0x03C3227D00000008uLL, 0x0000000000000000uLL}, +{0x078644FA00000010uLL, 0x0000000000000003uLL, 0x028216FE00000005uLL, 0x0000000000000001uLL}, +{0x078644FA00000010uLL, 0x0000000000000010uLL, 0x0078644FA0000001uLL, 0x0000000000000000uLL}, +{0x078644FA00000010uLL, 0x00000000078644FAuLL, 0x0000000100000000uLL, 0x0000000000000010uLL}, +{0x078644FA00000010uLL, 0x000000000747AE14uLL, 0x000000010898F295uLL, 0x0000000004D8C66CuLL}, +{0x078644FA00000010uLL, 0x000000007FFFFFFFuLL, 0x000000000F0C89F4uLL, 0x000000000F0C8A04uLL}, +{0x078644FA00000010uLL, 0x0000000080000000uLL, 0x000000000F0C89F4uLL, 0x0000000000000010uLL}, +{0x078644FA00000010uLL, 0x00000000FFFFFFFDuLL, 0x00000000078644FAuLL, 0x000000001692CEFEuLL}, +{0x078644FA00000010uLL, 0x00000000FFFFFFFEuLL, 0x00000000078644FAuLL, 0x000000000F0C8A04uLL}, +{0x078644FA00000010uLL, 0x00000000FFFFFFFFuLL, 0x00000000078644FAuLL, 0x000000000786450AuLL}, +{0x078644FA00000010uLL, 0x0000000100000000uLL, 0x00000000078644FAuLL, 0x0000000000000010uLL}, +{0x078644FA00000010uLL, 0x0000000100000001uLL, 0x00000000078644F9uLL, 0x00000000F879BB17uLL}, +{0x078644FA00000010uLL, 0x0000000100000002uLL, 0x00000000078644F9uLL, 0x00000000F0F3761EuLL}, +{0x078644FA00000010uLL, 0x0000000100000003uLL, 0x00000000078644F9uLL, 0x00000000E96D3125uLL}, +{0x078644FA00000010uLL, 0x0000000100000010uLL, 0x00000000078644F9uLL, 0x00000000879BB080uLL}, +{0x078644FA00000010uLL, 0x00000001078644FAuLL, 0x00000000074F44A3uLL, 0x000000006C09ACE2uLL}, +{0x078644FA00000010uLL, 0x000000010747AE14uLL, 0x000000000751017EuLL, 0x0000000082B63E38uLL}, +{0x078644FA00000010uLL, 0x000000017FFFFFFFuLL, 0x0000000005042DFCuLL, 0x0000000005042E0CuLL}, +{0x078644FA00000010uLL, 0x0000000180000000uLL, 0x0000000005042DFCuLL, 0x0000000000000010uLL}, +{0x078644FA00000010uLL, 0x00000001FFFFFFFDuLL, 0x0000000003C3227DuLL, 0x000000000B496787uLL}, +{0x078644FA00000010uLL, 0x00000001FFFFFFFEuLL, 0x0000000003C3227DuLL, 0x000000000786450AuLL}, +{0x078644FA00000010uLL, 0x00000001FFFFFFFFuLL, 0x0000000003C3227DuLL, 0x0000000003C3228DuLL}, +{0x078644FA00000010uLL, 0x0000000200000000uLL, 0x0000000003C3227DuLL, 0x0000000000000010uLL}, +{0x078644FA00000010uLL, 0x0000000200000001uLL, 0x0000000003C3227CuLL, 0x00000001FC3CDD94uLL}, +{0x078644FA00000010uLL, 0x0000000200000002uLL, 0x0000000003C3227CuLL, 0x00000001F879BB18uLL}, +{0x078644FA00000010uLL, 0x0000000200000003uLL, 0x0000000003C3227CuLL, 0x00000001F4B6989CuLL}, +{0x078644FA00000010uLL, 0x0000000200000010uLL, 0x0000000003C3227CuLL, 0x00000001C3CDD850uLL}, +{0x078644FA00000010uLL, 0x00000002078644FAuLL, 0x0000000003B52F6BuLL, 0x0000000181754592uLL}, +{0x078644FA00000010uLL, 0x000000020747AE14uLL, 0x0000000003B5A1D3uLL, 0x000000019B4CF194uLL}, +{0x078644FA00000010uLL, 0x000000027FFFFFFFuLL, 0x00000000030281FDuLL, 0x000000018302820DuLL}, +{0x078644FA00000010uLL, 0x0000000280000000uLL, 0x00000000030281FDuLL, 0x0000000180000010uLL}, +{0x078644FA00000010uLL, 0x00000002FFFFFFFDuLL, 0x00000000028216FEuLL, 0x000000000786450AuLL}, +{0x078644FA00000010uLL, 0x00000002FFFFFFFEuLL, 0x00000000028216FEuLL, 0x0000000005042E0CuLL}, +{0x078644FA00000010uLL, 0x00000002FFFFFFFFuLL, 0x00000000028216FEuLL, 0x000000000282170EuLL}, +{0x078644FA00000010uLL, 0x0000000300000000uLL, 0x00000000028216FEuLL, 0x0000000000000010uLL}, +{0x078644FA00000010uLL, 0x0000000300000001uLL, 0x00000000028216FDuLL, 0x00000002FD7DE913uLL}, +{0x078644FA00000010uLL, 0x0000000300000002uLL, 0x00000000028216FDuLL, 0x00000002FAFBD216uLL}, +{0x078644FA00000010uLL, 0x0000000300000003uLL, 0x00000000028216FDuLL, 0x00000002F879BB19uLL}, +{0x078644FA00000010uLL, 0x0000000300000010uLL, 0x00000000028216FDuLL, 0x00000002D7DE9040uLL}, +{0x078644FA00000010uLL, 0x00000003078644FAuLL, 0x00000000027BDC26uLL, 0x0000000266ACEAF4uLL}, +{0x078644FA00000010uLL, 0x000000030747AE14uLL, 0x00000000027C0F7CuLL, 0x00000000CC648260uLL}, +{0x078644FA00000010uLL, 0x000000037FFFFFFFuLL, 0x0000000002265CD9uLL, 0x0000000282265CE9uLL}, +{0x078644FA00000010uLL, 0x0000000380000000uLL, 0x0000000002265CD9uLL, 0x0000000280000010uLL}, +{0x078644FA00000010uLL, 0x00000003FFFFFFFDuLL, 0x0000000001E1913EuLL, 0x0000000205A4B3CAuLL}, +{0x078644FA00000010uLL, 0x00000003FFFFFFFEuLL, 0x0000000001E1913EuLL, 0x0000000203C3228CuLL}, +{0x078644FA00000010uLL, 0x00000003FFFFFFFFuLL, 0x0000000001E1913EuLL, 0x0000000201E1914EuLL}, +{0x078644FA00000010uLL, 0x0000001000000000uLL, 0x000000000078644FuLL, 0x0000000A00000010uLL}, +{0x078644FA00000010uLL, 0x0000001000000001uLL, 0x000000000078644FuLL, 0x00000009FF879BC1uLL}, +{0x078644FA00000010uLL, 0x0000001000000002uLL, 0x000000000078644FuLL, 0x00000009FF0F3772uLL}, +{0x078644FA00000010uLL, 0x0000001000000003uLL, 0x000000000078644FuLL, 0x00000009FE96D323uLL}, +{0x078644FA00000010uLL, 0x0000001000000010uLL, 0x000000000078644FuLL, 0x00000009F879BB20uLL}, +{0x078644FA00000010uLL, 0x00000010078644FAuLL, 0x0000000000782BCCuLL, 0x000000001E3B0AD8uLL}, +{0x078644FA00000010uLL, 0x000000100747AE14uLL, 0x0000000000782DA1uLL, 0x0000000438F2017CuLL}, +{0x078644FA00000010uLL, 0x000000107FFFFFFFuLL, 0x000000000074BE5CuLL, 0x0000000C0074BE6CuLL}, +{0x078644FA00000010uLL, 0x0000001080000000uLL, 0x000000000074BE5CuLL, 0x0000000C00000010uLL}, +{0x078644FA00000010uLL, 0x00000010FFFFFFFDuLL, 0x0000000000714F5AuLL, 0x000000000153EE1EuLL}, +{0x078644FA00000010uLL, 0x00000010FFFFFFFEuLL, 0x0000000000714F5AuLL, 0x0000000000E29EC4uLL}, +{0x078644FA00000010uLL, 0x00000010FFFFFFFFuLL, 0x0000000000714F5AuLL, 0x0000000000714F6AuLL}, +{0x078644FA00000010uLL, 0x078644FA00000000uLL, 0x0000000000000001uLL, 0x0000000000000010uLL}, +{0x078644FA00000010uLL, 0x078644FA00000001uLL, 0x0000000000000001uLL, 0x000000000000000FuLL}, +{0x078644FA00000010uLL, 0x078644FA00000002uLL, 0x0000000000000001uLL, 0x000000000000000EuLL}, +{0x078644FA00000010uLL, 0x078644FA00000003uLL, 0x0000000000000001uLL, 0x000000000000000DuLL}, +{0x078644FA00000010uLL, 0x078644FA00000010uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x078644FA00000010uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0x0747AE1400000000uLL, 0x0000000000000001uLL, 0x003E96E600000010uLL}, +{0x078644FA00000010uLL, 0x0747AE1400000001uLL, 0x0000000000000001uLL, 0x003E96E60000000FuLL}, +{0x078644FA00000010uLL, 0x0747AE1400000002uLL, 0x0000000000000001uLL, 0x003E96E60000000EuLL}, +{0x078644FA00000010uLL, 0x0747AE1400000003uLL, 0x0000000000000001uLL, 0x003E96E60000000DuLL}, +{0x078644FA00000010uLL, 0x0747AE1400000010uLL, 0x0000000000000001uLL, 0x003E96E600000000uLL}, +{0x078644FA00000010uLL, 0x0747AE14078644FAuLL, 0x0000000000000001uLL, 0x003E96E5F879BB16uLL}, +{0x078644FA00000010uLL, 0x0747AE140747AE14uLL, 0x0000000000000001uLL, 0x003E96E5F8B851FCuLL}, +{0x078644FA00000010uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000001uLL, 0x003E96E580000011uLL}, +{0x078644FA00000010uLL, 0x0747AE1480000000uLL, 0x0000000000000001uLL, 0x003E96E580000010uLL}, +{0x078644FA00000010uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000001uLL, 0x003E96E500000013uLL}, +{0x078644FA00000010uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000001uLL, 0x003E96E500000012uLL}, +{0x078644FA00000010uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000001uLL, 0x003E96E500000011uLL}, +{0x078644FA00000010uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA00000010uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA00000010uLL}, +{0x078644FA078644FAuLL, 0x0000000000000001uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL}, +{0x078644FA078644FAuLL, 0x0000000000000002uLL, 0x03C3227D03C3227DuLL, 0x0000000000000000uLL}, +{0x078644FA078644FAuLL, 0x0000000000000003uLL, 0x028216FE028216FEuLL, 0x0000000000000000uLL}, +{0x078644FA078644FAuLL, 0x0000000000000010uLL, 0x0078644FA078644FuLL, 0x000000000000000AuLL}, +{0x078644FA078644FAuLL, 0x00000000078644FAuLL, 0x0000000100000001uLL, 0x0000000000000000uLL}, +{0x078644FA078644FAuLL, 0x000000000747AE14uLL, 0x000000010898F296uLL, 0x0000000005175D42uLL}, +{0x078644FA078644FAuLL, 0x000000007FFFFFFFuLL, 0x000000000F0C89F4uLL, 0x000000001692CEEEuLL}, +{0x078644FA078644FAuLL, 0x0000000080000000uLL, 0x000000000F0C89F4uLL, 0x00000000078644FAuLL}, +{0x078644FA078644FAuLL, 0x00000000FFFFFFFDuLL, 0x00000000078644FAuLL, 0x000000001E1913E8uLL}, +{0x078644FA078644FAuLL, 0x00000000FFFFFFFEuLL, 0x00000000078644FAuLL, 0x000000001692CEEEuLL}, +{0x078644FA078644FAuLL, 0x00000000FFFFFFFFuLL, 0x00000000078644FAuLL, 0x000000000F0C89F4uLL}, +{0x078644FA078644FAuLL, 0x0000000100000000uLL, 0x00000000078644FAuLL, 0x00000000078644FAuLL}, +{0x078644FA078644FAuLL, 0x0000000100000001uLL, 0x00000000078644FAuLL, 0x0000000000000000uLL}, +{0x078644FA078644FAuLL, 0x0000000100000002uLL, 0x00000000078644F9uLL, 0x00000000F879BB08uLL}, +{0x078644FA078644FAuLL, 0x0000000100000003uLL, 0x00000000078644F9uLL, 0x00000000F0F3760FuLL}, +{0x078644FA078644FAuLL, 0x0000000100000010uLL, 0x00000000078644F9uLL, 0x000000008F21F56AuLL}, +{0x078644FA078644FAuLL, 0x00000001078644FAuLL, 0x00000000074F44A3uLL, 0x00000000738FF1CCuLL}, +{0x078644FA078644FAuLL, 0x000000010747AE14uLL, 0x000000000751017EuLL, 0x000000008A3C8322uLL}, +{0x078644FA078644FAuLL, 0x000000017FFFFFFFuLL, 0x0000000005042DFCuLL, 0x000000000C8A72F6uLL}, +{0x078644FA078644FAuLL, 0x0000000180000000uLL, 0x0000000005042DFCuLL, 0x00000000078644FAuLL}, +{0x078644FA078644FAuLL, 0x00000001FFFFFFFDuLL, 0x0000000003C3227DuLL, 0x0000000012CFAC71uLL}, +{0x078644FA078644FAuLL, 0x00000001FFFFFFFEuLL, 0x0000000003C3227DuLL, 0x000000000F0C89F4uLL}, +{0x078644FA078644FAuLL, 0x00000001FFFFFFFFuLL, 0x0000000003C3227DuLL, 0x000000000B496777uLL}, +{0x078644FA078644FAuLL, 0x0000000200000000uLL, 0x0000000003C3227DuLL, 0x00000000078644FAuLL}, +{0x078644FA078644FAuLL, 0x0000000200000001uLL, 0x0000000003C3227DuLL, 0x0000000003C3227DuLL}, +{0x078644FA078644FAuLL, 0x0000000200000002uLL, 0x0000000003C3227DuLL, 0x0000000000000000uLL}, +{0x078644FA078644FAuLL, 0x0000000200000003uLL, 0x0000000003C3227CuLL, 0x00000001FC3CDD86uLL}, +{0x078644FA078644FAuLL, 0x0000000200000010uLL, 0x0000000003C3227CuLL, 0x00000001CB541D3AuLL}, +{0x078644FA078644FAuLL, 0x00000002078644FAuLL, 0x0000000003B52F6BuLL, 0x0000000188FB8A7CuLL}, +{0x078644FA078644FAuLL, 0x000000020747AE14uLL, 0x0000000003B5A1D3uLL, 0x00000001A2D3367EuLL}, +{0x078644FA078644FAuLL, 0x000000027FFFFFFFuLL, 0x00000000030281FDuLL, 0x000000018A88C6F7uLL}, +{0x078644FA078644FAuLL, 0x0000000280000000uLL, 0x00000000030281FDuLL, 0x00000001878644FAuLL}, +{0x078644FA078644FAuLL, 0x00000002FFFFFFFDuLL, 0x00000000028216FEuLL, 0x000000000F0C89F4uLL}, +{0x078644FA078644FAuLL, 0x00000002FFFFFFFEuLL, 0x00000000028216FEuLL, 0x000000000C8A72F6uLL}, +{0x078644FA078644FAuLL, 0x00000002FFFFFFFFuLL, 0x00000000028216FEuLL, 0x000000000A085BF8uLL}, +{0x078644FA078644FAuLL, 0x0000000300000000uLL, 0x00000000028216FEuLL, 0x00000000078644FAuLL}, +{0x078644FA078644FAuLL, 0x0000000300000001uLL, 0x00000000028216FEuLL, 0x0000000005042DFCuLL}, +{0x078644FA078644FAuLL, 0x0000000300000002uLL, 0x00000000028216FEuLL, 0x00000000028216FEuLL}, +{0x078644FA078644FAuLL, 0x0000000300000003uLL, 0x00000000028216FEuLL, 0x0000000000000000uLL}, +{0x078644FA078644FAuLL, 0x0000000300000010uLL, 0x00000000028216FDuLL, 0x00000002DF64D52AuLL}, +{0x078644FA078644FAuLL, 0x00000003078644FAuLL, 0x00000000027BDC26uLL, 0x000000026E332FDEuLL}, +{0x078644FA078644FAuLL, 0x000000030747AE14uLL, 0x00000000027C0F7CuLL, 0x00000000D3EAC74AuLL}, +{0x078644FA078644FAuLL, 0x000000037FFFFFFFuLL, 0x0000000002265CD9uLL, 0x0000000289ACA1D3uLL}, +{0x078644FA078644FAuLL, 0x0000000380000000uLL, 0x0000000002265CD9uLL, 0x00000002878644FAuLL}, +{0x078644FA078644FAuLL, 0x00000003FFFFFFFDuLL, 0x0000000001E1913EuLL, 0x000000020D2AF8B4uLL}, +{0x078644FA078644FAuLL, 0x00000003FFFFFFFEuLL, 0x0000000001E1913EuLL, 0x000000020B496776uLL}, +{0x078644FA078644FAuLL, 0x00000003FFFFFFFFuLL, 0x0000000001E1913EuLL, 0x000000020967D638uLL}, +{0x078644FA078644FAuLL, 0x0000001000000000uLL, 0x000000000078644FuLL, 0x0000000A078644FAuLL}, +{0x078644FA078644FAuLL, 0x0000001000000001uLL, 0x000000000078644FuLL, 0x0000000A070DE0ABuLL}, +{0x078644FA078644FAuLL, 0x0000001000000002uLL, 0x000000000078644FuLL, 0x0000000A06957C5CuLL}, +{0x078644FA078644FAuLL, 0x0000001000000003uLL, 0x000000000078644FuLL, 0x0000000A061D180DuLL}, +{0x078644FA078644FAuLL, 0x0000001000000010uLL, 0x000000000078644FuLL, 0x0000000A0000000AuLL}, +{0x078644FA078644FAuLL, 0x00000010078644FAuLL, 0x0000000000782BCCuLL, 0x0000000025C14FC2uLL}, +{0x078644FA078644FAuLL, 0x000000100747AE14uLL, 0x0000000000782DA1uLL, 0x0000000440784666uLL}, +{0x078644FA078644FAuLL, 0x000000107FFFFFFFuLL, 0x000000000074BE5CuLL, 0x0000000C07FB0356uLL}, +{0x078644FA078644FAuLL, 0x0000001080000000uLL, 0x000000000074BE5CuLL, 0x0000000C078644FAuLL}, +{0x078644FA078644FAuLL, 0x00000010FFFFFFFDuLL, 0x0000000000714F5AuLL, 0x0000000008DA3308uLL}, +{0x078644FA078644FAuLL, 0x00000010FFFFFFFEuLL, 0x0000000000714F5AuLL, 0x000000000868E3AEuLL}, +{0x078644FA078644FAuLL, 0x00000010FFFFFFFFuLL, 0x0000000000714F5AuLL, 0x0000000007F79454uLL}, +{0x078644FA078644FAuLL, 0x078644FA00000000uLL, 0x0000000000000001uLL, 0x00000000078644FAuLL}, +{0x078644FA078644FAuLL, 0x078644FA00000001uLL, 0x0000000000000001uLL, 0x00000000078644F9uLL}, +{0x078644FA078644FAuLL, 0x078644FA00000002uLL, 0x0000000000000001uLL, 0x00000000078644F8uLL}, +{0x078644FA078644FAuLL, 0x078644FA00000003uLL, 0x0000000000000001uLL, 0x00000000078644F7uLL}, +{0x078644FA078644FAuLL, 0x078644FA00000010uLL, 0x0000000000000001uLL, 0x00000000078644EAuLL}, +{0x078644FA078644FAuLL, 0x078644FA078644FAuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x078644FA078644FAuLL, 0x078644FA0747AE14uLL, 0x0000000000000001uLL, 0x00000000003E96E6uLL}, +{0x078644FA078644FAuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0x0747AE1400000000uLL, 0x0000000000000001uLL, 0x003E96E6078644FAuLL}, +{0x078644FA078644FAuLL, 0x0747AE1400000001uLL, 0x0000000000000001uLL, 0x003E96E6078644F9uLL}, +{0x078644FA078644FAuLL, 0x0747AE1400000002uLL, 0x0000000000000001uLL, 0x003E96E6078644F8uLL}, +{0x078644FA078644FAuLL, 0x0747AE1400000003uLL, 0x0000000000000001uLL, 0x003E96E6078644F7uLL}, +{0x078644FA078644FAuLL, 0x0747AE1400000010uLL, 0x0000000000000001uLL, 0x003E96E6078644EAuLL}, +{0x078644FA078644FAuLL, 0x0747AE14078644FAuLL, 0x0000000000000001uLL, 0x003E96E600000000uLL}, +{0x078644FA078644FAuLL, 0x0747AE140747AE14uLL, 0x0000000000000001uLL, 0x003E96E6003E96E6uLL}, +{0x078644FA078644FAuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000001uLL, 0x003E96E5878644FBuLL}, +{0x078644FA078644FAuLL, 0x0747AE1480000000uLL, 0x0000000000000001uLL, 0x003E96E5878644FAuLL}, +{0x078644FA078644FAuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000001uLL, 0x003E96E5078644FDuLL}, +{0x078644FA078644FAuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000001uLL, 0x003E96E5078644FCuLL}, +{0x078644FA078644FAuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000001uLL, 0x003E96E5078644FBuLL}, +{0x078644FA078644FAuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA078644FAuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA078644FAuLL}, +{0x078644FA0747AE14uLL, 0x0000000000000001uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL}, +{0x078644FA0747AE14uLL, 0x0000000000000002uLL, 0x03C3227D03A3D70AuLL, 0x0000000000000000uLL}, +{0x078644FA0747AE14uLL, 0x0000000000000003uLL, 0x028216FE026D3A06uLL, 0x0000000000000002uLL}, +{0x078644FA0747AE14uLL, 0x0000000000000010uLL, 0x0078644FA0747AE1uLL, 0x0000000000000004uLL}, +{0x078644FA0747AE14uLL, 0x00000000078644FAuLL, 0x0000000100000000uLL, 0x000000000747AE14uLL}, +{0x078644FA0747AE14uLL, 0x000000000747AE14uLL, 0x000000010898F296uLL, 0x0000000004D8C65CuLL}, +{0x078644FA0747AE14uLL, 0x000000007FFFFFFFuLL, 0x000000000F0C89F4uLL, 0x0000000016543808uLL}, +{0x078644FA0747AE14uLL, 0x0000000080000000uLL, 0x000000000F0C89F4uLL, 0x000000000747AE14uLL}, +{0x078644FA0747AE14uLL, 0x00000000FFFFFFFDuLL, 0x00000000078644FAuLL, 0x000000001DDA7D02uLL}, +{0x078644FA0747AE14uLL, 0x00000000FFFFFFFEuLL, 0x00000000078644FAuLL, 0x0000000016543808uLL}, +{0x078644FA0747AE14uLL, 0x00000000FFFFFFFFuLL, 0x00000000078644FAuLL, 0x000000000ECDF30EuLL}, +{0x078644FA0747AE14uLL, 0x0000000100000000uLL, 0x00000000078644FAuLL, 0x000000000747AE14uLL}, +{0x078644FA0747AE14uLL, 0x0000000100000001uLL, 0x00000000078644F9uLL, 0x00000000FFC1691BuLL}, +{0x078644FA0747AE14uLL, 0x0000000100000002uLL, 0x00000000078644F9uLL, 0x00000000F83B2422uLL}, +{0x078644FA0747AE14uLL, 0x0000000100000003uLL, 0x00000000078644F9uLL, 0x00000000F0B4DF29uLL}, +{0x078644FA0747AE14uLL, 0x0000000100000010uLL, 0x00000000078644F9uLL, 0x000000008EE35E84uLL}, +{0x078644FA0747AE14uLL, 0x00000001078644FAuLL, 0x00000000074F44A3uLL, 0x0000000073515AE6uLL}, +{0x078644FA0747AE14uLL, 0x000000010747AE14uLL, 0x000000000751017EuLL, 0x0000000089FDEC3CuLL}, +{0x078644FA0747AE14uLL, 0x000000017FFFFFFFuLL, 0x0000000005042DFCuLL, 0x000000000C4BDC10uLL}, +{0x078644FA0747AE14uLL, 0x0000000180000000uLL, 0x0000000005042DFCuLL, 0x000000000747AE14uLL}, +{0x078644FA0747AE14uLL, 0x00000001FFFFFFFDuLL, 0x0000000003C3227DuLL, 0x000000001291158BuLL}, +{0x078644FA0747AE14uLL, 0x00000001FFFFFFFEuLL, 0x0000000003C3227DuLL, 0x000000000ECDF30EuLL}, +{0x078644FA0747AE14uLL, 0x00000001FFFFFFFFuLL, 0x0000000003C3227DuLL, 0x000000000B0AD091uLL}, +{0x078644FA0747AE14uLL, 0x0000000200000000uLL, 0x0000000003C3227DuLL, 0x000000000747AE14uLL}, +{0x078644FA0747AE14uLL, 0x0000000200000001uLL, 0x0000000003C3227DuLL, 0x0000000003848B97uLL}, +{0x078644FA0747AE14uLL, 0x0000000200000002uLL, 0x0000000003C3227CuLL, 0x00000001FFC1691CuLL}, +{0x078644FA0747AE14uLL, 0x0000000200000003uLL, 0x0000000003C3227CuLL, 0x00000001FBFE46A0uLL}, +{0x078644FA0747AE14uLL, 0x0000000200000010uLL, 0x0000000003C3227CuLL, 0x00000001CB158654uLL}, +{0x078644FA0747AE14uLL, 0x00000002078644FAuLL, 0x0000000003B52F6BuLL, 0x0000000188BCF396uLL}, +{0x078644FA0747AE14uLL, 0x000000020747AE14uLL, 0x0000000003B5A1D3uLL, 0x00000001A2949F98uLL}, +{0x078644FA0747AE14uLL, 0x000000027FFFFFFFuLL, 0x00000000030281FDuLL, 0x000000018A4A3011uLL}, +{0x078644FA0747AE14uLL, 0x0000000280000000uLL, 0x00000000030281FDuLL, 0x000000018747AE14uLL}, +{0x078644FA0747AE14uLL, 0x00000002FFFFFFFDuLL, 0x00000000028216FEuLL, 0x000000000ECDF30EuLL}, +{0x078644FA0747AE14uLL, 0x00000002FFFFFFFEuLL, 0x00000000028216FEuLL, 0x000000000C4BDC10uLL}, +{0x078644FA0747AE14uLL, 0x00000002FFFFFFFFuLL, 0x00000000028216FEuLL, 0x0000000009C9C512uLL}, +{0x078644FA0747AE14uLL, 0x0000000300000000uLL, 0x00000000028216FEuLL, 0x000000000747AE14uLL}, +{0x078644FA0747AE14uLL, 0x0000000300000001uLL, 0x00000000028216FEuLL, 0x0000000004C59716uLL}, +{0x078644FA0747AE14uLL, 0x0000000300000002uLL, 0x00000000028216FEuLL, 0x0000000002438018uLL}, +{0x078644FA0747AE14uLL, 0x0000000300000003uLL, 0x00000000028216FDuLL, 0x00000002FFC1691DuLL}, +{0x078644FA0747AE14uLL, 0x0000000300000010uLL, 0x00000000028216FDuLL, 0x00000002DF263E44uLL}, +{0x078644FA0747AE14uLL, 0x00000003078644FAuLL, 0x00000000027BDC26uLL, 0x000000026DF498F8uLL}, +{0x078644FA0747AE14uLL, 0x000000030747AE14uLL, 0x00000000027C0F7CuLL, 0x00000000D3AC3064uLL}, +{0x078644FA0747AE14uLL, 0x000000037FFFFFFFuLL, 0x0000000002265CD9uLL, 0x00000002896E0AEDuLL}, +{0x078644FA0747AE14uLL, 0x0000000380000000uLL, 0x0000000002265CD9uLL, 0x000000028747AE14uLL}, +{0x078644FA0747AE14uLL, 0x00000003FFFFFFFDuLL, 0x0000000001E1913EuLL, 0x000000020CEC61CEuLL}, +{0x078644FA0747AE14uLL, 0x00000003FFFFFFFEuLL, 0x0000000001E1913EuLL, 0x000000020B0AD090uLL}, +{0x078644FA0747AE14uLL, 0x00000003FFFFFFFFuLL, 0x0000000001E1913EuLL, 0x0000000209293F52uLL}, +{0x078644FA0747AE14uLL, 0x0000001000000000uLL, 0x000000000078644FuLL, 0x0000000A0747AE14uLL}, +{0x078644FA0747AE14uLL, 0x0000001000000001uLL, 0x000000000078644FuLL, 0x0000000A06CF49C5uLL}, +{0x078644FA0747AE14uLL, 0x0000001000000002uLL, 0x000000000078644FuLL, 0x0000000A0656E576uLL}, +{0x078644FA0747AE14uLL, 0x0000001000000003uLL, 0x000000000078644FuLL, 0x0000000A05DE8127uLL}, +{0x078644FA0747AE14uLL, 0x0000001000000010uLL, 0x000000000078644FuLL, 0x00000009FFC16924uLL}, +{0x078644FA0747AE14uLL, 0x00000010078644FAuLL, 0x0000000000782BCCuLL, 0x000000002582B8DCuLL}, +{0x078644FA0747AE14uLL, 0x000000100747AE14uLL, 0x0000000000782DA1uLL, 0x000000044039AF80uLL}, +{0x078644FA0747AE14uLL, 0x000000107FFFFFFFuLL, 0x000000000074BE5CuLL, 0x0000000C07BC6C70uLL}, +{0x078644FA0747AE14uLL, 0x0000001080000000uLL, 0x000000000074BE5CuLL, 0x0000000C0747AE14uLL}, +{0x078644FA0747AE14uLL, 0x00000010FFFFFFFDuLL, 0x0000000000714F5AuLL, 0x00000000089B9C22uLL}, +{0x078644FA0747AE14uLL, 0x00000010FFFFFFFEuLL, 0x0000000000714F5AuLL, 0x00000000082A4CC8uLL}, +{0x078644FA0747AE14uLL, 0x00000010FFFFFFFFuLL, 0x0000000000714F5AuLL, 0x0000000007B8FD6EuLL}, +{0x078644FA0747AE14uLL, 0x078644FA00000000uLL, 0x0000000000000001uLL, 0x000000000747AE14uLL}, +{0x078644FA0747AE14uLL, 0x078644FA00000001uLL, 0x0000000000000001uLL, 0x000000000747AE13uLL}, +{0x078644FA0747AE14uLL, 0x078644FA00000002uLL, 0x0000000000000001uLL, 0x000000000747AE12uLL}, +{0x078644FA0747AE14uLL, 0x078644FA00000003uLL, 0x0000000000000001uLL, 0x000000000747AE11uLL}, +{0x078644FA0747AE14uLL, 0x078644FA00000010uLL, 0x0000000000000001uLL, 0x000000000747AE04uLL}, +{0x078644FA0747AE14uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0x078644FA0747AE14uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x078644FA0747AE14uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0x0747AE1400000000uLL, 0x0000000000000001uLL, 0x003E96E60747AE14uLL}, +{0x078644FA0747AE14uLL, 0x0747AE1400000001uLL, 0x0000000000000001uLL, 0x003E96E60747AE13uLL}, +{0x078644FA0747AE14uLL, 0x0747AE1400000002uLL, 0x0000000000000001uLL, 0x003E96E60747AE12uLL}, +{0x078644FA0747AE14uLL, 0x0747AE1400000003uLL, 0x0000000000000001uLL, 0x003E96E60747AE11uLL}, +{0x078644FA0747AE14uLL, 0x0747AE1400000010uLL, 0x0000000000000001uLL, 0x003E96E60747AE04uLL}, +{0x078644FA0747AE14uLL, 0x0747AE14078644FAuLL, 0x0000000000000001uLL, 0x003E96E5FFC1691AuLL}, +{0x078644FA0747AE14uLL, 0x0747AE140747AE14uLL, 0x0000000000000001uLL, 0x003E96E600000000uLL}, +{0x078644FA0747AE14uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000001uLL, 0x003E96E58747AE15uLL}, +{0x078644FA0747AE14uLL, 0x0747AE1480000000uLL, 0x0000000000000001uLL, 0x003E96E58747AE14uLL}, +{0x078644FA0747AE14uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000001uLL, 0x003E96E50747AE17uLL}, +{0x078644FA0747AE14uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000001uLL, 0x003E96E50747AE16uLL}, +{0x078644FA0747AE14uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000001uLL, 0x003E96E50747AE15uLL}, +{0x078644FA0747AE14uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA0747AE14uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA0747AE14uLL}, +{0x078644FA7FFFFFFFuLL, 0x0000000000000001uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL}, +{0x078644FA7FFFFFFFuLL, 0x0000000000000002uLL, 0x03C3227D3FFFFFFFuLL, 0x0000000000000001uLL}, +{0x078644FA7FFFFFFFuLL, 0x0000000000000003uLL, 0x028216FE2AAAAAAAuLL, 0x0000000000000001uLL}, +{0x078644FA7FFFFFFFuLL, 0x0000000000000010uLL, 0x0078644FA7FFFFFFuLL, 0x000000000000000FuLL}, +{0x078644FA7FFFFFFFuLL, 0x00000000078644FAuLL, 0x0000000100000011uLL, 0x0000000000156B65uLL}, +{0x078644FA7FFFFFFFuLL, 0x000000000747AE14uLL, 0x000000010898F2A7uLL, 0x0000000001CE88F3uLL}, +{0x078644FA7FFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x000000000F0C89F5uLL, 0x000000000F0C89F4uLL}, +{0x078644FA7FFFFFFFuLL, 0x0000000080000000uLL, 0x000000000F0C89F4uLL, 0x000000007FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x00000000FFFFFFFDuLL, 0x00000000078644FAuLL, 0x000000009692CEEDuLL}, +{0x078644FA7FFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x00000000078644FAuLL, 0x000000008F0C89F3uLL}, +{0x078644FA7FFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x00000000078644FAuLL, 0x00000000878644F9uLL}, +{0x078644FA7FFFFFFFuLL, 0x0000000100000000uLL, 0x00000000078644FAuLL, 0x000000007FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x0000000100000001uLL, 0x00000000078644FAuLL, 0x000000007879BB05uLL}, +{0x078644FA7FFFFFFFuLL, 0x0000000100000002uLL, 0x00000000078644FAuLL, 0x0000000070F3760BuLL}, +{0x078644FA7FFFFFFFuLL, 0x0000000100000003uLL, 0x00000000078644FAuLL, 0x00000000696D3111uLL}, +{0x078644FA7FFFFFFFuLL, 0x0000000100000010uLL, 0x00000000078644FAuLL, 0x00000000079BB05FuLL}, +{0x078644FA7FFFFFFFuLL, 0x00000001078644FAuLL, 0x00000000074F44A3uLL, 0x00000000EC09ACD1uLL}, +{0x078644FA7FFFFFFFuLL, 0x000000010747AE14uLL, 0x000000000751017EuLL, 0x0000000102B63E27uLL}, +{0x078644FA7FFFFFFFuLL, 0x000000017FFFFFFFuLL, 0x0000000005042DFCuLL, 0x0000000085042DFBuLL}, +{0x078644FA7FFFFFFFuLL, 0x0000000180000000uLL, 0x0000000005042DFCuLL, 0x000000007FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x00000001FFFFFFFDuLL, 0x0000000003C3227DuLL, 0x000000008B496776uLL}, +{0x078644FA7FFFFFFFuLL, 0x00000001FFFFFFFEuLL, 0x0000000003C3227DuLL, 0x00000000878644F9uLL}, +{0x078644FA7FFFFFFFuLL, 0x00000001FFFFFFFFuLL, 0x0000000003C3227DuLL, 0x0000000083C3227CuLL}, +{0x078644FA7FFFFFFFuLL, 0x0000000200000000uLL, 0x0000000003C3227DuLL, 0x000000007FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x0000000200000001uLL, 0x0000000003C3227DuLL, 0x000000007C3CDD82uLL}, +{0x078644FA7FFFFFFFuLL, 0x0000000200000002uLL, 0x0000000003C3227DuLL, 0x000000007879BB05uLL}, +{0x078644FA7FFFFFFFuLL, 0x0000000200000003uLL, 0x0000000003C3227DuLL, 0x0000000074B69888uLL}, +{0x078644FA7FFFFFFFuLL, 0x0000000200000010uLL, 0x0000000003C3227DuLL, 0x0000000043CDD82FuLL}, +{0x078644FA7FFFFFFFuLL, 0x00000002078644FAuLL, 0x0000000003B52F6BuLL, 0x0000000201754581uLL}, +{0x078644FA7FFFFFFFuLL, 0x000000020747AE14uLL, 0x0000000003B5A1D4uLL, 0x000000001405436FuLL}, +{0x078644FA7FFFFFFFuLL, 0x000000027FFFFFFFuLL, 0x00000000030281FDuLL, 0x00000002030281FCuLL}, +{0x078644FA7FFFFFFFuLL, 0x0000000280000000uLL, 0x00000000030281FDuLL, 0x00000001FFFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x00000002FFFFFFFDuLL, 0x00000000028216FEuLL, 0x00000000878644F9uLL}, +{0x078644FA7FFFFFFFuLL, 0x00000002FFFFFFFEuLL, 0x00000000028216FEuLL, 0x0000000085042DFBuLL}, +{0x078644FA7FFFFFFFuLL, 0x00000002FFFFFFFFuLL, 0x00000000028216FEuLL, 0x00000000828216FDuLL}, +{0x078644FA7FFFFFFFuLL, 0x0000000300000000uLL, 0x00000000028216FEuLL, 0x000000007FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x0000000300000001uLL, 0x00000000028216FEuLL, 0x000000007D7DE901uLL}, +{0x078644FA7FFFFFFFuLL, 0x0000000300000002uLL, 0x00000000028216FEuLL, 0x000000007AFBD203uLL}, +{0x078644FA7FFFFFFFuLL, 0x0000000300000003uLL, 0x00000000028216FEuLL, 0x000000007879BB05uLL}, +{0x078644FA7FFFFFFFuLL, 0x0000000300000010uLL, 0x00000000028216FEuLL, 0x0000000057DE901FuLL}, +{0x078644FA7FFFFFFFuLL, 0x00000003078644FAuLL, 0x00000000027BDC26uLL, 0x00000002E6ACEAE3uLL}, +{0x078644FA7FFFFFFFuLL, 0x000000030747AE14uLL, 0x00000000027C0F7CuLL, 0x000000014C64824FuLL}, +{0x078644FA7FFFFFFFuLL, 0x000000037FFFFFFFuLL, 0x0000000002265CD9uLL, 0x0000000302265CD8uLL}, +{0x078644FA7FFFFFFFuLL, 0x0000000380000000uLL, 0x0000000002265CD9uLL, 0x00000002FFFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x00000003FFFFFFFDuLL, 0x0000000001E1913EuLL, 0x0000000285A4B3B9uLL}, +{0x078644FA7FFFFFFFuLL, 0x00000003FFFFFFFEuLL, 0x0000000001E1913EuLL, 0x0000000283C3227BuLL}, +{0x078644FA7FFFFFFFuLL, 0x00000003FFFFFFFFuLL, 0x0000000001E1913EuLL, 0x0000000281E1913DuLL}, +{0x078644FA7FFFFFFFuLL, 0x0000001000000000uLL, 0x000000000078644FuLL, 0x0000000A7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x0000001000000001uLL, 0x000000000078644FuLL, 0x0000000A7F879BB0uLL}, +{0x078644FA7FFFFFFFuLL, 0x0000001000000002uLL, 0x000000000078644FuLL, 0x0000000A7F0F3761uLL}, +{0x078644FA7FFFFFFFuLL, 0x0000001000000003uLL, 0x000000000078644FuLL, 0x0000000A7E96D312uLL}, +{0x078644FA7FFFFFFFuLL, 0x0000001000000010uLL, 0x000000000078644FuLL, 0x0000000A7879BB0FuLL}, +{0x078644FA7FFFFFFFuLL, 0x00000010078644FAuLL, 0x0000000000782BCCuLL, 0x000000009E3B0AC7uLL}, +{0x078644FA7FFFFFFFuLL, 0x000000100747AE14uLL, 0x0000000000782DA1uLL, 0x00000004B8F2016BuLL}, +{0x078644FA7FFFFFFFuLL, 0x000000107FFFFFFFuLL, 0x000000000074BE5CuLL, 0x0000000C8074BE5BuLL}, +{0x078644FA7FFFFFFFuLL, 0x0000001080000000uLL, 0x000000000074BE5CuLL, 0x0000000C7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x00000010FFFFFFFDuLL, 0x0000000000714F5AuLL, 0x000000008153EE0DuLL}, +{0x078644FA7FFFFFFFuLL, 0x00000010FFFFFFFEuLL, 0x0000000000714F5AuLL, 0x0000000080E29EB3uLL}, +{0x078644FA7FFFFFFFuLL, 0x00000010FFFFFFFFuLL, 0x0000000000714F5AuLL, 0x0000000080714F59uLL}, +{0x078644FA7FFFFFFFuLL, 0x078644FA00000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x078644FA00000001uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x078644FA7FFFFFFFuLL, 0x078644FA00000002uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0x078644FA7FFFFFFFuLL, 0x078644FA00000003uLL, 0x0000000000000001uLL, 0x000000007FFFFFFCuLL}, +{0x078644FA7FFFFFFFuLL, 0x078644FA00000010uLL, 0x0000000000000001uLL, 0x000000007FFFFFEFuLL}, +{0x078644FA7FFFFFFFuLL, 0x078644FA078644FAuLL, 0x0000000000000001uLL, 0x000000007879BB05uLL}, +{0x078644FA7FFFFFFFuLL, 0x078644FA0747AE14uLL, 0x0000000000000001uLL, 0x0000000078B851EBuLL}, +{0x078644FA7FFFFFFFuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x078644FA7FFFFFFFuLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x0747AE1400000000uLL, 0x0000000000000001uLL, 0x003E96E67FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x0747AE1400000001uLL, 0x0000000000000001uLL, 0x003E96E67FFFFFFEuLL}, +{0x078644FA7FFFFFFFuLL, 0x0747AE1400000002uLL, 0x0000000000000001uLL, 0x003E96E67FFFFFFDuLL}, +{0x078644FA7FFFFFFFuLL, 0x0747AE1400000003uLL, 0x0000000000000001uLL, 0x003E96E67FFFFFFCuLL}, +{0x078644FA7FFFFFFFuLL, 0x0747AE1400000010uLL, 0x0000000000000001uLL, 0x003E96E67FFFFFEFuLL}, +{0x078644FA7FFFFFFFuLL, 0x0747AE14078644FAuLL, 0x0000000000000001uLL, 0x003E96E67879BB05uLL}, +{0x078644FA7FFFFFFFuLL, 0x0747AE140747AE14uLL, 0x0000000000000001uLL, 0x003E96E678B851EBuLL}, +{0x078644FA7FFFFFFFuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000001uLL, 0x003E96E600000000uLL}, +{0x078644FA7FFFFFFFuLL, 0x0747AE1480000000uLL, 0x0000000000000001uLL, 0x003E96E5FFFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000001uLL, 0x003E96E580000002uLL}, +{0x078644FA7FFFFFFFuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000001uLL, 0x003E96E580000001uLL}, +{0x078644FA7FFFFFFFuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000001uLL, 0x003E96E580000000uLL}, +{0x078644FA7FFFFFFFuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA7FFFFFFFuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA7FFFFFFFuLL}, +{0x078644FA80000000uLL, 0x0000000000000001uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL}, +{0x078644FA80000000uLL, 0x0000000000000002uLL, 0x03C3227D40000000uLL, 0x0000000000000000uLL}, +{0x078644FA80000000uLL, 0x0000000000000003uLL, 0x028216FE2AAAAAAAuLL, 0x0000000000000002uLL}, +{0x078644FA80000000uLL, 0x0000000000000010uLL, 0x0078644FA8000000uLL, 0x0000000000000000uLL}, +{0x078644FA80000000uLL, 0x00000000078644FAuLL, 0x0000000100000011uLL, 0x0000000000156B66uLL}, +{0x078644FA80000000uLL, 0x000000000747AE14uLL, 0x000000010898F2A7uLL, 0x0000000001CE88F4uLL}, +{0x078644FA80000000uLL, 0x000000007FFFFFFFuLL, 0x000000000F0C89F5uLL, 0x000000000F0C89F5uLL}, +{0x078644FA80000000uLL, 0x0000000080000000uLL, 0x000000000F0C89F5uLL, 0x0000000000000000uLL}, +{0x078644FA80000000uLL, 0x00000000FFFFFFFDuLL, 0x00000000078644FAuLL, 0x000000009692CEEEuLL}, +{0x078644FA80000000uLL, 0x00000000FFFFFFFEuLL, 0x00000000078644FAuLL, 0x000000008F0C89F4uLL}, +{0x078644FA80000000uLL, 0x00000000FFFFFFFFuLL, 0x00000000078644FAuLL, 0x00000000878644FAuLL}, +{0x078644FA80000000uLL, 0x0000000100000000uLL, 0x00000000078644FAuLL, 0x0000000080000000uLL}, +{0x078644FA80000000uLL, 0x0000000100000001uLL, 0x00000000078644FAuLL, 0x000000007879BB06uLL}, +{0x078644FA80000000uLL, 0x0000000100000002uLL, 0x00000000078644FAuLL, 0x0000000070F3760CuLL}, +{0x078644FA80000000uLL, 0x0000000100000003uLL, 0x00000000078644FAuLL, 0x00000000696D3112uLL}, +{0x078644FA80000000uLL, 0x0000000100000010uLL, 0x00000000078644FAuLL, 0x00000000079BB060uLL}, +{0x078644FA80000000uLL, 0x00000001078644FAuLL, 0x00000000074F44A3uLL, 0x00000000EC09ACD2uLL}, +{0x078644FA80000000uLL, 0x000000010747AE14uLL, 0x000000000751017EuLL, 0x0000000102B63E28uLL}, +{0x078644FA80000000uLL, 0x000000017FFFFFFFuLL, 0x0000000005042DFCuLL, 0x0000000085042DFCuLL}, +{0x078644FA80000000uLL, 0x0000000180000000uLL, 0x0000000005042DFCuLL, 0x0000000080000000uLL}, +{0x078644FA80000000uLL, 0x00000001FFFFFFFDuLL, 0x0000000003C3227DuLL, 0x000000008B496777uLL}, +{0x078644FA80000000uLL, 0x00000001FFFFFFFEuLL, 0x0000000003C3227DuLL, 0x00000000878644FAuLL}, +{0x078644FA80000000uLL, 0x00000001FFFFFFFFuLL, 0x0000000003C3227DuLL, 0x0000000083C3227DuLL}, +{0x078644FA80000000uLL, 0x0000000200000000uLL, 0x0000000003C3227DuLL, 0x0000000080000000uLL}, +{0x078644FA80000000uLL, 0x0000000200000001uLL, 0x0000000003C3227DuLL, 0x000000007C3CDD83uLL}, +{0x078644FA80000000uLL, 0x0000000200000002uLL, 0x0000000003C3227DuLL, 0x000000007879BB06uLL}, +{0x078644FA80000000uLL, 0x0000000200000003uLL, 0x0000000003C3227DuLL, 0x0000000074B69889uLL}, +{0x078644FA80000000uLL, 0x0000000200000010uLL, 0x0000000003C3227DuLL, 0x0000000043CDD830uLL}, +{0x078644FA80000000uLL, 0x00000002078644FAuLL, 0x0000000003B52F6BuLL, 0x0000000201754582uLL}, +{0x078644FA80000000uLL, 0x000000020747AE14uLL, 0x0000000003B5A1D4uLL, 0x0000000014054370uLL}, +{0x078644FA80000000uLL, 0x000000027FFFFFFFuLL, 0x00000000030281FDuLL, 0x00000002030281FDuLL}, +{0x078644FA80000000uLL, 0x0000000280000000uLL, 0x00000000030281FDuLL, 0x0000000200000000uLL}, +{0x078644FA80000000uLL, 0x00000002FFFFFFFDuLL, 0x00000000028216FEuLL, 0x00000000878644FAuLL}, +{0x078644FA80000000uLL, 0x00000002FFFFFFFEuLL, 0x00000000028216FEuLL, 0x0000000085042DFCuLL}, +{0x078644FA80000000uLL, 0x00000002FFFFFFFFuLL, 0x00000000028216FEuLL, 0x00000000828216FEuLL}, +{0x078644FA80000000uLL, 0x0000000300000000uLL, 0x00000000028216FEuLL, 0x0000000080000000uLL}, +{0x078644FA80000000uLL, 0x0000000300000001uLL, 0x00000000028216FEuLL, 0x000000007D7DE902uLL}, +{0x078644FA80000000uLL, 0x0000000300000002uLL, 0x00000000028216FEuLL, 0x000000007AFBD204uLL}, +{0x078644FA80000000uLL, 0x0000000300000003uLL, 0x00000000028216FEuLL, 0x000000007879BB06uLL}, +{0x078644FA80000000uLL, 0x0000000300000010uLL, 0x00000000028216FEuLL, 0x0000000057DE9020uLL}, +{0x078644FA80000000uLL, 0x00000003078644FAuLL, 0x00000000027BDC26uLL, 0x00000002E6ACEAE4uLL}, +{0x078644FA80000000uLL, 0x000000030747AE14uLL, 0x00000000027C0F7CuLL, 0x000000014C648250uLL}, +{0x078644FA80000000uLL, 0x000000037FFFFFFFuLL, 0x0000000002265CD9uLL, 0x0000000302265CD9uLL}, +{0x078644FA80000000uLL, 0x0000000380000000uLL, 0x0000000002265CD9uLL, 0x0000000300000000uLL}, +{0x078644FA80000000uLL, 0x00000003FFFFFFFDuLL, 0x0000000001E1913EuLL, 0x0000000285A4B3BAuLL}, +{0x078644FA80000000uLL, 0x00000003FFFFFFFEuLL, 0x0000000001E1913EuLL, 0x0000000283C3227CuLL}, +{0x078644FA80000000uLL, 0x00000003FFFFFFFFuLL, 0x0000000001E1913EuLL, 0x0000000281E1913EuLL}, +{0x078644FA80000000uLL, 0x0000001000000000uLL, 0x000000000078644FuLL, 0x0000000A80000000uLL}, +{0x078644FA80000000uLL, 0x0000001000000001uLL, 0x000000000078644FuLL, 0x0000000A7F879BB1uLL}, +{0x078644FA80000000uLL, 0x0000001000000002uLL, 0x000000000078644FuLL, 0x0000000A7F0F3762uLL}, +{0x078644FA80000000uLL, 0x0000001000000003uLL, 0x000000000078644FuLL, 0x0000000A7E96D313uLL}, +{0x078644FA80000000uLL, 0x0000001000000010uLL, 0x000000000078644FuLL, 0x0000000A7879BB10uLL}, +{0x078644FA80000000uLL, 0x00000010078644FAuLL, 0x0000000000782BCCuLL, 0x000000009E3B0AC8uLL}, +{0x078644FA80000000uLL, 0x000000100747AE14uLL, 0x0000000000782DA1uLL, 0x00000004B8F2016CuLL}, +{0x078644FA80000000uLL, 0x000000107FFFFFFFuLL, 0x000000000074BE5CuLL, 0x0000000C8074BE5CuLL}, +{0x078644FA80000000uLL, 0x0000001080000000uLL, 0x000000000074BE5CuLL, 0x0000000C80000000uLL}, +{0x078644FA80000000uLL, 0x00000010FFFFFFFDuLL, 0x0000000000714F5AuLL, 0x000000008153EE0EuLL}, +{0x078644FA80000000uLL, 0x00000010FFFFFFFEuLL, 0x0000000000714F5AuLL, 0x0000000080E29EB4uLL}, +{0x078644FA80000000uLL, 0x00000010FFFFFFFFuLL, 0x0000000000714F5AuLL, 0x0000000080714F5AuLL}, +{0x078644FA80000000uLL, 0x078644FA00000000uLL, 0x0000000000000001uLL, 0x0000000080000000uLL}, +{0x078644FA80000000uLL, 0x078644FA00000001uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0x078644FA80000000uLL, 0x078644FA00000002uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x078644FA80000000uLL, 0x078644FA00000003uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0x078644FA80000000uLL, 0x078644FA00000010uLL, 0x0000000000000001uLL, 0x000000007FFFFFF0uLL}, +{0x078644FA80000000uLL, 0x078644FA078644FAuLL, 0x0000000000000001uLL, 0x000000007879BB06uLL}, +{0x078644FA80000000uLL, 0x078644FA0747AE14uLL, 0x0000000000000001uLL, 0x0000000078B851ECuLL}, +{0x078644FA80000000uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x078644FA80000000uLL, 0x078644FA80000000uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x078644FA80000000uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0x0747AE1400000000uLL, 0x0000000000000001uLL, 0x003E96E680000000uLL}, +{0x078644FA80000000uLL, 0x0747AE1400000001uLL, 0x0000000000000001uLL, 0x003E96E67FFFFFFFuLL}, +{0x078644FA80000000uLL, 0x0747AE1400000002uLL, 0x0000000000000001uLL, 0x003E96E67FFFFFFEuLL}, +{0x078644FA80000000uLL, 0x0747AE1400000003uLL, 0x0000000000000001uLL, 0x003E96E67FFFFFFDuLL}, +{0x078644FA80000000uLL, 0x0747AE1400000010uLL, 0x0000000000000001uLL, 0x003E96E67FFFFFF0uLL}, +{0x078644FA80000000uLL, 0x0747AE14078644FAuLL, 0x0000000000000001uLL, 0x003E96E67879BB06uLL}, +{0x078644FA80000000uLL, 0x0747AE140747AE14uLL, 0x0000000000000001uLL, 0x003E96E678B851ECuLL}, +{0x078644FA80000000uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000001uLL, 0x003E96E600000001uLL}, +{0x078644FA80000000uLL, 0x0747AE1480000000uLL, 0x0000000000000001uLL, 0x003E96E600000000uLL}, +{0x078644FA80000000uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000001uLL, 0x003E96E580000003uLL}, +{0x078644FA80000000uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000001uLL, 0x003E96E580000002uLL}, +{0x078644FA80000000uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000001uLL, 0x003E96E580000001uLL}, +{0x078644FA80000000uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FA80000000uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FA80000000uLL}, +{0x078644FAFFFFFFFDuLL, 0x0000000000000001uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL}, +{0x078644FAFFFFFFFDuLL, 0x0000000000000002uLL, 0x03C3227D7FFFFFFEuLL, 0x0000000000000001uLL}, +{0x078644FAFFFFFFFDuLL, 0x0000000000000003uLL, 0x028216FE55555554uLL, 0x0000000000000001uLL}, +{0x078644FAFFFFFFFDuLL, 0x0000000000000010uLL, 0x0078644FAFFFFFFFuLL, 0x000000000000000DuLL}, +{0x078644FAFFFFFFFDuLL, 0x00000000078644FAuLL, 0x0000000100000022uLL, 0x00000000002AD6C9uLL}, +{0x078644FAFFFFFFFDuLL, 0x000000000747AE14uLL, 0x000000010898F2B8uLL, 0x00000000060BF99DuLL}, +{0x078644FAFFFFFFFDuLL, 0x000000007FFFFFFFuLL, 0x000000000F0C89F6uLL, 0x000000000F0C89F3uLL}, +{0x078644FAFFFFFFFDuLL, 0x0000000080000000uLL, 0x000000000F0C89F5uLL, 0x000000007FFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x00000000FFFFFFFDuLL, 0x00000000078644FBuLL, 0x000000001692CEEEuLL}, +{0x078644FAFFFFFFFDuLL, 0x00000000FFFFFFFEuLL, 0x00000000078644FBuLL, 0x000000000F0C89F3uLL}, +{0x078644FAFFFFFFFDuLL, 0x00000000FFFFFFFFuLL, 0x00000000078644FBuLL, 0x00000000078644F8uLL}, +{0x078644FAFFFFFFFDuLL, 0x0000000100000000uLL, 0x00000000078644FAuLL, 0x00000000FFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x0000000100000001uLL, 0x00000000078644FAuLL, 0x00000000F879BB03uLL}, +{0x078644FAFFFFFFFDuLL, 0x0000000100000002uLL, 0x00000000078644FAuLL, 0x00000000F0F37609uLL}, +{0x078644FAFFFFFFFDuLL, 0x0000000100000003uLL, 0x00000000078644FAuLL, 0x00000000E96D310FuLL}, +{0x078644FAFFFFFFFDuLL, 0x0000000100000010uLL, 0x00000000078644FAuLL, 0x00000000879BB05DuLL}, +{0x078644FAFFFFFFFDuLL, 0x00000001078644FAuLL, 0x00000000074F44A4uLL, 0x00000000648367D5uLL}, +{0x078644FAFFFFFFFDuLL, 0x000000010747AE14uLL, 0x000000000751017FuLL, 0x000000007B6E9011uLL}, +{0x078644FAFFFFFFFDuLL, 0x000000017FFFFFFFuLL, 0x0000000005042DFCuLL, 0x0000000105042DF9uLL}, +{0x078644FAFFFFFFFDuLL, 0x0000000180000000uLL, 0x0000000005042DFCuLL, 0x00000000FFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x00000001FFFFFFFDuLL, 0x0000000003C3227DuLL, 0x000000010B496774uLL}, +{0x078644FAFFFFFFFDuLL, 0x00000001FFFFFFFEuLL, 0x0000000003C3227DuLL, 0x00000001078644F7uLL}, +{0x078644FAFFFFFFFDuLL, 0x00000001FFFFFFFFuLL, 0x0000000003C3227DuLL, 0x0000000103C3227AuLL}, +{0x078644FAFFFFFFFDuLL, 0x0000000200000000uLL, 0x0000000003C3227DuLL, 0x00000000FFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x0000000200000001uLL, 0x0000000003C3227DuLL, 0x00000000FC3CDD80uLL}, +{0x078644FAFFFFFFFDuLL, 0x0000000200000002uLL, 0x0000000003C3227DuLL, 0x00000000F879BB03uLL}, +{0x078644FAFFFFFFFDuLL, 0x0000000200000003uLL, 0x0000000003C3227DuLL, 0x00000000F4B69886uLL}, +{0x078644FAFFFFFFFDuLL, 0x0000000200000010uLL, 0x0000000003C3227DuLL, 0x00000000C3CDD82DuLL}, +{0x078644FAFFFFFFFDuLL, 0x00000002078644FAuLL, 0x0000000003B52F6CuLL, 0x0000000079EF0085uLL}, +{0x078644FAFFFFFFFDuLL, 0x000000020747AE14uLL, 0x0000000003B5A1D4uLL, 0x000000009405436DuLL}, +{0x078644FAFFFFFFFDuLL, 0x000000027FFFFFFFuLL, 0x00000000030281FEuLL, 0x00000000030281FBuLL}, +{0x078644FAFFFFFFFDuLL, 0x0000000280000000uLL, 0x00000000030281FDuLL, 0x000000027FFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x00000002FFFFFFFDuLL, 0x00000000028216FEuLL, 0x00000001078644F7uLL}, +{0x078644FAFFFFFFFDuLL, 0x00000002FFFFFFFEuLL, 0x00000000028216FEuLL, 0x0000000105042DF9uLL}, +{0x078644FAFFFFFFFDuLL, 0x00000002FFFFFFFFuLL, 0x00000000028216FEuLL, 0x00000001028216FBuLL}, +{0x078644FAFFFFFFFDuLL, 0x0000000300000000uLL, 0x00000000028216FEuLL, 0x00000000FFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x0000000300000001uLL, 0x00000000028216FEuLL, 0x00000000FD7DE8FFuLL}, +{0x078644FAFFFFFFFDuLL, 0x0000000300000002uLL, 0x00000000028216FEuLL, 0x00000000FAFBD201uLL}, +{0x078644FAFFFFFFFDuLL, 0x0000000300000003uLL, 0x00000000028216FEuLL, 0x00000000F879BB03uLL}, +{0x078644FAFFFFFFFDuLL, 0x0000000300000010uLL, 0x00000000028216FEuLL, 0x00000000D7DE901DuLL}, +{0x078644FAFFFFFFFDuLL, 0x00000003078644FAuLL, 0x00000000027BDC27uLL, 0x000000005F26A5E7uLL}, +{0x078644FAFFFFFFFDuLL, 0x000000030747AE14uLL, 0x00000000027C0F7CuLL, 0x00000001CC64824DuLL}, +{0x078644FAFFFFFFFDuLL, 0x000000037FFFFFFFuLL, 0x0000000002265CDAuLL, 0x0000000002265CD7uLL}, +{0x078644FAFFFFFFFDuLL, 0x0000000380000000uLL, 0x0000000002265CD9uLL, 0x000000037FFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x00000003FFFFFFFDuLL, 0x0000000001E1913EuLL, 0x0000000305A4B3B7uLL}, +{0x078644FAFFFFFFFDuLL, 0x00000003FFFFFFFEuLL, 0x0000000001E1913EuLL, 0x0000000303C32279uLL}, +{0x078644FAFFFFFFFDuLL, 0x00000003FFFFFFFFuLL, 0x0000000001E1913EuLL, 0x0000000301E1913BuLL}, +{0x078644FAFFFFFFFDuLL, 0x0000001000000000uLL, 0x000000000078644FuLL, 0x0000000AFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x0000001000000001uLL, 0x000000000078644FuLL, 0x0000000AFF879BAEuLL}, +{0x078644FAFFFFFFFDuLL, 0x0000001000000002uLL, 0x000000000078644FuLL, 0x0000000AFF0F375FuLL}, +{0x078644FAFFFFFFFDuLL, 0x0000001000000003uLL, 0x000000000078644FuLL, 0x0000000AFE96D310uLL}, +{0x078644FAFFFFFFFDuLL, 0x0000001000000010uLL, 0x000000000078644FuLL, 0x0000000AF879BB0DuLL}, +{0x078644FAFFFFFFFDuLL, 0x00000010078644FAuLL, 0x0000000000782BCCuLL, 0x000000011E3B0AC5uLL}, +{0x078644FAFFFFFFFDuLL, 0x000000100747AE14uLL, 0x0000000000782DA1uLL, 0x0000000538F20169uLL}, +{0x078644FAFFFFFFFDuLL, 0x000000107FFFFFFFuLL, 0x000000000074BE5CuLL, 0x0000000D0074BE59uLL}, +{0x078644FAFFFFFFFDuLL, 0x0000001080000000uLL, 0x000000000074BE5CuLL, 0x0000000CFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x00000010FFFFFFFDuLL, 0x0000000000714F5AuLL, 0x000000010153EE0BuLL}, +{0x078644FAFFFFFFFDuLL, 0x00000010FFFFFFFEuLL, 0x0000000000714F5AuLL, 0x0000000100E29EB1uLL}, +{0x078644FAFFFFFFFDuLL, 0x00000010FFFFFFFFuLL, 0x0000000000714F5AuLL, 0x0000000100714F57uLL}, +{0x078644FAFFFFFFFDuLL, 0x078644FA00000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x078644FA00000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFCuLL}, +{0x078644FAFFFFFFFDuLL, 0x078644FA00000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFBuLL}, +{0x078644FAFFFFFFFDuLL, 0x078644FA00000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFAuLL}, +{0x078644FAFFFFFFFDuLL, 0x078644FA00000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFEDuLL}, +{0x078644FAFFFFFFFDuLL, 0x078644FA078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB03uLL}, +{0x078644FAFFFFFFFDuLL, 0x078644FA0747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851E9uLL}, +{0x078644FAFFFFFFFDuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x078644FAFFFFFFFDuLL, 0x078644FA80000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x078644FAFFFFFFFDuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x0747AE1400000000uLL, 0x0000000000000001uLL, 0x003E96E6FFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x0747AE1400000001uLL, 0x0000000000000001uLL, 0x003E96E6FFFFFFFCuLL}, +{0x078644FAFFFFFFFDuLL, 0x0747AE1400000002uLL, 0x0000000000000001uLL, 0x003E96E6FFFFFFFBuLL}, +{0x078644FAFFFFFFFDuLL, 0x0747AE1400000003uLL, 0x0000000000000001uLL, 0x003E96E6FFFFFFFAuLL}, +{0x078644FAFFFFFFFDuLL, 0x0747AE1400000010uLL, 0x0000000000000001uLL, 0x003E96E6FFFFFFEDuLL}, +{0x078644FAFFFFFFFDuLL, 0x0747AE14078644FAuLL, 0x0000000000000001uLL, 0x003E96E6F879BB03uLL}, +{0x078644FAFFFFFFFDuLL, 0x0747AE140747AE14uLL, 0x0000000000000001uLL, 0x003E96E6F8B851E9uLL}, +{0x078644FAFFFFFFFDuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000001uLL, 0x003E96E67FFFFFFEuLL}, +{0x078644FAFFFFFFFDuLL, 0x0747AE1480000000uLL, 0x0000000000000001uLL, 0x003E96E67FFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000001uLL, 0x003E96E600000000uLL}, +{0x078644FAFFFFFFFDuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000001uLL, 0x003E96E5FFFFFFFFuLL}, +{0x078644FAFFFFFFFDuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000001uLL, 0x003E96E5FFFFFFFEuLL}, +{0x078644FAFFFFFFFDuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFDuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFDuLL}, +{0x078644FAFFFFFFFEuLL, 0x0000000000000001uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL}, +{0x078644FAFFFFFFFEuLL, 0x0000000000000002uLL, 0x03C3227D7FFFFFFFuLL, 0x0000000000000000uLL}, +{0x078644FAFFFFFFFEuLL, 0x0000000000000003uLL, 0x028216FE55555554uLL, 0x0000000000000002uLL}, +{0x078644FAFFFFFFFEuLL, 0x0000000000000010uLL, 0x0078644FAFFFFFFFuLL, 0x000000000000000EuLL}, +{0x078644FAFFFFFFFEuLL, 0x00000000078644FAuLL, 0x0000000100000022uLL, 0x00000000002AD6CAuLL}, +{0x078644FAFFFFFFFEuLL, 0x000000000747AE14uLL, 0x000000010898F2B8uLL, 0x00000000060BF99EuLL}, +{0x078644FAFFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x000000000F0C89F6uLL, 0x000000000F0C89F4uLL}, +{0x078644FAFFFFFFFEuLL, 0x0000000080000000uLL, 0x000000000F0C89F5uLL, 0x000000007FFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x00000000FFFFFFFDuLL, 0x00000000078644FBuLL, 0x000000001692CEEFuLL}, +{0x078644FAFFFFFFFEuLL, 0x00000000FFFFFFFEuLL, 0x00000000078644FBuLL, 0x000000000F0C89F4uLL}, +{0x078644FAFFFFFFFEuLL, 0x00000000FFFFFFFFuLL, 0x00000000078644FBuLL, 0x00000000078644F9uLL}, +{0x078644FAFFFFFFFEuLL, 0x0000000100000000uLL, 0x00000000078644FAuLL, 0x00000000FFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x0000000100000001uLL, 0x00000000078644FAuLL, 0x00000000F879BB04uLL}, +{0x078644FAFFFFFFFEuLL, 0x0000000100000002uLL, 0x00000000078644FAuLL, 0x00000000F0F3760AuLL}, +{0x078644FAFFFFFFFEuLL, 0x0000000100000003uLL, 0x00000000078644FAuLL, 0x00000000E96D3110uLL}, +{0x078644FAFFFFFFFEuLL, 0x0000000100000010uLL, 0x00000000078644FAuLL, 0x00000000879BB05EuLL}, +{0x078644FAFFFFFFFEuLL, 0x00000001078644FAuLL, 0x00000000074F44A4uLL, 0x00000000648367D6uLL}, +{0x078644FAFFFFFFFEuLL, 0x000000010747AE14uLL, 0x000000000751017FuLL, 0x000000007B6E9012uLL}, +{0x078644FAFFFFFFFEuLL, 0x000000017FFFFFFFuLL, 0x0000000005042DFCuLL, 0x0000000105042DFAuLL}, +{0x078644FAFFFFFFFEuLL, 0x0000000180000000uLL, 0x0000000005042DFCuLL, 0x00000000FFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x00000001FFFFFFFDuLL, 0x0000000003C3227DuLL, 0x000000010B496775uLL}, +{0x078644FAFFFFFFFEuLL, 0x00000001FFFFFFFEuLL, 0x0000000003C3227DuLL, 0x00000001078644F8uLL}, +{0x078644FAFFFFFFFEuLL, 0x00000001FFFFFFFFuLL, 0x0000000003C3227DuLL, 0x0000000103C3227BuLL}, +{0x078644FAFFFFFFFEuLL, 0x0000000200000000uLL, 0x0000000003C3227DuLL, 0x00000000FFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x0000000200000001uLL, 0x0000000003C3227DuLL, 0x00000000FC3CDD81uLL}, +{0x078644FAFFFFFFFEuLL, 0x0000000200000002uLL, 0x0000000003C3227DuLL, 0x00000000F879BB04uLL}, +{0x078644FAFFFFFFFEuLL, 0x0000000200000003uLL, 0x0000000003C3227DuLL, 0x00000000F4B69887uLL}, +{0x078644FAFFFFFFFEuLL, 0x0000000200000010uLL, 0x0000000003C3227DuLL, 0x00000000C3CDD82EuLL}, +{0x078644FAFFFFFFFEuLL, 0x00000002078644FAuLL, 0x0000000003B52F6CuLL, 0x0000000079EF0086uLL}, +{0x078644FAFFFFFFFEuLL, 0x000000020747AE14uLL, 0x0000000003B5A1D4uLL, 0x000000009405436EuLL}, +{0x078644FAFFFFFFFEuLL, 0x000000027FFFFFFFuLL, 0x00000000030281FEuLL, 0x00000000030281FCuLL}, +{0x078644FAFFFFFFFEuLL, 0x0000000280000000uLL, 0x00000000030281FDuLL, 0x000000027FFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x00000002FFFFFFFDuLL, 0x00000000028216FEuLL, 0x00000001078644F8uLL}, +{0x078644FAFFFFFFFEuLL, 0x00000002FFFFFFFEuLL, 0x00000000028216FEuLL, 0x0000000105042DFAuLL}, +{0x078644FAFFFFFFFEuLL, 0x00000002FFFFFFFFuLL, 0x00000000028216FEuLL, 0x00000001028216FCuLL}, +{0x078644FAFFFFFFFEuLL, 0x0000000300000000uLL, 0x00000000028216FEuLL, 0x00000000FFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x0000000300000001uLL, 0x00000000028216FEuLL, 0x00000000FD7DE900uLL}, +{0x078644FAFFFFFFFEuLL, 0x0000000300000002uLL, 0x00000000028216FEuLL, 0x00000000FAFBD202uLL}, +{0x078644FAFFFFFFFEuLL, 0x0000000300000003uLL, 0x00000000028216FEuLL, 0x00000000F879BB04uLL}, +{0x078644FAFFFFFFFEuLL, 0x0000000300000010uLL, 0x00000000028216FEuLL, 0x00000000D7DE901EuLL}, +{0x078644FAFFFFFFFEuLL, 0x00000003078644FAuLL, 0x00000000027BDC27uLL, 0x000000005F26A5E8uLL}, +{0x078644FAFFFFFFFEuLL, 0x000000030747AE14uLL, 0x00000000027C0F7CuLL, 0x00000001CC64824EuLL}, +{0x078644FAFFFFFFFEuLL, 0x000000037FFFFFFFuLL, 0x0000000002265CDAuLL, 0x0000000002265CD8uLL}, +{0x078644FAFFFFFFFEuLL, 0x0000000380000000uLL, 0x0000000002265CD9uLL, 0x000000037FFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x00000003FFFFFFFDuLL, 0x0000000001E1913EuLL, 0x0000000305A4B3B8uLL}, +{0x078644FAFFFFFFFEuLL, 0x00000003FFFFFFFEuLL, 0x0000000001E1913EuLL, 0x0000000303C3227AuLL}, +{0x078644FAFFFFFFFEuLL, 0x00000003FFFFFFFFuLL, 0x0000000001E1913EuLL, 0x0000000301E1913CuLL}, +{0x078644FAFFFFFFFEuLL, 0x0000001000000000uLL, 0x000000000078644FuLL, 0x0000000AFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x0000001000000001uLL, 0x000000000078644FuLL, 0x0000000AFF879BAFuLL}, +{0x078644FAFFFFFFFEuLL, 0x0000001000000002uLL, 0x000000000078644FuLL, 0x0000000AFF0F3760uLL}, +{0x078644FAFFFFFFFEuLL, 0x0000001000000003uLL, 0x000000000078644FuLL, 0x0000000AFE96D311uLL}, +{0x078644FAFFFFFFFEuLL, 0x0000001000000010uLL, 0x000000000078644FuLL, 0x0000000AF879BB0EuLL}, +{0x078644FAFFFFFFFEuLL, 0x00000010078644FAuLL, 0x0000000000782BCCuLL, 0x000000011E3B0AC6uLL}, +{0x078644FAFFFFFFFEuLL, 0x000000100747AE14uLL, 0x0000000000782DA1uLL, 0x0000000538F2016AuLL}, +{0x078644FAFFFFFFFEuLL, 0x000000107FFFFFFFuLL, 0x000000000074BE5CuLL, 0x0000000D0074BE5AuLL}, +{0x078644FAFFFFFFFEuLL, 0x0000001080000000uLL, 0x000000000074BE5CuLL, 0x0000000CFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x00000010FFFFFFFDuLL, 0x0000000000714F5AuLL, 0x000000010153EE0CuLL}, +{0x078644FAFFFFFFFEuLL, 0x00000010FFFFFFFEuLL, 0x0000000000714F5AuLL, 0x0000000100E29EB2uLL}, +{0x078644FAFFFFFFFEuLL, 0x00000010FFFFFFFFuLL, 0x0000000000714F5AuLL, 0x0000000100714F58uLL}, +{0x078644FAFFFFFFFEuLL, 0x078644FA00000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x078644FA00000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0x078644FAFFFFFFFEuLL, 0x078644FA00000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFCuLL}, +{0x078644FAFFFFFFFEuLL, 0x078644FA00000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFBuLL}, +{0x078644FAFFFFFFFEuLL, 0x078644FA00000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFEEuLL}, +{0x078644FAFFFFFFFEuLL, 0x078644FA078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB04uLL}, +{0x078644FAFFFFFFFEuLL, 0x078644FA0747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EAuLL}, +{0x078644FAFFFFFFFEuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0x078644FAFFFFFFFEuLL, 0x078644FA80000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x078644FAFFFFFFFEuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x078644FAFFFFFFFEuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x0747AE1400000000uLL, 0x0000000000000001uLL, 0x003E96E6FFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x0747AE1400000001uLL, 0x0000000000000001uLL, 0x003E96E6FFFFFFFDuLL}, +{0x078644FAFFFFFFFEuLL, 0x0747AE1400000002uLL, 0x0000000000000001uLL, 0x003E96E6FFFFFFFCuLL}, +{0x078644FAFFFFFFFEuLL, 0x0747AE1400000003uLL, 0x0000000000000001uLL, 0x003E96E6FFFFFFFBuLL}, +{0x078644FAFFFFFFFEuLL, 0x0747AE1400000010uLL, 0x0000000000000001uLL, 0x003E96E6FFFFFFEEuLL}, +{0x078644FAFFFFFFFEuLL, 0x0747AE14078644FAuLL, 0x0000000000000001uLL, 0x003E96E6F879BB04uLL}, +{0x078644FAFFFFFFFEuLL, 0x0747AE140747AE14uLL, 0x0000000000000001uLL, 0x003E96E6F8B851EAuLL}, +{0x078644FAFFFFFFFEuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000001uLL, 0x003E96E67FFFFFFFuLL}, +{0x078644FAFFFFFFFEuLL, 0x0747AE1480000000uLL, 0x0000000000000001uLL, 0x003E96E67FFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000001uLL, 0x003E96E600000001uLL}, +{0x078644FAFFFFFFFEuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000001uLL, 0x003E96E600000000uLL}, +{0x078644FAFFFFFFFEuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000001uLL, 0x003E96E5FFFFFFFFuLL}, +{0x078644FAFFFFFFFEuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFEuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFEuLL}, +{0x078644FAFFFFFFFFuLL, 0x0000000000000001uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL}, +{0x078644FAFFFFFFFFuLL, 0x0000000000000002uLL, 0x03C3227D7FFFFFFFuLL, 0x0000000000000001uLL}, +{0x078644FAFFFFFFFFuLL, 0x0000000000000003uLL, 0x028216FE55555555uLL, 0x0000000000000000uLL}, +{0x078644FAFFFFFFFFuLL, 0x0000000000000010uLL, 0x0078644FAFFFFFFFuLL, 0x000000000000000FuLL}, +{0x078644FAFFFFFFFFuLL, 0x00000000078644FAuLL, 0x0000000100000022uLL, 0x00000000002AD6CBuLL}, +{0x078644FAFFFFFFFFuLL, 0x000000000747AE14uLL, 0x000000010898F2B8uLL, 0x00000000060BF99FuLL}, +{0x078644FAFFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x000000000F0C89F6uLL, 0x000000000F0C89F5uLL}, +{0x078644FAFFFFFFFFuLL, 0x0000000080000000uLL, 0x000000000F0C89F5uLL, 0x000000007FFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x00000000FFFFFFFDuLL, 0x00000000078644FBuLL, 0x000000001692CEF0uLL}, +{0x078644FAFFFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x00000000078644FBuLL, 0x000000000F0C89F5uLL}, +{0x078644FAFFFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x00000000078644FBuLL, 0x00000000078644FAuLL}, +{0x078644FAFFFFFFFFuLL, 0x0000000100000000uLL, 0x00000000078644FAuLL, 0x00000000FFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x0000000100000001uLL, 0x00000000078644FAuLL, 0x00000000F879BB05uLL}, +{0x078644FAFFFFFFFFuLL, 0x0000000100000002uLL, 0x00000000078644FAuLL, 0x00000000F0F3760BuLL}, +{0x078644FAFFFFFFFFuLL, 0x0000000100000003uLL, 0x00000000078644FAuLL, 0x00000000E96D3111uLL}, +{0x078644FAFFFFFFFFuLL, 0x0000000100000010uLL, 0x00000000078644FAuLL, 0x00000000879BB05FuLL}, +{0x078644FAFFFFFFFFuLL, 0x00000001078644FAuLL, 0x00000000074F44A4uLL, 0x00000000648367D7uLL}, +{0x078644FAFFFFFFFFuLL, 0x000000010747AE14uLL, 0x000000000751017FuLL, 0x000000007B6E9013uLL}, +{0x078644FAFFFFFFFFuLL, 0x000000017FFFFFFFuLL, 0x0000000005042DFCuLL, 0x0000000105042DFBuLL}, +{0x078644FAFFFFFFFFuLL, 0x0000000180000000uLL, 0x0000000005042DFCuLL, 0x00000000FFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x00000001FFFFFFFDuLL, 0x0000000003C3227DuLL, 0x000000010B496776uLL}, +{0x078644FAFFFFFFFFuLL, 0x00000001FFFFFFFEuLL, 0x0000000003C3227DuLL, 0x00000001078644F9uLL}, +{0x078644FAFFFFFFFFuLL, 0x00000001FFFFFFFFuLL, 0x0000000003C3227DuLL, 0x0000000103C3227CuLL}, +{0x078644FAFFFFFFFFuLL, 0x0000000200000000uLL, 0x0000000003C3227DuLL, 0x00000000FFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x0000000200000001uLL, 0x0000000003C3227DuLL, 0x00000000FC3CDD82uLL}, +{0x078644FAFFFFFFFFuLL, 0x0000000200000002uLL, 0x0000000003C3227DuLL, 0x00000000F879BB05uLL}, +{0x078644FAFFFFFFFFuLL, 0x0000000200000003uLL, 0x0000000003C3227DuLL, 0x00000000F4B69888uLL}, +{0x078644FAFFFFFFFFuLL, 0x0000000200000010uLL, 0x0000000003C3227DuLL, 0x00000000C3CDD82FuLL}, +{0x078644FAFFFFFFFFuLL, 0x00000002078644FAuLL, 0x0000000003B52F6CuLL, 0x0000000079EF0087uLL}, +{0x078644FAFFFFFFFFuLL, 0x000000020747AE14uLL, 0x0000000003B5A1D4uLL, 0x000000009405436FuLL}, +{0x078644FAFFFFFFFFuLL, 0x000000027FFFFFFFuLL, 0x00000000030281FEuLL, 0x00000000030281FDuLL}, +{0x078644FAFFFFFFFFuLL, 0x0000000280000000uLL, 0x00000000030281FDuLL, 0x000000027FFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x00000002FFFFFFFDuLL, 0x00000000028216FEuLL, 0x00000001078644F9uLL}, +{0x078644FAFFFFFFFFuLL, 0x00000002FFFFFFFEuLL, 0x00000000028216FEuLL, 0x0000000105042DFBuLL}, +{0x078644FAFFFFFFFFuLL, 0x00000002FFFFFFFFuLL, 0x00000000028216FEuLL, 0x00000001028216FDuLL}, +{0x078644FAFFFFFFFFuLL, 0x0000000300000000uLL, 0x00000000028216FEuLL, 0x00000000FFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x0000000300000001uLL, 0x00000000028216FEuLL, 0x00000000FD7DE901uLL}, +{0x078644FAFFFFFFFFuLL, 0x0000000300000002uLL, 0x00000000028216FEuLL, 0x00000000FAFBD203uLL}, +{0x078644FAFFFFFFFFuLL, 0x0000000300000003uLL, 0x00000000028216FEuLL, 0x00000000F879BB05uLL}, +{0x078644FAFFFFFFFFuLL, 0x0000000300000010uLL, 0x00000000028216FEuLL, 0x00000000D7DE901FuLL}, +{0x078644FAFFFFFFFFuLL, 0x00000003078644FAuLL, 0x00000000027BDC27uLL, 0x000000005F26A5E9uLL}, +{0x078644FAFFFFFFFFuLL, 0x000000030747AE14uLL, 0x00000000027C0F7CuLL, 0x00000001CC64824FuLL}, +{0x078644FAFFFFFFFFuLL, 0x000000037FFFFFFFuLL, 0x0000000002265CDAuLL, 0x0000000002265CD9uLL}, +{0x078644FAFFFFFFFFuLL, 0x0000000380000000uLL, 0x0000000002265CD9uLL, 0x000000037FFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x00000003FFFFFFFDuLL, 0x0000000001E1913EuLL, 0x0000000305A4B3B9uLL}, +{0x078644FAFFFFFFFFuLL, 0x00000003FFFFFFFEuLL, 0x0000000001E1913EuLL, 0x0000000303C3227BuLL}, +{0x078644FAFFFFFFFFuLL, 0x00000003FFFFFFFFuLL, 0x0000000001E1913EuLL, 0x0000000301E1913DuLL}, +{0x078644FAFFFFFFFFuLL, 0x0000001000000000uLL, 0x000000000078644FuLL, 0x0000000AFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x0000001000000001uLL, 0x000000000078644FuLL, 0x0000000AFF879BB0uLL}, +{0x078644FAFFFFFFFFuLL, 0x0000001000000002uLL, 0x000000000078644FuLL, 0x0000000AFF0F3761uLL}, +{0x078644FAFFFFFFFFuLL, 0x0000001000000003uLL, 0x000000000078644FuLL, 0x0000000AFE96D312uLL}, +{0x078644FAFFFFFFFFuLL, 0x0000001000000010uLL, 0x000000000078644FuLL, 0x0000000AF879BB0FuLL}, +{0x078644FAFFFFFFFFuLL, 0x00000010078644FAuLL, 0x0000000000782BCCuLL, 0x000000011E3B0AC7uLL}, +{0x078644FAFFFFFFFFuLL, 0x000000100747AE14uLL, 0x0000000000782DA1uLL, 0x0000000538F2016BuLL}, +{0x078644FAFFFFFFFFuLL, 0x000000107FFFFFFFuLL, 0x000000000074BE5CuLL, 0x0000000D0074BE5BuLL}, +{0x078644FAFFFFFFFFuLL, 0x0000001080000000uLL, 0x000000000074BE5CuLL, 0x0000000CFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x00000010FFFFFFFDuLL, 0x0000000000714F5AuLL, 0x000000010153EE0DuLL}, +{0x078644FAFFFFFFFFuLL, 0x00000010FFFFFFFEuLL, 0x0000000000714F5AuLL, 0x0000000100E29EB3uLL}, +{0x078644FAFFFFFFFFuLL, 0x00000010FFFFFFFFuLL, 0x0000000000714F5AuLL, 0x0000000100714F59uLL}, +{0x078644FAFFFFFFFFuLL, 0x078644FA00000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x078644FA00000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0x078644FAFFFFFFFFuLL, 0x078644FA00000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0x078644FAFFFFFFFFuLL, 0x078644FA00000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFCuLL}, +{0x078644FAFFFFFFFFuLL, 0x078644FA00000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFEFuLL}, +{0x078644FAFFFFFFFFuLL, 0x078644FA078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB05uLL}, +{0x078644FAFFFFFFFFuLL, 0x078644FA0747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EBuLL}, +{0x078644FAFFFFFFFFuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000000uLL}, +{0x078644FAFFFFFFFFuLL, 0x078644FA80000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0x078644FAFFFFFFFFuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x078644FAFFFFFFFFuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x078644FAFFFFFFFFuLL, 0x0747AE1400000000uLL, 0x0000000000000001uLL, 0x003E96E6FFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x0747AE1400000001uLL, 0x0000000000000001uLL, 0x003E96E6FFFFFFFEuLL}, +{0x078644FAFFFFFFFFuLL, 0x0747AE1400000002uLL, 0x0000000000000001uLL, 0x003E96E6FFFFFFFDuLL}, +{0x078644FAFFFFFFFFuLL, 0x0747AE1400000003uLL, 0x0000000000000001uLL, 0x003E96E6FFFFFFFCuLL}, +{0x078644FAFFFFFFFFuLL, 0x0747AE1400000010uLL, 0x0000000000000001uLL, 0x003E96E6FFFFFFEFuLL}, +{0x078644FAFFFFFFFFuLL, 0x0747AE14078644FAuLL, 0x0000000000000001uLL, 0x003E96E6F879BB05uLL}, +{0x078644FAFFFFFFFFuLL, 0x0747AE140747AE14uLL, 0x0000000000000001uLL, 0x003E96E6F8B851EBuLL}, +{0x078644FAFFFFFFFFuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000001uLL, 0x003E96E680000000uLL}, +{0x078644FAFFFFFFFFuLL, 0x0747AE1480000000uLL, 0x0000000000000001uLL, 0x003E96E67FFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000001uLL, 0x003E96E600000002uLL}, +{0x078644FAFFFFFFFFuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000001uLL, 0x003E96E600000001uLL}, +{0x078644FAFFFFFFFFuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000001uLL, 0x003E96E600000000uLL}, +{0x078644FAFFFFFFFFuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x078644FAFFFFFFFFuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x078644FAFFFFFFFFuLL}, +{0x0747AE1400000000uLL, 0x0000000000000001uLL, 0x0747AE1400000000uLL, 0x0000000000000000uLL}, +{0x0747AE1400000000uLL, 0x0000000000000002uLL, 0x03A3D70A00000000uLL, 0x0000000000000000uLL}, +{0x0747AE1400000000uLL, 0x0000000000000003uLL, 0x026D3A06AAAAAAAAuLL, 0x0000000000000002uLL}, +{0x0747AE1400000000uLL, 0x0000000000000010uLL, 0x00747AE140000000uLL, 0x0000000000000000uLL}, +{0x0747AE1400000000uLL, 0x00000000078644FAuLL, 0x00000000F7AE911DuLL, 0x0000000000CC95AEuLL}, +{0x0747AE1400000000uLL, 0x000000000747AE14uLL, 0x0000000100000000uLL, 0x0000000000000000uLL}, +{0x0747AE1400000000uLL, 0x000000007FFFFFFFuLL, 0x000000000E8F5C28uLL, 0x000000000E8F5C28uLL}, +{0x0747AE1400000000uLL, 0x0000000080000000uLL, 0x000000000E8F5C28uLL, 0x0000000000000000uLL}, +{0x0747AE1400000000uLL, 0x00000000FFFFFFFDuLL, 0x000000000747AE14uLL, 0x0000000015D70A3CuLL}, +{0x0747AE1400000000uLL, 0x00000000FFFFFFFEuLL, 0x000000000747AE14uLL, 0x000000000E8F5C28uLL}, +{0x0747AE1400000000uLL, 0x00000000FFFFFFFFuLL, 0x000000000747AE14uLL, 0x000000000747AE14uLL}, +{0x0747AE1400000000uLL, 0x0000000100000000uLL, 0x000000000747AE14uLL, 0x0000000000000000uLL}, +{0x0747AE1400000000uLL, 0x0000000100000001uLL, 0x000000000747AE13uLL, 0x00000000F8B851EDuLL}, +{0x0747AE1400000000uLL, 0x0000000100000002uLL, 0x000000000747AE13uLL, 0x00000000F170A3DAuLL}, +{0x0747AE1400000000uLL, 0x0000000100000003uLL, 0x000000000747AE13uLL, 0x00000000EA28F5C7uLL}, +{0x0747AE1400000000uLL, 0x0000000100000010uLL, 0x000000000747AE13uLL, 0x000000008B851ED0uLL}, +{0x0747AE1400000000uLL, 0x00000001078644FAuLL, 0x000000000712773FuLL, 0x000000000C50D07AuLL}, +{0x0747AE1400000000uLL, 0x000000010747AE14uLL, 0x00000000071425A5uLL, 0x00000000CD13E91CuLL}, +{0x0747AE1400000000uLL, 0x000000017FFFFFFFuLL, 0x0000000004DA740DuLL, 0x0000000084DA740DuLL}, +{0x0747AE1400000000uLL, 0x0000000180000000uLL, 0x0000000004DA740DuLL, 0x0000000080000000uLL}, +{0x0747AE1400000000uLL, 0x00000001FFFFFFFDuLL, 0x0000000003A3D70AuLL, 0x000000000AEB851EuLL}, +{0x0747AE1400000000uLL, 0x00000001FFFFFFFEuLL, 0x0000000003A3D70AuLL, 0x000000000747AE14uLL}, +{0x0747AE1400000000uLL, 0x00000001FFFFFFFFuLL, 0x0000000003A3D70AuLL, 0x0000000003A3D70AuLL}, +{0x0747AE1400000000uLL, 0x0000000200000000uLL, 0x0000000003A3D70AuLL, 0x0000000000000000uLL}, +{0x0747AE1400000000uLL, 0x0000000200000001uLL, 0x0000000003A3D709uLL, 0x00000001FC5C28F7uLL}, +{0x0747AE1400000000uLL, 0x0000000200000002uLL, 0x0000000003A3D709uLL, 0x00000001F8B851EEuLL}, +{0x0747AE1400000000uLL, 0x0000000200000003uLL, 0x0000000003A3D709uLL, 0x00000001F5147AE5uLL}, +{0x0747AE1400000000uLL, 0x0000000200000010uLL, 0x0000000003A3D709uLL, 0x00000001C5C28F70uLL}, +{0x0747AE1400000000uLL, 0x00000002078644FAuLL, 0x0000000003965801uLL, 0x000000007847CB06uLL}, +{0x0747AE1400000000uLL, 0x000000020747AE14uLL, 0x000000000396C6B1uLL, 0x000000014B152C2CuLL}, +{0x0747AE1400000000uLL, 0x000000027FFFFFFFuLL, 0x0000000002E978D4uLL, 0x0000000202E978D4uLL}, +{0x0747AE1400000000uLL, 0x0000000280000000uLL, 0x0000000002E978D4uLL, 0x0000000200000000uLL}, +{0x0747AE1400000000uLL, 0x00000002FFFFFFFDuLL, 0x00000000026D3A06uLL, 0x000000020747AE12uLL}, +{0x0747AE1400000000uLL, 0x00000002FFFFFFFEuLL, 0x00000000026D3A06uLL, 0x0000000204DA740CuLL}, +{0x0747AE1400000000uLL, 0x00000002FFFFFFFFuLL, 0x00000000026D3A06uLL, 0x00000002026D3A06uLL}, +{0x0747AE1400000000uLL, 0x0000000300000000uLL, 0x00000000026D3A06uLL, 0x0000000200000000uLL}, +{0x0747AE1400000000uLL, 0x0000000300000001uLL, 0x00000000026D3A06uLL, 0x00000001FD92C5FAuLL}, +{0x0747AE1400000000uLL, 0x0000000300000002uLL, 0x00000000026D3A06uLL, 0x00000001FB258BF4uLL}, +{0x0747AE1400000000uLL, 0x0000000300000003uLL, 0x00000000026D3A06uLL, 0x00000001F8B851EEuLL}, +{0x0747AE1400000000uLL, 0x0000000300000010uLL, 0x00000000026D3A06uLL, 0x00000001D92C5FA0uLL}, +{0x0747AE1400000000uLL, 0x00000003078644FAuLL, 0x0000000002673301uLL, 0x000000018425ED06uLL}, +{0x0747AE1400000000uLL, 0x000000030747AE14uLL, 0x00000000026764ABuLL, 0x00000002F112E8A4uLL}, +{0x0747AE1400000000uLL, 0x000000037FFFFFFFuLL, 0x0000000002147AE1uLL, 0x0000000082147AE1uLL}, +{0x0747AE1400000000uLL, 0x0000000380000000uLL, 0x0000000002147AE1uLL, 0x0000000080000000uLL}, +{0x0747AE1400000000uLL, 0x00000003FFFFFFFDuLL, 0x0000000001D1EB85uLL, 0x000000000575C28FuLL}, +{0x0747AE1400000000uLL, 0x00000003FFFFFFFEuLL, 0x0000000001D1EB85uLL, 0x0000000003A3D70AuLL}, +{0x0747AE1400000000uLL, 0x00000003FFFFFFFFuLL, 0x0000000001D1EB85uLL, 0x0000000001D1EB85uLL}, +{0x0747AE1400000000uLL, 0x0000001000000000uLL, 0x0000000000747AE1uLL, 0x0000000400000000uLL}, +{0x0747AE1400000000uLL, 0x0000001000000001uLL, 0x0000000000747AE1uLL, 0x00000003FF8B851FuLL}, +{0x0747AE1400000000uLL, 0x0000001000000002uLL, 0x0000000000747AE1uLL, 0x00000003FF170A3EuLL}, +{0x0747AE1400000000uLL, 0x0000001000000003uLL, 0x0000000000747AE1uLL, 0x00000003FEA28F5DuLL}, +{0x0747AE1400000000uLL, 0x0000001000000010uLL, 0x0000000000747AE1uLL, 0x00000003F8B851F0uLL}, +{0x0747AE1400000000uLL, 0x00000010078644FAuLL, 0x0000000000744433uLL, 0x0000000B94A5DA32uLL}, +{0x0747AE1400000000uLL, 0x000000100747AE14uLL, 0x00000000007445F9uLL, 0x0000000BB84C4A8CuLL}, +{0x0747AE1400000000uLL, 0x000000107FFFFFFFuLL, 0x000000000070F347uLL, 0x000000008070F347uLL}, +{0x0747AE1400000000uLL, 0x0000001080000000uLL, 0x000000000070F347uLL, 0x0000000080000000uLL}, +{0x0747AE1400000000uLL, 0x00000010FFFFFFFDuLL, 0x00000000006DA0D4uLL, 0x000000000148E27CuLL}, +{0x0747AE1400000000uLL, 0x00000010FFFFFFFEuLL, 0x00000000006DA0D4uLL, 0x0000000000DB41A8uLL}, +{0x0747AE1400000000uLL, 0x00000010FFFFFFFFuLL, 0x00000000006DA0D4uLL, 0x00000000006DA0D4uLL}, +{0x0747AE1400000000uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x0747AE1400000000uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0747AE1400000000uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000000uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000000uLL}, +{0x0747AE1400000001uLL, 0x0000000000000001uLL, 0x0747AE1400000001uLL, 0x0000000000000000uLL}, +{0x0747AE1400000001uLL, 0x0000000000000002uLL, 0x03A3D70A00000000uLL, 0x0000000000000001uLL}, +{0x0747AE1400000001uLL, 0x0000000000000003uLL, 0x026D3A06AAAAAAABuLL, 0x0000000000000000uLL}, +{0x0747AE1400000001uLL, 0x0000000000000010uLL, 0x00747AE140000000uLL, 0x0000000000000001uLL}, +{0x0747AE1400000001uLL, 0x00000000078644FAuLL, 0x00000000F7AE911DuLL, 0x0000000000CC95AFuLL}, +{0x0747AE1400000001uLL, 0x000000000747AE14uLL, 0x0000000100000000uLL, 0x0000000000000001uLL}, +{0x0747AE1400000001uLL, 0x000000007FFFFFFFuLL, 0x000000000E8F5C28uLL, 0x000000000E8F5C29uLL}, +{0x0747AE1400000001uLL, 0x0000000080000000uLL, 0x000000000E8F5C28uLL, 0x0000000000000001uLL}, +{0x0747AE1400000001uLL, 0x00000000FFFFFFFDuLL, 0x000000000747AE14uLL, 0x0000000015D70A3DuLL}, +{0x0747AE1400000001uLL, 0x00000000FFFFFFFEuLL, 0x000000000747AE14uLL, 0x000000000E8F5C29uLL}, +{0x0747AE1400000001uLL, 0x00000000FFFFFFFFuLL, 0x000000000747AE14uLL, 0x000000000747AE15uLL}, +{0x0747AE1400000001uLL, 0x0000000100000000uLL, 0x000000000747AE14uLL, 0x0000000000000001uLL}, +{0x0747AE1400000001uLL, 0x0000000100000001uLL, 0x000000000747AE13uLL, 0x00000000F8B851EEuLL}, +{0x0747AE1400000001uLL, 0x0000000100000002uLL, 0x000000000747AE13uLL, 0x00000000F170A3DBuLL}, +{0x0747AE1400000001uLL, 0x0000000100000003uLL, 0x000000000747AE13uLL, 0x00000000EA28F5C8uLL}, +{0x0747AE1400000001uLL, 0x0000000100000010uLL, 0x000000000747AE13uLL, 0x000000008B851ED1uLL}, +{0x0747AE1400000001uLL, 0x00000001078644FAuLL, 0x000000000712773FuLL, 0x000000000C50D07BuLL}, +{0x0747AE1400000001uLL, 0x000000010747AE14uLL, 0x00000000071425A5uLL, 0x00000000CD13E91DuLL}, +{0x0747AE1400000001uLL, 0x000000017FFFFFFFuLL, 0x0000000004DA740DuLL, 0x0000000084DA740EuLL}, +{0x0747AE1400000001uLL, 0x0000000180000000uLL, 0x0000000004DA740DuLL, 0x0000000080000001uLL}, +{0x0747AE1400000001uLL, 0x00000001FFFFFFFDuLL, 0x0000000003A3D70AuLL, 0x000000000AEB851FuLL}, +{0x0747AE1400000001uLL, 0x00000001FFFFFFFEuLL, 0x0000000003A3D70AuLL, 0x000000000747AE15uLL}, +{0x0747AE1400000001uLL, 0x00000001FFFFFFFFuLL, 0x0000000003A3D70AuLL, 0x0000000003A3D70BuLL}, +{0x0747AE1400000001uLL, 0x0000000200000000uLL, 0x0000000003A3D70AuLL, 0x0000000000000001uLL}, +{0x0747AE1400000001uLL, 0x0000000200000001uLL, 0x0000000003A3D709uLL, 0x00000001FC5C28F8uLL}, +{0x0747AE1400000001uLL, 0x0000000200000002uLL, 0x0000000003A3D709uLL, 0x00000001F8B851EFuLL}, +{0x0747AE1400000001uLL, 0x0000000200000003uLL, 0x0000000003A3D709uLL, 0x00000001F5147AE6uLL}, +{0x0747AE1400000001uLL, 0x0000000200000010uLL, 0x0000000003A3D709uLL, 0x00000001C5C28F71uLL}, +{0x0747AE1400000001uLL, 0x00000002078644FAuLL, 0x0000000003965801uLL, 0x000000007847CB07uLL}, +{0x0747AE1400000001uLL, 0x000000020747AE14uLL, 0x000000000396C6B1uLL, 0x000000014B152C2DuLL}, +{0x0747AE1400000001uLL, 0x000000027FFFFFFFuLL, 0x0000000002E978D4uLL, 0x0000000202E978D5uLL}, +{0x0747AE1400000001uLL, 0x0000000280000000uLL, 0x0000000002E978D4uLL, 0x0000000200000001uLL}, +{0x0747AE1400000001uLL, 0x00000002FFFFFFFDuLL, 0x00000000026D3A06uLL, 0x000000020747AE13uLL}, +{0x0747AE1400000001uLL, 0x00000002FFFFFFFEuLL, 0x00000000026D3A06uLL, 0x0000000204DA740DuLL}, +{0x0747AE1400000001uLL, 0x00000002FFFFFFFFuLL, 0x00000000026D3A06uLL, 0x00000002026D3A07uLL}, +{0x0747AE1400000001uLL, 0x0000000300000000uLL, 0x00000000026D3A06uLL, 0x0000000200000001uLL}, +{0x0747AE1400000001uLL, 0x0000000300000001uLL, 0x00000000026D3A06uLL, 0x00000001FD92C5FBuLL}, +{0x0747AE1400000001uLL, 0x0000000300000002uLL, 0x00000000026D3A06uLL, 0x00000001FB258BF5uLL}, +{0x0747AE1400000001uLL, 0x0000000300000003uLL, 0x00000000026D3A06uLL, 0x00000001F8B851EFuLL}, +{0x0747AE1400000001uLL, 0x0000000300000010uLL, 0x00000000026D3A06uLL, 0x00000001D92C5FA1uLL}, +{0x0747AE1400000001uLL, 0x00000003078644FAuLL, 0x0000000002673301uLL, 0x000000018425ED07uLL}, +{0x0747AE1400000001uLL, 0x000000030747AE14uLL, 0x00000000026764ABuLL, 0x00000002F112E8A5uLL}, +{0x0747AE1400000001uLL, 0x000000037FFFFFFFuLL, 0x0000000002147AE1uLL, 0x0000000082147AE2uLL}, +{0x0747AE1400000001uLL, 0x0000000380000000uLL, 0x0000000002147AE1uLL, 0x0000000080000001uLL}, +{0x0747AE1400000001uLL, 0x00000003FFFFFFFDuLL, 0x0000000001D1EB85uLL, 0x000000000575C290uLL}, +{0x0747AE1400000001uLL, 0x00000003FFFFFFFEuLL, 0x0000000001D1EB85uLL, 0x0000000003A3D70BuLL}, +{0x0747AE1400000001uLL, 0x00000003FFFFFFFFuLL, 0x0000000001D1EB85uLL, 0x0000000001D1EB86uLL}, +{0x0747AE1400000001uLL, 0x0000001000000000uLL, 0x0000000000747AE1uLL, 0x0000000400000001uLL}, +{0x0747AE1400000001uLL, 0x0000001000000001uLL, 0x0000000000747AE1uLL, 0x00000003FF8B8520uLL}, +{0x0747AE1400000001uLL, 0x0000001000000002uLL, 0x0000000000747AE1uLL, 0x00000003FF170A3FuLL}, +{0x0747AE1400000001uLL, 0x0000001000000003uLL, 0x0000000000747AE1uLL, 0x00000003FEA28F5EuLL}, +{0x0747AE1400000001uLL, 0x0000001000000010uLL, 0x0000000000747AE1uLL, 0x00000003F8B851F1uLL}, +{0x0747AE1400000001uLL, 0x00000010078644FAuLL, 0x0000000000744433uLL, 0x0000000B94A5DA33uLL}, +{0x0747AE1400000001uLL, 0x000000100747AE14uLL, 0x00000000007445F9uLL, 0x0000000BB84C4A8DuLL}, +{0x0747AE1400000001uLL, 0x000000107FFFFFFFuLL, 0x000000000070F347uLL, 0x000000008070F348uLL}, +{0x0747AE1400000001uLL, 0x0000001080000000uLL, 0x000000000070F347uLL, 0x0000000080000001uLL}, +{0x0747AE1400000001uLL, 0x00000010FFFFFFFDuLL, 0x00000000006DA0D4uLL, 0x000000000148E27DuLL}, +{0x0747AE1400000001uLL, 0x00000010FFFFFFFEuLL, 0x00000000006DA0D4uLL, 0x0000000000DB41A9uLL}, +{0x0747AE1400000001uLL, 0x00000010FFFFFFFFuLL, 0x00000000006DA0D4uLL, 0x00000000006DA0D5uLL}, +{0x0747AE1400000001uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x0747AE1400000000uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x0747AE1400000001uLL, 0x0747AE1400000001uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0747AE1400000001uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000001uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000001uLL}, +{0x0747AE1400000002uLL, 0x0000000000000001uLL, 0x0747AE1400000002uLL, 0x0000000000000000uLL}, +{0x0747AE1400000002uLL, 0x0000000000000002uLL, 0x03A3D70A00000001uLL, 0x0000000000000000uLL}, +{0x0747AE1400000002uLL, 0x0000000000000003uLL, 0x026D3A06AAAAAAABuLL, 0x0000000000000001uLL}, +{0x0747AE1400000002uLL, 0x0000000000000010uLL, 0x00747AE140000000uLL, 0x0000000000000002uLL}, +{0x0747AE1400000002uLL, 0x00000000078644FAuLL, 0x00000000F7AE911DuLL, 0x0000000000CC95B0uLL}, +{0x0747AE1400000002uLL, 0x000000000747AE14uLL, 0x0000000100000000uLL, 0x0000000000000002uLL}, +{0x0747AE1400000002uLL, 0x000000007FFFFFFFuLL, 0x000000000E8F5C28uLL, 0x000000000E8F5C2AuLL}, +{0x0747AE1400000002uLL, 0x0000000080000000uLL, 0x000000000E8F5C28uLL, 0x0000000000000002uLL}, +{0x0747AE1400000002uLL, 0x00000000FFFFFFFDuLL, 0x000000000747AE14uLL, 0x0000000015D70A3EuLL}, +{0x0747AE1400000002uLL, 0x00000000FFFFFFFEuLL, 0x000000000747AE14uLL, 0x000000000E8F5C2AuLL}, +{0x0747AE1400000002uLL, 0x00000000FFFFFFFFuLL, 0x000000000747AE14uLL, 0x000000000747AE16uLL}, +{0x0747AE1400000002uLL, 0x0000000100000000uLL, 0x000000000747AE14uLL, 0x0000000000000002uLL}, +{0x0747AE1400000002uLL, 0x0000000100000001uLL, 0x000000000747AE13uLL, 0x00000000F8B851EFuLL}, +{0x0747AE1400000002uLL, 0x0000000100000002uLL, 0x000000000747AE13uLL, 0x00000000F170A3DCuLL}, +{0x0747AE1400000002uLL, 0x0000000100000003uLL, 0x000000000747AE13uLL, 0x00000000EA28F5C9uLL}, +{0x0747AE1400000002uLL, 0x0000000100000010uLL, 0x000000000747AE13uLL, 0x000000008B851ED2uLL}, +{0x0747AE1400000002uLL, 0x00000001078644FAuLL, 0x000000000712773FuLL, 0x000000000C50D07CuLL}, +{0x0747AE1400000002uLL, 0x000000010747AE14uLL, 0x00000000071425A5uLL, 0x00000000CD13E91EuLL}, +{0x0747AE1400000002uLL, 0x000000017FFFFFFFuLL, 0x0000000004DA740DuLL, 0x0000000084DA740FuLL}, +{0x0747AE1400000002uLL, 0x0000000180000000uLL, 0x0000000004DA740DuLL, 0x0000000080000002uLL}, +{0x0747AE1400000002uLL, 0x00000001FFFFFFFDuLL, 0x0000000003A3D70AuLL, 0x000000000AEB8520uLL}, +{0x0747AE1400000002uLL, 0x00000001FFFFFFFEuLL, 0x0000000003A3D70AuLL, 0x000000000747AE16uLL}, +{0x0747AE1400000002uLL, 0x00000001FFFFFFFFuLL, 0x0000000003A3D70AuLL, 0x0000000003A3D70CuLL}, +{0x0747AE1400000002uLL, 0x0000000200000000uLL, 0x0000000003A3D70AuLL, 0x0000000000000002uLL}, +{0x0747AE1400000002uLL, 0x0000000200000001uLL, 0x0000000003A3D709uLL, 0x00000001FC5C28F9uLL}, +{0x0747AE1400000002uLL, 0x0000000200000002uLL, 0x0000000003A3D709uLL, 0x00000001F8B851F0uLL}, +{0x0747AE1400000002uLL, 0x0000000200000003uLL, 0x0000000003A3D709uLL, 0x00000001F5147AE7uLL}, +{0x0747AE1400000002uLL, 0x0000000200000010uLL, 0x0000000003A3D709uLL, 0x00000001C5C28F72uLL}, +{0x0747AE1400000002uLL, 0x00000002078644FAuLL, 0x0000000003965801uLL, 0x000000007847CB08uLL}, +{0x0747AE1400000002uLL, 0x000000020747AE14uLL, 0x000000000396C6B1uLL, 0x000000014B152C2EuLL}, +{0x0747AE1400000002uLL, 0x000000027FFFFFFFuLL, 0x0000000002E978D4uLL, 0x0000000202E978D6uLL}, +{0x0747AE1400000002uLL, 0x0000000280000000uLL, 0x0000000002E978D4uLL, 0x0000000200000002uLL}, +{0x0747AE1400000002uLL, 0x00000002FFFFFFFDuLL, 0x00000000026D3A06uLL, 0x000000020747AE14uLL}, +{0x0747AE1400000002uLL, 0x00000002FFFFFFFEuLL, 0x00000000026D3A06uLL, 0x0000000204DA740EuLL}, +{0x0747AE1400000002uLL, 0x00000002FFFFFFFFuLL, 0x00000000026D3A06uLL, 0x00000002026D3A08uLL}, +{0x0747AE1400000002uLL, 0x0000000300000000uLL, 0x00000000026D3A06uLL, 0x0000000200000002uLL}, +{0x0747AE1400000002uLL, 0x0000000300000001uLL, 0x00000000026D3A06uLL, 0x00000001FD92C5FCuLL}, +{0x0747AE1400000002uLL, 0x0000000300000002uLL, 0x00000000026D3A06uLL, 0x00000001FB258BF6uLL}, +{0x0747AE1400000002uLL, 0x0000000300000003uLL, 0x00000000026D3A06uLL, 0x00000001F8B851F0uLL}, +{0x0747AE1400000002uLL, 0x0000000300000010uLL, 0x00000000026D3A06uLL, 0x00000001D92C5FA2uLL}, +{0x0747AE1400000002uLL, 0x00000003078644FAuLL, 0x0000000002673301uLL, 0x000000018425ED08uLL}, +{0x0747AE1400000002uLL, 0x000000030747AE14uLL, 0x00000000026764ABuLL, 0x00000002F112E8A6uLL}, +{0x0747AE1400000002uLL, 0x000000037FFFFFFFuLL, 0x0000000002147AE1uLL, 0x0000000082147AE3uLL}, +{0x0747AE1400000002uLL, 0x0000000380000000uLL, 0x0000000002147AE1uLL, 0x0000000080000002uLL}, +{0x0747AE1400000002uLL, 0x00000003FFFFFFFDuLL, 0x0000000001D1EB85uLL, 0x000000000575C291uLL}, +{0x0747AE1400000002uLL, 0x00000003FFFFFFFEuLL, 0x0000000001D1EB85uLL, 0x0000000003A3D70CuLL}, +{0x0747AE1400000002uLL, 0x00000003FFFFFFFFuLL, 0x0000000001D1EB85uLL, 0x0000000001D1EB87uLL}, +{0x0747AE1400000002uLL, 0x0000001000000000uLL, 0x0000000000747AE1uLL, 0x0000000400000002uLL}, +{0x0747AE1400000002uLL, 0x0000001000000001uLL, 0x0000000000747AE1uLL, 0x00000003FF8B8521uLL}, +{0x0747AE1400000002uLL, 0x0000001000000002uLL, 0x0000000000747AE1uLL, 0x00000003FF170A40uLL}, +{0x0747AE1400000002uLL, 0x0000001000000003uLL, 0x0000000000747AE1uLL, 0x00000003FEA28F5FuLL}, +{0x0747AE1400000002uLL, 0x0000001000000010uLL, 0x0000000000747AE1uLL, 0x00000003F8B851F2uLL}, +{0x0747AE1400000002uLL, 0x00000010078644FAuLL, 0x0000000000744433uLL, 0x0000000B94A5DA34uLL}, +{0x0747AE1400000002uLL, 0x000000100747AE14uLL, 0x00000000007445F9uLL, 0x0000000BB84C4A8EuLL}, +{0x0747AE1400000002uLL, 0x000000107FFFFFFFuLL, 0x000000000070F347uLL, 0x000000008070F349uLL}, +{0x0747AE1400000002uLL, 0x0000001080000000uLL, 0x000000000070F347uLL, 0x0000000080000002uLL}, +{0x0747AE1400000002uLL, 0x00000010FFFFFFFDuLL, 0x00000000006DA0D4uLL, 0x000000000148E27EuLL}, +{0x0747AE1400000002uLL, 0x00000010FFFFFFFEuLL, 0x00000000006DA0D4uLL, 0x0000000000DB41AAuLL}, +{0x0747AE1400000002uLL, 0x00000010FFFFFFFFuLL, 0x00000000006DA0D4uLL, 0x00000000006DA0D6uLL}, +{0x0747AE1400000002uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x0747AE1400000000uLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0x0747AE1400000002uLL, 0x0747AE1400000001uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x0747AE1400000002uLL, 0x0747AE1400000002uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0747AE1400000002uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000002uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000002uLL}, +{0x0747AE1400000003uLL, 0x0000000000000001uLL, 0x0747AE1400000003uLL, 0x0000000000000000uLL}, +{0x0747AE1400000003uLL, 0x0000000000000002uLL, 0x03A3D70A00000001uLL, 0x0000000000000001uLL}, +{0x0747AE1400000003uLL, 0x0000000000000003uLL, 0x026D3A06AAAAAAABuLL, 0x0000000000000002uLL}, +{0x0747AE1400000003uLL, 0x0000000000000010uLL, 0x00747AE140000000uLL, 0x0000000000000003uLL}, +{0x0747AE1400000003uLL, 0x00000000078644FAuLL, 0x00000000F7AE911DuLL, 0x0000000000CC95B1uLL}, +{0x0747AE1400000003uLL, 0x000000000747AE14uLL, 0x0000000100000000uLL, 0x0000000000000003uLL}, +{0x0747AE1400000003uLL, 0x000000007FFFFFFFuLL, 0x000000000E8F5C28uLL, 0x000000000E8F5C2BuLL}, +{0x0747AE1400000003uLL, 0x0000000080000000uLL, 0x000000000E8F5C28uLL, 0x0000000000000003uLL}, +{0x0747AE1400000003uLL, 0x00000000FFFFFFFDuLL, 0x000000000747AE14uLL, 0x0000000015D70A3FuLL}, +{0x0747AE1400000003uLL, 0x00000000FFFFFFFEuLL, 0x000000000747AE14uLL, 0x000000000E8F5C2BuLL}, +{0x0747AE1400000003uLL, 0x00000000FFFFFFFFuLL, 0x000000000747AE14uLL, 0x000000000747AE17uLL}, +{0x0747AE1400000003uLL, 0x0000000100000000uLL, 0x000000000747AE14uLL, 0x0000000000000003uLL}, +{0x0747AE1400000003uLL, 0x0000000100000001uLL, 0x000000000747AE13uLL, 0x00000000F8B851F0uLL}, +{0x0747AE1400000003uLL, 0x0000000100000002uLL, 0x000000000747AE13uLL, 0x00000000F170A3DDuLL}, +{0x0747AE1400000003uLL, 0x0000000100000003uLL, 0x000000000747AE13uLL, 0x00000000EA28F5CAuLL}, +{0x0747AE1400000003uLL, 0x0000000100000010uLL, 0x000000000747AE13uLL, 0x000000008B851ED3uLL}, +{0x0747AE1400000003uLL, 0x00000001078644FAuLL, 0x000000000712773FuLL, 0x000000000C50D07DuLL}, +{0x0747AE1400000003uLL, 0x000000010747AE14uLL, 0x00000000071425A5uLL, 0x00000000CD13E91FuLL}, +{0x0747AE1400000003uLL, 0x000000017FFFFFFFuLL, 0x0000000004DA740DuLL, 0x0000000084DA7410uLL}, +{0x0747AE1400000003uLL, 0x0000000180000000uLL, 0x0000000004DA740DuLL, 0x0000000080000003uLL}, +{0x0747AE1400000003uLL, 0x00000001FFFFFFFDuLL, 0x0000000003A3D70AuLL, 0x000000000AEB8521uLL}, +{0x0747AE1400000003uLL, 0x00000001FFFFFFFEuLL, 0x0000000003A3D70AuLL, 0x000000000747AE17uLL}, +{0x0747AE1400000003uLL, 0x00000001FFFFFFFFuLL, 0x0000000003A3D70AuLL, 0x0000000003A3D70DuLL}, +{0x0747AE1400000003uLL, 0x0000000200000000uLL, 0x0000000003A3D70AuLL, 0x0000000000000003uLL}, +{0x0747AE1400000003uLL, 0x0000000200000001uLL, 0x0000000003A3D709uLL, 0x00000001FC5C28FAuLL}, +{0x0747AE1400000003uLL, 0x0000000200000002uLL, 0x0000000003A3D709uLL, 0x00000001F8B851F1uLL}, +{0x0747AE1400000003uLL, 0x0000000200000003uLL, 0x0000000003A3D709uLL, 0x00000001F5147AE8uLL}, +{0x0747AE1400000003uLL, 0x0000000200000010uLL, 0x0000000003A3D709uLL, 0x00000001C5C28F73uLL}, +{0x0747AE1400000003uLL, 0x00000002078644FAuLL, 0x0000000003965801uLL, 0x000000007847CB09uLL}, +{0x0747AE1400000003uLL, 0x000000020747AE14uLL, 0x000000000396C6B1uLL, 0x000000014B152C2FuLL}, +{0x0747AE1400000003uLL, 0x000000027FFFFFFFuLL, 0x0000000002E978D4uLL, 0x0000000202E978D7uLL}, +{0x0747AE1400000003uLL, 0x0000000280000000uLL, 0x0000000002E978D4uLL, 0x0000000200000003uLL}, +{0x0747AE1400000003uLL, 0x00000002FFFFFFFDuLL, 0x00000000026D3A06uLL, 0x000000020747AE15uLL}, +{0x0747AE1400000003uLL, 0x00000002FFFFFFFEuLL, 0x00000000026D3A06uLL, 0x0000000204DA740FuLL}, +{0x0747AE1400000003uLL, 0x00000002FFFFFFFFuLL, 0x00000000026D3A06uLL, 0x00000002026D3A09uLL}, +{0x0747AE1400000003uLL, 0x0000000300000000uLL, 0x00000000026D3A06uLL, 0x0000000200000003uLL}, +{0x0747AE1400000003uLL, 0x0000000300000001uLL, 0x00000000026D3A06uLL, 0x00000001FD92C5FDuLL}, +{0x0747AE1400000003uLL, 0x0000000300000002uLL, 0x00000000026D3A06uLL, 0x00000001FB258BF7uLL}, +{0x0747AE1400000003uLL, 0x0000000300000003uLL, 0x00000000026D3A06uLL, 0x00000001F8B851F1uLL}, +{0x0747AE1400000003uLL, 0x0000000300000010uLL, 0x00000000026D3A06uLL, 0x00000001D92C5FA3uLL}, +{0x0747AE1400000003uLL, 0x00000003078644FAuLL, 0x0000000002673301uLL, 0x000000018425ED09uLL}, +{0x0747AE1400000003uLL, 0x000000030747AE14uLL, 0x00000000026764ABuLL, 0x00000002F112E8A7uLL}, +{0x0747AE1400000003uLL, 0x000000037FFFFFFFuLL, 0x0000000002147AE1uLL, 0x0000000082147AE4uLL}, +{0x0747AE1400000003uLL, 0x0000000380000000uLL, 0x0000000002147AE1uLL, 0x0000000080000003uLL}, +{0x0747AE1400000003uLL, 0x00000003FFFFFFFDuLL, 0x0000000001D1EB85uLL, 0x000000000575C292uLL}, +{0x0747AE1400000003uLL, 0x00000003FFFFFFFEuLL, 0x0000000001D1EB85uLL, 0x0000000003A3D70DuLL}, +{0x0747AE1400000003uLL, 0x00000003FFFFFFFFuLL, 0x0000000001D1EB85uLL, 0x0000000001D1EB88uLL}, +{0x0747AE1400000003uLL, 0x0000001000000000uLL, 0x0000000000747AE1uLL, 0x0000000400000003uLL}, +{0x0747AE1400000003uLL, 0x0000001000000001uLL, 0x0000000000747AE1uLL, 0x00000003FF8B8522uLL}, +{0x0747AE1400000003uLL, 0x0000001000000002uLL, 0x0000000000747AE1uLL, 0x00000003FF170A41uLL}, +{0x0747AE1400000003uLL, 0x0000001000000003uLL, 0x0000000000747AE1uLL, 0x00000003FEA28F60uLL}, +{0x0747AE1400000003uLL, 0x0000001000000010uLL, 0x0000000000747AE1uLL, 0x00000003F8B851F3uLL}, +{0x0747AE1400000003uLL, 0x00000010078644FAuLL, 0x0000000000744433uLL, 0x0000000B94A5DA35uLL}, +{0x0747AE1400000003uLL, 0x000000100747AE14uLL, 0x00000000007445F9uLL, 0x0000000BB84C4A8FuLL}, +{0x0747AE1400000003uLL, 0x000000107FFFFFFFuLL, 0x000000000070F347uLL, 0x000000008070F34AuLL}, +{0x0747AE1400000003uLL, 0x0000001080000000uLL, 0x000000000070F347uLL, 0x0000000080000003uLL}, +{0x0747AE1400000003uLL, 0x00000010FFFFFFFDuLL, 0x00000000006DA0D4uLL, 0x000000000148E27FuLL}, +{0x0747AE1400000003uLL, 0x00000010FFFFFFFEuLL, 0x00000000006DA0D4uLL, 0x0000000000DB41ABuLL}, +{0x0747AE1400000003uLL, 0x00000010FFFFFFFFuLL, 0x00000000006DA0D4uLL, 0x00000000006DA0D7uLL}, +{0x0747AE1400000003uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x0747AE1400000000uLL, 0x0000000000000001uLL, 0x0000000000000003uLL}, +{0x0747AE1400000003uLL, 0x0747AE1400000001uLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0x0747AE1400000003uLL, 0x0747AE1400000002uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x0747AE1400000003uLL, 0x0747AE1400000003uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0747AE1400000003uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000003uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000003uLL}, +{0x0747AE1400000010uLL, 0x0000000000000001uLL, 0x0747AE1400000010uLL, 0x0000000000000000uLL}, +{0x0747AE1400000010uLL, 0x0000000000000002uLL, 0x03A3D70A00000008uLL, 0x0000000000000000uLL}, +{0x0747AE1400000010uLL, 0x0000000000000003uLL, 0x026D3A06AAAAAAB0uLL, 0x0000000000000000uLL}, +{0x0747AE1400000010uLL, 0x0000000000000010uLL, 0x00747AE140000001uLL, 0x0000000000000000uLL}, +{0x0747AE1400000010uLL, 0x00000000078644FAuLL, 0x00000000F7AE911DuLL, 0x0000000000CC95BEuLL}, +{0x0747AE1400000010uLL, 0x000000000747AE14uLL, 0x0000000100000000uLL, 0x0000000000000010uLL}, +{0x0747AE1400000010uLL, 0x000000007FFFFFFFuLL, 0x000000000E8F5C28uLL, 0x000000000E8F5C38uLL}, +{0x0747AE1400000010uLL, 0x0000000080000000uLL, 0x000000000E8F5C28uLL, 0x0000000000000010uLL}, +{0x0747AE1400000010uLL, 0x00000000FFFFFFFDuLL, 0x000000000747AE14uLL, 0x0000000015D70A4CuLL}, +{0x0747AE1400000010uLL, 0x00000000FFFFFFFEuLL, 0x000000000747AE14uLL, 0x000000000E8F5C38uLL}, +{0x0747AE1400000010uLL, 0x00000000FFFFFFFFuLL, 0x000000000747AE14uLL, 0x000000000747AE24uLL}, +{0x0747AE1400000010uLL, 0x0000000100000000uLL, 0x000000000747AE14uLL, 0x0000000000000010uLL}, +{0x0747AE1400000010uLL, 0x0000000100000001uLL, 0x000000000747AE13uLL, 0x00000000F8B851FDuLL}, +{0x0747AE1400000010uLL, 0x0000000100000002uLL, 0x000000000747AE13uLL, 0x00000000F170A3EAuLL}, +{0x0747AE1400000010uLL, 0x0000000100000003uLL, 0x000000000747AE13uLL, 0x00000000EA28F5D7uLL}, +{0x0747AE1400000010uLL, 0x0000000100000010uLL, 0x000000000747AE13uLL, 0x000000008B851EE0uLL}, +{0x0747AE1400000010uLL, 0x00000001078644FAuLL, 0x000000000712773FuLL, 0x000000000C50D08AuLL}, +{0x0747AE1400000010uLL, 0x000000010747AE14uLL, 0x00000000071425A5uLL, 0x00000000CD13E92CuLL}, +{0x0747AE1400000010uLL, 0x000000017FFFFFFFuLL, 0x0000000004DA740DuLL, 0x0000000084DA741DuLL}, +{0x0747AE1400000010uLL, 0x0000000180000000uLL, 0x0000000004DA740DuLL, 0x0000000080000010uLL}, +{0x0747AE1400000010uLL, 0x00000001FFFFFFFDuLL, 0x0000000003A3D70AuLL, 0x000000000AEB852EuLL}, +{0x0747AE1400000010uLL, 0x00000001FFFFFFFEuLL, 0x0000000003A3D70AuLL, 0x000000000747AE24uLL}, +{0x0747AE1400000010uLL, 0x00000001FFFFFFFFuLL, 0x0000000003A3D70AuLL, 0x0000000003A3D71AuLL}, +{0x0747AE1400000010uLL, 0x0000000200000000uLL, 0x0000000003A3D70AuLL, 0x0000000000000010uLL}, +{0x0747AE1400000010uLL, 0x0000000200000001uLL, 0x0000000003A3D709uLL, 0x00000001FC5C2907uLL}, +{0x0747AE1400000010uLL, 0x0000000200000002uLL, 0x0000000003A3D709uLL, 0x00000001F8B851FEuLL}, +{0x0747AE1400000010uLL, 0x0000000200000003uLL, 0x0000000003A3D709uLL, 0x00000001F5147AF5uLL}, +{0x0747AE1400000010uLL, 0x0000000200000010uLL, 0x0000000003A3D709uLL, 0x00000001C5C28F80uLL}, +{0x0747AE1400000010uLL, 0x00000002078644FAuLL, 0x0000000003965801uLL, 0x000000007847CB16uLL}, +{0x0747AE1400000010uLL, 0x000000020747AE14uLL, 0x000000000396C6B1uLL, 0x000000014B152C3CuLL}, +{0x0747AE1400000010uLL, 0x000000027FFFFFFFuLL, 0x0000000002E978D4uLL, 0x0000000202E978E4uLL}, +{0x0747AE1400000010uLL, 0x0000000280000000uLL, 0x0000000002E978D4uLL, 0x0000000200000010uLL}, +{0x0747AE1400000010uLL, 0x00000002FFFFFFFDuLL, 0x00000000026D3A06uLL, 0x000000020747AE22uLL}, +{0x0747AE1400000010uLL, 0x00000002FFFFFFFEuLL, 0x00000000026D3A06uLL, 0x0000000204DA741CuLL}, +{0x0747AE1400000010uLL, 0x00000002FFFFFFFFuLL, 0x00000000026D3A06uLL, 0x00000002026D3A16uLL}, +{0x0747AE1400000010uLL, 0x0000000300000000uLL, 0x00000000026D3A06uLL, 0x0000000200000010uLL}, +{0x0747AE1400000010uLL, 0x0000000300000001uLL, 0x00000000026D3A06uLL, 0x00000001FD92C60AuLL}, +{0x0747AE1400000010uLL, 0x0000000300000002uLL, 0x00000000026D3A06uLL, 0x00000001FB258C04uLL}, +{0x0747AE1400000010uLL, 0x0000000300000003uLL, 0x00000000026D3A06uLL, 0x00000001F8B851FEuLL}, +{0x0747AE1400000010uLL, 0x0000000300000010uLL, 0x00000000026D3A06uLL, 0x00000001D92C5FB0uLL}, +{0x0747AE1400000010uLL, 0x00000003078644FAuLL, 0x0000000002673301uLL, 0x000000018425ED16uLL}, +{0x0747AE1400000010uLL, 0x000000030747AE14uLL, 0x00000000026764ABuLL, 0x00000002F112E8B4uLL}, +{0x0747AE1400000010uLL, 0x000000037FFFFFFFuLL, 0x0000000002147AE1uLL, 0x0000000082147AF1uLL}, +{0x0747AE1400000010uLL, 0x0000000380000000uLL, 0x0000000002147AE1uLL, 0x0000000080000010uLL}, +{0x0747AE1400000010uLL, 0x00000003FFFFFFFDuLL, 0x0000000001D1EB85uLL, 0x000000000575C29FuLL}, +{0x0747AE1400000010uLL, 0x00000003FFFFFFFEuLL, 0x0000000001D1EB85uLL, 0x0000000003A3D71AuLL}, +{0x0747AE1400000010uLL, 0x00000003FFFFFFFFuLL, 0x0000000001D1EB85uLL, 0x0000000001D1EB95uLL}, +{0x0747AE1400000010uLL, 0x0000001000000000uLL, 0x0000000000747AE1uLL, 0x0000000400000010uLL}, +{0x0747AE1400000010uLL, 0x0000001000000001uLL, 0x0000000000747AE1uLL, 0x00000003FF8B852FuLL}, +{0x0747AE1400000010uLL, 0x0000001000000002uLL, 0x0000000000747AE1uLL, 0x00000003FF170A4EuLL}, +{0x0747AE1400000010uLL, 0x0000001000000003uLL, 0x0000000000747AE1uLL, 0x00000003FEA28F6DuLL}, +{0x0747AE1400000010uLL, 0x0000001000000010uLL, 0x0000000000747AE1uLL, 0x00000003F8B85200uLL}, +{0x0747AE1400000010uLL, 0x00000010078644FAuLL, 0x0000000000744433uLL, 0x0000000B94A5DA42uLL}, +{0x0747AE1400000010uLL, 0x000000100747AE14uLL, 0x00000000007445F9uLL, 0x0000000BB84C4A9CuLL}, +{0x0747AE1400000010uLL, 0x000000107FFFFFFFuLL, 0x000000000070F347uLL, 0x000000008070F357uLL}, +{0x0747AE1400000010uLL, 0x0000001080000000uLL, 0x000000000070F347uLL, 0x0000000080000010uLL}, +{0x0747AE1400000010uLL, 0x00000010FFFFFFFDuLL, 0x00000000006DA0D4uLL, 0x000000000148E28CuLL}, +{0x0747AE1400000010uLL, 0x00000010FFFFFFFEuLL, 0x00000000006DA0D4uLL, 0x0000000000DB41B8uLL}, +{0x0747AE1400000010uLL, 0x00000010FFFFFFFFuLL, 0x00000000006DA0D4uLL, 0x00000000006DA0E4uLL}, +{0x0747AE1400000010uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x0747AE1400000000uLL, 0x0000000000000001uLL, 0x0000000000000010uLL}, +{0x0747AE1400000010uLL, 0x0747AE1400000001uLL, 0x0000000000000001uLL, 0x000000000000000FuLL}, +{0x0747AE1400000010uLL, 0x0747AE1400000002uLL, 0x0000000000000001uLL, 0x000000000000000EuLL}, +{0x0747AE1400000010uLL, 0x0747AE1400000003uLL, 0x0000000000000001uLL, 0x000000000000000DuLL}, +{0x0747AE1400000010uLL, 0x0747AE1400000010uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0747AE1400000010uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE1400000010uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1400000010uLL}, +{0x0747AE14078644FAuLL, 0x0000000000000001uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL}, +{0x0747AE14078644FAuLL, 0x0000000000000002uLL, 0x03A3D70A03C3227DuLL, 0x0000000000000000uLL}, +{0x0747AE14078644FAuLL, 0x0000000000000003uLL, 0x026D3A06AD2CC1A8uLL, 0x0000000000000002uLL}, +{0x0747AE14078644FAuLL, 0x0000000000000010uLL, 0x00747AE14078644FuLL, 0x000000000000000AuLL}, +{0x0747AE14078644FAuLL, 0x00000000078644FAuLL, 0x00000000F7AE911EuLL, 0x0000000000CC95AEuLL}, +{0x0747AE14078644FAuLL, 0x000000000747AE14uLL, 0x0000000100000001uLL, 0x00000000003E96E6uLL}, +{0x0747AE14078644FAuLL, 0x000000007FFFFFFFuLL, 0x000000000E8F5C28uLL, 0x000000001615A122uLL}, +{0x0747AE14078644FAuLL, 0x0000000080000000uLL, 0x000000000E8F5C28uLL, 0x00000000078644FAuLL}, +{0x0747AE14078644FAuLL, 0x00000000FFFFFFFDuLL, 0x000000000747AE14uLL, 0x000000001D5D4F36uLL}, +{0x0747AE14078644FAuLL, 0x00000000FFFFFFFEuLL, 0x000000000747AE14uLL, 0x000000001615A122uLL}, +{0x0747AE14078644FAuLL, 0x00000000FFFFFFFFuLL, 0x000000000747AE14uLL, 0x000000000ECDF30EuLL}, +{0x0747AE14078644FAuLL, 0x0000000100000000uLL, 0x000000000747AE14uLL, 0x00000000078644FAuLL}, +{0x0747AE14078644FAuLL, 0x0000000100000001uLL, 0x000000000747AE14uLL, 0x00000000003E96E6uLL}, +{0x0747AE14078644FAuLL, 0x0000000100000002uLL, 0x000000000747AE13uLL, 0x00000000F8F6E8D4uLL}, +{0x0747AE14078644FAuLL, 0x0000000100000003uLL, 0x000000000747AE13uLL, 0x00000000F1AF3AC1uLL}, +{0x0747AE14078644FAuLL, 0x0000000100000010uLL, 0x000000000747AE13uLL, 0x00000000930B63CAuLL}, +{0x0747AE14078644FAuLL, 0x00000001078644FAuLL, 0x000000000712773FuLL, 0x0000000013D71574uLL}, +{0x0747AE14078644FAuLL, 0x000000010747AE14uLL, 0x00000000071425A5uLL, 0x00000000D49A2E16uLL}, +{0x0747AE14078644FAuLL, 0x000000017FFFFFFFuLL, 0x0000000004DA740DuLL, 0x000000008C60B907uLL}, +{0x0747AE14078644FAuLL, 0x0000000180000000uLL, 0x0000000004DA740DuLL, 0x00000000878644FAuLL}, +{0x0747AE14078644FAuLL, 0x00000001FFFFFFFDuLL, 0x0000000003A3D70AuLL, 0x000000001271CA18uLL}, +{0x0747AE14078644FAuLL, 0x00000001FFFFFFFEuLL, 0x0000000003A3D70AuLL, 0x000000000ECDF30EuLL}, +{0x0747AE14078644FAuLL, 0x00000001FFFFFFFFuLL, 0x0000000003A3D70AuLL, 0x000000000B2A1C04uLL}, +{0x0747AE14078644FAuLL, 0x0000000200000000uLL, 0x0000000003A3D70AuLL, 0x00000000078644FAuLL}, +{0x0747AE14078644FAuLL, 0x0000000200000001uLL, 0x0000000003A3D70AuLL, 0x0000000003E26DF0uLL}, +{0x0747AE14078644FAuLL, 0x0000000200000002uLL, 0x0000000003A3D70AuLL, 0x00000000003E96E6uLL}, +{0x0747AE14078644FAuLL, 0x0000000200000003uLL, 0x0000000003A3D709uLL, 0x00000001FC9ABFDFuLL}, +{0x0747AE14078644FAuLL, 0x0000000200000010uLL, 0x0000000003A3D709uLL, 0x00000001CD48D46AuLL}, +{0x0747AE14078644FAuLL, 0x00000002078644FAuLL, 0x0000000003965801uLL, 0x000000007FCE1000uLL}, +{0x0747AE14078644FAuLL, 0x000000020747AE14uLL, 0x000000000396C6B1uLL, 0x00000001529B7126uLL}, +{0x0747AE14078644FAuLL, 0x000000027FFFFFFFuLL, 0x0000000002E978D4uLL, 0x000000020A6FBDCEuLL}, +{0x0747AE14078644FAuLL, 0x0000000280000000uLL, 0x0000000002E978D4uLL, 0x00000002078644FAuLL}, +{0x0747AE14078644FAuLL, 0x00000002FFFFFFFDuLL, 0x00000000026D3A06uLL, 0x000000020ECDF30CuLL}, +{0x0747AE14078644FAuLL, 0x00000002FFFFFFFEuLL, 0x00000000026D3A06uLL, 0x000000020C60B906uLL}, +{0x0747AE14078644FAuLL, 0x00000002FFFFFFFFuLL, 0x00000000026D3A06uLL, 0x0000000209F37F00uLL}, +{0x0747AE14078644FAuLL, 0x0000000300000000uLL, 0x00000000026D3A06uLL, 0x00000002078644FAuLL}, +{0x0747AE14078644FAuLL, 0x0000000300000001uLL, 0x00000000026D3A06uLL, 0x0000000205190AF4uLL}, +{0x0747AE14078644FAuLL, 0x0000000300000002uLL, 0x00000000026D3A06uLL, 0x0000000202ABD0EEuLL}, +{0x0747AE14078644FAuLL, 0x0000000300000003uLL, 0x00000000026D3A06uLL, 0x00000002003E96E8uLL}, +{0x0747AE14078644FAuLL, 0x0000000300000010uLL, 0x00000000026D3A06uLL, 0x00000001E0B2A49AuLL}, +{0x0747AE14078644FAuLL, 0x00000003078644FAuLL, 0x0000000002673301uLL, 0x000000018BAC3200uLL}, +{0x0747AE14078644FAuLL, 0x000000030747AE14uLL, 0x00000000026764ABuLL, 0x00000002F8992D9EuLL}, +{0x0747AE14078644FAuLL, 0x000000037FFFFFFFuLL, 0x0000000002147AE1uLL, 0x00000000899ABFDBuLL}, +{0x0747AE14078644FAuLL, 0x0000000380000000uLL, 0x0000000002147AE1uLL, 0x00000000878644FAuLL}, +{0x0747AE14078644FAuLL, 0x00000003FFFFFFFDuLL, 0x0000000001D1EB85uLL, 0x000000000CFC0789uLL}, +{0x0747AE14078644FAuLL, 0x00000003FFFFFFFEuLL, 0x0000000001D1EB85uLL, 0x000000000B2A1C04uLL}, +{0x0747AE14078644FAuLL, 0x00000003FFFFFFFFuLL, 0x0000000001D1EB85uLL, 0x000000000958307FuLL}, +{0x0747AE14078644FAuLL, 0x0000001000000000uLL, 0x0000000000747AE1uLL, 0x00000004078644FAuLL}, +{0x0747AE14078644FAuLL, 0x0000001000000001uLL, 0x0000000000747AE1uLL, 0x000000040711CA19uLL}, +{0x0747AE14078644FAuLL, 0x0000001000000002uLL, 0x0000000000747AE1uLL, 0x00000004069D4F38uLL}, +{0x0747AE14078644FAuLL, 0x0000001000000003uLL, 0x0000000000747AE1uLL, 0x000000040628D457uLL}, +{0x0747AE14078644FAuLL, 0x0000001000000010uLL, 0x0000000000747AE1uLL, 0x00000004003E96EAuLL}, +{0x0747AE14078644FAuLL, 0x00000010078644FAuLL, 0x0000000000744433uLL, 0x0000000B9C2C1F2CuLL}, +{0x0747AE14078644FAuLL, 0x000000100747AE14uLL, 0x00000000007445F9uLL, 0x0000000BBFD28F86uLL}, +{0x0747AE14078644FAuLL, 0x000000107FFFFFFFuLL, 0x000000000070F347uLL, 0x0000000087F73841uLL}, +{0x0747AE14078644FAuLL, 0x0000001080000000uLL, 0x000000000070F347uLL, 0x00000000878644FAuLL}, +{0x0747AE14078644FAuLL, 0x00000010FFFFFFFDuLL, 0x00000000006DA0D4uLL, 0x0000000008CF2776uLL}, +{0x0747AE14078644FAuLL, 0x00000010FFFFFFFEuLL, 0x00000000006DA0D4uLL, 0x00000000086186A2uLL}, +{0x0747AE14078644FAuLL, 0x00000010FFFFFFFFuLL, 0x00000000006DA0D4uLL, 0x0000000007F3E5CEuLL}, +{0x0747AE14078644FAuLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x0747AE1400000000uLL, 0x0000000000000001uLL, 0x00000000078644FAuLL}, +{0x0747AE14078644FAuLL, 0x0747AE1400000001uLL, 0x0000000000000001uLL, 0x00000000078644F9uLL}, +{0x0747AE14078644FAuLL, 0x0747AE1400000002uLL, 0x0000000000000001uLL, 0x00000000078644F8uLL}, +{0x0747AE14078644FAuLL, 0x0747AE1400000003uLL, 0x0000000000000001uLL, 0x00000000078644F7uLL}, +{0x0747AE14078644FAuLL, 0x0747AE1400000010uLL, 0x0000000000000001uLL, 0x00000000078644EAuLL}, +{0x0747AE14078644FAuLL, 0x0747AE14078644FAuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0747AE14078644FAuLL, 0x0747AE140747AE14uLL, 0x0000000000000001uLL, 0x00000000003E96E6uLL}, +{0x0747AE14078644FAuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE14078644FAuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14078644FAuLL}, +{0x0747AE140747AE14uLL, 0x0000000000000001uLL, 0x0747AE140747AE14uLL, 0x0000000000000000uLL}, +{0x0747AE140747AE14uLL, 0x0000000000000002uLL, 0x03A3D70A03A3D70AuLL, 0x0000000000000000uLL}, +{0x0747AE140747AE14uLL, 0x0000000000000003uLL, 0x026D3A06AD17E4B1uLL, 0x0000000000000001uLL}, +{0x0747AE140747AE14uLL, 0x0000000000000010uLL, 0x00747AE140747AE1uLL, 0x0000000000000004uLL}, +{0x0747AE140747AE14uLL, 0x00000000078644FAuLL, 0x00000000F7AE911EuLL, 0x00000000008DFEC8uLL}, +{0x0747AE140747AE14uLL, 0x000000000747AE14uLL, 0x0000000100000001uLL, 0x0000000000000000uLL}, +{0x0747AE140747AE14uLL, 0x000000007FFFFFFFuLL, 0x000000000E8F5C28uLL, 0x0000000015D70A3CuLL}, +{0x0747AE140747AE14uLL, 0x0000000080000000uLL, 0x000000000E8F5C28uLL, 0x000000000747AE14uLL}, +{0x0747AE140747AE14uLL, 0x00000000FFFFFFFDuLL, 0x000000000747AE14uLL, 0x000000001D1EB850uLL}, +{0x0747AE140747AE14uLL, 0x00000000FFFFFFFEuLL, 0x000000000747AE14uLL, 0x0000000015D70A3CuLL}, +{0x0747AE140747AE14uLL, 0x00000000FFFFFFFFuLL, 0x000000000747AE14uLL, 0x000000000E8F5C28uLL}, +{0x0747AE140747AE14uLL, 0x0000000100000000uLL, 0x000000000747AE14uLL, 0x000000000747AE14uLL}, +{0x0747AE140747AE14uLL, 0x0000000100000001uLL, 0x000000000747AE14uLL, 0x0000000000000000uLL}, +{0x0747AE140747AE14uLL, 0x0000000100000002uLL, 0x000000000747AE13uLL, 0x00000000F8B851EEuLL}, +{0x0747AE140747AE14uLL, 0x0000000100000003uLL, 0x000000000747AE13uLL, 0x00000000F170A3DBuLL}, +{0x0747AE140747AE14uLL, 0x0000000100000010uLL, 0x000000000747AE13uLL, 0x0000000092CCCCE4uLL}, +{0x0747AE140747AE14uLL, 0x00000001078644FAuLL, 0x000000000712773FuLL, 0x0000000013987E8EuLL}, +{0x0747AE140747AE14uLL, 0x000000010747AE14uLL, 0x00000000071425A5uLL, 0x00000000D45B9730uLL}, +{0x0747AE140747AE14uLL, 0x000000017FFFFFFFuLL, 0x0000000004DA740DuLL, 0x000000008C222221uLL}, +{0x0747AE140747AE14uLL, 0x0000000180000000uLL, 0x0000000004DA740DuLL, 0x000000008747AE14uLL}, +{0x0747AE140747AE14uLL, 0x00000001FFFFFFFDuLL, 0x0000000003A3D70AuLL, 0x0000000012333332uLL}, +{0x0747AE140747AE14uLL, 0x00000001FFFFFFFEuLL, 0x0000000003A3D70AuLL, 0x000000000E8F5C28uLL}, +{0x0747AE140747AE14uLL, 0x00000001FFFFFFFFuLL, 0x0000000003A3D70AuLL, 0x000000000AEB851EuLL}, +{0x0747AE140747AE14uLL, 0x0000000200000000uLL, 0x0000000003A3D70AuLL, 0x000000000747AE14uLL}, +{0x0747AE140747AE14uLL, 0x0000000200000001uLL, 0x0000000003A3D70AuLL, 0x0000000003A3D70AuLL}, +{0x0747AE140747AE14uLL, 0x0000000200000002uLL, 0x0000000003A3D70AuLL, 0x0000000000000000uLL}, +{0x0747AE140747AE14uLL, 0x0000000200000003uLL, 0x0000000003A3D709uLL, 0x00000001FC5C28F9uLL}, +{0x0747AE140747AE14uLL, 0x0000000200000010uLL, 0x0000000003A3D709uLL, 0x00000001CD0A3D84uLL}, +{0x0747AE140747AE14uLL, 0x00000002078644FAuLL, 0x0000000003965801uLL, 0x000000007F8F791AuLL}, +{0x0747AE140747AE14uLL, 0x000000020747AE14uLL, 0x000000000396C6B1uLL, 0x00000001525CDA40uLL}, +{0x0747AE140747AE14uLL, 0x000000027FFFFFFFuLL, 0x0000000002E978D4uLL, 0x000000020A3126E8uLL}, +{0x0747AE140747AE14uLL, 0x0000000280000000uLL, 0x0000000002E978D4uLL, 0x000000020747AE14uLL}, +{0x0747AE140747AE14uLL, 0x00000002FFFFFFFDuLL, 0x00000000026D3A06uLL, 0x000000020E8F5C26uLL}, +{0x0747AE140747AE14uLL, 0x00000002FFFFFFFEuLL, 0x00000000026D3A06uLL, 0x000000020C222220uLL}, +{0x0747AE140747AE14uLL, 0x00000002FFFFFFFFuLL, 0x00000000026D3A06uLL, 0x0000000209B4E81AuLL}, +{0x0747AE140747AE14uLL, 0x0000000300000000uLL, 0x00000000026D3A06uLL, 0x000000020747AE14uLL}, +{0x0747AE140747AE14uLL, 0x0000000300000001uLL, 0x00000000026D3A06uLL, 0x0000000204DA740EuLL}, +{0x0747AE140747AE14uLL, 0x0000000300000002uLL, 0x00000000026D3A06uLL, 0x00000002026D3A08uLL}, +{0x0747AE140747AE14uLL, 0x0000000300000003uLL, 0x00000000026D3A06uLL, 0x0000000200000002uLL}, +{0x0747AE140747AE14uLL, 0x0000000300000010uLL, 0x00000000026D3A06uLL, 0x00000001E0740DB4uLL}, +{0x0747AE140747AE14uLL, 0x00000003078644FAuLL, 0x0000000002673301uLL, 0x000000018B6D9B1AuLL}, +{0x0747AE140747AE14uLL, 0x000000030747AE14uLL, 0x00000000026764ABuLL, 0x00000002F85A96B8uLL}, +{0x0747AE140747AE14uLL, 0x000000037FFFFFFFuLL, 0x0000000002147AE1uLL, 0x00000000895C28F5uLL}, +{0x0747AE140747AE14uLL, 0x0000000380000000uLL, 0x0000000002147AE1uLL, 0x000000008747AE14uLL}, +{0x0747AE140747AE14uLL, 0x00000003FFFFFFFDuLL, 0x0000000001D1EB85uLL, 0x000000000CBD70A3uLL}, +{0x0747AE140747AE14uLL, 0x00000003FFFFFFFEuLL, 0x0000000001D1EB85uLL, 0x000000000AEB851EuLL}, +{0x0747AE140747AE14uLL, 0x00000003FFFFFFFFuLL, 0x0000000001D1EB85uLL, 0x0000000009199999uLL}, +{0x0747AE140747AE14uLL, 0x0000001000000000uLL, 0x0000000000747AE1uLL, 0x000000040747AE14uLL}, +{0x0747AE140747AE14uLL, 0x0000001000000001uLL, 0x0000000000747AE1uLL, 0x0000000406D33333uLL}, +{0x0747AE140747AE14uLL, 0x0000001000000002uLL, 0x0000000000747AE1uLL, 0x00000004065EB852uLL}, +{0x0747AE140747AE14uLL, 0x0000001000000003uLL, 0x0000000000747AE1uLL, 0x0000000405EA3D71uLL}, +{0x0747AE140747AE14uLL, 0x0000001000000010uLL, 0x0000000000747AE1uLL, 0x0000000400000004uLL}, +{0x0747AE140747AE14uLL, 0x00000010078644FAuLL, 0x0000000000744433uLL, 0x0000000B9BED8846uLL}, +{0x0747AE140747AE14uLL, 0x000000100747AE14uLL, 0x00000000007445F9uLL, 0x0000000BBF93F8A0uLL}, +{0x0747AE140747AE14uLL, 0x000000107FFFFFFFuLL, 0x000000000070F347uLL, 0x0000000087B8A15BuLL}, +{0x0747AE140747AE14uLL, 0x0000001080000000uLL, 0x000000000070F347uLL, 0x000000008747AE14uLL}, +{0x0747AE140747AE14uLL, 0x00000010FFFFFFFDuLL, 0x00000000006DA0D4uLL, 0x0000000008909090uLL}, +{0x0747AE140747AE14uLL, 0x00000010FFFFFFFEuLL, 0x00000000006DA0D4uLL, 0x000000000822EFBCuLL}, +{0x0747AE140747AE14uLL, 0x00000010FFFFFFFFuLL, 0x00000000006DA0D4uLL, 0x0000000007B54EE8uLL}, +{0x0747AE140747AE14uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x0747AE1400000000uLL, 0x0000000000000001uLL, 0x000000000747AE14uLL}, +{0x0747AE140747AE14uLL, 0x0747AE1400000001uLL, 0x0000000000000001uLL, 0x000000000747AE13uLL}, +{0x0747AE140747AE14uLL, 0x0747AE1400000002uLL, 0x0000000000000001uLL, 0x000000000747AE12uLL}, +{0x0747AE140747AE14uLL, 0x0747AE1400000003uLL, 0x0000000000000001uLL, 0x000000000747AE11uLL}, +{0x0747AE140747AE14uLL, 0x0747AE1400000010uLL, 0x0000000000000001uLL, 0x000000000747AE04uLL}, +{0x0747AE140747AE14uLL, 0x0747AE14078644FAuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x0747AE140747AE14uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0747AE140747AE14uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE140747AE14uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE140747AE14uLL}, +{0x0747AE147FFFFFFFuLL, 0x0000000000000001uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000000uLL}, +{0x0747AE147FFFFFFFuLL, 0x0000000000000002uLL, 0x03A3D70A3FFFFFFFuLL, 0x0000000000000001uLL}, +{0x0747AE147FFFFFFFuLL, 0x0000000000000003uLL, 0x026D3A06D5555555uLL, 0x0000000000000000uLL}, +{0x0747AE147FFFFFFFuLL, 0x0000000000000010uLL, 0x00747AE147FFFFFFuLL, 0x000000000000000FuLL}, +{0x0747AE147FFFFFFFuLL, 0x00000000078644FAuLL, 0x00000000F7AE912EuLL, 0x0000000000E20113uLL}, +{0x0747AE147FFFFFFFuLL, 0x000000000747AE14uLL, 0x0000000100000011uLL, 0x00000000043D70ABuLL}, +{0x0747AE147FFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x000000000E8F5C29uLL, 0x000000000E8F5C28uLL}, +{0x0747AE147FFFFFFFuLL, 0x0000000080000000uLL, 0x000000000E8F5C28uLL, 0x000000007FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x00000000FFFFFFFDuLL, 0x000000000747AE14uLL, 0x0000000095D70A3BuLL}, +{0x0747AE147FFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x000000000747AE14uLL, 0x000000008E8F5C27uLL}, +{0x0747AE147FFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x000000000747AE14uLL, 0x000000008747AE13uLL}, +{0x0747AE147FFFFFFFuLL, 0x0000000100000000uLL, 0x000000000747AE14uLL, 0x000000007FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x0000000100000001uLL, 0x000000000747AE14uLL, 0x0000000078B851EBuLL}, +{0x0747AE147FFFFFFFuLL, 0x0000000100000002uLL, 0x000000000747AE14uLL, 0x000000007170A3D7uLL}, +{0x0747AE147FFFFFFFuLL, 0x0000000100000003uLL, 0x000000000747AE14uLL, 0x000000006A28F5C3uLL}, +{0x0747AE147FFFFFFFuLL, 0x0000000100000010uLL, 0x000000000747AE14uLL, 0x000000000B851EBFuLL}, +{0x0747AE147FFFFFFFuLL, 0x00000001078644FAuLL, 0x000000000712773FuLL, 0x000000008C50D079uLL}, +{0x0747AE147FFFFFFFuLL, 0x000000010747AE14uLL, 0x00000000071425A6uLL, 0x0000000045CC3B07uLL}, +{0x0747AE147FFFFFFFuLL, 0x000000017FFFFFFFuLL, 0x0000000004DA740DuLL, 0x0000000104DA740CuLL}, +{0x0747AE147FFFFFFFuLL, 0x0000000180000000uLL, 0x0000000004DA740DuLL, 0x00000000FFFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x00000001FFFFFFFDuLL, 0x0000000003A3D70AuLL, 0x000000008AEB851DuLL}, +{0x0747AE147FFFFFFFuLL, 0x00000001FFFFFFFEuLL, 0x0000000003A3D70AuLL, 0x000000008747AE13uLL}, +{0x0747AE147FFFFFFFuLL, 0x00000001FFFFFFFFuLL, 0x0000000003A3D70AuLL, 0x0000000083A3D709uLL}, +{0x0747AE147FFFFFFFuLL, 0x0000000200000000uLL, 0x0000000003A3D70AuLL, 0x000000007FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x0000000200000001uLL, 0x0000000003A3D70AuLL, 0x000000007C5C28F5uLL}, +{0x0747AE147FFFFFFFuLL, 0x0000000200000002uLL, 0x0000000003A3D70AuLL, 0x0000000078B851EBuLL}, +{0x0747AE147FFFFFFFuLL, 0x0000000200000003uLL, 0x0000000003A3D70AuLL, 0x0000000075147AE1uLL}, +{0x0747AE147FFFFFFFuLL, 0x0000000200000010uLL, 0x0000000003A3D70AuLL, 0x0000000045C28F5FuLL}, +{0x0747AE147FFFFFFFuLL, 0x00000002078644FAuLL, 0x0000000003965801uLL, 0x00000000F847CB05uLL}, +{0x0747AE147FFFFFFFuLL, 0x000000020747AE14uLL, 0x000000000396C6B1uLL, 0x00000001CB152C2BuLL}, +{0x0747AE147FFFFFFFuLL, 0x000000027FFFFFFFuLL, 0x0000000002E978D5uLL, 0x0000000002E978D4uLL}, +{0x0747AE147FFFFFFFuLL, 0x0000000280000000uLL, 0x0000000002E978D4uLL, 0x000000027FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x00000002FFFFFFFDuLL, 0x00000000026D3A06uLL, 0x000000028747AE11uLL}, +{0x0747AE147FFFFFFFuLL, 0x00000002FFFFFFFEuLL, 0x00000000026D3A06uLL, 0x0000000284DA740BuLL}, +{0x0747AE147FFFFFFFuLL, 0x00000002FFFFFFFFuLL, 0x00000000026D3A06uLL, 0x00000002826D3A05uLL}, +{0x0747AE147FFFFFFFuLL, 0x0000000300000000uLL, 0x00000000026D3A06uLL, 0x000000027FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x0000000300000001uLL, 0x00000000026D3A06uLL, 0x000000027D92C5F9uLL}, +{0x0747AE147FFFFFFFuLL, 0x0000000300000002uLL, 0x00000000026D3A06uLL, 0x000000027B258BF3uLL}, +{0x0747AE147FFFFFFFuLL, 0x0000000300000003uLL, 0x00000000026D3A06uLL, 0x0000000278B851EDuLL}, +{0x0747AE147FFFFFFFuLL, 0x0000000300000010uLL, 0x00000000026D3A06uLL, 0x00000002592C5F9FuLL}, +{0x0747AE147FFFFFFFuLL, 0x00000003078644FAuLL, 0x0000000002673301uLL, 0x000000020425ED05uLL}, +{0x0747AE147FFFFFFFuLL, 0x000000030747AE14uLL, 0x00000000026764ACuLL, 0x0000000069CB3A8FuLL}, +{0x0747AE147FFFFFFFuLL, 0x000000037FFFFFFFuLL, 0x0000000002147AE1uLL, 0x0000000102147AE0uLL}, +{0x0747AE147FFFFFFFuLL, 0x0000000380000000uLL, 0x0000000002147AE1uLL, 0x00000000FFFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x00000003FFFFFFFDuLL, 0x0000000001D1EB85uLL, 0x000000008575C28EuLL}, +{0x0747AE147FFFFFFFuLL, 0x00000003FFFFFFFEuLL, 0x0000000001D1EB85uLL, 0x0000000083A3D709uLL}, +{0x0747AE147FFFFFFFuLL, 0x00000003FFFFFFFFuLL, 0x0000000001D1EB85uLL, 0x0000000081D1EB84uLL}, +{0x0747AE147FFFFFFFuLL, 0x0000001000000000uLL, 0x0000000000747AE1uLL, 0x000000047FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x0000001000000001uLL, 0x0000000000747AE1uLL, 0x000000047F8B851EuLL}, +{0x0747AE147FFFFFFFuLL, 0x0000001000000002uLL, 0x0000000000747AE1uLL, 0x000000047F170A3DuLL}, +{0x0747AE147FFFFFFFuLL, 0x0000001000000003uLL, 0x0000000000747AE1uLL, 0x000000047EA28F5CuLL}, +{0x0747AE147FFFFFFFuLL, 0x0000001000000010uLL, 0x0000000000747AE1uLL, 0x0000000478B851EFuLL}, +{0x0747AE147FFFFFFFuLL, 0x00000010078644FAuLL, 0x0000000000744433uLL, 0x0000000C14A5DA31uLL}, +{0x0747AE147FFFFFFFuLL, 0x000000100747AE14uLL, 0x00000000007445F9uLL, 0x0000000C384C4A8BuLL}, +{0x0747AE147FFFFFFFuLL, 0x000000107FFFFFFFuLL, 0x000000000070F347uLL, 0x000000010070F346uLL}, +{0x0747AE147FFFFFFFuLL, 0x0000001080000000uLL, 0x000000000070F347uLL, 0x00000000FFFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x00000010FFFFFFFDuLL, 0x00000000006DA0D4uLL, 0x000000008148E27BuLL}, +{0x0747AE147FFFFFFFuLL, 0x00000010FFFFFFFEuLL, 0x00000000006DA0D4uLL, 0x0000000080DB41A7uLL}, +{0x0747AE147FFFFFFFuLL, 0x00000010FFFFFFFFuLL, 0x00000000006DA0D4uLL, 0x00000000806DA0D3uLL}, +{0x0747AE147FFFFFFFuLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x0747AE1400000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x0747AE1400000001uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x0747AE147FFFFFFFuLL, 0x0747AE1400000002uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0x0747AE147FFFFFFFuLL, 0x0747AE1400000003uLL, 0x0000000000000001uLL, 0x000000007FFFFFFCuLL}, +{0x0747AE147FFFFFFFuLL, 0x0747AE1400000010uLL, 0x0000000000000001uLL, 0x000000007FFFFFEFuLL}, +{0x0747AE147FFFFFFFuLL, 0x0747AE14078644FAuLL, 0x0000000000000001uLL, 0x000000007879BB05uLL}, +{0x0747AE147FFFFFFFuLL, 0x0747AE140747AE14uLL, 0x0000000000000001uLL, 0x0000000078B851EBuLL}, +{0x0747AE147FFFFFFFuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0747AE147FFFFFFFuLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE147FFFFFFFuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE147FFFFFFFuLL}, +{0x0747AE1480000000uLL, 0x0000000000000001uLL, 0x0747AE1480000000uLL, 0x0000000000000000uLL}, +{0x0747AE1480000000uLL, 0x0000000000000002uLL, 0x03A3D70A40000000uLL, 0x0000000000000000uLL}, +{0x0747AE1480000000uLL, 0x0000000000000003uLL, 0x026D3A06D5555555uLL, 0x0000000000000001uLL}, +{0x0747AE1480000000uLL, 0x0000000000000010uLL, 0x00747AE148000000uLL, 0x0000000000000000uLL}, +{0x0747AE1480000000uLL, 0x00000000078644FAuLL, 0x00000000F7AE912EuLL, 0x0000000000E20114uLL}, +{0x0747AE1480000000uLL, 0x000000000747AE14uLL, 0x0000000100000011uLL, 0x00000000043D70ACuLL}, +{0x0747AE1480000000uLL, 0x000000007FFFFFFFuLL, 0x000000000E8F5C29uLL, 0x000000000E8F5C29uLL}, +{0x0747AE1480000000uLL, 0x0000000080000000uLL, 0x000000000E8F5C29uLL, 0x0000000000000000uLL}, +{0x0747AE1480000000uLL, 0x00000000FFFFFFFDuLL, 0x000000000747AE14uLL, 0x0000000095D70A3CuLL}, +{0x0747AE1480000000uLL, 0x00000000FFFFFFFEuLL, 0x000000000747AE14uLL, 0x000000008E8F5C28uLL}, +{0x0747AE1480000000uLL, 0x00000000FFFFFFFFuLL, 0x000000000747AE14uLL, 0x000000008747AE14uLL}, +{0x0747AE1480000000uLL, 0x0000000100000000uLL, 0x000000000747AE14uLL, 0x0000000080000000uLL}, +{0x0747AE1480000000uLL, 0x0000000100000001uLL, 0x000000000747AE14uLL, 0x0000000078B851ECuLL}, +{0x0747AE1480000000uLL, 0x0000000100000002uLL, 0x000000000747AE14uLL, 0x000000007170A3D8uLL}, +{0x0747AE1480000000uLL, 0x0000000100000003uLL, 0x000000000747AE14uLL, 0x000000006A28F5C4uLL}, +{0x0747AE1480000000uLL, 0x0000000100000010uLL, 0x000000000747AE14uLL, 0x000000000B851EC0uLL}, +{0x0747AE1480000000uLL, 0x00000001078644FAuLL, 0x000000000712773FuLL, 0x000000008C50D07AuLL}, +{0x0747AE1480000000uLL, 0x000000010747AE14uLL, 0x00000000071425A6uLL, 0x0000000045CC3B08uLL}, +{0x0747AE1480000000uLL, 0x000000017FFFFFFFuLL, 0x0000000004DA740DuLL, 0x0000000104DA740DuLL}, +{0x0747AE1480000000uLL, 0x0000000180000000uLL, 0x0000000004DA740DuLL, 0x0000000100000000uLL}, +{0x0747AE1480000000uLL, 0x00000001FFFFFFFDuLL, 0x0000000003A3D70AuLL, 0x000000008AEB851EuLL}, +{0x0747AE1480000000uLL, 0x00000001FFFFFFFEuLL, 0x0000000003A3D70AuLL, 0x000000008747AE14uLL}, +{0x0747AE1480000000uLL, 0x00000001FFFFFFFFuLL, 0x0000000003A3D70AuLL, 0x0000000083A3D70AuLL}, +{0x0747AE1480000000uLL, 0x0000000200000000uLL, 0x0000000003A3D70AuLL, 0x0000000080000000uLL}, +{0x0747AE1480000000uLL, 0x0000000200000001uLL, 0x0000000003A3D70AuLL, 0x000000007C5C28F6uLL}, +{0x0747AE1480000000uLL, 0x0000000200000002uLL, 0x0000000003A3D70AuLL, 0x0000000078B851ECuLL}, +{0x0747AE1480000000uLL, 0x0000000200000003uLL, 0x0000000003A3D70AuLL, 0x0000000075147AE2uLL}, +{0x0747AE1480000000uLL, 0x0000000200000010uLL, 0x0000000003A3D70AuLL, 0x0000000045C28F60uLL}, +{0x0747AE1480000000uLL, 0x00000002078644FAuLL, 0x0000000003965801uLL, 0x00000000F847CB06uLL}, +{0x0747AE1480000000uLL, 0x000000020747AE14uLL, 0x000000000396C6B1uLL, 0x00000001CB152C2CuLL}, +{0x0747AE1480000000uLL, 0x000000027FFFFFFFuLL, 0x0000000002E978D5uLL, 0x0000000002E978D5uLL}, +{0x0747AE1480000000uLL, 0x0000000280000000uLL, 0x0000000002E978D5uLL, 0x0000000000000000uLL}, +{0x0747AE1480000000uLL, 0x00000002FFFFFFFDuLL, 0x00000000026D3A06uLL, 0x000000028747AE12uLL}, +{0x0747AE1480000000uLL, 0x00000002FFFFFFFEuLL, 0x00000000026D3A06uLL, 0x0000000284DA740CuLL}, +{0x0747AE1480000000uLL, 0x00000002FFFFFFFFuLL, 0x00000000026D3A06uLL, 0x00000002826D3A06uLL}, +{0x0747AE1480000000uLL, 0x0000000300000000uLL, 0x00000000026D3A06uLL, 0x0000000280000000uLL}, +{0x0747AE1480000000uLL, 0x0000000300000001uLL, 0x00000000026D3A06uLL, 0x000000027D92C5FAuLL}, +{0x0747AE1480000000uLL, 0x0000000300000002uLL, 0x00000000026D3A06uLL, 0x000000027B258BF4uLL}, +{0x0747AE1480000000uLL, 0x0000000300000003uLL, 0x00000000026D3A06uLL, 0x0000000278B851EEuLL}, +{0x0747AE1480000000uLL, 0x0000000300000010uLL, 0x00000000026D3A06uLL, 0x00000002592C5FA0uLL}, +{0x0747AE1480000000uLL, 0x00000003078644FAuLL, 0x0000000002673301uLL, 0x000000020425ED06uLL}, +{0x0747AE1480000000uLL, 0x000000030747AE14uLL, 0x00000000026764ACuLL, 0x0000000069CB3A90uLL}, +{0x0747AE1480000000uLL, 0x000000037FFFFFFFuLL, 0x0000000002147AE1uLL, 0x0000000102147AE1uLL}, +{0x0747AE1480000000uLL, 0x0000000380000000uLL, 0x0000000002147AE1uLL, 0x0000000100000000uLL}, +{0x0747AE1480000000uLL, 0x00000003FFFFFFFDuLL, 0x0000000001D1EB85uLL, 0x000000008575C28FuLL}, +{0x0747AE1480000000uLL, 0x00000003FFFFFFFEuLL, 0x0000000001D1EB85uLL, 0x0000000083A3D70AuLL}, +{0x0747AE1480000000uLL, 0x00000003FFFFFFFFuLL, 0x0000000001D1EB85uLL, 0x0000000081D1EB85uLL}, +{0x0747AE1480000000uLL, 0x0000001000000000uLL, 0x0000000000747AE1uLL, 0x0000000480000000uLL}, +{0x0747AE1480000000uLL, 0x0000001000000001uLL, 0x0000000000747AE1uLL, 0x000000047F8B851FuLL}, +{0x0747AE1480000000uLL, 0x0000001000000002uLL, 0x0000000000747AE1uLL, 0x000000047F170A3EuLL}, +{0x0747AE1480000000uLL, 0x0000001000000003uLL, 0x0000000000747AE1uLL, 0x000000047EA28F5DuLL}, +{0x0747AE1480000000uLL, 0x0000001000000010uLL, 0x0000000000747AE1uLL, 0x0000000478B851F0uLL}, +{0x0747AE1480000000uLL, 0x00000010078644FAuLL, 0x0000000000744433uLL, 0x0000000C14A5DA32uLL}, +{0x0747AE1480000000uLL, 0x000000100747AE14uLL, 0x00000000007445F9uLL, 0x0000000C384C4A8CuLL}, +{0x0747AE1480000000uLL, 0x000000107FFFFFFFuLL, 0x000000000070F347uLL, 0x000000010070F347uLL}, +{0x0747AE1480000000uLL, 0x0000001080000000uLL, 0x000000000070F347uLL, 0x0000000100000000uLL}, +{0x0747AE1480000000uLL, 0x00000010FFFFFFFDuLL, 0x00000000006DA0D4uLL, 0x000000008148E27CuLL}, +{0x0747AE1480000000uLL, 0x00000010FFFFFFFEuLL, 0x00000000006DA0D4uLL, 0x0000000080DB41A8uLL}, +{0x0747AE1480000000uLL, 0x00000010FFFFFFFFuLL, 0x00000000006DA0D4uLL, 0x00000000806DA0D4uLL}, +{0x0747AE1480000000uLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x0747AE1400000000uLL, 0x0000000000000001uLL, 0x0000000080000000uLL}, +{0x0747AE1480000000uLL, 0x0747AE1400000001uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0x0747AE1480000000uLL, 0x0747AE1400000002uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x0747AE1480000000uLL, 0x0747AE1400000003uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0x0747AE1480000000uLL, 0x0747AE1400000010uLL, 0x0000000000000001uLL, 0x000000007FFFFFF0uLL}, +{0x0747AE1480000000uLL, 0x0747AE14078644FAuLL, 0x0000000000000001uLL, 0x000000007879BB06uLL}, +{0x0747AE1480000000uLL, 0x0747AE140747AE14uLL, 0x0000000000000001uLL, 0x0000000078B851ECuLL}, +{0x0747AE1480000000uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x0747AE1480000000uLL, 0x0747AE1480000000uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0747AE1480000000uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE1480000000uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE1480000000uLL}, +{0x0747AE14FFFFFFFDuLL, 0x0000000000000001uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000000uLL}, +{0x0747AE14FFFFFFFDuLL, 0x0000000000000002uLL, 0x03A3D70A7FFFFFFEuLL, 0x0000000000000001uLL}, +{0x0747AE14FFFFFFFDuLL, 0x0000000000000003uLL, 0x026D3A06FFFFFFFFuLL, 0x0000000000000000uLL}, +{0x0747AE14FFFFFFFDuLL, 0x0000000000000010uLL, 0x00747AE14FFFFFFFuLL, 0x000000000000000DuLL}, +{0x0747AE14FFFFFFFDuLL, 0x00000000078644FAuLL, 0x00000000F7AE913FuLL, 0x0000000000F76C77uLL}, +{0x0747AE14FFFFFFFDuLL, 0x000000000747AE14uLL, 0x0000000100000023uLL, 0x0000000001333341uLL}, +{0x0747AE14FFFFFFFDuLL, 0x000000007FFFFFFFuLL, 0x000000000E8F5C2AuLL, 0x000000000E8F5C27uLL}, +{0x0747AE14FFFFFFFDuLL, 0x0000000080000000uLL, 0x000000000E8F5C29uLL, 0x000000007FFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x00000000FFFFFFFDuLL, 0x000000000747AE15uLL, 0x0000000015D70A3CuLL}, +{0x0747AE14FFFFFFFDuLL, 0x00000000FFFFFFFEuLL, 0x000000000747AE15uLL, 0x000000000E8F5C27uLL}, +{0x0747AE14FFFFFFFDuLL, 0x00000000FFFFFFFFuLL, 0x000000000747AE15uLL, 0x000000000747AE12uLL}, +{0x0747AE14FFFFFFFDuLL, 0x0000000100000000uLL, 0x000000000747AE14uLL, 0x00000000FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x0000000100000001uLL, 0x000000000747AE14uLL, 0x00000000F8B851E9uLL}, +{0x0747AE14FFFFFFFDuLL, 0x0000000100000002uLL, 0x000000000747AE14uLL, 0x00000000F170A3D5uLL}, +{0x0747AE14FFFFFFFDuLL, 0x0000000100000003uLL, 0x000000000747AE14uLL, 0x00000000EA28F5C1uLL}, +{0x0747AE14FFFFFFFDuLL, 0x0000000100000010uLL, 0x000000000747AE14uLL, 0x000000008B851EBDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x00000001078644FAuLL, 0x0000000007127740uLL, 0x0000000004CA8B7DuLL}, +{0x0747AE14FFFFFFFDuLL, 0x000000010747AE14uLL, 0x00000000071425A6uLL, 0x00000000C5CC3B05uLL}, +{0x0747AE14FFFFFFFDuLL, 0x000000017FFFFFFFuLL, 0x0000000004DA740EuLL, 0x0000000004DA740BuLL}, +{0x0747AE14FFFFFFFDuLL, 0x0000000180000000uLL, 0x0000000004DA740DuLL, 0x000000017FFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x00000001FFFFFFFDuLL, 0x0000000003A3D70AuLL, 0x000000010AEB851BuLL}, +{0x0747AE14FFFFFFFDuLL, 0x00000001FFFFFFFEuLL, 0x0000000003A3D70AuLL, 0x000000010747AE11uLL}, +{0x0747AE14FFFFFFFDuLL, 0x00000001FFFFFFFFuLL, 0x0000000003A3D70AuLL, 0x0000000103A3D707uLL}, +{0x0747AE14FFFFFFFDuLL, 0x0000000200000000uLL, 0x0000000003A3D70AuLL, 0x00000000FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x0000000200000001uLL, 0x0000000003A3D70AuLL, 0x00000000FC5C28F3uLL}, +{0x0747AE14FFFFFFFDuLL, 0x0000000200000002uLL, 0x0000000003A3D70AuLL, 0x00000000F8B851E9uLL}, +{0x0747AE14FFFFFFFDuLL, 0x0000000200000003uLL, 0x0000000003A3D70AuLL, 0x00000000F5147ADFuLL}, +{0x0747AE14FFFFFFFDuLL, 0x0000000200000010uLL, 0x0000000003A3D70AuLL, 0x00000000C5C28F5DuLL}, +{0x0747AE14FFFFFFFDuLL, 0x00000002078644FAuLL, 0x0000000003965801uLL, 0x000000017847CB03uLL}, +{0x0747AE14FFFFFFFDuLL, 0x000000020747AE14uLL, 0x000000000396C6B2uLL, 0x0000000043CD7E15uLL}, +{0x0747AE14FFFFFFFDuLL, 0x000000027FFFFFFFuLL, 0x0000000002E978D5uLL, 0x0000000082E978D2uLL}, +{0x0747AE14FFFFFFFDuLL, 0x0000000280000000uLL, 0x0000000002E978D5uLL, 0x000000007FFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x00000002FFFFFFFDuLL, 0x00000000026D3A07uLL, 0x000000000747AE12uLL}, +{0x0747AE14FFFFFFFDuLL, 0x00000002FFFFFFFEuLL, 0x00000000026D3A07uLL, 0x0000000004DA740BuLL}, +{0x0747AE14FFFFFFFDuLL, 0x00000002FFFFFFFFuLL, 0x00000000026D3A07uLL, 0x00000000026D3A04uLL}, +{0x0747AE14FFFFFFFDuLL, 0x0000000300000000uLL, 0x00000000026D3A06uLL, 0x00000002FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x0000000300000001uLL, 0x00000000026D3A06uLL, 0x00000002FD92C5F7uLL}, +{0x0747AE14FFFFFFFDuLL, 0x0000000300000002uLL, 0x00000000026D3A06uLL, 0x00000002FB258BF1uLL}, +{0x0747AE14FFFFFFFDuLL, 0x0000000300000003uLL, 0x00000000026D3A06uLL, 0x00000002F8B851EBuLL}, +{0x0747AE14FFFFFFFDuLL, 0x0000000300000010uLL, 0x00000000026D3A06uLL, 0x00000002D92C5F9DuLL}, +{0x0747AE14FFFFFFFDuLL, 0x00000003078644FAuLL, 0x0000000002673301uLL, 0x000000028425ED03uLL}, +{0x0747AE14FFFFFFFDuLL, 0x000000030747AE14uLL, 0x00000000026764ACuLL, 0x00000000E9CB3A8DuLL}, +{0x0747AE14FFFFFFFDuLL, 0x000000037FFFFFFFuLL, 0x0000000002147AE1uLL, 0x0000000182147ADEuLL}, +{0x0747AE14FFFFFFFDuLL, 0x0000000380000000uLL, 0x0000000002147AE1uLL, 0x000000017FFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x00000003FFFFFFFDuLL, 0x0000000001D1EB85uLL, 0x000000010575C28CuLL}, +{0x0747AE14FFFFFFFDuLL, 0x00000003FFFFFFFEuLL, 0x0000000001D1EB85uLL, 0x0000000103A3D707uLL}, +{0x0747AE14FFFFFFFDuLL, 0x00000003FFFFFFFFuLL, 0x0000000001D1EB85uLL, 0x0000000101D1EB82uLL}, +{0x0747AE14FFFFFFFDuLL, 0x0000001000000000uLL, 0x0000000000747AE1uLL, 0x00000004FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x0000001000000001uLL, 0x0000000000747AE1uLL, 0x00000004FF8B851CuLL}, +{0x0747AE14FFFFFFFDuLL, 0x0000001000000002uLL, 0x0000000000747AE1uLL, 0x00000004FF170A3BuLL}, +{0x0747AE14FFFFFFFDuLL, 0x0000001000000003uLL, 0x0000000000747AE1uLL, 0x00000004FEA28F5AuLL}, +{0x0747AE14FFFFFFFDuLL, 0x0000001000000010uLL, 0x0000000000747AE1uLL, 0x00000004F8B851EDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x00000010078644FAuLL, 0x0000000000744433uLL, 0x0000000C94A5DA2FuLL}, +{0x0747AE14FFFFFFFDuLL, 0x000000100747AE14uLL, 0x00000000007445F9uLL, 0x0000000CB84C4A89uLL}, +{0x0747AE14FFFFFFFDuLL, 0x000000107FFFFFFFuLL, 0x000000000070F347uLL, 0x000000018070F344uLL}, +{0x0747AE14FFFFFFFDuLL, 0x0000001080000000uLL, 0x000000000070F347uLL, 0x000000017FFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x00000010FFFFFFFDuLL, 0x00000000006DA0D4uLL, 0x000000010148E279uLL}, +{0x0747AE14FFFFFFFDuLL, 0x00000010FFFFFFFEuLL, 0x00000000006DA0D4uLL, 0x0000000100DB41A5uLL}, +{0x0747AE14FFFFFFFDuLL, 0x00000010FFFFFFFFuLL, 0x00000000006DA0D4uLL, 0x00000001006DA0D1uLL}, +{0x0747AE14FFFFFFFDuLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x0747AE1400000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x0747AE1400000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFCuLL}, +{0x0747AE14FFFFFFFDuLL, 0x0747AE1400000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFBuLL}, +{0x0747AE14FFFFFFFDuLL, 0x0747AE1400000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFAuLL}, +{0x0747AE14FFFFFFFDuLL, 0x0747AE1400000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFEDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x0747AE14078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB03uLL}, +{0x0747AE14FFFFFFFDuLL, 0x0747AE140747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851E9uLL}, +{0x0747AE14FFFFFFFDuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x0747AE14FFFFFFFDuLL, 0x0747AE1480000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0747AE14FFFFFFFDuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFDuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFDuLL}, +{0x0747AE14FFFFFFFEuLL, 0x0000000000000001uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000000uLL}, +{0x0747AE14FFFFFFFEuLL, 0x0000000000000002uLL, 0x03A3D70A7FFFFFFFuLL, 0x0000000000000000uLL}, +{0x0747AE14FFFFFFFEuLL, 0x0000000000000003uLL, 0x026D3A06FFFFFFFFuLL, 0x0000000000000001uLL}, +{0x0747AE14FFFFFFFEuLL, 0x0000000000000010uLL, 0x00747AE14FFFFFFFuLL, 0x000000000000000EuLL}, +{0x0747AE14FFFFFFFEuLL, 0x00000000078644FAuLL, 0x00000000F7AE913FuLL, 0x0000000000F76C78uLL}, +{0x0747AE14FFFFFFFEuLL, 0x000000000747AE14uLL, 0x0000000100000023uLL, 0x0000000001333342uLL}, +{0x0747AE14FFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x000000000E8F5C2AuLL, 0x000000000E8F5C28uLL}, +{0x0747AE14FFFFFFFEuLL, 0x0000000080000000uLL, 0x000000000E8F5C29uLL, 0x000000007FFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x00000000FFFFFFFDuLL, 0x000000000747AE15uLL, 0x0000000015D70A3DuLL}, +{0x0747AE14FFFFFFFEuLL, 0x00000000FFFFFFFEuLL, 0x000000000747AE15uLL, 0x000000000E8F5C28uLL}, +{0x0747AE14FFFFFFFEuLL, 0x00000000FFFFFFFFuLL, 0x000000000747AE15uLL, 0x000000000747AE13uLL}, +{0x0747AE14FFFFFFFEuLL, 0x0000000100000000uLL, 0x000000000747AE14uLL, 0x00000000FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x0000000100000001uLL, 0x000000000747AE14uLL, 0x00000000F8B851EAuLL}, +{0x0747AE14FFFFFFFEuLL, 0x0000000100000002uLL, 0x000000000747AE14uLL, 0x00000000F170A3D6uLL}, +{0x0747AE14FFFFFFFEuLL, 0x0000000100000003uLL, 0x000000000747AE14uLL, 0x00000000EA28F5C2uLL}, +{0x0747AE14FFFFFFFEuLL, 0x0000000100000010uLL, 0x000000000747AE14uLL, 0x000000008B851EBEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x00000001078644FAuLL, 0x0000000007127740uLL, 0x0000000004CA8B7EuLL}, +{0x0747AE14FFFFFFFEuLL, 0x000000010747AE14uLL, 0x00000000071425A6uLL, 0x00000000C5CC3B06uLL}, +{0x0747AE14FFFFFFFEuLL, 0x000000017FFFFFFFuLL, 0x0000000004DA740EuLL, 0x0000000004DA740CuLL}, +{0x0747AE14FFFFFFFEuLL, 0x0000000180000000uLL, 0x0000000004DA740DuLL, 0x000000017FFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x00000001FFFFFFFDuLL, 0x0000000003A3D70AuLL, 0x000000010AEB851CuLL}, +{0x0747AE14FFFFFFFEuLL, 0x00000001FFFFFFFEuLL, 0x0000000003A3D70AuLL, 0x000000010747AE12uLL}, +{0x0747AE14FFFFFFFEuLL, 0x00000001FFFFFFFFuLL, 0x0000000003A3D70AuLL, 0x0000000103A3D708uLL}, +{0x0747AE14FFFFFFFEuLL, 0x0000000200000000uLL, 0x0000000003A3D70AuLL, 0x00000000FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x0000000200000001uLL, 0x0000000003A3D70AuLL, 0x00000000FC5C28F4uLL}, +{0x0747AE14FFFFFFFEuLL, 0x0000000200000002uLL, 0x0000000003A3D70AuLL, 0x00000000F8B851EAuLL}, +{0x0747AE14FFFFFFFEuLL, 0x0000000200000003uLL, 0x0000000003A3D70AuLL, 0x00000000F5147AE0uLL}, +{0x0747AE14FFFFFFFEuLL, 0x0000000200000010uLL, 0x0000000003A3D70AuLL, 0x00000000C5C28F5EuLL}, +{0x0747AE14FFFFFFFEuLL, 0x00000002078644FAuLL, 0x0000000003965801uLL, 0x000000017847CB04uLL}, +{0x0747AE14FFFFFFFEuLL, 0x000000020747AE14uLL, 0x000000000396C6B2uLL, 0x0000000043CD7E16uLL}, +{0x0747AE14FFFFFFFEuLL, 0x000000027FFFFFFFuLL, 0x0000000002E978D5uLL, 0x0000000082E978D3uLL}, +{0x0747AE14FFFFFFFEuLL, 0x0000000280000000uLL, 0x0000000002E978D5uLL, 0x000000007FFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x00000002FFFFFFFDuLL, 0x00000000026D3A07uLL, 0x000000000747AE13uLL}, +{0x0747AE14FFFFFFFEuLL, 0x00000002FFFFFFFEuLL, 0x00000000026D3A07uLL, 0x0000000004DA740CuLL}, +{0x0747AE14FFFFFFFEuLL, 0x00000002FFFFFFFFuLL, 0x00000000026D3A07uLL, 0x00000000026D3A05uLL}, +{0x0747AE14FFFFFFFEuLL, 0x0000000300000000uLL, 0x00000000026D3A06uLL, 0x00000002FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x0000000300000001uLL, 0x00000000026D3A06uLL, 0x00000002FD92C5F8uLL}, +{0x0747AE14FFFFFFFEuLL, 0x0000000300000002uLL, 0x00000000026D3A06uLL, 0x00000002FB258BF2uLL}, +{0x0747AE14FFFFFFFEuLL, 0x0000000300000003uLL, 0x00000000026D3A06uLL, 0x00000002F8B851ECuLL}, +{0x0747AE14FFFFFFFEuLL, 0x0000000300000010uLL, 0x00000000026D3A06uLL, 0x00000002D92C5F9EuLL}, +{0x0747AE14FFFFFFFEuLL, 0x00000003078644FAuLL, 0x0000000002673301uLL, 0x000000028425ED04uLL}, +{0x0747AE14FFFFFFFEuLL, 0x000000030747AE14uLL, 0x00000000026764ACuLL, 0x00000000E9CB3A8EuLL}, +{0x0747AE14FFFFFFFEuLL, 0x000000037FFFFFFFuLL, 0x0000000002147AE1uLL, 0x0000000182147ADFuLL}, +{0x0747AE14FFFFFFFEuLL, 0x0000000380000000uLL, 0x0000000002147AE1uLL, 0x000000017FFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x00000003FFFFFFFDuLL, 0x0000000001D1EB85uLL, 0x000000010575C28DuLL}, +{0x0747AE14FFFFFFFEuLL, 0x00000003FFFFFFFEuLL, 0x0000000001D1EB85uLL, 0x0000000103A3D708uLL}, +{0x0747AE14FFFFFFFEuLL, 0x00000003FFFFFFFFuLL, 0x0000000001D1EB85uLL, 0x0000000101D1EB83uLL}, +{0x0747AE14FFFFFFFEuLL, 0x0000001000000000uLL, 0x0000000000747AE1uLL, 0x00000004FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x0000001000000001uLL, 0x0000000000747AE1uLL, 0x00000004FF8B851DuLL}, +{0x0747AE14FFFFFFFEuLL, 0x0000001000000002uLL, 0x0000000000747AE1uLL, 0x00000004FF170A3CuLL}, +{0x0747AE14FFFFFFFEuLL, 0x0000001000000003uLL, 0x0000000000747AE1uLL, 0x00000004FEA28F5BuLL}, +{0x0747AE14FFFFFFFEuLL, 0x0000001000000010uLL, 0x0000000000747AE1uLL, 0x00000004F8B851EEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x00000010078644FAuLL, 0x0000000000744433uLL, 0x0000000C94A5DA30uLL}, +{0x0747AE14FFFFFFFEuLL, 0x000000100747AE14uLL, 0x00000000007445F9uLL, 0x0000000CB84C4A8AuLL}, +{0x0747AE14FFFFFFFEuLL, 0x000000107FFFFFFFuLL, 0x000000000070F347uLL, 0x000000018070F345uLL}, +{0x0747AE14FFFFFFFEuLL, 0x0000001080000000uLL, 0x000000000070F347uLL, 0x000000017FFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x00000010FFFFFFFDuLL, 0x00000000006DA0D4uLL, 0x000000010148E27AuLL}, +{0x0747AE14FFFFFFFEuLL, 0x00000010FFFFFFFEuLL, 0x00000000006DA0D4uLL, 0x0000000100DB41A6uLL}, +{0x0747AE14FFFFFFFEuLL, 0x00000010FFFFFFFFuLL, 0x00000000006DA0D4uLL, 0x00000001006DA0D2uLL}, +{0x0747AE14FFFFFFFEuLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x0747AE1400000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x0747AE1400000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0x0747AE14FFFFFFFEuLL, 0x0747AE1400000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFCuLL}, +{0x0747AE14FFFFFFFEuLL, 0x0747AE1400000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFBuLL}, +{0x0747AE14FFFFFFFEuLL, 0x0747AE1400000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFEEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x0747AE14078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB04uLL}, +{0x0747AE14FFFFFFFEuLL, 0x0747AE140747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EAuLL}, +{0x0747AE14FFFFFFFEuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0x0747AE14FFFFFFFEuLL, 0x0747AE1480000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x0747AE14FFFFFFFEuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0747AE14FFFFFFFEuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFEuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFEuLL}, +{0x0747AE14FFFFFFFFuLL, 0x0000000000000001uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000000uLL}, +{0x0747AE14FFFFFFFFuLL, 0x0000000000000002uLL, 0x03A3D70A7FFFFFFFuLL, 0x0000000000000001uLL}, +{0x0747AE14FFFFFFFFuLL, 0x0000000000000003uLL, 0x026D3A06FFFFFFFFuLL, 0x0000000000000002uLL}, +{0x0747AE14FFFFFFFFuLL, 0x0000000000000010uLL, 0x00747AE14FFFFFFFuLL, 0x000000000000000FuLL}, +{0x0747AE14FFFFFFFFuLL, 0x00000000078644FAuLL, 0x00000000F7AE913FuLL, 0x0000000000F76C79uLL}, +{0x0747AE14FFFFFFFFuLL, 0x000000000747AE14uLL, 0x0000000100000023uLL, 0x0000000001333343uLL}, +{0x0747AE14FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x000000000E8F5C2AuLL, 0x000000000E8F5C29uLL}, +{0x0747AE14FFFFFFFFuLL, 0x0000000080000000uLL, 0x000000000E8F5C29uLL, 0x000000007FFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x00000000FFFFFFFDuLL, 0x000000000747AE15uLL, 0x0000000015D70A3EuLL}, +{0x0747AE14FFFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x000000000747AE15uLL, 0x000000000E8F5C29uLL}, +{0x0747AE14FFFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x000000000747AE15uLL, 0x000000000747AE14uLL}, +{0x0747AE14FFFFFFFFuLL, 0x0000000100000000uLL, 0x000000000747AE14uLL, 0x00000000FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x0000000100000001uLL, 0x000000000747AE14uLL, 0x00000000F8B851EBuLL}, +{0x0747AE14FFFFFFFFuLL, 0x0000000100000002uLL, 0x000000000747AE14uLL, 0x00000000F170A3D7uLL}, +{0x0747AE14FFFFFFFFuLL, 0x0000000100000003uLL, 0x000000000747AE14uLL, 0x00000000EA28F5C3uLL}, +{0x0747AE14FFFFFFFFuLL, 0x0000000100000010uLL, 0x000000000747AE14uLL, 0x000000008B851EBFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x00000001078644FAuLL, 0x0000000007127740uLL, 0x0000000004CA8B7FuLL}, +{0x0747AE14FFFFFFFFuLL, 0x000000010747AE14uLL, 0x00000000071425A6uLL, 0x00000000C5CC3B07uLL}, +{0x0747AE14FFFFFFFFuLL, 0x000000017FFFFFFFuLL, 0x0000000004DA740EuLL, 0x0000000004DA740DuLL}, +{0x0747AE14FFFFFFFFuLL, 0x0000000180000000uLL, 0x0000000004DA740DuLL, 0x000000017FFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x00000001FFFFFFFDuLL, 0x0000000003A3D70AuLL, 0x000000010AEB851DuLL}, +{0x0747AE14FFFFFFFFuLL, 0x00000001FFFFFFFEuLL, 0x0000000003A3D70AuLL, 0x000000010747AE13uLL}, +{0x0747AE14FFFFFFFFuLL, 0x00000001FFFFFFFFuLL, 0x0000000003A3D70AuLL, 0x0000000103A3D709uLL}, +{0x0747AE14FFFFFFFFuLL, 0x0000000200000000uLL, 0x0000000003A3D70AuLL, 0x00000000FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x0000000200000001uLL, 0x0000000003A3D70AuLL, 0x00000000FC5C28F5uLL}, +{0x0747AE14FFFFFFFFuLL, 0x0000000200000002uLL, 0x0000000003A3D70AuLL, 0x00000000F8B851EBuLL}, +{0x0747AE14FFFFFFFFuLL, 0x0000000200000003uLL, 0x0000000003A3D70AuLL, 0x00000000F5147AE1uLL}, +{0x0747AE14FFFFFFFFuLL, 0x0000000200000010uLL, 0x0000000003A3D70AuLL, 0x00000000C5C28F5FuLL}, +{0x0747AE14FFFFFFFFuLL, 0x00000002078644FAuLL, 0x0000000003965801uLL, 0x000000017847CB05uLL}, +{0x0747AE14FFFFFFFFuLL, 0x000000020747AE14uLL, 0x000000000396C6B2uLL, 0x0000000043CD7E17uLL}, +{0x0747AE14FFFFFFFFuLL, 0x000000027FFFFFFFuLL, 0x0000000002E978D5uLL, 0x0000000082E978D4uLL}, +{0x0747AE14FFFFFFFFuLL, 0x0000000280000000uLL, 0x0000000002E978D5uLL, 0x000000007FFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x00000002FFFFFFFDuLL, 0x00000000026D3A07uLL, 0x000000000747AE14uLL}, +{0x0747AE14FFFFFFFFuLL, 0x00000002FFFFFFFEuLL, 0x00000000026D3A07uLL, 0x0000000004DA740DuLL}, +{0x0747AE14FFFFFFFFuLL, 0x00000002FFFFFFFFuLL, 0x00000000026D3A07uLL, 0x00000000026D3A06uLL}, +{0x0747AE14FFFFFFFFuLL, 0x0000000300000000uLL, 0x00000000026D3A06uLL, 0x00000002FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x0000000300000001uLL, 0x00000000026D3A06uLL, 0x00000002FD92C5F9uLL}, +{0x0747AE14FFFFFFFFuLL, 0x0000000300000002uLL, 0x00000000026D3A06uLL, 0x00000002FB258BF3uLL}, +{0x0747AE14FFFFFFFFuLL, 0x0000000300000003uLL, 0x00000000026D3A06uLL, 0x00000002F8B851EDuLL}, +{0x0747AE14FFFFFFFFuLL, 0x0000000300000010uLL, 0x00000000026D3A06uLL, 0x00000002D92C5F9FuLL}, +{0x0747AE14FFFFFFFFuLL, 0x00000003078644FAuLL, 0x0000000002673301uLL, 0x000000028425ED05uLL}, +{0x0747AE14FFFFFFFFuLL, 0x000000030747AE14uLL, 0x00000000026764ACuLL, 0x00000000E9CB3A8FuLL}, +{0x0747AE14FFFFFFFFuLL, 0x000000037FFFFFFFuLL, 0x0000000002147AE1uLL, 0x0000000182147AE0uLL}, +{0x0747AE14FFFFFFFFuLL, 0x0000000380000000uLL, 0x0000000002147AE1uLL, 0x000000017FFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x00000003FFFFFFFDuLL, 0x0000000001D1EB85uLL, 0x000000010575C28EuLL}, +{0x0747AE14FFFFFFFFuLL, 0x00000003FFFFFFFEuLL, 0x0000000001D1EB85uLL, 0x0000000103A3D709uLL}, +{0x0747AE14FFFFFFFFuLL, 0x00000003FFFFFFFFuLL, 0x0000000001D1EB85uLL, 0x0000000101D1EB84uLL}, +{0x0747AE14FFFFFFFFuLL, 0x0000001000000000uLL, 0x0000000000747AE1uLL, 0x00000004FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x0000001000000001uLL, 0x0000000000747AE1uLL, 0x00000004FF8B851EuLL}, +{0x0747AE14FFFFFFFFuLL, 0x0000001000000002uLL, 0x0000000000747AE1uLL, 0x00000004FF170A3DuLL}, +{0x0747AE14FFFFFFFFuLL, 0x0000001000000003uLL, 0x0000000000747AE1uLL, 0x00000004FEA28F5CuLL}, +{0x0747AE14FFFFFFFFuLL, 0x0000001000000010uLL, 0x0000000000747AE1uLL, 0x00000004F8B851EFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x00000010078644FAuLL, 0x0000000000744433uLL, 0x0000000C94A5DA31uLL}, +{0x0747AE14FFFFFFFFuLL, 0x000000100747AE14uLL, 0x00000000007445F9uLL, 0x0000000CB84C4A8BuLL}, +{0x0747AE14FFFFFFFFuLL, 0x000000107FFFFFFFuLL, 0x000000000070F347uLL, 0x000000018070F346uLL}, +{0x0747AE14FFFFFFFFuLL, 0x0000001080000000uLL, 0x000000000070F347uLL, 0x000000017FFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x00000010FFFFFFFDuLL, 0x00000000006DA0D4uLL, 0x000000010148E27BuLL}, +{0x0747AE14FFFFFFFFuLL, 0x00000010FFFFFFFEuLL, 0x00000000006DA0D4uLL, 0x0000000100DB41A7uLL}, +{0x0747AE14FFFFFFFFuLL, 0x00000010FFFFFFFFuLL, 0x00000000006DA0D4uLL, 0x00000001006DA0D3uLL}, +{0x0747AE14FFFFFFFFuLL, 0x078644FA00000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x078644FA00000001uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x078644FA00000002uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x078644FA00000003uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x078644FA00000010uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x078644FA078644FAuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x078644FA0747AE14uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x078644FA80000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x0747AE1400000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x0747AE1400000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0x0747AE14FFFFFFFFuLL, 0x0747AE1400000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0x0747AE14FFFFFFFFuLL, 0x0747AE1400000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFCuLL}, +{0x0747AE14FFFFFFFFuLL, 0x0747AE1400000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFEFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x0747AE14078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB05uLL}, +{0x0747AE14FFFFFFFFuLL, 0x0747AE140747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EBuLL}, +{0x0747AE14FFFFFFFFuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000000uLL}, +{0x0747AE14FFFFFFFFuLL, 0x0747AE1480000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0x0747AE14FFFFFFFFuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x0747AE14FFFFFFFFuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x0747AE14FFFFFFFFuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x0747AE14FFFFFFFFuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x0747AE14FFFFFFFFuLL}, +{0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL}, +{0x7FFFFFFF00000000uLL, 0x0000000000000002uLL, 0x3FFFFFFF80000000uLL, 0x0000000000000000uLL}, +{0x7FFFFFFF00000000uLL, 0x0000000000000003uLL, 0x2AAAAAAA55555555uLL, 0x0000000000000001uLL}, +{0x7FFFFFFF00000000uLL, 0x0000000000000010uLL, 0x07FFFFFFF0000000uLL, 0x0000000000000000uLL}, +{0x7FFFFFFF00000000uLL, 0x00000000078644FAuLL, 0x0000001102D8BD5CuLL, 0x0000000003E2A428uLL}, +{0x7FFFFFFF00000000uLL, 0x000000000747AE14uLL, 0x000000119519529AuLL, 0x00000000052ADFF8uLL}, +{0x7FFFFFFF00000000uLL, 0x000000007FFFFFFFuLL, 0x0000000100000000uLL, 0x0000000000000000uLL}, +{0x7FFFFFFF00000000uLL, 0x0000000080000000uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000000uLL}, +{0x7FFFFFFF00000000uLL, 0x00000000FFFFFFFDuLL, 0x0000000080000000uLL, 0x0000000080000000uLL}, +{0x7FFFFFFF00000000uLL, 0x00000000FFFFFFFEuLL, 0x0000000080000000uLL, 0x0000000000000000uLL}, +{0x7FFFFFFF00000000uLL, 0x00000000FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x000000007FFFFFFFuLL}, +{0x7FFFFFFF00000000uLL, 0x0000000100000000uLL, 0x000000007FFFFFFFuLL, 0x0000000000000000uLL}, +{0x7FFFFFFF00000000uLL, 0x0000000100000001uLL, 0x000000007FFFFFFEuLL, 0x0000000080000002uLL}, +{0x7FFFFFFF00000000uLL, 0x0000000100000002uLL, 0x000000007FFFFFFEuLL, 0x0000000000000004uLL}, +{0x7FFFFFFF00000000uLL, 0x0000000100000003uLL, 0x000000007FFFFFFDuLL, 0x0000000080000009uLL}, +{0x7FFFFFFF00000000uLL, 0x0000000100000010uLL, 0x000000007FFFFFF7uLL, 0x0000000000000090uLL}, +{0x7FFFFFFF00000000uLL, 0x00000001078644FAuLL, 0x000000007C585DADuLL, 0x000000005544910EuLL}, +{0x7FFFFFFF00000000uLL, 0x000000010747AE14uLL, 0x000000007C75ED2CuLL, 0x0000000024619090uLL}, +{0x7FFFFFFF00000000uLL, 0x000000017FFFFFFFuLL, 0x0000000055555554uLL, 0x0000000155555554uLL}, +{0x7FFFFFFF00000000uLL, 0x0000000180000000uLL, 0x0000000055555554uLL, 0x0000000100000000uLL}, +{0x7FFFFFFF00000000uLL, 0x00000001FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000001BFFFFFFDuLL}, +{0x7FFFFFFF00000000uLL, 0x00000001FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x000000017FFFFFFEuLL}, +{0x7FFFFFFF00000000uLL, 0x00000001FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x000000013FFFFFFFuLL}, +{0x7FFFFFFF00000000uLL, 0x0000000200000000uLL, 0x000000003FFFFFFFuLL, 0x0000000100000000uLL}, +{0x7FFFFFFF00000000uLL, 0x0000000200000001uLL, 0x000000003FFFFFFFuLL, 0x00000000C0000001uLL}, +{0x7FFFFFFF00000000uLL, 0x0000000200000002uLL, 0x000000003FFFFFFFuLL, 0x0000000080000002uLL}, +{0x7FFFFFFF00000000uLL, 0x0000000200000003uLL, 0x000000003FFFFFFFuLL, 0x0000000040000003uLL}, +{0x7FFFFFFF00000000uLL, 0x0000000200000010uLL, 0x000000003FFFFFFDuLL, 0x0000000100000030uLL}, +{0x7FFFFFFF00000000uLL, 0x00000002078644FAuLL, 0x000000003F12B424uLL, 0x00000001290A84D8uLL}, +{0x7FFFFFFF00000000uLL, 0x000000020747AE14uLL, 0x000000003F1A4E53uLL, 0x0000000032B07784uLL}, +{0x7FFFFFFF00000000uLL, 0x000000027FFFFFFFuLL, 0x0000000033333332uLL, 0x0000000233333332uLL}, +{0x7FFFFFFF00000000uLL, 0x0000000280000000uLL, 0x0000000033333332uLL, 0x0000000200000000uLL}, +{0x7FFFFFFF00000000uLL, 0x00000002FFFFFFFDuLL, 0x000000002AAAAAAAuLL, 0x000000017FFFFFFEuLL}, +{0x7FFFFFFF00000000uLL, 0x00000002FFFFFFFEuLL, 0x000000002AAAAAAAuLL, 0x0000000155555554uLL}, +{0x7FFFFFFF00000000uLL, 0x00000002FFFFFFFFuLL, 0x000000002AAAAAAAuLL, 0x000000012AAAAAAAuLL}, +{0x7FFFFFFF00000000uLL, 0x0000000300000000uLL, 0x000000002AAAAAAAuLL, 0x0000000100000000uLL}, +{0x7FFFFFFF00000000uLL, 0x0000000300000001uLL, 0x000000002AAAAAAAuLL, 0x00000000D5555556uLL}, +{0x7FFFFFFF00000000uLL, 0x0000000300000002uLL, 0x000000002AAAAAAAuLL, 0x00000000AAAAAAACuLL}, +{0x7FFFFFFF00000000uLL, 0x0000000300000003uLL, 0x000000002AAAAAAAuLL, 0x0000000080000002uLL}, +{0x7FFFFFFF00000000uLL, 0x0000000300000010uLL, 0x000000002AAAAAA9uLL, 0x0000000155555570uLL}, +{0x7FFFFFFF00000000uLL, 0x00000003078644FAuLL, 0x000000002A40B0A3uLL, 0x00000002A39634D2uLL}, +{0x7FFFFFFF00000000uLL, 0x000000030747AE14uLL, 0x000000002A4419E3uLL, 0x000000000620B044uLL}, +{0x7FFFFFFF00000000uLL, 0x000000037FFFFFFFuLL, 0x0000000024924924uLL, 0x0000000124924924uLL}, +{0x7FFFFFFF00000000uLL, 0x0000000380000000uLL, 0x0000000024924924uLL, 0x0000000100000000uLL}, +{0x7FFFFFFF00000000uLL, 0x00000003FFFFFFFDuLL, 0x000000001FFFFFFFuLL, 0x000000035FFFFFFDuLL}, +{0x7FFFFFFF00000000uLL, 0x00000003FFFFFFFEuLL, 0x000000001FFFFFFFuLL, 0x000000033FFFFFFEuLL}, +{0x7FFFFFFF00000000uLL, 0x00000003FFFFFFFFuLL, 0x000000001FFFFFFFuLL, 0x000000031FFFFFFFuLL}, +{0x7FFFFFFF00000000uLL, 0x0000001000000000uLL, 0x0000000007FFFFFFuLL, 0x0000000F00000000uLL}, +{0x7FFFFFFF00000000uLL, 0x0000001000000001uLL, 0x0000000007FFFFFFuLL, 0x0000000EF8000001uLL}, +{0x7FFFFFFF00000000uLL, 0x0000001000000002uLL, 0x0000000007FFFFFFuLL, 0x0000000EF0000002uLL}, +{0x7FFFFFFF00000000uLL, 0x0000001000000003uLL, 0x0000000007FFFFFFuLL, 0x0000000EE8000003uLL}, +{0x7FFFFFFF00000000uLL, 0x0000001000000010uLL, 0x0000000007FFFFFFuLL, 0x0000000E80000010uLL}, +{0x7FFFFFFF00000000uLL, 0x00000010078644FAuLL, 0x0000000007FC3EA1uLL, 0x0000000903C212C6uLL}, +{0x7FFFFFFF00000000uLL, 0x000000100747AE14uLL, 0x0000000007FC5DD0uLL, 0x0000000223D54BC0uLL}, +{0x7FFFFFFF00000000uLL, 0x000000107FFFFFFFuLL, 0x0000000007C1F07CuLL, 0x0000000107C1F07CuLL}, +{0x7FFFFFFF00000000uLL, 0x0000001080000000uLL, 0x0000000007C1F07CuLL, 0x0000000100000000uLL}, +{0x7FFFFFFF00000000uLL, 0x00000010FFFFFFFDuLL, 0x0000000007878787uLL, 0x0000000816969695uLL}, +{0x7FFFFFFF00000000uLL, 0x00000010FFFFFFFEuLL, 0x0000000007878787uLL, 0x000000080F0F0F0EuLL}, +{0x7FFFFFFF00000000uLL, 0x00000010FFFFFFFFuLL, 0x0000000007878787uLL, 0x0000000807878787uLL}, +{0x7FFFFFFF00000000uLL, 0x078644FA00000000uLL, 0x0000000000000011uLL, 0x00156B6500000000uLL}, +{0x7FFFFFFF00000000uLL, 0x078644FA00000001uLL, 0x0000000000000011uLL, 0x00156B64FFFFFFEFuLL}, +{0x7FFFFFFF00000000uLL, 0x078644FA00000002uLL, 0x0000000000000011uLL, 0x00156B64FFFFFFDEuLL}, +{0x7FFFFFFF00000000uLL, 0x078644FA00000003uLL, 0x0000000000000011uLL, 0x00156B64FFFFFFCDuLL}, +{0x7FFFFFFF00000000uLL, 0x078644FA00000010uLL, 0x0000000000000011uLL, 0x00156B64FFFFFEF0uLL}, +{0x7FFFFFFF00000000uLL, 0x078644FA078644FAuLL, 0x0000000000000011uLL, 0x00156B6480156B66uLL}, +{0x7FFFFFFF00000000uLL, 0x078644FA0747AE14uLL, 0x0000000000000011uLL, 0x00156B64843D70ACuLL}, +{0x7FFFFFFF00000000uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5C80000011uLL}, +{0x7FFFFFFF00000000uLL, 0x078644FA80000000uLL, 0x0000000000000011uLL, 0x00156B5C80000000uLL}, +{0x7FFFFFFF00000000uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000011uLL, 0x00156B5400000033uLL}, +{0x7FFFFFFF00000000uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000011uLL, 0x00156B5400000022uLL}, +{0x7FFFFFFF00000000uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5400000011uLL}, +{0x7FFFFFFF00000000uLL, 0x0747AE1400000000uLL, 0x0000000000000011uLL, 0x043D70AB00000000uLL}, +{0x7FFFFFFF00000000uLL, 0x0747AE1400000001uLL, 0x0000000000000011uLL, 0x043D70AAFFFFFFEFuLL}, +{0x7FFFFFFF00000000uLL, 0x0747AE1400000002uLL, 0x0000000000000011uLL, 0x043D70AAFFFFFFDEuLL}, +{0x7FFFFFFF00000000uLL, 0x0747AE1400000003uLL, 0x0000000000000011uLL, 0x043D70AAFFFFFFCDuLL}, +{0x7FFFFFFF00000000uLL, 0x0747AE1400000010uLL, 0x0000000000000011uLL, 0x043D70AAFFFFFEF0uLL}, +{0x7FFFFFFF00000000uLL, 0x0747AE14078644FAuLL, 0x0000000000000011uLL, 0x043D70AA80156B66uLL}, +{0x7FFFFFFF00000000uLL, 0x0747AE140747AE14uLL, 0x0000000000000011uLL, 0x043D70AA843D70ACuLL}, +{0x7FFFFFFF00000000uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000011uLL, 0x043D70A280000011uLL}, +{0x7FFFFFFF00000000uLL, 0x0747AE1480000000uLL, 0x0000000000000011uLL, 0x043D70A280000000uLL}, +{0x7FFFFFFF00000000uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000011uLL, 0x043D709A00000033uLL}, +{0x7FFFFFFF00000000uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000011uLL, 0x043D709A00000022uLL}, +{0x7FFFFFFF00000000uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000011uLL, 0x043D709A00000011uLL}, +{0x7FFFFFFF00000000uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x7FFFFFFF00000000uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000000uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000000uLL}, +{0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL}, +{0x7FFFFFFF00000001uLL, 0x0000000000000002uLL, 0x3FFFFFFF80000000uLL, 0x0000000000000001uLL}, +{0x7FFFFFFF00000001uLL, 0x0000000000000003uLL, 0x2AAAAAAA55555555uLL, 0x0000000000000002uLL}, +{0x7FFFFFFF00000001uLL, 0x0000000000000010uLL, 0x07FFFFFFF0000000uLL, 0x0000000000000001uLL}, +{0x7FFFFFFF00000001uLL, 0x00000000078644FAuLL, 0x0000001102D8BD5CuLL, 0x0000000003E2A429uLL}, +{0x7FFFFFFF00000001uLL, 0x000000000747AE14uLL, 0x000000119519529AuLL, 0x00000000052ADFF9uLL}, +{0x7FFFFFFF00000001uLL, 0x000000007FFFFFFFuLL, 0x0000000100000000uLL, 0x0000000000000001uLL}, +{0x7FFFFFFF00000001uLL, 0x0000000080000000uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000001uLL}, +{0x7FFFFFFF00000001uLL, 0x00000000FFFFFFFDuLL, 0x0000000080000000uLL, 0x0000000080000001uLL}, +{0x7FFFFFFF00000001uLL, 0x00000000FFFFFFFEuLL, 0x0000000080000000uLL, 0x0000000000000001uLL}, +{0x7FFFFFFF00000001uLL, 0x00000000FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x0000000080000000uLL}, +{0x7FFFFFFF00000001uLL, 0x0000000100000000uLL, 0x000000007FFFFFFFuLL, 0x0000000000000001uLL}, +{0x7FFFFFFF00000001uLL, 0x0000000100000001uLL, 0x000000007FFFFFFEuLL, 0x0000000080000003uLL}, +{0x7FFFFFFF00000001uLL, 0x0000000100000002uLL, 0x000000007FFFFFFEuLL, 0x0000000000000005uLL}, +{0x7FFFFFFF00000001uLL, 0x0000000100000003uLL, 0x000000007FFFFFFDuLL, 0x000000008000000AuLL}, +{0x7FFFFFFF00000001uLL, 0x0000000100000010uLL, 0x000000007FFFFFF7uLL, 0x0000000000000091uLL}, +{0x7FFFFFFF00000001uLL, 0x00000001078644FAuLL, 0x000000007C585DADuLL, 0x000000005544910FuLL}, +{0x7FFFFFFF00000001uLL, 0x000000010747AE14uLL, 0x000000007C75ED2CuLL, 0x0000000024619091uLL}, +{0x7FFFFFFF00000001uLL, 0x000000017FFFFFFFuLL, 0x0000000055555554uLL, 0x0000000155555555uLL}, +{0x7FFFFFFF00000001uLL, 0x0000000180000000uLL, 0x0000000055555554uLL, 0x0000000100000001uLL}, +{0x7FFFFFFF00000001uLL, 0x00000001FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000001BFFFFFFEuLL}, +{0x7FFFFFFF00000001uLL, 0x00000001FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x000000017FFFFFFFuLL}, +{0x7FFFFFFF00000001uLL, 0x00000001FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x0000000140000000uLL}, +{0x7FFFFFFF00000001uLL, 0x0000000200000000uLL, 0x000000003FFFFFFFuLL, 0x0000000100000001uLL}, +{0x7FFFFFFF00000001uLL, 0x0000000200000001uLL, 0x000000003FFFFFFFuLL, 0x00000000C0000002uLL}, +{0x7FFFFFFF00000001uLL, 0x0000000200000002uLL, 0x000000003FFFFFFFuLL, 0x0000000080000003uLL}, +{0x7FFFFFFF00000001uLL, 0x0000000200000003uLL, 0x000000003FFFFFFFuLL, 0x0000000040000004uLL}, +{0x7FFFFFFF00000001uLL, 0x0000000200000010uLL, 0x000000003FFFFFFDuLL, 0x0000000100000031uLL}, +{0x7FFFFFFF00000001uLL, 0x00000002078644FAuLL, 0x000000003F12B424uLL, 0x00000001290A84D9uLL}, +{0x7FFFFFFF00000001uLL, 0x000000020747AE14uLL, 0x000000003F1A4E53uLL, 0x0000000032B07785uLL}, +{0x7FFFFFFF00000001uLL, 0x000000027FFFFFFFuLL, 0x0000000033333332uLL, 0x0000000233333333uLL}, +{0x7FFFFFFF00000001uLL, 0x0000000280000000uLL, 0x0000000033333332uLL, 0x0000000200000001uLL}, +{0x7FFFFFFF00000001uLL, 0x00000002FFFFFFFDuLL, 0x000000002AAAAAAAuLL, 0x000000017FFFFFFFuLL}, +{0x7FFFFFFF00000001uLL, 0x00000002FFFFFFFEuLL, 0x000000002AAAAAAAuLL, 0x0000000155555555uLL}, +{0x7FFFFFFF00000001uLL, 0x00000002FFFFFFFFuLL, 0x000000002AAAAAAAuLL, 0x000000012AAAAAABuLL}, +{0x7FFFFFFF00000001uLL, 0x0000000300000000uLL, 0x000000002AAAAAAAuLL, 0x0000000100000001uLL}, +{0x7FFFFFFF00000001uLL, 0x0000000300000001uLL, 0x000000002AAAAAAAuLL, 0x00000000D5555557uLL}, +{0x7FFFFFFF00000001uLL, 0x0000000300000002uLL, 0x000000002AAAAAAAuLL, 0x00000000AAAAAAADuLL}, +{0x7FFFFFFF00000001uLL, 0x0000000300000003uLL, 0x000000002AAAAAAAuLL, 0x0000000080000003uLL}, +{0x7FFFFFFF00000001uLL, 0x0000000300000010uLL, 0x000000002AAAAAA9uLL, 0x0000000155555571uLL}, +{0x7FFFFFFF00000001uLL, 0x00000003078644FAuLL, 0x000000002A40B0A3uLL, 0x00000002A39634D3uLL}, +{0x7FFFFFFF00000001uLL, 0x000000030747AE14uLL, 0x000000002A4419E3uLL, 0x000000000620B045uLL}, +{0x7FFFFFFF00000001uLL, 0x000000037FFFFFFFuLL, 0x0000000024924924uLL, 0x0000000124924925uLL}, +{0x7FFFFFFF00000001uLL, 0x0000000380000000uLL, 0x0000000024924924uLL, 0x0000000100000001uLL}, +{0x7FFFFFFF00000001uLL, 0x00000003FFFFFFFDuLL, 0x000000001FFFFFFFuLL, 0x000000035FFFFFFEuLL}, +{0x7FFFFFFF00000001uLL, 0x00000003FFFFFFFEuLL, 0x000000001FFFFFFFuLL, 0x000000033FFFFFFFuLL}, +{0x7FFFFFFF00000001uLL, 0x00000003FFFFFFFFuLL, 0x000000001FFFFFFFuLL, 0x0000000320000000uLL}, +{0x7FFFFFFF00000001uLL, 0x0000001000000000uLL, 0x0000000007FFFFFFuLL, 0x0000000F00000001uLL}, +{0x7FFFFFFF00000001uLL, 0x0000001000000001uLL, 0x0000000007FFFFFFuLL, 0x0000000EF8000002uLL}, +{0x7FFFFFFF00000001uLL, 0x0000001000000002uLL, 0x0000000007FFFFFFuLL, 0x0000000EF0000003uLL}, +{0x7FFFFFFF00000001uLL, 0x0000001000000003uLL, 0x0000000007FFFFFFuLL, 0x0000000EE8000004uLL}, +{0x7FFFFFFF00000001uLL, 0x0000001000000010uLL, 0x0000000007FFFFFFuLL, 0x0000000E80000011uLL}, +{0x7FFFFFFF00000001uLL, 0x00000010078644FAuLL, 0x0000000007FC3EA1uLL, 0x0000000903C212C7uLL}, +{0x7FFFFFFF00000001uLL, 0x000000100747AE14uLL, 0x0000000007FC5DD0uLL, 0x0000000223D54BC1uLL}, +{0x7FFFFFFF00000001uLL, 0x000000107FFFFFFFuLL, 0x0000000007C1F07CuLL, 0x0000000107C1F07DuLL}, +{0x7FFFFFFF00000001uLL, 0x0000001080000000uLL, 0x0000000007C1F07CuLL, 0x0000000100000001uLL}, +{0x7FFFFFFF00000001uLL, 0x00000010FFFFFFFDuLL, 0x0000000007878787uLL, 0x0000000816969696uLL}, +{0x7FFFFFFF00000001uLL, 0x00000010FFFFFFFEuLL, 0x0000000007878787uLL, 0x000000080F0F0F0FuLL}, +{0x7FFFFFFF00000001uLL, 0x00000010FFFFFFFFuLL, 0x0000000007878787uLL, 0x0000000807878788uLL}, +{0x7FFFFFFF00000001uLL, 0x078644FA00000000uLL, 0x0000000000000011uLL, 0x00156B6500000001uLL}, +{0x7FFFFFFF00000001uLL, 0x078644FA00000001uLL, 0x0000000000000011uLL, 0x00156B64FFFFFFF0uLL}, +{0x7FFFFFFF00000001uLL, 0x078644FA00000002uLL, 0x0000000000000011uLL, 0x00156B64FFFFFFDFuLL}, +{0x7FFFFFFF00000001uLL, 0x078644FA00000003uLL, 0x0000000000000011uLL, 0x00156B64FFFFFFCEuLL}, +{0x7FFFFFFF00000001uLL, 0x078644FA00000010uLL, 0x0000000000000011uLL, 0x00156B64FFFFFEF1uLL}, +{0x7FFFFFFF00000001uLL, 0x078644FA078644FAuLL, 0x0000000000000011uLL, 0x00156B6480156B67uLL}, +{0x7FFFFFFF00000001uLL, 0x078644FA0747AE14uLL, 0x0000000000000011uLL, 0x00156B64843D70ADuLL}, +{0x7FFFFFFF00000001uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5C80000012uLL}, +{0x7FFFFFFF00000001uLL, 0x078644FA80000000uLL, 0x0000000000000011uLL, 0x00156B5C80000001uLL}, +{0x7FFFFFFF00000001uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000011uLL, 0x00156B5400000034uLL}, +{0x7FFFFFFF00000001uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000011uLL, 0x00156B5400000023uLL}, +{0x7FFFFFFF00000001uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5400000012uLL}, +{0x7FFFFFFF00000001uLL, 0x0747AE1400000000uLL, 0x0000000000000011uLL, 0x043D70AB00000001uLL}, +{0x7FFFFFFF00000001uLL, 0x0747AE1400000001uLL, 0x0000000000000011uLL, 0x043D70AAFFFFFFF0uLL}, +{0x7FFFFFFF00000001uLL, 0x0747AE1400000002uLL, 0x0000000000000011uLL, 0x043D70AAFFFFFFDFuLL}, +{0x7FFFFFFF00000001uLL, 0x0747AE1400000003uLL, 0x0000000000000011uLL, 0x043D70AAFFFFFFCEuLL}, +{0x7FFFFFFF00000001uLL, 0x0747AE1400000010uLL, 0x0000000000000011uLL, 0x043D70AAFFFFFEF1uLL}, +{0x7FFFFFFF00000001uLL, 0x0747AE14078644FAuLL, 0x0000000000000011uLL, 0x043D70AA80156B67uLL}, +{0x7FFFFFFF00000001uLL, 0x0747AE140747AE14uLL, 0x0000000000000011uLL, 0x043D70AA843D70ADuLL}, +{0x7FFFFFFF00000001uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000011uLL, 0x043D70A280000012uLL}, +{0x7FFFFFFF00000001uLL, 0x0747AE1480000000uLL, 0x0000000000000011uLL, 0x043D70A280000001uLL}, +{0x7FFFFFFF00000001uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000011uLL, 0x043D709A00000034uLL}, +{0x7FFFFFFF00000001uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000011uLL, 0x043D709A00000023uLL}, +{0x7FFFFFFF00000001uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000011uLL, 0x043D709A00000012uLL}, +{0x7FFFFFFF00000001uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x7FFFFFFF00000001uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x7FFFFFFF00000001uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000001uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000001uLL}, +{0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000000uLL}, +{0x7FFFFFFF00000002uLL, 0x0000000000000002uLL, 0x3FFFFFFF80000001uLL, 0x0000000000000000uLL}, +{0x7FFFFFFF00000002uLL, 0x0000000000000003uLL, 0x2AAAAAAA55555556uLL, 0x0000000000000000uLL}, +{0x7FFFFFFF00000002uLL, 0x0000000000000010uLL, 0x07FFFFFFF0000000uLL, 0x0000000000000002uLL}, +{0x7FFFFFFF00000002uLL, 0x00000000078644FAuLL, 0x0000001102D8BD5CuLL, 0x0000000003E2A42AuLL}, +{0x7FFFFFFF00000002uLL, 0x000000000747AE14uLL, 0x000000119519529AuLL, 0x00000000052ADFFAuLL}, +{0x7FFFFFFF00000002uLL, 0x000000007FFFFFFFuLL, 0x0000000100000000uLL, 0x0000000000000002uLL}, +{0x7FFFFFFF00000002uLL, 0x0000000080000000uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000002uLL}, +{0x7FFFFFFF00000002uLL, 0x00000000FFFFFFFDuLL, 0x0000000080000000uLL, 0x0000000080000002uLL}, +{0x7FFFFFFF00000002uLL, 0x00000000FFFFFFFEuLL, 0x0000000080000000uLL, 0x0000000000000002uLL}, +{0x7FFFFFFF00000002uLL, 0x00000000FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x0000000080000001uLL}, +{0x7FFFFFFF00000002uLL, 0x0000000100000000uLL, 0x000000007FFFFFFFuLL, 0x0000000000000002uLL}, +{0x7FFFFFFF00000002uLL, 0x0000000100000001uLL, 0x000000007FFFFFFEuLL, 0x0000000080000004uLL}, +{0x7FFFFFFF00000002uLL, 0x0000000100000002uLL, 0x000000007FFFFFFEuLL, 0x0000000000000006uLL}, +{0x7FFFFFFF00000002uLL, 0x0000000100000003uLL, 0x000000007FFFFFFDuLL, 0x000000008000000BuLL}, +{0x7FFFFFFF00000002uLL, 0x0000000100000010uLL, 0x000000007FFFFFF7uLL, 0x0000000000000092uLL}, +{0x7FFFFFFF00000002uLL, 0x00000001078644FAuLL, 0x000000007C585DADuLL, 0x0000000055449110uLL}, +{0x7FFFFFFF00000002uLL, 0x000000010747AE14uLL, 0x000000007C75ED2CuLL, 0x0000000024619092uLL}, +{0x7FFFFFFF00000002uLL, 0x000000017FFFFFFFuLL, 0x0000000055555554uLL, 0x0000000155555556uLL}, +{0x7FFFFFFF00000002uLL, 0x0000000180000000uLL, 0x0000000055555554uLL, 0x0000000100000002uLL}, +{0x7FFFFFFF00000002uLL, 0x00000001FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000001BFFFFFFFuLL}, +{0x7FFFFFFF00000002uLL, 0x00000001FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x0000000180000000uLL}, +{0x7FFFFFFF00000002uLL, 0x00000001FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x0000000140000001uLL}, +{0x7FFFFFFF00000002uLL, 0x0000000200000000uLL, 0x000000003FFFFFFFuLL, 0x0000000100000002uLL}, +{0x7FFFFFFF00000002uLL, 0x0000000200000001uLL, 0x000000003FFFFFFFuLL, 0x00000000C0000003uLL}, +{0x7FFFFFFF00000002uLL, 0x0000000200000002uLL, 0x000000003FFFFFFFuLL, 0x0000000080000004uLL}, +{0x7FFFFFFF00000002uLL, 0x0000000200000003uLL, 0x000000003FFFFFFFuLL, 0x0000000040000005uLL}, +{0x7FFFFFFF00000002uLL, 0x0000000200000010uLL, 0x000000003FFFFFFDuLL, 0x0000000100000032uLL}, +{0x7FFFFFFF00000002uLL, 0x00000002078644FAuLL, 0x000000003F12B424uLL, 0x00000001290A84DAuLL}, +{0x7FFFFFFF00000002uLL, 0x000000020747AE14uLL, 0x000000003F1A4E53uLL, 0x0000000032B07786uLL}, +{0x7FFFFFFF00000002uLL, 0x000000027FFFFFFFuLL, 0x0000000033333332uLL, 0x0000000233333334uLL}, +{0x7FFFFFFF00000002uLL, 0x0000000280000000uLL, 0x0000000033333332uLL, 0x0000000200000002uLL}, +{0x7FFFFFFF00000002uLL, 0x00000002FFFFFFFDuLL, 0x000000002AAAAAAAuLL, 0x0000000180000000uLL}, +{0x7FFFFFFF00000002uLL, 0x00000002FFFFFFFEuLL, 0x000000002AAAAAAAuLL, 0x0000000155555556uLL}, +{0x7FFFFFFF00000002uLL, 0x00000002FFFFFFFFuLL, 0x000000002AAAAAAAuLL, 0x000000012AAAAAACuLL}, +{0x7FFFFFFF00000002uLL, 0x0000000300000000uLL, 0x000000002AAAAAAAuLL, 0x0000000100000002uLL}, +{0x7FFFFFFF00000002uLL, 0x0000000300000001uLL, 0x000000002AAAAAAAuLL, 0x00000000D5555558uLL}, +{0x7FFFFFFF00000002uLL, 0x0000000300000002uLL, 0x000000002AAAAAAAuLL, 0x00000000AAAAAAAEuLL}, +{0x7FFFFFFF00000002uLL, 0x0000000300000003uLL, 0x000000002AAAAAAAuLL, 0x0000000080000004uLL}, +{0x7FFFFFFF00000002uLL, 0x0000000300000010uLL, 0x000000002AAAAAA9uLL, 0x0000000155555572uLL}, +{0x7FFFFFFF00000002uLL, 0x00000003078644FAuLL, 0x000000002A40B0A3uLL, 0x00000002A39634D4uLL}, +{0x7FFFFFFF00000002uLL, 0x000000030747AE14uLL, 0x000000002A4419E3uLL, 0x000000000620B046uLL}, +{0x7FFFFFFF00000002uLL, 0x000000037FFFFFFFuLL, 0x0000000024924924uLL, 0x0000000124924926uLL}, +{0x7FFFFFFF00000002uLL, 0x0000000380000000uLL, 0x0000000024924924uLL, 0x0000000100000002uLL}, +{0x7FFFFFFF00000002uLL, 0x00000003FFFFFFFDuLL, 0x000000001FFFFFFFuLL, 0x000000035FFFFFFFuLL}, +{0x7FFFFFFF00000002uLL, 0x00000003FFFFFFFEuLL, 0x000000001FFFFFFFuLL, 0x0000000340000000uLL}, +{0x7FFFFFFF00000002uLL, 0x00000003FFFFFFFFuLL, 0x000000001FFFFFFFuLL, 0x0000000320000001uLL}, +{0x7FFFFFFF00000002uLL, 0x0000001000000000uLL, 0x0000000007FFFFFFuLL, 0x0000000F00000002uLL}, +{0x7FFFFFFF00000002uLL, 0x0000001000000001uLL, 0x0000000007FFFFFFuLL, 0x0000000EF8000003uLL}, +{0x7FFFFFFF00000002uLL, 0x0000001000000002uLL, 0x0000000007FFFFFFuLL, 0x0000000EF0000004uLL}, +{0x7FFFFFFF00000002uLL, 0x0000001000000003uLL, 0x0000000007FFFFFFuLL, 0x0000000EE8000005uLL}, +{0x7FFFFFFF00000002uLL, 0x0000001000000010uLL, 0x0000000007FFFFFFuLL, 0x0000000E80000012uLL}, +{0x7FFFFFFF00000002uLL, 0x00000010078644FAuLL, 0x0000000007FC3EA1uLL, 0x0000000903C212C8uLL}, +{0x7FFFFFFF00000002uLL, 0x000000100747AE14uLL, 0x0000000007FC5DD0uLL, 0x0000000223D54BC2uLL}, +{0x7FFFFFFF00000002uLL, 0x000000107FFFFFFFuLL, 0x0000000007C1F07CuLL, 0x0000000107C1F07EuLL}, +{0x7FFFFFFF00000002uLL, 0x0000001080000000uLL, 0x0000000007C1F07CuLL, 0x0000000100000002uLL}, +{0x7FFFFFFF00000002uLL, 0x00000010FFFFFFFDuLL, 0x0000000007878787uLL, 0x0000000816969697uLL}, +{0x7FFFFFFF00000002uLL, 0x00000010FFFFFFFEuLL, 0x0000000007878787uLL, 0x000000080F0F0F10uLL}, +{0x7FFFFFFF00000002uLL, 0x00000010FFFFFFFFuLL, 0x0000000007878787uLL, 0x0000000807878789uLL}, +{0x7FFFFFFF00000002uLL, 0x078644FA00000000uLL, 0x0000000000000011uLL, 0x00156B6500000002uLL}, +{0x7FFFFFFF00000002uLL, 0x078644FA00000001uLL, 0x0000000000000011uLL, 0x00156B64FFFFFFF1uLL}, +{0x7FFFFFFF00000002uLL, 0x078644FA00000002uLL, 0x0000000000000011uLL, 0x00156B64FFFFFFE0uLL}, +{0x7FFFFFFF00000002uLL, 0x078644FA00000003uLL, 0x0000000000000011uLL, 0x00156B64FFFFFFCFuLL}, +{0x7FFFFFFF00000002uLL, 0x078644FA00000010uLL, 0x0000000000000011uLL, 0x00156B64FFFFFEF2uLL}, +{0x7FFFFFFF00000002uLL, 0x078644FA078644FAuLL, 0x0000000000000011uLL, 0x00156B6480156B68uLL}, +{0x7FFFFFFF00000002uLL, 0x078644FA0747AE14uLL, 0x0000000000000011uLL, 0x00156B64843D70AEuLL}, +{0x7FFFFFFF00000002uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5C80000013uLL}, +{0x7FFFFFFF00000002uLL, 0x078644FA80000000uLL, 0x0000000000000011uLL, 0x00156B5C80000002uLL}, +{0x7FFFFFFF00000002uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000011uLL, 0x00156B5400000035uLL}, +{0x7FFFFFFF00000002uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000011uLL, 0x00156B5400000024uLL}, +{0x7FFFFFFF00000002uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5400000013uLL}, +{0x7FFFFFFF00000002uLL, 0x0747AE1400000000uLL, 0x0000000000000011uLL, 0x043D70AB00000002uLL}, +{0x7FFFFFFF00000002uLL, 0x0747AE1400000001uLL, 0x0000000000000011uLL, 0x043D70AAFFFFFFF1uLL}, +{0x7FFFFFFF00000002uLL, 0x0747AE1400000002uLL, 0x0000000000000011uLL, 0x043D70AAFFFFFFE0uLL}, +{0x7FFFFFFF00000002uLL, 0x0747AE1400000003uLL, 0x0000000000000011uLL, 0x043D70AAFFFFFFCFuLL}, +{0x7FFFFFFF00000002uLL, 0x0747AE1400000010uLL, 0x0000000000000011uLL, 0x043D70AAFFFFFEF2uLL}, +{0x7FFFFFFF00000002uLL, 0x0747AE14078644FAuLL, 0x0000000000000011uLL, 0x043D70AA80156B68uLL}, +{0x7FFFFFFF00000002uLL, 0x0747AE140747AE14uLL, 0x0000000000000011uLL, 0x043D70AA843D70AEuLL}, +{0x7FFFFFFF00000002uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000011uLL, 0x043D70A280000013uLL}, +{0x7FFFFFFF00000002uLL, 0x0747AE1480000000uLL, 0x0000000000000011uLL, 0x043D70A280000002uLL}, +{0x7FFFFFFF00000002uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000011uLL, 0x043D709A00000035uLL}, +{0x7FFFFFFF00000002uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000011uLL, 0x043D709A00000024uLL}, +{0x7FFFFFFF00000002uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000011uLL, 0x043D709A00000013uLL}, +{0x7FFFFFFF00000002uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0x7FFFFFFF00000002uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x7FFFFFFF00000002uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x7FFFFFFF00000002uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000002uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000002uLL}, +{0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000000uLL}, +{0x7FFFFFFF00000003uLL, 0x0000000000000002uLL, 0x3FFFFFFF80000001uLL, 0x0000000000000001uLL}, +{0x7FFFFFFF00000003uLL, 0x0000000000000003uLL, 0x2AAAAAAA55555556uLL, 0x0000000000000001uLL}, +{0x7FFFFFFF00000003uLL, 0x0000000000000010uLL, 0x07FFFFFFF0000000uLL, 0x0000000000000003uLL}, +{0x7FFFFFFF00000003uLL, 0x00000000078644FAuLL, 0x0000001102D8BD5CuLL, 0x0000000003E2A42BuLL}, +{0x7FFFFFFF00000003uLL, 0x000000000747AE14uLL, 0x000000119519529AuLL, 0x00000000052ADFFBuLL}, +{0x7FFFFFFF00000003uLL, 0x000000007FFFFFFFuLL, 0x0000000100000000uLL, 0x0000000000000003uLL}, +{0x7FFFFFFF00000003uLL, 0x0000000080000000uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000003uLL}, +{0x7FFFFFFF00000003uLL, 0x00000000FFFFFFFDuLL, 0x0000000080000000uLL, 0x0000000080000003uLL}, +{0x7FFFFFFF00000003uLL, 0x00000000FFFFFFFEuLL, 0x0000000080000000uLL, 0x0000000000000003uLL}, +{0x7FFFFFFF00000003uLL, 0x00000000FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x0000000080000002uLL}, +{0x7FFFFFFF00000003uLL, 0x0000000100000000uLL, 0x000000007FFFFFFFuLL, 0x0000000000000003uLL}, +{0x7FFFFFFF00000003uLL, 0x0000000100000001uLL, 0x000000007FFFFFFEuLL, 0x0000000080000005uLL}, +{0x7FFFFFFF00000003uLL, 0x0000000100000002uLL, 0x000000007FFFFFFEuLL, 0x0000000000000007uLL}, +{0x7FFFFFFF00000003uLL, 0x0000000100000003uLL, 0x000000007FFFFFFDuLL, 0x000000008000000CuLL}, +{0x7FFFFFFF00000003uLL, 0x0000000100000010uLL, 0x000000007FFFFFF7uLL, 0x0000000000000093uLL}, +{0x7FFFFFFF00000003uLL, 0x00000001078644FAuLL, 0x000000007C585DADuLL, 0x0000000055449111uLL}, +{0x7FFFFFFF00000003uLL, 0x000000010747AE14uLL, 0x000000007C75ED2CuLL, 0x0000000024619093uLL}, +{0x7FFFFFFF00000003uLL, 0x000000017FFFFFFFuLL, 0x0000000055555554uLL, 0x0000000155555557uLL}, +{0x7FFFFFFF00000003uLL, 0x0000000180000000uLL, 0x0000000055555554uLL, 0x0000000100000003uLL}, +{0x7FFFFFFF00000003uLL, 0x00000001FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000001C0000000uLL}, +{0x7FFFFFFF00000003uLL, 0x00000001FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x0000000180000001uLL}, +{0x7FFFFFFF00000003uLL, 0x00000001FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x0000000140000002uLL}, +{0x7FFFFFFF00000003uLL, 0x0000000200000000uLL, 0x000000003FFFFFFFuLL, 0x0000000100000003uLL}, +{0x7FFFFFFF00000003uLL, 0x0000000200000001uLL, 0x000000003FFFFFFFuLL, 0x00000000C0000004uLL}, +{0x7FFFFFFF00000003uLL, 0x0000000200000002uLL, 0x000000003FFFFFFFuLL, 0x0000000080000005uLL}, +{0x7FFFFFFF00000003uLL, 0x0000000200000003uLL, 0x000000003FFFFFFFuLL, 0x0000000040000006uLL}, +{0x7FFFFFFF00000003uLL, 0x0000000200000010uLL, 0x000000003FFFFFFDuLL, 0x0000000100000033uLL}, +{0x7FFFFFFF00000003uLL, 0x00000002078644FAuLL, 0x000000003F12B424uLL, 0x00000001290A84DBuLL}, +{0x7FFFFFFF00000003uLL, 0x000000020747AE14uLL, 0x000000003F1A4E53uLL, 0x0000000032B07787uLL}, +{0x7FFFFFFF00000003uLL, 0x000000027FFFFFFFuLL, 0x0000000033333332uLL, 0x0000000233333335uLL}, +{0x7FFFFFFF00000003uLL, 0x0000000280000000uLL, 0x0000000033333332uLL, 0x0000000200000003uLL}, +{0x7FFFFFFF00000003uLL, 0x00000002FFFFFFFDuLL, 0x000000002AAAAAAAuLL, 0x0000000180000001uLL}, +{0x7FFFFFFF00000003uLL, 0x00000002FFFFFFFEuLL, 0x000000002AAAAAAAuLL, 0x0000000155555557uLL}, +{0x7FFFFFFF00000003uLL, 0x00000002FFFFFFFFuLL, 0x000000002AAAAAAAuLL, 0x000000012AAAAAADuLL}, +{0x7FFFFFFF00000003uLL, 0x0000000300000000uLL, 0x000000002AAAAAAAuLL, 0x0000000100000003uLL}, +{0x7FFFFFFF00000003uLL, 0x0000000300000001uLL, 0x000000002AAAAAAAuLL, 0x00000000D5555559uLL}, +{0x7FFFFFFF00000003uLL, 0x0000000300000002uLL, 0x000000002AAAAAAAuLL, 0x00000000AAAAAAAFuLL}, +{0x7FFFFFFF00000003uLL, 0x0000000300000003uLL, 0x000000002AAAAAAAuLL, 0x0000000080000005uLL}, +{0x7FFFFFFF00000003uLL, 0x0000000300000010uLL, 0x000000002AAAAAA9uLL, 0x0000000155555573uLL}, +{0x7FFFFFFF00000003uLL, 0x00000003078644FAuLL, 0x000000002A40B0A3uLL, 0x00000002A39634D5uLL}, +{0x7FFFFFFF00000003uLL, 0x000000030747AE14uLL, 0x000000002A4419E3uLL, 0x000000000620B047uLL}, +{0x7FFFFFFF00000003uLL, 0x000000037FFFFFFFuLL, 0x0000000024924924uLL, 0x0000000124924927uLL}, +{0x7FFFFFFF00000003uLL, 0x0000000380000000uLL, 0x0000000024924924uLL, 0x0000000100000003uLL}, +{0x7FFFFFFF00000003uLL, 0x00000003FFFFFFFDuLL, 0x000000001FFFFFFFuLL, 0x0000000360000000uLL}, +{0x7FFFFFFF00000003uLL, 0x00000003FFFFFFFEuLL, 0x000000001FFFFFFFuLL, 0x0000000340000001uLL}, +{0x7FFFFFFF00000003uLL, 0x00000003FFFFFFFFuLL, 0x000000001FFFFFFFuLL, 0x0000000320000002uLL}, +{0x7FFFFFFF00000003uLL, 0x0000001000000000uLL, 0x0000000007FFFFFFuLL, 0x0000000F00000003uLL}, +{0x7FFFFFFF00000003uLL, 0x0000001000000001uLL, 0x0000000007FFFFFFuLL, 0x0000000EF8000004uLL}, +{0x7FFFFFFF00000003uLL, 0x0000001000000002uLL, 0x0000000007FFFFFFuLL, 0x0000000EF0000005uLL}, +{0x7FFFFFFF00000003uLL, 0x0000001000000003uLL, 0x0000000007FFFFFFuLL, 0x0000000EE8000006uLL}, +{0x7FFFFFFF00000003uLL, 0x0000001000000010uLL, 0x0000000007FFFFFFuLL, 0x0000000E80000013uLL}, +{0x7FFFFFFF00000003uLL, 0x00000010078644FAuLL, 0x0000000007FC3EA1uLL, 0x0000000903C212C9uLL}, +{0x7FFFFFFF00000003uLL, 0x000000100747AE14uLL, 0x0000000007FC5DD0uLL, 0x0000000223D54BC3uLL}, +{0x7FFFFFFF00000003uLL, 0x000000107FFFFFFFuLL, 0x0000000007C1F07CuLL, 0x0000000107C1F07FuLL}, +{0x7FFFFFFF00000003uLL, 0x0000001080000000uLL, 0x0000000007C1F07CuLL, 0x0000000100000003uLL}, +{0x7FFFFFFF00000003uLL, 0x00000010FFFFFFFDuLL, 0x0000000007878787uLL, 0x0000000816969698uLL}, +{0x7FFFFFFF00000003uLL, 0x00000010FFFFFFFEuLL, 0x0000000007878787uLL, 0x000000080F0F0F11uLL}, +{0x7FFFFFFF00000003uLL, 0x00000010FFFFFFFFuLL, 0x0000000007878787uLL, 0x000000080787878AuLL}, +{0x7FFFFFFF00000003uLL, 0x078644FA00000000uLL, 0x0000000000000011uLL, 0x00156B6500000003uLL}, +{0x7FFFFFFF00000003uLL, 0x078644FA00000001uLL, 0x0000000000000011uLL, 0x00156B64FFFFFFF2uLL}, +{0x7FFFFFFF00000003uLL, 0x078644FA00000002uLL, 0x0000000000000011uLL, 0x00156B64FFFFFFE1uLL}, +{0x7FFFFFFF00000003uLL, 0x078644FA00000003uLL, 0x0000000000000011uLL, 0x00156B64FFFFFFD0uLL}, +{0x7FFFFFFF00000003uLL, 0x078644FA00000010uLL, 0x0000000000000011uLL, 0x00156B64FFFFFEF3uLL}, +{0x7FFFFFFF00000003uLL, 0x078644FA078644FAuLL, 0x0000000000000011uLL, 0x00156B6480156B69uLL}, +{0x7FFFFFFF00000003uLL, 0x078644FA0747AE14uLL, 0x0000000000000011uLL, 0x00156B64843D70AFuLL}, +{0x7FFFFFFF00000003uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5C80000014uLL}, +{0x7FFFFFFF00000003uLL, 0x078644FA80000000uLL, 0x0000000000000011uLL, 0x00156B5C80000003uLL}, +{0x7FFFFFFF00000003uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000011uLL, 0x00156B5400000036uLL}, +{0x7FFFFFFF00000003uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000011uLL, 0x00156B5400000025uLL}, +{0x7FFFFFFF00000003uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5400000014uLL}, +{0x7FFFFFFF00000003uLL, 0x0747AE1400000000uLL, 0x0000000000000011uLL, 0x043D70AB00000003uLL}, +{0x7FFFFFFF00000003uLL, 0x0747AE1400000001uLL, 0x0000000000000011uLL, 0x043D70AAFFFFFFF2uLL}, +{0x7FFFFFFF00000003uLL, 0x0747AE1400000002uLL, 0x0000000000000011uLL, 0x043D70AAFFFFFFE1uLL}, +{0x7FFFFFFF00000003uLL, 0x0747AE1400000003uLL, 0x0000000000000011uLL, 0x043D70AAFFFFFFD0uLL}, +{0x7FFFFFFF00000003uLL, 0x0747AE1400000010uLL, 0x0000000000000011uLL, 0x043D70AAFFFFFEF3uLL}, +{0x7FFFFFFF00000003uLL, 0x0747AE14078644FAuLL, 0x0000000000000011uLL, 0x043D70AA80156B69uLL}, +{0x7FFFFFFF00000003uLL, 0x0747AE140747AE14uLL, 0x0000000000000011uLL, 0x043D70AA843D70AFuLL}, +{0x7FFFFFFF00000003uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000011uLL, 0x043D70A280000014uLL}, +{0x7FFFFFFF00000003uLL, 0x0747AE1480000000uLL, 0x0000000000000011uLL, 0x043D70A280000003uLL}, +{0x7FFFFFFF00000003uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000011uLL, 0x043D709A00000036uLL}, +{0x7FFFFFFF00000003uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000011uLL, 0x043D709A00000025uLL}, +{0x7FFFFFFF00000003uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000011uLL, 0x043D709A00000014uLL}, +{0x7FFFFFFF00000003uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x0000000000000003uLL}, +{0x7FFFFFFF00000003uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0x7FFFFFFF00000003uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x7FFFFFFF00000003uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x7FFFFFFF00000003uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000003uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000003uLL}, +{0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000000uLL}, +{0x7FFFFFFF00000010uLL, 0x0000000000000002uLL, 0x3FFFFFFF80000008uLL, 0x0000000000000000uLL}, +{0x7FFFFFFF00000010uLL, 0x0000000000000003uLL, 0x2AAAAAAA5555555AuLL, 0x0000000000000002uLL}, +{0x7FFFFFFF00000010uLL, 0x0000000000000010uLL, 0x07FFFFFFF0000001uLL, 0x0000000000000000uLL}, +{0x7FFFFFFF00000010uLL, 0x00000000078644FAuLL, 0x0000001102D8BD5CuLL, 0x0000000003E2A438uLL}, +{0x7FFFFFFF00000010uLL, 0x000000000747AE14uLL, 0x000000119519529AuLL, 0x00000000052AE008uLL}, +{0x7FFFFFFF00000010uLL, 0x000000007FFFFFFFuLL, 0x0000000100000000uLL, 0x0000000000000010uLL}, +{0x7FFFFFFF00000010uLL, 0x0000000080000000uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000010uLL}, +{0x7FFFFFFF00000010uLL, 0x00000000FFFFFFFDuLL, 0x0000000080000000uLL, 0x0000000080000010uLL}, +{0x7FFFFFFF00000010uLL, 0x00000000FFFFFFFEuLL, 0x0000000080000000uLL, 0x0000000000000010uLL}, +{0x7FFFFFFF00000010uLL, 0x00000000FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x000000008000000FuLL}, +{0x7FFFFFFF00000010uLL, 0x0000000100000000uLL, 0x000000007FFFFFFFuLL, 0x0000000000000010uLL}, +{0x7FFFFFFF00000010uLL, 0x0000000100000001uLL, 0x000000007FFFFFFEuLL, 0x0000000080000012uLL}, +{0x7FFFFFFF00000010uLL, 0x0000000100000002uLL, 0x000000007FFFFFFEuLL, 0x0000000000000014uLL}, +{0x7FFFFFFF00000010uLL, 0x0000000100000003uLL, 0x000000007FFFFFFDuLL, 0x0000000080000019uLL}, +{0x7FFFFFFF00000010uLL, 0x0000000100000010uLL, 0x000000007FFFFFF7uLL, 0x00000000000000A0uLL}, +{0x7FFFFFFF00000010uLL, 0x00000001078644FAuLL, 0x000000007C585DADuLL, 0x000000005544911EuLL}, +{0x7FFFFFFF00000010uLL, 0x000000010747AE14uLL, 0x000000007C75ED2CuLL, 0x00000000246190A0uLL}, +{0x7FFFFFFF00000010uLL, 0x000000017FFFFFFFuLL, 0x0000000055555554uLL, 0x0000000155555564uLL}, +{0x7FFFFFFF00000010uLL, 0x0000000180000000uLL, 0x0000000055555554uLL, 0x0000000100000010uLL}, +{0x7FFFFFFF00000010uLL, 0x00000001FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000001C000000DuLL}, +{0x7FFFFFFF00000010uLL, 0x00000001FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x000000018000000EuLL}, +{0x7FFFFFFF00000010uLL, 0x00000001FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x000000014000000FuLL}, +{0x7FFFFFFF00000010uLL, 0x0000000200000000uLL, 0x000000003FFFFFFFuLL, 0x0000000100000010uLL}, +{0x7FFFFFFF00000010uLL, 0x0000000200000001uLL, 0x000000003FFFFFFFuLL, 0x00000000C0000011uLL}, +{0x7FFFFFFF00000010uLL, 0x0000000200000002uLL, 0x000000003FFFFFFFuLL, 0x0000000080000012uLL}, +{0x7FFFFFFF00000010uLL, 0x0000000200000003uLL, 0x000000003FFFFFFFuLL, 0x0000000040000013uLL}, +{0x7FFFFFFF00000010uLL, 0x0000000200000010uLL, 0x000000003FFFFFFDuLL, 0x0000000100000040uLL}, +{0x7FFFFFFF00000010uLL, 0x00000002078644FAuLL, 0x000000003F12B424uLL, 0x00000001290A84E8uLL}, +{0x7FFFFFFF00000010uLL, 0x000000020747AE14uLL, 0x000000003F1A4E53uLL, 0x0000000032B07794uLL}, +{0x7FFFFFFF00000010uLL, 0x000000027FFFFFFFuLL, 0x0000000033333332uLL, 0x0000000233333342uLL}, +{0x7FFFFFFF00000010uLL, 0x0000000280000000uLL, 0x0000000033333332uLL, 0x0000000200000010uLL}, +{0x7FFFFFFF00000010uLL, 0x00000002FFFFFFFDuLL, 0x000000002AAAAAAAuLL, 0x000000018000000EuLL}, +{0x7FFFFFFF00000010uLL, 0x00000002FFFFFFFEuLL, 0x000000002AAAAAAAuLL, 0x0000000155555564uLL}, +{0x7FFFFFFF00000010uLL, 0x00000002FFFFFFFFuLL, 0x000000002AAAAAAAuLL, 0x000000012AAAAABAuLL}, +{0x7FFFFFFF00000010uLL, 0x0000000300000000uLL, 0x000000002AAAAAAAuLL, 0x0000000100000010uLL}, +{0x7FFFFFFF00000010uLL, 0x0000000300000001uLL, 0x000000002AAAAAAAuLL, 0x00000000D5555566uLL}, +{0x7FFFFFFF00000010uLL, 0x0000000300000002uLL, 0x000000002AAAAAAAuLL, 0x00000000AAAAAABCuLL}, +{0x7FFFFFFF00000010uLL, 0x0000000300000003uLL, 0x000000002AAAAAAAuLL, 0x0000000080000012uLL}, +{0x7FFFFFFF00000010uLL, 0x0000000300000010uLL, 0x000000002AAAAAA9uLL, 0x0000000155555580uLL}, +{0x7FFFFFFF00000010uLL, 0x00000003078644FAuLL, 0x000000002A40B0A3uLL, 0x00000002A39634E2uLL}, +{0x7FFFFFFF00000010uLL, 0x000000030747AE14uLL, 0x000000002A4419E3uLL, 0x000000000620B054uLL}, +{0x7FFFFFFF00000010uLL, 0x000000037FFFFFFFuLL, 0x0000000024924924uLL, 0x0000000124924934uLL}, +{0x7FFFFFFF00000010uLL, 0x0000000380000000uLL, 0x0000000024924924uLL, 0x0000000100000010uLL}, +{0x7FFFFFFF00000010uLL, 0x00000003FFFFFFFDuLL, 0x000000001FFFFFFFuLL, 0x000000036000000DuLL}, +{0x7FFFFFFF00000010uLL, 0x00000003FFFFFFFEuLL, 0x000000001FFFFFFFuLL, 0x000000034000000EuLL}, +{0x7FFFFFFF00000010uLL, 0x00000003FFFFFFFFuLL, 0x000000001FFFFFFFuLL, 0x000000032000000FuLL}, +{0x7FFFFFFF00000010uLL, 0x0000001000000000uLL, 0x0000000007FFFFFFuLL, 0x0000000F00000010uLL}, +{0x7FFFFFFF00000010uLL, 0x0000001000000001uLL, 0x0000000007FFFFFFuLL, 0x0000000EF8000011uLL}, +{0x7FFFFFFF00000010uLL, 0x0000001000000002uLL, 0x0000000007FFFFFFuLL, 0x0000000EF0000012uLL}, +{0x7FFFFFFF00000010uLL, 0x0000001000000003uLL, 0x0000000007FFFFFFuLL, 0x0000000EE8000013uLL}, +{0x7FFFFFFF00000010uLL, 0x0000001000000010uLL, 0x0000000007FFFFFFuLL, 0x0000000E80000020uLL}, +{0x7FFFFFFF00000010uLL, 0x00000010078644FAuLL, 0x0000000007FC3EA1uLL, 0x0000000903C212D6uLL}, +{0x7FFFFFFF00000010uLL, 0x000000100747AE14uLL, 0x0000000007FC5DD0uLL, 0x0000000223D54BD0uLL}, +{0x7FFFFFFF00000010uLL, 0x000000107FFFFFFFuLL, 0x0000000007C1F07CuLL, 0x0000000107C1F08CuLL}, +{0x7FFFFFFF00000010uLL, 0x0000001080000000uLL, 0x0000000007C1F07CuLL, 0x0000000100000010uLL}, +{0x7FFFFFFF00000010uLL, 0x00000010FFFFFFFDuLL, 0x0000000007878787uLL, 0x00000008169696A5uLL}, +{0x7FFFFFFF00000010uLL, 0x00000010FFFFFFFEuLL, 0x0000000007878787uLL, 0x000000080F0F0F1EuLL}, +{0x7FFFFFFF00000010uLL, 0x00000010FFFFFFFFuLL, 0x0000000007878787uLL, 0x0000000807878797uLL}, +{0x7FFFFFFF00000010uLL, 0x078644FA00000000uLL, 0x0000000000000011uLL, 0x00156B6500000010uLL}, +{0x7FFFFFFF00000010uLL, 0x078644FA00000001uLL, 0x0000000000000011uLL, 0x00156B64FFFFFFFFuLL}, +{0x7FFFFFFF00000010uLL, 0x078644FA00000002uLL, 0x0000000000000011uLL, 0x00156B64FFFFFFEEuLL}, +{0x7FFFFFFF00000010uLL, 0x078644FA00000003uLL, 0x0000000000000011uLL, 0x00156B64FFFFFFDDuLL}, +{0x7FFFFFFF00000010uLL, 0x078644FA00000010uLL, 0x0000000000000011uLL, 0x00156B64FFFFFF00uLL}, +{0x7FFFFFFF00000010uLL, 0x078644FA078644FAuLL, 0x0000000000000011uLL, 0x00156B6480156B76uLL}, +{0x7FFFFFFF00000010uLL, 0x078644FA0747AE14uLL, 0x0000000000000011uLL, 0x00156B64843D70BCuLL}, +{0x7FFFFFFF00000010uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5C80000021uLL}, +{0x7FFFFFFF00000010uLL, 0x078644FA80000000uLL, 0x0000000000000011uLL, 0x00156B5C80000010uLL}, +{0x7FFFFFFF00000010uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000011uLL, 0x00156B5400000043uLL}, +{0x7FFFFFFF00000010uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000011uLL, 0x00156B5400000032uLL}, +{0x7FFFFFFF00000010uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5400000021uLL}, +{0x7FFFFFFF00000010uLL, 0x0747AE1400000000uLL, 0x0000000000000011uLL, 0x043D70AB00000010uLL}, +{0x7FFFFFFF00000010uLL, 0x0747AE1400000001uLL, 0x0000000000000011uLL, 0x043D70AAFFFFFFFFuLL}, +{0x7FFFFFFF00000010uLL, 0x0747AE1400000002uLL, 0x0000000000000011uLL, 0x043D70AAFFFFFFEEuLL}, +{0x7FFFFFFF00000010uLL, 0x0747AE1400000003uLL, 0x0000000000000011uLL, 0x043D70AAFFFFFFDDuLL}, +{0x7FFFFFFF00000010uLL, 0x0747AE1400000010uLL, 0x0000000000000011uLL, 0x043D70AAFFFFFF00uLL}, +{0x7FFFFFFF00000010uLL, 0x0747AE14078644FAuLL, 0x0000000000000011uLL, 0x043D70AA80156B76uLL}, +{0x7FFFFFFF00000010uLL, 0x0747AE140747AE14uLL, 0x0000000000000011uLL, 0x043D70AA843D70BCuLL}, +{0x7FFFFFFF00000010uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000011uLL, 0x043D70A280000021uLL}, +{0x7FFFFFFF00000010uLL, 0x0747AE1480000000uLL, 0x0000000000000011uLL, 0x043D70A280000010uLL}, +{0x7FFFFFFF00000010uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000011uLL, 0x043D709A00000043uLL}, +{0x7FFFFFFF00000010uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000011uLL, 0x043D709A00000032uLL}, +{0x7FFFFFFF00000010uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000011uLL, 0x043D709A00000021uLL}, +{0x7FFFFFFF00000010uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x0000000000000010uLL}, +{0x7FFFFFFF00000010uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x000000000000000FuLL}, +{0x7FFFFFFF00000010uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x000000000000000EuLL}, +{0x7FFFFFFF00000010uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x000000000000000DuLL}, +{0x7FFFFFFF00000010uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x7FFFFFFF00000010uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF00000010uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF00000010uLL}, +{0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL}, +{0x7FFFFFFF078644FAuLL, 0x0000000000000002uLL, 0x3FFFFFFF83C3227DuLL, 0x0000000000000000uLL}, +{0x7FFFFFFF078644FAuLL, 0x0000000000000003uLL, 0x2AAAAAAA57D76C53uLL, 0x0000000000000001uLL}, +{0x7FFFFFFF078644FAuLL, 0x0000000000000010uLL, 0x07FFFFFFF078644FuLL, 0x000000000000000AuLL}, +{0x7FFFFFFF078644FAuLL, 0x00000000078644FAuLL, 0x0000001102D8BD5DuLL, 0x0000000003E2A428uLL}, +{0x7FFFFFFF078644FAuLL, 0x000000000747AE14uLL, 0x000000119519529BuLL, 0x00000000056976DEuLL}, +{0x7FFFFFFF078644FAuLL, 0x000000007FFFFFFFuLL, 0x0000000100000000uLL, 0x00000000078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0x0000000080000000uLL, 0x00000000FFFFFFFEuLL, 0x00000000078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0x00000000FFFFFFFDuLL, 0x0000000080000000uLL, 0x00000000878644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0x00000000FFFFFFFEuLL, 0x0000000080000000uLL, 0x00000000078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0x00000000FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x00000000878644F9uLL}, +{0x7FFFFFFF078644FAuLL, 0x0000000100000000uLL, 0x000000007FFFFFFFuLL, 0x00000000078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0x0000000100000001uLL, 0x000000007FFFFFFEuLL, 0x00000000878644FCuLL}, +{0x7FFFFFFF078644FAuLL, 0x0000000100000002uLL, 0x000000007FFFFFFEuLL, 0x00000000078644FEuLL}, +{0x7FFFFFFF078644FAuLL, 0x0000000100000003uLL, 0x000000007FFFFFFDuLL, 0x0000000087864503uLL}, +{0x7FFFFFFF078644FAuLL, 0x0000000100000010uLL, 0x000000007FFFFFF7uLL, 0x000000000786458AuLL}, +{0x7FFFFFFF078644FAuLL, 0x00000001078644FAuLL, 0x000000007C585DADuLL, 0x000000005CCAD608uLL}, +{0x7FFFFFFF078644FAuLL, 0x000000010747AE14uLL, 0x000000007C75ED2CuLL, 0x000000002BE7D58AuLL}, +{0x7FFFFFFF078644FAuLL, 0x000000017FFFFFFFuLL, 0x0000000055555554uLL, 0x000000015CDB9A4EuLL}, +{0x7FFFFFFF078644FAuLL, 0x0000000180000000uLL, 0x0000000055555554uLL, 0x00000001078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0x00000001FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000001C78644F7uLL}, +{0x7FFFFFFF078644FAuLL, 0x00000001FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x00000001878644F8uLL}, +{0x7FFFFFFF078644FAuLL, 0x00000001FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x00000001478644F9uLL}, +{0x7FFFFFFF078644FAuLL, 0x0000000200000000uLL, 0x000000003FFFFFFFuLL, 0x00000001078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0x0000000200000001uLL, 0x000000003FFFFFFFuLL, 0x00000000C78644FBuLL}, +{0x7FFFFFFF078644FAuLL, 0x0000000200000002uLL, 0x000000003FFFFFFFuLL, 0x00000000878644FCuLL}, +{0x7FFFFFFF078644FAuLL, 0x0000000200000003uLL, 0x000000003FFFFFFFuLL, 0x00000000478644FDuLL}, +{0x7FFFFFFF078644FAuLL, 0x0000000200000010uLL, 0x000000003FFFFFFDuLL, 0x000000010786452AuLL}, +{0x7FFFFFFF078644FAuLL, 0x00000002078644FAuLL, 0x000000003F12B424uLL, 0x000000013090C9D2uLL}, +{0x7FFFFFFF078644FAuLL, 0x000000020747AE14uLL, 0x000000003F1A4E53uLL, 0x000000003A36BC7EuLL}, +{0x7FFFFFFF078644FAuLL, 0x000000027FFFFFFFuLL, 0x0000000033333332uLL, 0x000000023AB9782CuLL}, +{0x7FFFFFFF078644FAuLL, 0x0000000280000000uLL, 0x0000000033333332uLL, 0x00000002078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0x00000002FFFFFFFDuLL, 0x000000002AAAAAAAuLL, 0x00000001878644F8uLL}, +{0x7FFFFFFF078644FAuLL, 0x00000002FFFFFFFEuLL, 0x000000002AAAAAAAuLL, 0x000000015CDB9A4EuLL}, +{0x7FFFFFFF078644FAuLL, 0x00000002FFFFFFFFuLL, 0x000000002AAAAAAAuLL, 0x000000013230EFA4uLL}, +{0x7FFFFFFF078644FAuLL, 0x0000000300000000uLL, 0x000000002AAAAAAAuLL, 0x00000001078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0x0000000300000001uLL, 0x000000002AAAAAAAuLL, 0x00000000DCDB9A50uLL}, +{0x7FFFFFFF078644FAuLL, 0x0000000300000002uLL, 0x000000002AAAAAAAuLL, 0x00000000B230EFA6uLL}, +{0x7FFFFFFF078644FAuLL, 0x0000000300000003uLL, 0x000000002AAAAAAAuLL, 0x00000000878644FCuLL}, +{0x7FFFFFFF078644FAuLL, 0x0000000300000010uLL, 0x000000002AAAAAA9uLL, 0x000000015CDB9A6AuLL}, +{0x7FFFFFFF078644FAuLL, 0x00000003078644FAuLL, 0x000000002A40B0A3uLL, 0x00000002AB1C79CCuLL}, +{0x7FFFFFFF078644FAuLL, 0x000000030747AE14uLL, 0x000000002A4419E3uLL, 0x000000000DA6F53EuLL}, +{0x7FFFFFFF078644FAuLL, 0x000000037FFFFFFFuLL, 0x0000000024924924uLL, 0x000000012C188E1EuLL}, +{0x7FFFFFFF078644FAuLL, 0x0000000380000000uLL, 0x0000000024924924uLL, 0x00000001078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0x00000003FFFFFFFDuLL, 0x000000001FFFFFFFuLL, 0x00000003678644F7uLL}, +{0x7FFFFFFF078644FAuLL, 0x00000003FFFFFFFEuLL, 0x000000001FFFFFFFuLL, 0x00000003478644F8uLL}, +{0x7FFFFFFF078644FAuLL, 0x00000003FFFFFFFFuLL, 0x000000001FFFFFFFuLL, 0x00000003278644F9uLL}, +{0x7FFFFFFF078644FAuLL, 0x0000001000000000uLL, 0x0000000007FFFFFFuLL, 0x0000000F078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0x0000001000000001uLL, 0x0000000007FFFFFFuLL, 0x0000000EFF8644FBuLL}, +{0x7FFFFFFF078644FAuLL, 0x0000001000000002uLL, 0x0000000007FFFFFFuLL, 0x0000000EF78644FCuLL}, +{0x7FFFFFFF078644FAuLL, 0x0000001000000003uLL, 0x0000000007FFFFFFuLL, 0x0000000EEF8644FDuLL}, +{0x7FFFFFFF078644FAuLL, 0x0000001000000010uLL, 0x0000000007FFFFFFuLL, 0x0000000E8786450AuLL}, +{0x7FFFFFFF078644FAuLL, 0x00000010078644FAuLL, 0x0000000007FC3EA1uLL, 0x000000090B4857C0uLL}, +{0x7FFFFFFF078644FAuLL, 0x000000100747AE14uLL, 0x0000000007FC5DD0uLL, 0x000000022B5B90BAuLL}, +{0x7FFFFFFF078644FAuLL, 0x000000107FFFFFFFuLL, 0x0000000007C1F07CuLL, 0x000000010F483576uLL}, +{0x7FFFFFFF078644FAuLL, 0x0000001080000000uLL, 0x0000000007C1F07CuLL, 0x00000001078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0x00000010FFFFFFFDuLL, 0x0000000007878787uLL, 0x000000081E1CDB8FuLL}, +{0x7FFFFFFF078644FAuLL, 0x00000010FFFFFFFEuLL, 0x0000000007878787uLL, 0x0000000816955408uLL}, +{0x7FFFFFFF078644FAuLL, 0x00000010FFFFFFFFuLL, 0x0000000007878787uLL, 0x000000080F0DCC81uLL}, +{0x7FFFFFFF078644FAuLL, 0x078644FA00000000uLL, 0x0000000000000011uLL, 0x00156B65078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0x078644FA00000001uLL, 0x0000000000000011uLL, 0x00156B65078644E9uLL}, +{0x7FFFFFFF078644FAuLL, 0x078644FA00000002uLL, 0x0000000000000011uLL, 0x00156B65078644D8uLL}, +{0x7FFFFFFF078644FAuLL, 0x078644FA00000003uLL, 0x0000000000000011uLL, 0x00156B65078644C7uLL}, +{0x7FFFFFFF078644FAuLL, 0x078644FA00000010uLL, 0x0000000000000011uLL, 0x00156B65078643EAuLL}, +{0x7FFFFFFF078644FAuLL, 0x078644FA078644FAuLL, 0x0000000000000011uLL, 0x00156B64879BB060uLL}, +{0x7FFFFFFF078644FAuLL, 0x078644FA0747AE14uLL, 0x0000000000000011uLL, 0x00156B648BC3B5A6uLL}, +{0x7FFFFFFF078644FAuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5C8786450BuLL}, +{0x7FFFFFFF078644FAuLL, 0x078644FA80000000uLL, 0x0000000000000011uLL, 0x00156B5C878644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000011uLL, 0x00156B540786452DuLL}, +{0x7FFFFFFF078644FAuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000011uLL, 0x00156B540786451CuLL}, +{0x7FFFFFFF078644FAuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000011uLL, 0x00156B540786450BuLL}, +{0x7FFFFFFF078644FAuLL, 0x0747AE1400000000uLL, 0x0000000000000011uLL, 0x043D70AB078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0x0747AE1400000001uLL, 0x0000000000000011uLL, 0x043D70AB078644E9uLL}, +{0x7FFFFFFF078644FAuLL, 0x0747AE1400000002uLL, 0x0000000000000011uLL, 0x043D70AB078644D8uLL}, +{0x7FFFFFFF078644FAuLL, 0x0747AE1400000003uLL, 0x0000000000000011uLL, 0x043D70AB078644C7uLL}, +{0x7FFFFFFF078644FAuLL, 0x0747AE1400000010uLL, 0x0000000000000011uLL, 0x043D70AB078643EAuLL}, +{0x7FFFFFFF078644FAuLL, 0x0747AE14078644FAuLL, 0x0000000000000011uLL, 0x043D70AA879BB060uLL}, +{0x7FFFFFFF078644FAuLL, 0x0747AE140747AE14uLL, 0x0000000000000011uLL, 0x043D70AA8BC3B5A6uLL}, +{0x7FFFFFFF078644FAuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000011uLL, 0x043D70A28786450BuLL}, +{0x7FFFFFFF078644FAuLL, 0x0747AE1480000000uLL, 0x0000000000000011uLL, 0x043D70A2878644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000011uLL, 0x043D709A0786452DuLL}, +{0x7FFFFFFF078644FAuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000011uLL, 0x043D709A0786451CuLL}, +{0x7FFFFFFF078644FAuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000011uLL, 0x043D709A0786450BuLL}, +{0x7FFFFFFF078644FAuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x00000000078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x00000000078644F9uLL}, +{0x7FFFFFFF078644FAuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x00000000078644F8uLL}, +{0x7FFFFFFF078644FAuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x00000000078644F7uLL}, +{0x7FFFFFFF078644FAuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x00000000078644EAuLL}, +{0x7FFFFFFF078644FAuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x7FFFFFFF078644FAuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x00000000003E96E6uLL}, +{0x7FFFFFFF078644FAuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF078644FAuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF078644FAuLL}, +{0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000000uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0000000000000002uLL, 0x3FFFFFFF83A3D70AuLL, 0x0000000000000000uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0000000000000003uLL, 0x2AAAAAAA57C28F5CuLL, 0x0000000000000000uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0000000000000010uLL, 0x07FFFFFFF0747AE1uLL, 0x0000000000000004uLL}, +{0x7FFFFFFF0747AE14uLL, 0x00000000078644FAuLL, 0x0000001102D8BD5DuLL, 0x0000000003A40D42uLL}, +{0x7FFFFFFF0747AE14uLL, 0x000000000747AE14uLL, 0x000000119519529BuLL, 0x00000000052ADFF8uLL}, +{0x7FFFFFFF0747AE14uLL, 0x000000007FFFFFFFuLL, 0x0000000100000000uLL, 0x000000000747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0000000080000000uLL, 0x00000000FFFFFFFEuLL, 0x000000000747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x00000000FFFFFFFDuLL, 0x0000000080000000uLL, 0x000000008747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x00000000FFFFFFFEuLL, 0x0000000080000000uLL, 0x000000000747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x00000000FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x000000008747AE13uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0000000100000000uLL, 0x000000007FFFFFFFuLL, 0x000000000747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0000000100000001uLL, 0x000000007FFFFFFEuLL, 0x000000008747AE16uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0000000100000002uLL, 0x000000007FFFFFFEuLL, 0x000000000747AE18uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0000000100000003uLL, 0x000000007FFFFFFDuLL, 0x000000008747AE1DuLL}, +{0x7FFFFFFF0747AE14uLL, 0x0000000100000010uLL, 0x000000007FFFFFF7uLL, 0x000000000747AEA4uLL}, +{0x7FFFFFFF0747AE14uLL, 0x00000001078644FAuLL, 0x000000007C585DADuLL, 0x000000005C8C3F22uLL}, +{0x7FFFFFFF0747AE14uLL, 0x000000010747AE14uLL, 0x000000007C75ED2CuLL, 0x000000002BA93EA4uLL}, +{0x7FFFFFFF0747AE14uLL, 0x000000017FFFFFFFuLL, 0x0000000055555554uLL, 0x000000015C9D0368uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0000000180000000uLL, 0x0000000055555554uLL, 0x000000010747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x00000001FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000001C747AE11uLL}, +{0x7FFFFFFF0747AE14uLL, 0x00000001FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x000000018747AE12uLL}, +{0x7FFFFFFF0747AE14uLL, 0x00000001FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x000000014747AE13uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0000000200000000uLL, 0x000000003FFFFFFFuLL, 0x000000010747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0000000200000001uLL, 0x000000003FFFFFFFuLL, 0x00000000C747AE15uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0000000200000002uLL, 0x000000003FFFFFFFuLL, 0x000000008747AE16uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0000000200000003uLL, 0x000000003FFFFFFFuLL, 0x000000004747AE17uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0000000200000010uLL, 0x000000003FFFFFFDuLL, 0x000000010747AE44uLL}, +{0x7FFFFFFF0747AE14uLL, 0x00000002078644FAuLL, 0x000000003F12B424uLL, 0x00000001305232ECuLL}, +{0x7FFFFFFF0747AE14uLL, 0x000000020747AE14uLL, 0x000000003F1A4E53uLL, 0x0000000039F82598uLL}, +{0x7FFFFFFF0747AE14uLL, 0x000000027FFFFFFFuLL, 0x0000000033333332uLL, 0x000000023A7AE146uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0000000280000000uLL, 0x0000000033333332uLL, 0x000000020747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x00000002FFFFFFFDuLL, 0x000000002AAAAAAAuLL, 0x000000018747AE12uLL}, +{0x7FFFFFFF0747AE14uLL, 0x00000002FFFFFFFEuLL, 0x000000002AAAAAAAuLL, 0x000000015C9D0368uLL}, +{0x7FFFFFFF0747AE14uLL, 0x00000002FFFFFFFFuLL, 0x000000002AAAAAAAuLL, 0x0000000131F258BEuLL}, +{0x7FFFFFFF0747AE14uLL, 0x0000000300000000uLL, 0x000000002AAAAAAAuLL, 0x000000010747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0000000300000001uLL, 0x000000002AAAAAAAuLL, 0x00000000DC9D036AuLL}, +{0x7FFFFFFF0747AE14uLL, 0x0000000300000002uLL, 0x000000002AAAAAAAuLL, 0x00000000B1F258C0uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0000000300000003uLL, 0x000000002AAAAAAAuLL, 0x000000008747AE16uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0000000300000010uLL, 0x000000002AAAAAA9uLL, 0x000000015C9D0384uLL}, +{0x7FFFFFFF0747AE14uLL, 0x00000003078644FAuLL, 0x000000002A40B0A3uLL, 0x00000002AADDE2E6uLL}, +{0x7FFFFFFF0747AE14uLL, 0x000000030747AE14uLL, 0x000000002A4419E3uLL, 0x000000000D685E58uLL}, +{0x7FFFFFFF0747AE14uLL, 0x000000037FFFFFFFuLL, 0x0000000024924924uLL, 0x000000012BD9F738uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0000000380000000uLL, 0x0000000024924924uLL, 0x000000010747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x00000003FFFFFFFDuLL, 0x000000001FFFFFFFuLL, 0x000000036747AE11uLL}, +{0x7FFFFFFF0747AE14uLL, 0x00000003FFFFFFFEuLL, 0x000000001FFFFFFFuLL, 0x000000034747AE12uLL}, +{0x7FFFFFFF0747AE14uLL, 0x00000003FFFFFFFFuLL, 0x000000001FFFFFFFuLL, 0x000000032747AE13uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0000001000000000uLL, 0x0000000007FFFFFFuLL, 0x0000000F0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0000001000000001uLL, 0x0000000007FFFFFFuLL, 0x0000000EFF47AE15uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0000001000000002uLL, 0x0000000007FFFFFFuLL, 0x0000000EF747AE16uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0000001000000003uLL, 0x0000000007FFFFFFuLL, 0x0000000EEF47AE17uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0000001000000010uLL, 0x0000000007FFFFFFuLL, 0x0000000E8747AE24uLL}, +{0x7FFFFFFF0747AE14uLL, 0x00000010078644FAuLL, 0x0000000007FC3EA1uLL, 0x000000090B09C0DAuLL}, +{0x7FFFFFFF0747AE14uLL, 0x000000100747AE14uLL, 0x0000000007FC5DD0uLL, 0x000000022B1CF9D4uLL}, +{0x7FFFFFFF0747AE14uLL, 0x000000107FFFFFFFuLL, 0x0000000007C1F07CuLL, 0x000000010F099E90uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0000001080000000uLL, 0x0000000007C1F07CuLL, 0x000000010747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x00000010FFFFFFFDuLL, 0x0000000007878787uLL, 0x000000081DDE44A9uLL}, +{0x7FFFFFFF0747AE14uLL, 0x00000010FFFFFFFEuLL, 0x0000000007878787uLL, 0x000000081656BD22uLL}, +{0x7FFFFFFF0747AE14uLL, 0x00000010FFFFFFFFuLL, 0x0000000007878787uLL, 0x000000080ECF359BuLL}, +{0x7FFFFFFF0747AE14uLL, 0x078644FA00000000uLL, 0x0000000000000011uLL, 0x00156B650747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x078644FA00000001uLL, 0x0000000000000011uLL, 0x00156B650747AE03uLL}, +{0x7FFFFFFF0747AE14uLL, 0x078644FA00000002uLL, 0x0000000000000011uLL, 0x00156B650747ADF2uLL}, +{0x7FFFFFFF0747AE14uLL, 0x078644FA00000003uLL, 0x0000000000000011uLL, 0x00156B650747ADE1uLL}, +{0x7FFFFFFF0747AE14uLL, 0x078644FA00000010uLL, 0x0000000000000011uLL, 0x00156B650747AD04uLL}, +{0x7FFFFFFF0747AE14uLL, 0x078644FA078644FAuLL, 0x0000000000000011uLL, 0x00156B64875D197AuLL}, +{0x7FFFFFFF0747AE14uLL, 0x078644FA0747AE14uLL, 0x0000000000000011uLL, 0x00156B648B851EC0uLL}, +{0x7FFFFFFF0747AE14uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5C8747AE25uLL}, +{0x7FFFFFFF0747AE14uLL, 0x078644FA80000000uLL, 0x0000000000000011uLL, 0x00156B5C8747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000011uLL, 0x00156B540747AE47uLL}, +{0x7FFFFFFF0747AE14uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000011uLL, 0x00156B540747AE36uLL}, +{0x7FFFFFFF0747AE14uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000011uLL, 0x00156B540747AE25uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0747AE1400000000uLL, 0x0000000000000011uLL, 0x043D70AB0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0747AE1400000001uLL, 0x0000000000000011uLL, 0x043D70AB0747AE03uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0747AE1400000002uLL, 0x0000000000000011uLL, 0x043D70AB0747ADF2uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0747AE1400000003uLL, 0x0000000000000011uLL, 0x043D70AB0747ADE1uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0747AE1400000010uLL, 0x0000000000000011uLL, 0x043D70AB0747AD04uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0747AE14078644FAuLL, 0x0000000000000011uLL, 0x043D70AA875D197AuLL}, +{0x7FFFFFFF0747AE14uLL, 0x0747AE140747AE14uLL, 0x0000000000000011uLL, 0x043D70AA8B851EC0uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000011uLL, 0x043D70A28747AE25uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0747AE1480000000uLL, 0x0000000000000011uLL, 0x043D70A28747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000011uLL, 0x043D709A0747AE47uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000011uLL, 0x043D709A0747AE36uLL}, +{0x7FFFFFFF0747AE14uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000011uLL, 0x043D709A0747AE25uLL}, +{0x7FFFFFFF0747AE14uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x000000000747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x000000000747AE13uLL}, +{0x7FFFFFFF0747AE14uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x000000000747AE12uLL}, +{0x7FFFFFFF0747AE14uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x000000000747AE11uLL}, +{0x7FFFFFFF0747AE14uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x000000000747AE04uLL}, +{0x7FFFFFFF0747AE14uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x7FFFFFFF0747AE14uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF0747AE14uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF0747AE14uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000002uLL, 0x3FFFFFFFBFFFFFFFuLL, 0x0000000000000001uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000003uLL, 0x2AAAAAAA7FFFFFFFuLL, 0x0000000000000002uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000010uLL, 0x07FFFFFFF7FFFFFFuLL, 0x000000000000000FuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x00000000078644FAuLL, 0x0000001102D8BD6DuLL, 0x0000000003F80F8DuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x000000000747AE14uLL, 0x00000011951952ACuLL, 0x000000000220A28FuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x0000000100000001uLL, 0x0000000000000000uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0000000080000000uLL, 0x00000000FFFFFFFEuLL, 0x000000007FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x00000000FFFFFFFDuLL, 0x0000000080000001uLL, 0x0000000000000002uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x0000000080000000uLL, 0x000000007FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x00000000FFFFFFFEuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0000000100000000uLL, 0x000000007FFFFFFFuLL, 0x000000007FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0000000100000001uLL, 0x000000007FFFFFFFuLL, 0x0000000000000000uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0000000100000002uLL, 0x000000007FFFFFFEuLL, 0x0000000080000003uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0000000100000003uLL, 0x000000007FFFFFFEuLL, 0x0000000000000005uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0000000100000010uLL, 0x000000007FFFFFF7uLL, 0x000000008000008FuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x00000001078644FAuLL, 0x000000007C585DADuLL, 0x00000000D544910DuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x000000010747AE14uLL, 0x000000007C75ED2CuLL, 0x00000000A461908FuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x000000017FFFFFFFuLL, 0x0000000055555555uLL, 0x0000000055555554uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0000000180000000uLL, 0x0000000055555554uLL, 0x000000017FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x00000001FFFFFFFDuLL, 0x0000000040000000uLL, 0x000000003FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x00000001FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x00000001FFFFFFFDuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x00000001FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x00000001BFFFFFFEuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0000000200000000uLL, 0x000000003FFFFFFFuLL, 0x000000017FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0000000200000001uLL, 0x000000003FFFFFFFuLL, 0x0000000140000000uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0000000200000002uLL, 0x000000003FFFFFFFuLL, 0x0000000100000001uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0000000200000003uLL, 0x000000003FFFFFFFuLL, 0x00000000C0000002uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0000000200000010uLL, 0x000000003FFFFFFDuLL, 0x000000018000002FuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x00000002078644FAuLL, 0x000000003F12B424uLL, 0x00000001A90A84D7uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x000000020747AE14uLL, 0x000000003F1A4E53uLL, 0x00000000B2B07783uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x000000027FFFFFFFuLL, 0x0000000033333333uLL, 0x0000000033333332uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0000000280000000uLL, 0x0000000033333332uLL, 0x000000027FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x00000002FFFFFFFDuLL, 0x000000002AAAAAAAuLL, 0x00000001FFFFFFFDuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x00000002FFFFFFFEuLL, 0x000000002AAAAAAAuLL, 0x00000001D5555553uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x00000002FFFFFFFFuLL, 0x000000002AAAAAAAuLL, 0x00000001AAAAAAA9uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0000000300000000uLL, 0x000000002AAAAAAAuLL, 0x000000017FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0000000300000001uLL, 0x000000002AAAAAAAuLL, 0x0000000155555555uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0000000300000002uLL, 0x000000002AAAAAAAuLL, 0x000000012AAAAAABuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0000000300000003uLL, 0x000000002AAAAAAAuLL, 0x0000000100000001uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0000000300000010uLL, 0x000000002AAAAAA9uLL, 0x00000001D555556FuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x00000003078644FAuLL, 0x000000002A40B0A4uLL, 0x000000001C0FEFD7uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x000000030747AE14uLL, 0x000000002A4419E3uLL, 0x000000008620B043uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x000000037FFFFFFFuLL, 0x0000000024924924uLL, 0x00000001A4924923uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0000000380000000uLL, 0x0000000024924924uLL, 0x000000017FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x00000003FFFFFFFDuLL, 0x000000001FFFFFFFuLL, 0x00000003DFFFFFFCuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x00000003FFFFFFFEuLL, 0x000000001FFFFFFFuLL, 0x00000003BFFFFFFDuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x00000003FFFFFFFFuLL, 0x000000001FFFFFFFuLL, 0x000000039FFFFFFEuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0000001000000000uLL, 0x0000000007FFFFFFuLL, 0x0000000F7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0000001000000001uLL, 0x0000000007FFFFFFuLL, 0x0000000F78000000uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0000001000000002uLL, 0x0000000007FFFFFFuLL, 0x0000000F70000001uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0000001000000003uLL, 0x0000000007FFFFFFuLL, 0x0000000F68000002uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0000001000000010uLL, 0x0000000007FFFFFFuLL, 0x0000000F0000000FuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x00000010078644FAuLL, 0x0000000007FC3EA1uLL, 0x0000000983C212C5uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x000000100747AE14uLL, 0x0000000007FC5DD0uLL, 0x00000002A3D54BBFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x000000107FFFFFFFuLL, 0x0000000007C1F07CuLL, 0x0000000187C1F07BuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0000001080000000uLL, 0x0000000007C1F07CuLL, 0x000000017FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x00000010FFFFFFFDuLL, 0x0000000007878787uLL, 0x0000000896969694uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x00000010FFFFFFFEuLL, 0x0000000007878787uLL, 0x000000088F0F0F0DuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x00000010FFFFFFFFuLL, 0x0000000007878787uLL, 0x0000000887878786uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x078644FA00000000uLL, 0x0000000000000011uLL, 0x00156B657FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x078644FA00000001uLL, 0x0000000000000011uLL, 0x00156B657FFFFFEEuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x078644FA00000002uLL, 0x0000000000000011uLL, 0x00156B657FFFFFDDuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x078644FA00000003uLL, 0x0000000000000011uLL, 0x00156B657FFFFFCCuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x078644FA00000010uLL, 0x0000000000000011uLL, 0x00156B657FFFFEEFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x078644FA078644FAuLL, 0x0000000000000011uLL, 0x00156B6500156B65uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x078644FA0747AE14uLL, 0x0000000000000011uLL, 0x00156B65043D70ABuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5D00000010uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x078644FA80000000uLL, 0x0000000000000011uLL, 0x00156B5CFFFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000011uLL, 0x00156B5480000032uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000011uLL, 0x00156B5480000021uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5480000010uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0747AE1400000000uLL, 0x0000000000000011uLL, 0x043D70AB7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0747AE1400000001uLL, 0x0000000000000011uLL, 0x043D70AB7FFFFFEEuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0747AE1400000002uLL, 0x0000000000000011uLL, 0x043D70AB7FFFFFDDuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0747AE1400000003uLL, 0x0000000000000011uLL, 0x043D70AB7FFFFFCCuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0747AE1400000010uLL, 0x0000000000000011uLL, 0x043D70AB7FFFFEEFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0747AE14078644FAuLL, 0x0000000000000011uLL, 0x043D70AB00156B65uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0747AE140747AE14uLL, 0x0000000000000011uLL, 0x043D70AB043D70ABuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000011uLL, 0x043D70A300000010uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0747AE1480000000uLL, 0x0000000000000011uLL, 0x043D70A2FFFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000011uLL, 0x043D709A80000032uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000011uLL, 0x043D709A80000021uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000011uLL, 0x043D709A80000010uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x000000007FFFFFFCuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x000000007FFFFFEFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x000000007879BB05uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x0000000078B851EBuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF7FFFFFFFuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL}, +{0x7FFFFFFF80000000uLL, 0x0000000000000002uLL, 0x3FFFFFFFC0000000uLL, 0x0000000000000000uLL}, +{0x7FFFFFFF80000000uLL, 0x0000000000000003uLL, 0x2AAAAAAA80000000uLL, 0x0000000000000000uLL}, +{0x7FFFFFFF80000000uLL, 0x0000000000000010uLL, 0x07FFFFFFF8000000uLL, 0x0000000000000000uLL}, +{0x7FFFFFFF80000000uLL, 0x00000000078644FAuLL, 0x0000001102D8BD6DuLL, 0x0000000003F80F8EuLL}, +{0x7FFFFFFF80000000uLL, 0x000000000747AE14uLL, 0x00000011951952ACuLL, 0x000000000220A290uLL}, +{0x7FFFFFFF80000000uLL, 0x000000007FFFFFFFuLL, 0x0000000100000001uLL, 0x0000000000000001uLL}, +{0x7FFFFFFF80000000uLL, 0x0000000080000000uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000000uLL}, +{0x7FFFFFFF80000000uLL, 0x00000000FFFFFFFDuLL, 0x0000000080000001uLL, 0x0000000000000003uLL}, +{0x7FFFFFFF80000000uLL, 0x00000000FFFFFFFEuLL, 0x0000000080000000uLL, 0x0000000080000000uLL}, +{0x7FFFFFFF80000000uLL, 0x00000000FFFFFFFFuLL, 0x0000000080000000uLL, 0x0000000000000000uLL}, +{0x7FFFFFFF80000000uLL, 0x0000000100000000uLL, 0x000000007FFFFFFFuLL, 0x0000000080000000uLL}, +{0x7FFFFFFF80000000uLL, 0x0000000100000001uLL, 0x000000007FFFFFFFuLL, 0x0000000000000001uLL}, +{0x7FFFFFFF80000000uLL, 0x0000000100000002uLL, 0x000000007FFFFFFEuLL, 0x0000000080000004uLL}, +{0x7FFFFFFF80000000uLL, 0x0000000100000003uLL, 0x000000007FFFFFFEuLL, 0x0000000000000006uLL}, +{0x7FFFFFFF80000000uLL, 0x0000000100000010uLL, 0x000000007FFFFFF7uLL, 0x0000000080000090uLL}, +{0x7FFFFFFF80000000uLL, 0x00000001078644FAuLL, 0x000000007C585DADuLL, 0x00000000D544910EuLL}, +{0x7FFFFFFF80000000uLL, 0x000000010747AE14uLL, 0x000000007C75ED2CuLL, 0x00000000A4619090uLL}, +{0x7FFFFFFF80000000uLL, 0x000000017FFFFFFFuLL, 0x0000000055555555uLL, 0x0000000055555555uLL}, +{0x7FFFFFFF80000000uLL, 0x0000000180000000uLL, 0x0000000055555555uLL, 0x0000000000000000uLL}, +{0x7FFFFFFF80000000uLL, 0x00000001FFFFFFFDuLL, 0x0000000040000000uLL, 0x0000000040000000uLL}, +{0x7FFFFFFF80000000uLL, 0x00000001FFFFFFFEuLL, 0x0000000040000000uLL, 0x0000000000000000uLL}, +{0x7FFFFFFF80000000uLL, 0x00000001FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x00000001BFFFFFFFuLL}, +{0x7FFFFFFF80000000uLL, 0x0000000200000000uLL, 0x000000003FFFFFFFuLL, 0x0000000180000000uLL}, +{0x7FFFFFFF80000000uLL, 0x0000000200000001uLL, 0x000000003FFFFFFFuLL, 0x0000000140000001uLL}, +{0x7FFFFFFF80000000uLL, 0x0000000200000002uLL, 0x000000003FFFFFFFuLL, 0x0000000100000002uLL}, +{0x7FFFFFFF80000000uLL, 0x0000000200000003uLL, 0x000000003FFFFFFFuLL, 0x00000000C0000003uLL}, +{0x7FFFFFFF80000000uLL, 0x0000000200000010uLL, 0x000000003FFFFFFDuLL, 0x0000000180000030uLL}, +{0x7FFFFFFF80000000uLL, 0x00000002078644FAuLL, 0x000000003F12B424uLL, 0x00000001A90A84D8uLL}, +{0x7FFFFFFF80000000uLL, 0x000000020747AE14uLL, 0x000000003F1A4E53uLL, 0x00000000B2B07784uLL}, +{0x7FFFFFFF80000000uLL, 0x000000027FFFFFFFuLL, 0x0000000033333333uLL, 0x0000000033333333uLL}, +{0x7FFFFFFF80000000uLL, 0x0000000280000000uLL, 0x0000000033333333uLL, 0x0000000000000000uLL}, +{0x7FFFFFFF80000000uLL, 0x00000002FFFFFFFDuLL, 0x000000002AAAAAAAuLL, 0x00000001FFFFFFFEuLL}, +{0x7FFFFFFF80000000uLL, 0x00000002FFFFFFFEuLL, 0x000000002AAAAAAAuLL, 0x00000001D5555554uLL}, +{0x7FFFFFFF80000000uLL, 0x00000002FFFFFFFFuLL, 0x000000002AAAAAAAuLL, 0x00000001AAAAAAAAuLL}, +{0x7FFFFFFF80000000uLL, 0x0000000300000000uLL, 0x000000002AAAAAAAuLL, 0x0000000180000000uLL}, +{0x7FFFFFFF80000000uLL, 0x0000000300000001uLL, 0x000000002AAAAAAAuLL, 0x0000000155555556uLL}, +{0x7FFFFFFF80000000uLL, 0x0000000300000002uLL, 0x000000002AAAAAAAuLL, 0x000000012AAAAAACuLL}, +{0x7FFFFFFF80000000uLL, 0x0000000300000003uLL, 0x000000002AAAAAAAuLL, 0x0000000100000002uLL}, +{0x7FFFFFFF80000000uLL, 0x0000000300000010uLL, 0x000000002AAAAAA9uLL, 0x00000001D5555570uLL}, +{0x7FFFFFFF80000000uLL, 0x00000003078644FAuLL, 0x000000002A40B0A4uLL, 0x000000001C0FEFD8uLL}, +{0x7FFFFFFF80000000uLL, 0x000000030747AE14uLL, 0x000000002A4419E3uLL, 0x000000008620B044uLL}, +{0x7FFFFFFF80000000uLL, 0x000000037FFFFFFFuLL, 0x0000000024924924uLL, 0x00000001A4924924uLL}, +{0x7FFFFFFF80000000uLL, 0x0000000380000000uLL, 0x0000000024924924uLL, 0x0000000180000000uLL}, +{0x7FFFFFFF80000000uLL, 0x00000003FFFFFFFDuLL, 0x000000001FFFFFFFuLL, 0x00000003DFFFFFFDuLL}, +{0x7FFFFFFF80000000uLL, 0x00000003FFFFFFFEuLL, 0x000000001FFFFFFFuLL, 0x00000003BFFFFFFEuLL}, +{0x7FFFFFFF80000000uLL, 0x00000003FFFFFFFFuLL, 0x000000001FFFFFFFuLL, 0x000000039FFFFFFFuLL}, +{0x7FFFFFFF80000000uLL, 0x0000001000000000uLL, 0x0000000007FFFFFFuLL, 0x0000000F80000000uLL}, +{0x7FFFFFFF80000000uLL, 0x0000001000000001uLL, 0x0000000007FFFFFFuLL, 0x0000000F78000001uLL}, +{0x7FFFFFFF80000000uLL, 0x0000001000000002uLL, 0x0000000007FFFFFFuLL, 0x0000000F70000002uLL}, +{0x7FFFFFFF80000000uLL, 0x0000001000000003uLL, 0x0000000007FFFFFFuLL, 0x0000000F68000003uLL}, +{0x7FFFFFFF80000000uLL, 0x0000001000000010uLL, 0x0000000007FFFFFFuLL, 0x0000000F00000010uLL}, +{0x7FFFFFFF80000000uLL, 0x00000010078644FAuLL, 0x0000000007FC3EA1uLL, 0x0000000983C212C6uLL}, +{0x7FFFFFFF80000000uLL, 0x000000100747AE14uLL, 0x0000000007FC5DD0uLL, 0x00000002A3D54BC0uLL}, +{0x7FFFFFFF80000000uLL, 0x000000107FFFFFFFuLL, 0x0000000007C1F07CuLL, 0x0000000187C1F07CuLL}, +{0x7FFFFFFF80000000uLL, 0x0000001080000000uLL, 0x0000000007C1F07CuLL, 0x0000000180000000uLL}, +{0x7FFFFFFF80000000uLL, 0x00000010FFFFFFFDuLL, 0x0000000007878787uLL, 0x0000000896969695uLL}, +{0x7FFFFFFF80000000uLL, 0x00000010FFFFFFFEuLL, 0x0000000007878787uLL, 0x000000088F0F0F0EuLL}, +{0x7FFFFFFF80000000uLL, 0x00000010FFFFFFFFuLL, 0x0000000007878787uLL, 0x0000000887878787uLL}, +{0x7FFFFFFF80000000uLL, 0x078644FA00000000uLL, 0x0000000000000011uLL, 0x00156B6580000000uLL}, +{0x7FFFFFFF80000000uLL, 0x078644FA00000001uLL, 0x0000000000000011uLL, 0x00156B657FFFFFEFuLL}, +{0x7FFFFFFF80000000uLL, 0x078644FA00000002uLL, 0x0000000000000011uLL, 0x00156B657FFFFFDEuLL}, +{0x7FFFFFFF80000000uLL, 0x078644FA00000003uLL, 0x0000000000000011uLL, 0x00156B657FFFFFCDuLL}, +{0x7FFFFFFF80000000uLL, 0x078644FA00000010uLL, 0x0000000000000011uLL, 0x00156B657FFFFEF0uLL}, +{0x7FFFFFFF80000000uLL, 0x078644FA078644FAuLL, 0x0000000000000011uLL, 0x00156B6500156B66uLL}, +{0x7FFFFFFF80000000uLL, 0x078644FA0747AE14uLL, 0x0000000000000011uLL, 0x00156B65043D70ACuLL}, +{0x7FFFFFFF80000000uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5D00000011uLL}, +{0x7FFFFFFF80000000uLL, 0x078644FA80000000uLL, 0x0000000000000011uLL, 0x00156B5D00000000uLL}, +{0x7FFFFFFF80000000uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000011uLL, 0x00156B5480000033uLL}, +{0x7FFFFFFF80000000uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000011uLL, 0x00156B5480000022uLL}, +{0x7FFFFFFF80000000uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5480000011uLL}, +{0x7FFFFFFF80000000uLL, 0x0747AE1400000000uLL, 0x0000000000000011uLL, 0x043D70AB80000000uLL}, +{0x7FFFFFFF80000000uLL, 0x0747AE1400000001uLL, 0x0000000000000011uLL, 0x043D70AB7FFFFFEFuLL}, +{0x7FFFFFFF80000000uLL, 0x0747AE1400000002uLL, 0x0000000000000011uLL, 0x043D70AB7FFFFFDEuLL}, +{0x7FFFFFFF80000000uLL, 0x0747AE1400000003uLL, 0x0000000000000011uLL, 0x043D70AB7FFFFFCDuLL}, +{0x7FFFFFFF80000000uLL, 0x0747AE1400000010uLL, 0x0000000000000011uLL, 0x043D70AB7FFFFEF0uLL}, +{0x7FFFFFFF80000000uLL, 0x0747AE14078644FAuLL, 0x0000000000000011uLL, 0x043D70AB00156B66uLL}, +{0x7FFFFFFF80000000uLL, 0x0747AE140747AE14uLL, 0x0000000000000011uLL, 0x043D70AB043D70ACuLL}, +{0x7FFFFFFF80000000uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000011uLL, 0x043D70A300000011uLL}, +{0x7FFFFFFF80000000uLL, 0x0747AE1480000000uLL, 0x0000000000000011uLL, 0x043D70A300000000uLL}, +{0x7FFFFFFF80000000uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000011uLL, 0x043D709A80000033uLL}, +{0x7FFFFFFF80000000uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000011uLL, 0x043D709A80000022uLL}, +{0x7FFFFFFF80000000uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000011uLL, 0x043D709A80000011uLL}, +{0x7FFFFFFF80000000uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x0000000080000000uLL}, +{0x7FFFFFFF80000000uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0x7FFFFFFF80000000uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x7FFFFFFF80000000uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0x7FFFFFFF80000000uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x000000007FFFFFF0uLL}, +{0x7FFFFFFF80000000uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x000000007879BB06uLL}, +{0x7FFFFFFF80000000uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x0000000078B851ECuLL}, +{0x7FFFFFFF80000000uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x7FFFFFFF80000000uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x7FFFFFFF80000000uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFF80000000uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFF80000000uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000002uLL, 0x3FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000003uLL, 0x2AAAAAAAAAAAAAA9uLL, 0x0000000000000002uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000010uLL, 0x07FFFFFFFFFFFFFFuLL, 0x000000000000000DuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x00000000078644FAuLL, 0x0000001102D8BD7EuLL, 0x00000000040D7AF1uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x000000000747AE14uLL, 0x00000011951952BDuLL, 0x00000000065E1339uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x000000007FFFFFFFuLL, 0x0000000100000001uLL, 0x000000007FFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0000000080000000uLL, 0x00000000FFFFFFFFuLL, 0x000000007FFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x00000000FFFFFFFDuLL, 0x0000000080000001uLL, 0x0000000080000000uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x00000000FFFFFFFEuLL, 0x0000000080000000uLL, 0x00000000FFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x00000000FFFFFFFFuLL, 0x0000000080000000uLL, 0x000000007FFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0000000100000000uLL, 0x000000007FFFFFFFuLL, 0x00000000FFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0000000100000001uLL, 0x000000007FFFFFFFuLL, 0x000000007FFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0000000100000002uLL, 0x000000007FFFFFFEuLL, 0x0000000100000001uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0000000100000003uLL, 0x000000007FFFFFFEuLL, 0x0000000080000003uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0000000100000010uLL, 0x000000007FFFFFF8uLL, 0x000000000000007DuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x00000001078644FAuLL, 0x000000007C585DAEuLL, 0x000000004DBE4C11uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x000000010747AE14uLL, 0x000000007C75ED2DuLL, 0x000000001D19E279uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x000000017FFFFFFFuLL, 0x0000000055555555uLL, 0x00000000D5555552uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0000000180000000uLL, 0x0000000055555555uLL, 0x000000007FFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x00000001FFFFFFFDuLL, 0x0000000040000000uLL, 0x00000000BFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x00000001FFFFFFFEuLL, 0x0000000040000000uLL, 0x000000007FFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x00000001FFFFFFFFuLL, 0x0000000040000000uLL, 0x000000003FFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0000000200000000uLL, 0x000000003FFFFFFFuLL, 0x00000001FFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0000000200000001uLL, 0x000000003FFFFFFFuLL, 0x00000001BFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0000000200000002uLL, 0x000000003FFFFFFFuLL, 0x000000017FFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0000000200000003uLL, 0x000000003FFFFFFFuLL, 0x0000000140000000uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0000000200000010uLL, 0x000000003FFFFFFEuLL, 0x000000000000001DuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x00000002078644FAuLL, 0x000000003F12B425uLL, 0x0000000021843FDBuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x000000020747AE14uLL, 0x000000003F1A4E53uLL, 0x0000000132B07781uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x000000027FFFFFFFuLL, 0x0000000033333333uLL, 0x00000000B3333330uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0000000280000000uLL, 0x0000000033333333uLL, 0x000000007FFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x00000002FFFFFFFDuLL, 0x000000002AAAAAAAuLL, 0x000000027FFFFFFBuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x00000002FFFFFFFEuLL, 0x000000002AAAAAAAuLL, 0x0000000255555551uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x00000002FFFFFFFFuLL, 0x000000002AAAAAAAuLL, 0x000000022AAAAAA7uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0000000300000000uLL, 0x000000002AAAAAAAuLL, 0x00000001FFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0000000300000001uLL, 0x000000002AAAAAAAuLL, 0x00000001D5555553uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0000000300000002uLL, 0x000000002AAAAAAAuLL, 0x00000001AAAAAAA9uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0000000300000003uLL, 0x000000002AAAAAAAuLL, 0x000000017FFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0000000300000010uLL, 0x000000002AAAAAA9uLL, 0x000000025555556DuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x00000003078644FAuLL, 0x000000002A40B0A4uLL, 0x000000009C0FEFD5uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x000000030747AE14uLL, 0x000000002A4419E3uLL, 0x000000010620B041uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x000000037FFFFFFFuLL, 0x0000000024924924uLL, 0x0000000224924921uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0000000380000000uLL, 0x0000000024924924uLL, 0x00000001FFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x00000003FFFFFFFDuLL, 0x0000000020000000uLL, 0x000000005FFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x00000003FFFFFFFEuLL, 0x0000000020000000uLL, 0x000000003FFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x00000003FFFFFFFFuLL, 0x0000000020000000uLL, 0x000000001FFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0000001000000000uLL, 0x0000000007FFFFFFuLL, 0x0000000FFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0000001000000001uLL, 0x0000000007FFFFFFuLL, 0x0000000FF7FFFFFEuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0000001000000002uLL, 0x0000000007FFFFFFuLL, 0x0000000FEFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0000001000000003uLL, 0x0000000007FFFFFFuLL, 0x0000000FE8000000uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0000001000000010uLL, 0x0000000007FFFFFFuLL, 0x0000000F8000000DuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x00000010078644FAuLL, 0x0000000007FC3EA1uLL, 0x0000000A03C212C3uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x000000100747AE14uLL, 0x0000000007FC5DD0uLL, 0x0000000323D54BBDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x000000107FFFFFFFuLL, 0x0000000007C1F07CuLL, 0x0000000207C1F079uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0000001080000000uLL, 0x0000000007C1F07CuLL, 0x00000001FFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x00000010FFFFFFFDuLL, 0x0000000007878787uLL, 0x0000000916969692uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x00000010FFFFFFFEuLL, 0x0000000007878787uLL, 0x000000090F0F0F0BuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x00000010FFFFFFFFuLL, 0x0000000007878787uLL, 0x0000000907878784uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x078644FA00000000uLL, 0x0000000000000011uLL, 0x00156B65FFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x078644FA00000001uLL, 0x0000000000000011uLL, 0x00156B65FFFFFFECuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x078644FA00000002uLL, 0x0000000000000011uLL, 0x00156B65FFFFFFDBuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x078644FA00000003uLL, 0x0000000000000011uLL, 0x00156B65FFFFFFCAuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x078644FA00000010uLL, 0x0000000000000011uLL, 0x00156B65FFFFFEEDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x078644FA078644FAuLL, 0x0000000000000011uLL, 0x00156B6580156B63uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x078644FA0747AE14uLL, 0x0000000000000011uLL, 0x00156B65843D70A9uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5D8000000EuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x078644FA80000000uLL, 0x0000000000000011uLL, 0x00156B5D7FFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000011uLL, 0x00156B5500000030uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000011uLL, 0x00156B550000001FuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000011uLL, 0x00156B550000000EuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0747AE1400000000uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0747AE1400000001uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFFECuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0747AE1400000002uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFFDBuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0747AE1400000003uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFFCAuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0747AE1400000010uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFEEDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0747AE14078644FAuLL, 0x0000000000000011uLL, 0x043D70AB80156B63uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0747AE140747AE14uLL, 0x0000000000000011uLL, 0x043D70AB843D70A9uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000011uLL, 0x043D70A38000000EuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0747AE1480000000uLL, 0x0000000000000011uLL, 0x043D70A37FFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000011uLL, 0x043D709B00000030uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000011uLL, 0x043D709B0000001FuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000011uLL, 0x043D709B0000000EuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFCuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFBuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFAuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFEDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB03uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851E9uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFDuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000002uLL, 0x3FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000003uLL, 0x2AAAAAAAAAAAAAAAuLL, 0x0000000000000000uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000010uLL, 0x07FFFFFFFFFFFFFFuLL, 0x000000000000000EuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x00000000078644FAuLL, 0x0000001102D8BD7EuLL, 0x00000000040D7AF2uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x000000000747AE14uLL, 0x00000011951952BDuLL, 0x00000000065E133AuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x0000000100000002uLL, 0x0000000000000000uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0000000080000000uLL, 0x00000000FFFFFFFFuLL, 0x000000007FFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x00000000FFFFFFFDuLL, 0x0000000080000001uLL, 0x0000000080000001uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x00000000FFFFFFFEuLL, 0x0000000080000001uLL, 0x0000000000000000uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x00000000FFFFFFFFuLL, 0x0000000080000000uLL, 0x000000007FFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0000000100000000uLL, 0x000000007FFFFFFFuLL, 0x00000000FFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0000000100000001uLL, 0x000000007FFFFFFFuLL, 0x000000007FFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0000000100000002uLL, 0x000000007FFFFFFFuLL, 0x0000000000000000uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0000000100000003uLL, 0x000000007FFFFFFEuLL, 0x0000000080000004uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0000000100000010uLL, 0x000000007FFFFFF8uLL, 0x000000000000007EuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x00000001078644FAuLL, 0x000000007C585DAEuLL, 0x000000004DBE4C12uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x000000010747AE14uLL, 0x000000007C75ED2DuLL, 0x000000001D19E27AuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x000000017FFFFFFFuLL, 0x0000000055555555uLL, 0x00000000D5555553uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0000000180000000uLL, 0x0000000055555555uLL, 0x000000007FFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x00000001FFFFFFFDuLL, 0x0000000040000000uLL, 0x00000000BFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x00000001FFFFFFFEuLL, 0x0000000040000000uLL, 0x000000007FFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x00000001FFFFFFFFuLL, 0x0000000040000000uLL, 0x000000003FFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0000000200000000uLL, 0x000000003FFFFFFFuLL, 0x00000001FFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0000000200000001uLL, 0x000000003FFFFFFFuLL, 0x00000001BFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0000000200000002uLL, 0x000000003FFFFFFFuLL, 0x0000000180000000uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0000000200000003uLL, 0x000000003FFFFFFFuLL, 0x0000000140000001uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0000000200000010uLL, 0x000000003FFFFFFEuLL, 0x000000000000001EuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x00000002078644FAuLL, 0x000000003F12B425uLL, 0x0000000021843FDCuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x000000020747AE14uLL, 0x000000003F1A4E53uLL, 0x0000000132B07782uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x000000027FFFFFFFuLL, 0x0000000033333333uLL, 0x00000000B3333331uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0000000280000000uLL, 0x0000000033333333uLL, 0x000000007FFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x00000002FFFFFFFDuLL, 0x000000002AAAAAAAuLL, 0x000000027FFFFFFCuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x00000002FFFFFFFEuLL, 0x000000002AAAAAAAuLL, 0x0000000255555552uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x00000002FFFFFFFFuLL, 0x000000002AAAAAAAuLL, 0x000000022AAAAAA8uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0000000300000000uLL, 0x000000002AAAAAAAuLL, 0x00000001FFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0000000300000001uLL, 0x000000002AAAAAAAuLL, 0x00000001D5555554uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0000000300000002uLL, 0x000000002AAAAAAAuLL, 0x00000001AAAAAAAAuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0000000300000003uLL, 0x000000002AAAAAAAuLL, 0x0000000180000000uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0000000300000010uLL, 0x000000002AAAAAA9uLL, 0x000000025555556EuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x00000003078644FAuLL, 0x000000002A40B0A4uLL, 0x000000009C0FEFD6uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x000000030747AE14uLL, 0x000000002A4419E3uLL, 0x000000010620B042uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x000000037FFFFFFFuLL, 0x0000000024924924uLL, 0x0000000224924922uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0000000380000000uLL, 0x0000000024924924uLL, 0x00000001FFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x00000003FFFFFFFDuLL, 0x0000000020000000uLL, 0x000000005FFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x00000003FFFFFFFEuLL, 0x0000000020000000uLL, 0x000000003FFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x00000003FFFFFFFFuLL, 0x0000000020000000uLL, 0x000000001FFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0000001000000000uLL, 0x0000000007FFFFFFuLL, 0x0000000FFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0000001000000001uLL, 0x0000000007FFFFFFuLL, 0x0000000FF7FFFFFFuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0000001000000002uLL, 0x0000000007FFFFFFuLL, 0x0000000FF0000000uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0000001000000003uLL, 0x0000000007FFFFFFuLL, 0x0000000FE8000001uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0000001000000010uLL, 0x0000000007FFFFFFuLL, 0x0000000F8000000EuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x00000010078644FAuLL, 0x0000000007FC3EA1uLL, 0x0000000A03C212C4uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x000000100747AE14uLL, 0x0000000007FC5DD0uLL, 0x0000000323D54BBEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x000000107FFFFFFFuLL, 0x0000000007C1F07CuLL, 0x0000000207C1F07AuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0000001080000000uLL, 0x0000000007C1F07CuLL, 0x00000001FFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x00000010FFFFFFFDuLL, 0x0000000007878787uLL, 0x0000000916969693uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x00000010FFFFFFFEuLL, 0x0000000007878787uLL, 0x000000090F0F0F0CuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x00000010FFFFFFFFuLL, 0x0000000007878787uLL, 0x0000000907878785uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x078644FA00000000uLL, 0x0000000000000011uLL, 0x00156B65FFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x078644FA00000001uLL, 0x0000000000000011uLL, 0x00156B65FFFFFFEDuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x078644FA00000002uLL, 0x0000000000000011uLL, 0x00156B65FFFFFFDCuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x078644FA00000003uLL, 0x0000000000000011uLL, 0x00156B65FFFFFFCBuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x078644FA00000010uLL, 0x0000000000000011uLL, 0x00156B65FFFFFEEEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x078644FA078644FAuLL, 0x0000000000000011uLL, 0x00156B6580156B64uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x078644FA0747AE14uLL, 0x0000000000000011uLL, 0x00156B65843D70AAuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5D8000000FuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x078644FA80000000uLL, 0x0000000000000011uLL, 0x00156B5D7FFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000011uLL, 0x00156B5500000031uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000011uLL, 0x00156B5500000020uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000011uLL, 0x00156B550000000FuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0747AE1400000000uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0747AE1400000001uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFFEDuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0747AE1400000002uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFFDCuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0747AE1400000003uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFFCBuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0747AE1400000010uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFEEEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0747AE14078644FAuLL, 0x0000000000000011uLL, 0x043D70AB80156B64uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0747AE140747AE14uLL, 0x0000000000000011uLL, 0x043D70AB843D70AAuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000011uLL, 0x043D70A38000000FuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0747AE1480000000uLL, 0x0000000000000011uLL, 0x043D70A37FFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000011uLL, 0x043D709B00000031uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000011uLL, 0x043D709B00000020uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000011uLL, 0x043D709B0000000FuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFCuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFBuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFEEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB04uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EAuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFEuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000002uLL, 0x3FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000003uLL, 0x2AAAAAAAAAAAAAAAuLL, 0x0000000000000001uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000010uLL, 0x07FFFFFFFFFFFFFFuLL, 0x000000000000000FuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x00000000078644FAuLL, 0x0000001102D8BD7EuLL, 0x00000000040D7AF3uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x000000000747AE14uLL, 0x00000011951952BDuLL, 0x00000000065E133BuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x0000000100000002uLL, 0x0000000000000001uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0000000080000000uLL, 0x00000000FFFFFFFFuLL, 0x000000007FFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x00000000FFFFFFFDuLL, 0x0000000080000001uLL, 0x0000000080000002uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x0000000080000001uLL, 0x0000000000000001uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x0000000080000000uLL, 0x000000007FFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0000000100000000uLL, 0x000000007FFFFFFFuLL, 0x00000000FFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0000000100000001uLL, 0x000000007FFFFFFFuLL, 0x0000000080000000uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0000000100000002uLL, 0x000000007FFFFFFFuLL, 0x0000000000000001uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0000000100000003uLL, 0x000000007FFFFFFEuLL, 0x0000000080000005uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0000000100000010uLL, 0x000000007FFFFFF8uLL, 0x000000000000007FuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x00000001078644FAuLL, 0x000000007C585DAEuLL, 0x000000004DBE4C13uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x000000010747AE14uLL, 0x000000007C75ED2DuLL, 0x000000001D19E27BuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x000000017FFFFFFFuLL, 0x0000000055555555uLL, 0x00000000D5555554uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0000000180000000uLL, 0x0000000055555555uLL, 0x000000007FFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x00000001FFFFFFFDuLL, 0x0000000040000000uLL, 0x00000000BFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x00000001FFFFFFFEuLL, 0x0000000040000000uLL, 0x000000007FFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x00000001FFFFFFFFuLL, 0x0000000040000000uLL, 0x000000003FFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0000000200000000uLL, 0x000000003FFFFFFFuLL, 0x00000001FFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0000000200000001uLL, 0x000000003FFFFFFFuLL, 0x00000001C0000000uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0000000200000002uLL, 0x000000003FFFFFFFuLL, 0x0000000180000001uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0000000200000003uLL, 0x000000003FFFFFFFuLL, 0x0000000140000002uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0000000200000010uLL, 0x000000003FFFFFFEuLL, 0x000000000000001FuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x00000002078644FAuLL, 0x000000003F12B425uLL, 0x0000000021843FDDuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x000000020747AE14uLL, 0x000000003F1A4E53uLL, 0x0000000132B07783uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x000000027FFFFFFFuLL, 0x0000000033333333uLL, 0x00000000B3333332uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0000000280000000uLL, 0x0000000033333333uLL, 0x000000007FFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x00000002FFFFFFFDuLL, 0x000000002AAAAAAAuLL, 0x000000027FFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x00000002FFFFFFFEuLL, 0x000000002AAAAAAAuLL, 0x0000000255555553uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x00000002FFFFFFFFuLL, 0x000000002AAAAAAAuLL, 0x000000022AAAAAA9uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0000000300000000uLL, 0x000000002AAAAAAAuLL, 0x00000001FFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0000000300000001uLL, 0x000000002AAAAAAAuLL, 0x00000001D5555555uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0000000300000002uLL, 0x000000002AAAAAAAuLL, 0x00000001AAAAAAABuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0000000300000003uLL, 0x000000002AAAAAAAuLL, 0x0000000180000001uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0000000300000010uLL, 0x000000002AAAAAA9uLL, 0x000000025555556FuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x00000003078644FAuLL, 0x000000002A40B0A4uLL, 0x000000009C0FEFD7uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x000000030747AE14uLL, 0x000000002A4419E3uLL, 0x000000010620B043uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x000000037FFFFFFFuLL, 0x0000000024924924uLL, 0x0000000224924923uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0000000380000000uLL, 0x0000000024924924uLL, 0x00000001FFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x00000003FFFFFFFDuLL, 0x0000000020000000uLL, 0x000000005FFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x00000003FFFFFFFEuLL, 0x0000000020000000uLL, 0x000000003FFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x00000003FFFFFFFFuLL, 0x0000000020000000uLL, 0x000000001FFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0000001000000000uLL, 0x0000000007FFFFFFuLL, 0x0000000FFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0000001000000001uLL, 0x0000000007FFFFFFuLL, 0x0000000FF8000000uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0000001000000002uLL, 0x0000000007FFFFFFuLL, 0x0000000FF0000001uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0000001000000003uLL, 0x0000000007FFFFFFuLL, 0x0000000FE8000002uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0000001000000010uLL, 0x0000000007FFFFFFuLL, 0x0000000F8000000FuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x00000010078644FAuLL, 0x0000000007FC3EA1uLL, 0x0000000A03C212C5uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x000000100747AE14uLL, 0x0000000007FC5DD0uLL, 0x0000000323D54BBFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x000000107FFFFFFFuLL, 0x0000000007C1F07CuLL, 0x0000000207C1F07BuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0000001080000000uLL, 0x0000000007C1F07CuLL, 0x00000001FFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x00000010FFFFFFFDuLL, 0x0000000007878787uLL, 0x0000000916969694uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x00000010FFFFFFFEuLL, 0x0000000007878787uLL, 0x000000090F0F0F0DuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x00000010FFFFFFFFuLL, 0x0000000007878787uLL, 0x0000000907878786uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x078644FA00000000uLL, 0x0000000000000011uLL, 0x00156B65FFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x078644FA00000001uLL, 0x0000000000000011uLL, 0x00156B65FFFFFFEEuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x078644FA00000002uLL, 0x0000000000000011uLL, 0x00156B65FFFFFFDDuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x078644FA00000003uLL, 0x0000000000000011uLL, 0x00156B65FFFFFFCCuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x078644FA00000010uLL, 0x0000000000000011uLL, 0x00156B65FFFFFEEFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x078644FA078644FAuLL, 0x0000000000000011uLL, 0x00156B6580156B65uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x078644FA0747AE14uLL, 0x0000000000000011uLL, 0x00156B65843D70ABuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5D80000010uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x078644FA80000000uLL, 0x0000000000000011uLL, 0x00156B5D7FFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000011uLL, 0x00156B5500000032uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000011uLL, 0x00156B5500000021uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5500000010uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0747AE1400000000uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0747AE1400000001uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFFEEuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0747AE1400000002uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFFDDuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0747AE1400000003uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFFCCuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0747AE1400000010uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFEEFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0747AE14078644FAuLL, 0x0000000000000011uLL, 0x043D70AB80156B65uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0747AE140747AE14uLL, 0x0000000000000011uLL, 0x043D70AB843D70ABuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000011uLL, 0x043D70A380000010uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0747AE1480000000uLL, 0x0000000000000011uLL, 0x043D70A37FFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000011uLL, 0x043D709B00000032uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000011uLL, 0x043D709B00000021uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000011uLL, 0x043D709B00000010uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFCuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFEFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB05uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EBuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000000uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x8000000000000000uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x7FFFFFFFFFFFFFFFuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0x8000000000000000uLL, 0x0000000000000001uLL, 0x8000000000000000uLL, 0x0000000000000000uLL}, +{0x8000000000000000uLL, 0x0000000000000002uLL, 0x4000000000000000uLL, 0x0000000000000000uLL}, +{0x8000000000000000uLL, 0x0000000000000003uLL, 0x2AAAAAAAAAAAAAAAuLL, 0x0000000000000002uLL}, +{0x8000000000000000uLL, 0x0000000000000010uLL, 0x0800000000000000uLL, 0x0000000000000000uLL}, +{0x8000000000000000uLL, 0x00000000078644FAuLL, 0x0000001102D8BD7EuLL, 0x00000000040D7AF4uLL}, +{0x8000000000000000uLL, 0x000000000747AE14uLL, 0x00000011951952BDuLL, 0x00000000065E133CuLL}, +{0x8000000000000000uLL, 0x000000007FFFFFFFuLL, 0x0000000100000002uLL, 0x0000000000000002uLL}, +{0x8000000000000000uLL, 0x0000000080000000uLL, 0x0000000100000000uLL, 0x0000000000000000uLL}, +{0x8000000000000000uLL, 0x00000000FFFFFFFDuLL, 0x0000000080000001uLL, 0x0000000080000003uLL}, +{0x8000000000000000uLL, 0x00000000FFFFFFFEuLL, 0x0000000080000001uLL, 0x0000000000000002uLL}, +{0x8000000000000000uLL, 0x00000000FFFFFFFFuLL, 0x0000000080000000uLL, 0x0000000080000000uLL}, +{0x8000000000000000uLL, 0x0000000100000000uLL, 0x0000000080000000uLL, 0x0000000000000000uLL}, +{0x8000000000000000uLL, 0x0000000100000001uLL, 0x000000007FFFFFFFuLL, 0x0000000080000001uLL}, +{0x8000000000000000uLL, 0x0000000100000002uLL, 0x000000007FFFFFFFuLL, 0x0000000000000002uLL}, +{0x8000000000000000uLL, 0x0000000100000003uLL, 0x000000007FFFFFFEuLL, 0x0000000080000006uLL}, +{0x8000000000000000uLL, 0x0000000100000010uLL, 0x000000007FFFFFF8uLL, 0x0000000000000080uLL}, +{0x8000000000000000uLL, 0x00000001078644FAuLL, 0x000000007C585DAEuLL, 0x000000004DBE4C14uLL}, +{0x8000000000000000uLL, 0x000000010747AE14uLL, 0x000000007C75ED2DuLL, 0x000000001D19E27CuLL}, +{0x8000000000000000uLL, 0x000000017FFFFFFFuLL, 0x0000000055555555uLL, 0x00000000D5555555uLL}, +{0x8000000000000000uLL, 0x0000000180000000uLL, 0x0000000055555555uLL, 0x0000000080000000uLL}, +{0x8000000000000000uLL, 0x00000001FFFFFFFDuLL, 0x0000000040000000uLL, 0x00000000C0000000uLL}, +{0x8000000000000000uLL, 0x00000001FFFFFFFEuLL, 0x0000000040000000uLL, 0x0000000080000000uLL}, +{0x8000000000000000uLL, 0x00000001FFFFFFFFuLL, 0x0000000040000000uLL, 0x0000000040000000uLL}, +{0x8000000000000000uLL, 0x0000000200000000uLL, 0x0000000040000000uLL, 0x0000000000000000uLL}, +{0x8000000000000000uLL, 0x0000000200000001uLL, 0x000000003FFFFFFFuLL, 0x00000001C0000001uLL}, +{0x8000000000000000uLL, 0x0000000200000002uLL, 0x000000003FFFFFFFuLL, 0x0000000180000002uLL}, +{0x8000000000000000uLL, 0x0000000200000003uLL, 0x000000003FFFFFFFuLL, 0x0000000140000003uLL}, +{0x8000000000000000uLL, 0x0000000200000010uLL, 0x000000003FFFFFFEuLL, 0x0000000000000020uLL}, +{0x8000000000000000uLL, 0x00000002078644FAuLL, 0x000000003F12B425uLL, 0x0000000021843FDEuLL}, +{0x8000000000000000uLL, 0x000000020747AE14uLL, 0x000000003F1A4E53uLL, 0x0000000132B07784uLL}, +{0x8000000000000000uLL, 0x000000027FFFFFFFuLL, 0x0000000033333333uLL, 0x00000000B3333333uLL}, +{0x8000000000000000uLL, 0x0000000280000000uLL, 0x0000000033333333uLL, 0x0000000080000000uLL}, +{0x8000000000000000uLL, 0x00000002FFFFFFFDuLL, 0x000000002AAAAAAAuLL, 0x000000027FFFFFFEuLL}, +{0x8000000000000000uLL, 0x00000002FFFFFFFEuLL, 0x000000002AAAAAAAuLL, 0x0000000255555554uLL}, +{0x8000000000000000uLL, 0x00000002FFFFFFFFuLL, 0x000000002AAAAAAAuLL, 0x000000022AAAAAAAuLL}, +{0x8000000000000000uLL, 0x0000000300000000uLL, 0x000000002AAAAAAAuLL, 0x0000000200000000uLL}, +{0x8000000000000000uLL, 0x0000000300000001uLL, 0x000000002AAAAAAAuLL, 0x00000001D5555556uLL}, +{0x8000000000000000uLL, 0x0000000300000002uLL, 0x000000002AAAAAAAuLL, 0x00000001AAAAAAACuLL}, +{0x8000000000000000uLL, 0x0000000300000003uLL, 0x000000002AAAAAAAuLL, 0x0000000180000002uLL}, +{0x8000000000000000uLL, 0x0000000300000010uLL, 0x000000002AAAAAA9uLL, 0x0000000255555570uLL}, +{0x8000000000000000uLL, 0x00000003078644FAuLL, 0x000000002A40B0A4uLL, 0x000000009C0FEFD8uLL}, +{0x8000000000000000uLL, 0x000000030747AE14uLL, 0x000000002A4419E3uLL, 0x000000010620B044uLL}, +{0x8000000000000000uLL, 0x000000037FFFFFFFuLL, 0x0000000024924924uLL, 0x0000000224924924uLL}, +{0x8000000000000000uLL, 0x0000000380000000uLL, 0x0000000024924924uLL, 0x0000000200000000uLL}, +{0x8000000000000000uLL, 0x00000003FFFFFFFDuLL, 0x0000000020000000uLL, 0x0000000060000000uLL}, +{0x8000000000000000uLL, 0x00000003FFFFFFFEuLL, 0x0000000020000000uLL, 0x0000000040000000uLL}, +{0x8000000000000000uLL, 0x00000003FFFFFFFFuLL, 0x0000000020000000uLL, 0x0000000020000000uLL}, +{0x8000000000000000uLL, 0x0000001000000000uLL, 0x0000000008000000uLL, 0x0000000000000000uLL}, +{0x8000000000000000uLL, 0x0000001000000001uLL, 0x0000000007FFFFFFuLL, 0x0000000FF8000001uLL}, +{0x8000000000000000uLL, 0x0000001000000002uLL, 0x0000000007FFFFFFuLL, 0x0000000FF0000002uLL}, +{0x8000000000000000uLL, 0x0000001000000003uLL, 0x0000000007FFFFFFuLL, 0x0000000FE8000003uLL}, +{0x8000000000000000uLL, 0x0000001000000010uLL, 0x0000000007FFFFFFuLL, 0x0000000F80000010uLL}, +{0x8000000000000000uLL, 0x00000010078644FAuLL, 0x0000000007FC3EA1uLL, 0x0000000A03C212C6uLL}, +{0x8000000000000000uLL, 0x000000100747AE14uLL, 0x0000000007FC5DD0uLL, 0x0000000323D54BC0uLL}, +{0x8000000000000000uLL, 0x000000107FFFFFFFuLL, 0x0000000007C1F07CuLL, 0x0000000207C1F07CuLL}, +{0x8000000000000000uLL, 0x0000001080000000uLL, 0x0000000007C1F07CuLL, 0x0000000200000000uLL}, +{0x8000000000000000uLL, 0x00000010FFFFFFFDuLL, 0x0000000007878787uLL, 0x0000000916969695uLL}, +{0x8000000000000000uLL, 0x00000010FFFFFFFEuLL, 0x0000000007878787uLL, 0x000000090F0F0F0EuLL}, +{0x8000000000000000uLL, 0x00000010FFFFFFFFuLL, 0x0000000007878787uLL, 0x0000000907878787uLL}, +{0x8000000000000000uLL, 0x078644FA00000000uLL, 0x0000000000000011uLL, 0x00156B6600000000uLL}, +{0x8000000000000000uLL, 0x078644FA00000001uLL, 0x0000000000000011uLL, 0x00156B65FFFFFFEFuLL}, +{0x8000000000000000uLL, 0x078644FA00000002uLL, 0x0000000000000011uLL, 0x00156B65FFFFFFDEuLL}, +{0x8000000000000000uLL, 0x078644FA00000003uLL, 0x0000000000000011uLL, 0x00156B65FFFFFFCDuLL}, +{0x8000000000000000uLL, 0x078644FA00000010uLL, 0x0000000000000011uLL, 0x00156B65FFFFFEF0uLL}, +{0x8000000000000000uLL, 0x078644FA078644FAuLL, 0x0000000000000011uLL, 0x00156B6580156B66uLL}, +{0x8000000000000000uLL, 0x078644FA0747AE14uLL, 0x0000000000000011uLL, 0x00156B65843D70ACuLL}, +{0x8000000000000000uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5D80000011uLL}, +{0x8000000000000000uLL, 0x078644FA80000000uLL, 0x0000000000000011uLL, 0x00156B5D80000000uLL}, +{0x8000000000000000uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000011uLL, 0x00156B5500000033uLL}, +{0x8000000000000000uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000011uLL, 0x00156B5500000022uLL}, +{0x8000000000000000uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5500000011uLL}, +{0x8000000000000000uLL, 0x0747AE1400000000uLL, 0x0000000000000011uLL, 0x043D70AC00000000uLL}, +{0x8000000000000000uLL, 0x0747AE1400000001uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFFEFuLL}, +{0x8000000000000000uLL, 0x0747AE1400000002uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFFDEuLL}, +{0x8000000000000000uLL, 0x0747AE1400000003uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFFCDuLL}, +{0x8000000000000000uLL, 0x0747AE1400000010uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFEF0uLL}, +{0x8000000000000000uLL, 0x0747AE14078644FAuLL, 0x0000000000000011uLL, 0x043D70AB80156B66uLL}, +{0x8000000000000000uLL, 0x0747AE140747AE14uLL, 0x0000000000000011uLL, 0x043D70AB843D70ACuLL}, +{0x8000000000000000uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000011uLL, 0x043D70A380000011uLL}, +{0x8000000000000000uLL, 0x0747AE1480000000uLL, 0x0000000000000011uLL, 0x043D70A380000000uLL}, +{0x8000000000000000uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000011uLL, 0x043D709B00000033uLL}, +{0x8000000000000000uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000011uLL, 0x043D709B00000022uLL}, +{0x8000000000000000uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000011uLL, 0x043D709B00000011uLL}, +{0x8000000000000000uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x8000000000000000uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0x8000000000000000uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0x8000000000000000uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0x8000000000000000uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFF0uLL}, +{0x8000000000000000uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB06uLL}, +{0x8000000000000000uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851ECuLL}, +{0x8000000000000000uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000001uLL}, +{0x8000000000000000uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x0000000080000000uLL}, +{0x8000000000000000uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000003uLL}, +{0x8000000000000000uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0x8000000000000000uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x8000000000000000uLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x8000000000000000uLL, 0x8000000000000001uLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000000uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000000uLL}, +{0x8000000000000001uLL, 0x0000000000000001uLL, 0x8000000000000001uLL, 0x0000000000000000uLL}, +{0x8000000000000001uLL, 0x0000000000000002uLL, 0x4000000000000000uLL, 0x0000000000000001uLL}, +{0x8000000000000001uLL, 0x0000000000000003uLL, 0x2AAAAAAAAAAAAAABuLL, 0x0000000000000000uLL}, +{0x8000000000000001uLL, 0x0000000000000010uLL, 0x0800000000000000uLL, 0x0000000000000001uLL}, +{0x8000000000000001uLL, 0x00000000078644FAuLL, 0x0000001102D8BD7EuLL, 0x00000000040D7AF5uLL}, +{0x8000000000000001uLL, 0x000000000747AE14uLL, 0x00000011951952BDuLL, 0x00000000065E133DuLL}, +{0x8000000000000001uLL, 0x000000007FFFFFFFuLL, 0x0000000100000002uLL, 0x0000000000000003uLL}, +{0x8000000000000001uLL, 0x0000000080000000uLL, 0x0000000100000000uLL, 0x0000000000000001uLL}, +{0x8000000000000001uLL, 0x00000000FFFFFFFDuLL, 0x0000000080000001uLL, 0x0000000080000004uLL}, +{0x8000000000000001uLL, 0x00000000FFFFFFFEuLL, 0x0000000080000001uLL, 0x0000000000000003uLL}, +{0x8000000000000001uLL, 0x00000000FFFFFFFFuLL, 0x0000000080000000uLL, 0x0000000080000001uLL}, +{0x8000000000000001uLL, 0x0000000100000000uLL, 0x0000000080000000uLL, 0x0000000000000001uLL}, +{0x8000000000000001uLL, 0x0000000100000001uLL, 0x000000007FFFFFFFuLL, 0x0000000080000002uLL}, +{0x8000000000000001uLL, 0x0000000100000002uLL, 0x000000007FFFFFFFuLL, 0x0000000000000003uLL}, +{0x8000000000000001uLL, 0x0000000100000003uLL, 0x000000007FFFFFFEuLL, 0x0000000080000007uLL}, +{0x8000000000000001uLL, 0x0000000100000010uLL, 0x000000007FFFFFF8uLL, 0x0000000000000081uLL}, +{0x8000000000000001uLL, 0x00000001078644FAuLL, 0x000000007C585DAEuLL, 0x000000004DBE4C15uLL}, +{0x8000000000000001uLL, 0x000000010747AE14uLL, 0x000000007C75ED2DuLL, 0x000000001D19E27DuLL}, +{0x8000000000000001uLL, 0x000000017FFFFFFFuLL, 0x0000000055555555uLL, 0x00000000D5555556uLL}, +{0x8000000000000001uLL, 0x0000000180000000uLL, 0x0000000055555555uLL, 0x0000000080000001uLL}, +{0x8000000000000001uLL, 0x00000001FFFFFFFDuLL, 0x0000000040000000uLL, 0x00000000C0000001uLL}, +{0x8000000000000001uLL, 0x00000001FFFFFFFEuLL, 0x0000000040000000uLL, 0x0000000080000001uLL}, +{0x8000000000000001uLL, 0x00000001FFFFFFFFuLL, 0x0000000040000000uLL, 0x0000000040000001uLL}, +{0x8000000000000001uLL, 0x0000000200000000uLL, 0x0000000040000000uLL, 0x0000000000000001uLL}, +{0x8000000000000001uLL, 0x0000000200000001uLL, 0x000000003FFFFFFFuLL, 0x00000001C0000002uLL}, +{0x8000000000000001uLL, 0x0000000200000002uLL, 0x000000003FFFFFFFuLL, 0x0000000180000003uLL}, +{0x8000000000000001uLL, 0x0000000200000003uLL, 0x000000003FFFFFFFuLL, 0x0000000140000004uLL}, +{0x8000000000000001uLL, 0x0000000200000010uLL, 0x000000003FFFFFFEuLL, 0x0000000000000021uLL}, +{0x8000000000000001uLL, 0x00000002078644FAuLL, 0x000000003F12B425uLL, 0x0000000021843FDFuLL}, +{0x8000000000000001uLL, 0x000000020747AE14uLL, 0x000000003F1A4E53uLL, 0x0000000132B07785uLL}, +{0x8000000000000001uLL, 0x000000027FFFFFFFuLL, 0x0000000033333333uLL, 0x00000000B3333334uLL}, +{0x8000000000000001uLL, 0x0000000280000000uLL, 0x0000000033333333uLL, 0x0000000080000001uLL}, +{0x8000000000000001uLL, 0x00000002FFFFFFFDuLL, 0x000000002AAAAAAAuLL, 0x000000027FFFFFFFuLL}, +{0x8000000000000001uLL, 0x00000002FFFFFFFEuLL, 0x000000002AAAAAAAuLL, 0x0000000255555555uLL}, +{0x8000000000000001uLL, 0x00000002FFFFFFFFuLL, 0x000000002AAAAAAAuLL, 0x000000022AAAAAABuLL}, +{0x8000000000000001uLL, 0x0000000300000000uLL, 0x000000002AAAAAAAuLL, 0x0000000200000001uLL}, +{0x8000000000000001uLL, 0x0000000300000001uLL, 0x000000002AAAAAAAuLL, 0x00000001D5555557uLL}, +{0x8000000000000001uLL, 0x0000000300000002uLL, 0x000000002AAAAAAAuLL, 0x00000001AAAAAAADuLL}, +{0x8000000000000001uLL, 0x0000000300000003uLL, 0x000000002AAAAAAAuLL, 0x0000000180000003uLL}, +{0x8000000000000001uLL, 0x0000000300000010uLL, 0x000000002AAAAAA9uLL, 0x0000000255555571uLL}, +{0x8000000000000001uLL, 0x00000003078644FAuLL, 0x000000002A40B0A4uLL, 0x000000009C0FEFD9uLL}, +{0x8000000000000001uLL, 0x000000030747AE14uLL, 0x000000002A4419E3uLL, 0x000000010620B045uLL}, +{0x8000000000000001uLL, 0x000000037FFFFFFFuLL, 0x0000000024924924uLL, 0x0000000224924925uLL}, +{0x8000000000000001uLL, 0x0000000380000000uLL, 0x0000000024924924uLL, 0x0000000200000001uLL}, +{0x8000000000000001uLL, 0x00000003FFFFFFFDuLL, 0x0000000020000000uLL, 0x0000000060000001uLL}, +{0x8000000000000001uLL, 0x00000003FFFFFFFEuLL, 0x0000000020000000uLL, 0x0000000040000001uLL}, +{0x8000000000000001uLL, 0x00000003FFFFFFFFuLL, 0x0000000020000000uLL, 0x0000000020000001uLL}, +{0x8000000000000001uLL, 0x0000001000000000uLL, 0x0000000008000000uLL, 0x0000000000000001uLL}, +{0x8000000000000001uLL, 0x0000001000000001uLL, 0x0000000007FFFFFFuLL, 0x0000000FF8000002uLL}, +{0x8000000000000001uLL, 0x0000001000000002uLL, 0x0000000007FFFFFFuLL, 0x0000000FF0000003uLL}, +{0x8000000000000001uLL, 0x0000001000000003uLL, 0x0000000007FFFFFFuLL, 0x0000000FE8000004uLL}, +{0x8000000000000001uLL, 0x0000001000000010uLL, 0x0000000007FFFFFFuLL, 0x0000000F80000011uLL}, +{0x8000000000000001uLL, 0x00000010078644FAuLL, 0x0000000007FC3EA1uLL, 0x0000000A03C212C7uLL}, +{0x8000000000000001uLL, 0x000000100747AE14uLL, 0x0000000007FC5DD0uLL, 0x0000000323D54BC1uLL}, +{0x8000000000000001uLL, 0x000000107FFFFFFFuLL, 0x0000000007C1F07CuLL, 0x0000000207C1F07DuLL}, +{0x8000000000000001uLL, 0x0000001080000000uLL, 0x0000000007C1F07CuLL, 0x0000000200000001uLL}, +{0x8000000000000001uLL, 0x00000010FFFFFFFDuLL, 0x0000000007878787uLL, 0x0000000916969696uLL}, +{0x8000000000000001uLL, 0x00000010FFFFFFFEuLL, 0x0000000007878787uLL, 0x000000090F0F0F0FuLL}, +{0x8000000000000001uLL, 0x00000010FFFFFFFFuLL, 0x0000000007878787uLL, 0x0000000907878788uLL}, +{0x8000000000000001uLL, 0x078644FA00000000uLL, 0x0000000000000011uLL, 0x00156B6600000001uLL}, +{0x8000000000000001uLL, 0x078644FA00000001uLL, 0x0000000000000011uLL, 0x00156B65FFFFFFF0uLL}, +{0x8000000000000001uLL, 0x078644FA00000002uLL, 0x0000000000000011uLL, 0x00156B65FFFFFFDFuLL}, +{0x8000000000000001uLL, 0x078644FA00000003uLL, 0x0000000000000011uLL, 0x00156B65FFFFFFCEuLL}, +{0x8000000000000001uLL, 0x078644FA00000010uLL, 0x0000000000000011uLL, 0x00156B65FFFFFEF1uLL}, +{0x8000000000000001uLL, 0x078644FA078644FAuLL, 0x0000000000000011uLL, 0x00156B6580156B67uLL}, +{0x8000000000000001uLL, 0x078644FA0747AE14uLL, 0x0000000000000011uLL, 0x00156B65843D70ADuLL}, +{0x8000000000000001uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5D80000012uLL}, +{0x8000000000000001uLL, 0x078644FA80000000uLL, 0x0000000000000011uLL, 0x00156B5D80000001uLL}, +{0x8000000000000001uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000011uLL, 0x00156B5500000034uLL}, +{0x8000000000000001uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000011uLL, 0x00156B5500000023uLL}, +{0x8000000000000001uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5500000012uLL}, +{0x8000000000000001uLL, 0x0747AE1400000000uLL, 0x0000000000000011uLL, 0x043D70AC00000001uLL}, +{0x8000000000000001uLL, 0x0747AE1400000001uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFFF0uLL}, +{0x8000000000000001uLL, 0x0747AE1400000002uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFFDFuLL}, +{0x8000000000000001uLL, 0x0747AE1400000003uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFFCEuLL}, +{0x8000000000000001uLL, 0x0747AE1400000010uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFEF1uLL}, +{0x8000000000000001uLL, 0x0747AE14078644FAuLL, 0x0000000000000011uLL, 0x043D70AB80156B67uLL}, +{0x8000000000000001uLL, 0x0747AE140747AE14uLL, 0x0000000000000011uLL, 0x043D70AB843D70ADuLL}, +{0x8000000000000001uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000011uLL, 0x043D70A380000012uLL}, +{0x8000000000000001uLL, 0x0747AE1480000000uLL, 0x0000000000000011uLL, 0x043D70A380000001uLL}, +{0x8000000000000001uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000011uLL, 0x043D709B00000034uLL}, +{0x8000000000000001uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000011uLL, 0x043D709B00000023uLL}, +{0x8000000000000001uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000011uLL, 0x043D709B00000012uLL}, +{0x8000000000000001uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x0000000100000001uLL}, +{0x8000000000000001uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x8000000000000001uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0x8000000000000001uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0x8000000000000001uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFF1uLL}, +{0x8000000000000001uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB07uLL}, +{0x8000000000000001uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EDuLL}, +{0x8000000000000001uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000002uLL}, +{0x8000000000000001uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x0000000080000001uLL}, +{0x8000000000000001uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000004uLL}, +{0x8000000000000001uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000003uLL}, +{0x8000000000000001uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0x8000000000000001uLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x8000000000000001uLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x8000000000000001uLL, 0x8000000000000002uLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000001uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000001uLL}, +{0x8000000000000002uLL, 0x0000000000000001uLL, 0x8000000000000002uLL, 0x0000000000000000uLL}, +{0x8000000000000002uLL, 0x0000000000000002uLL, 0x4000000000000001uLL, 0x0000000000000000uLL}, +{0x8000000000000002uLL, 0x0000000000000003uLL, 0x2AAAAAAAAAAAAAABuLL, 0x0000000000000001uLL}, +{0x8000000000000002uLL, 0x0000000000000010uLL, 0x0800000000000000uLL, 0x0000000000000002uLL}, +{0x8000000000000002uLL, 0x00000000078644FAuLL, 0x0000001102D8BD7EuLL, 0x00000000040D7AF6uLL}, +{0x8000000000000002uLL, 0x000000000747AE14uLL, 0x00000011951952BDuLL, 0x00000000065E133EuLL}, +{0x8000000000000002uLL, 0x000000007FFFFFFFuLL, 0x0000000100000002uLL, 0x0000000000000004uLL}, +{0x8000000000000002uLL, 0x0000000080000000uLL, 0x0000000100000000uLL, 0x0000000000000002uLL}, +{0x8000000000000002uLL, 0x00000000FFFFFFFDuLL, 0x0000000080000001uLL, 0x0000000080000005uLL}, +{0x8000000000000002uLL, 0x00000000FFFFFFFEuLL, 0x0000000080000001uLL, 0x0000000000000004uLL}, +{0x8000000000000002uLL, 0x00000000FFFFFFFFuLL, 0x0000000080000000uLL, 0x0000000080000002uLL}, +{0x8000000000000002uLL, 0x0000000100000000uLL, 0x0000000080000000uLL, 0x0000000000000002uLL}, +{0x8000000000000002uLL, 0x0000000100000001uLL, 0x000000007FFFFFFFuLL, 0x0000000080000003uLL}, +{0x8000000000000002uLL, 0x0000000100000002uLL, 0x000000007FFFFFFFuLL, 0x0000000000000004uLL}, +{0x8000000000000002uLL, 0x0000000100000003uLL, 0x000000007FFFFFFEuLL, 0x0000000080000008uLL}, +{0x8000000000000002uLL, 0x0000000100000010uLL, 0x000000007FFFFFF8uLL, 0x0000000000000082uLL}, +{0x8000000000000002uLL, 0x00000001078644FAuLL, 0x000000007C585DAEuLL, 0x000000004DBE4C16uLL}, +{0x8000000000000002uLL, 0x000000010747AE14uLL, 0x000000007C75ED2DuLL, 0x000000001D19E27EuLL}, +{0x8000000000000002uLL, 0x000000017FFFFFFFuLL, 0x0000000055555555uLL, 0x00000000D5555557uLL}, +{0x8000000000000002uLL, 0x0000000180000000uLL, 0x0000000055555555uLL, 0x0000000080000002uLL}, +{0x8000000000000002uLL, 0x00000001FFFFFFFDuLL, 0x0000000040000000uLL, 0x00000000C0000002uLL}, +{0x8000000000000002uLL, 0x00000001FFFFFFFEuLL, 0x0000000040000000uLL, 0x0000000080000002uLL}, +{0x8000000000000002uLL, 0x00000001FFFFFFFFuLL, 0x0000000040000000uLL, 0x0000000040000002uLL}, +{0x8000000000000002uLL, 0x0000000200000000uLL, 0x0000000040000000uLL, 0x0000000000000002uLL}, +{0x8000000000000002uLL, 0x0000000200000001uLL, 0x000000003FFFFFFFuLL, 0x00000001C0000003uLL}, +{0x8000000000000002uLL, 0x0000000200000002uLL, 0x000000003FFFFFFFuLL, 0x0000000180000004uLL}, +{0x8000000000000002uLL, 0x0000000200000003uLL, 0x000000003FFFFFFFuLL, 0x0000000140000005uLL}, +{0x8000000000000002uLL, 0x0000000200000010uLL, 0x000000003FFFFFFEuLL, 0x0000000000000022uLL}, +{0x8000000000000002uLL, 0x00000002078644FAuLL, 0x000000003F12B425uLL, 0x0000000021843FE0uLL}, +{0x8000000000000002uLL, 0x000000020747AE14uLL, 0x000000003F1A4E53uLL, 0x0000000132B07786uLL}, +{0x8000000000000002uLL, 0x000000027FFFFFFFuLL, 0x0000000033333333uLL, 0x00000000B3333335uLL}, +{0x8000000000000002uLL, 0x0000000280000000uLL, 0x0000000033333333uLL, 0x0000000080000002uLL}, +{0x8000000000000002uLL, 0x00000002FFFFFFFDuLL, 0x000000002AAAAAAAuLL, 0x0000000280000000uLL}, +{0x8000000000000002uLL, 0x00000002FFFFFFFEuLL, 0x000000002AAAAAAAuLL, 0x0000000255555556uLL}, +{0x8000000000000002uLL, 0x00000002FFFFFFFFuLL, 0x000000002AAAAAAAuLL, 0x000000022AAAAAACuLL}, +{0x8000000000000002uLL, 0x0000000300000000uLL, 0x000000002AAAAAAAuLL, 0x0000000200000002uLL}, +{0x8000000000000002uLL, 0x0000000300000001uLL, 0x000000002AAAAAAAuLL, 0x00000001D5555558uLL}, +{0x8000000000000002uLL, 0x0000000300000002uLL, 0x000000002AAAAAAAuLL, 0x00000001AAAAAAAEuLL}, +{0x8000000000000002uLL, 0x0000000300000003uLL, 0x000000002AAAAAAAuLL, 0x0000000180000004uLL}, +{0x8000000000000002uLL, 0x0000000300000010uLL, 0x000000002AAAAAA9uLL, 0x0000000255555572uLL}, +{0x8000000000000002uLL, 0x00000003078644FAuLL, 0x000000002A40B0A4uLL, 0x000000009C0FEFDAuLL}, +{0x8000000000000002uLL, 0x000000030747AE14uLL, 0x000000002A4419E3uLL, 0x000000010620B046uLL}, +{0x8000000000000002uLL, 0x000000037FFFFFFFuLL, 0x0000000024924924uLL, 0x0000000224924926uLL}, +{0x8000000000000002uLL, 0x0000000380000000uLL, 0x0000000024924924uLL, 0x0000000200000002uLL}, +{0x8000000000000002uLL, 0x00000003FFFFFFFDuLL, 0x0000000020000000uLL, 0x0000000060000002uLL}, +{0x8000000000000002uLL, 0x00000003FFFFFFFEuLL, 0x0000000020000000uLL, 0x0000000040000002uLL}, +{0x8000000000000002uLL, 0x00000003FFFFFFFFuLL, 0x0000000020000000uLL, 0x0000000020000002uLL}, +{0x8000000000000002uLL, 0x0000001000000000uLL, 0x0000000008000000uLL, 0x0000000000000002uLL}, +{0x8000000000000002uLL, 0x0000001000000001uLL, 0x0000000007FFFFFFuLL, 0x0000000FF8000003uLL}, +{0x8000000000000002uLL, 0x0000001000000002uLL, 0x0000000007FFFFFFuLL, 0x0000000FF0000004uLL}, +{0x8000000000000002uLL, 0x0000001000000003uLL, 0x0000000007FFFFFFuLL, 0x0000000FE8000005uLL}, +{0x8000000000000002uLL, 0x0000001000000010uLL, 0x0000000007FFFFFFuLL, 0x0000000F80000012uLL}, +{0x8000000000000002uLL, 0x00000010078644FAuLL, 0x0000000007FC3EA1uLL, 0x0000000A03C212C8uLL}, +{0x8000000000000002uLL, 0x000000100747AE14uLL, 0x0000000007FC5DD0uLL, 0x0000000323D54BC2uLL}, +{0x8000000000000002uLL, 0x000000107FFFFFFFuLL, 0x0000000007C1F07CuLL, 0x0000000207C1F07EuLL}, +{0x8000000000000002uLL, 0x0000001080000000uLL, 0x0000000007C1F07CuLL, 0x0000000200000002uLL}, +{0x8000000000000002uLL, 0x00000010FFFFFFFDuLL, 0x0000000007878787uLL, 0x0000000916969697uLL}, +{0x8000000000000002uLL, 0x00000010FFFFFFFEuLL, 0x0000000007878787uLL, 0x000000090F0F0F10uLL}, +{0x8000000000000002uLL, 0x00000010FFFFFFFFuLL, 0x0000000007878787uLL, 0x0000000907878789uLL}, +{0x8000000000000002uLL, 0x078644FA00000000uLL, 0x0000000000000011uLL, 0x00156B6600000002uLL}, +{0x8000000000000002uLL, 0x078644FA00000001uLL, 0x0000000000000011uLL, 0x00156B65FFFFFFF1uLL}, +{0x8000000000000002uLL, 0x078644FA00000002uLL, 0x0000000000000011uLL, 0x00156B65FFFFFFE0uLL}, +{0x8000000000000002uLL, 0x078644FA00000003uLL, 0x0000000000000011uLL, 0x00156B65FFFFFFCFuLL}, +{0x8000000000000002uLL, 0x078644FA00000010uLL, 0x0000000000000011uLL, 0x00156B65FFFFFEF2uLL}, +{0x8000000000000002uLL, 0x078644FA078644FAuLL, 0x0000000000000011uLL, 0x00156B6580156B68uLL}, +{0x8000000000000002uLL, 0x078644FA0747AE14uLL, 0x0000000000000011uLL, 0x00156B65843D70AEuLL}, +{0x8000000000000002uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5D80000013uLL}, +{0x8000000000000002uLL, 0x078644FA80000000uLL, 0x0000000000000011uLL, 0x00156B5D80000002uLL}, +{0x8000000000000002uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000011uLL, 0x00156B5500000035uLL}, +{0x8000000000000002uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000011uLL, 0x00156B5500000024uLL}, +{0x8000000000000002uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5500000013uLL}, +{0x8000000000000002uLL, 0x0747AE1400000000uLL, 0x0000000000000011uLL, 0x043D70AC00000002uLL}, +{0x8000000000000002uLL, 0x0747AE1400000001uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFFF1uLL}, +{0x8000000000000002uLL, 0x0747AE1400000002uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFFE0uLL}, +{0x8000000000000002uLL, 0x0747AE1400000003uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFFCFuLL}, +{0x8000000000000002uLL, 0x0747AE1400000010uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFEF2uLL}, +{0x8000000000000002uLL, 0x0747AE14078644FAuLL, 0x0000000000000011uLL, 0x043D70AB80156B68uLL}, +{0x8000000000000002uLL, 0x0747AE140747AE14uLL, 0x0000000000000011uLL, 0x043D70AB843D70AEuLL}, +{0x8000000000000002uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000011uLL, 0x043D70A380000013uLL}, +{0x8000000000000002uLL, 0x0747AE1480000000uLL, 0x0000000000000011uLL, 0x043D70A380000002uLL}, +{0x8000000000000002uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000011uLL, 0x043D709B00000035uLL}, +{0x8000000000000002uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000011uLL, 0x043D709B00000024uLL}, +{0x8000000000000002uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000011uLL, 0x043D709B00000013uLL}, +{0x8000000000000002uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x0000000100000002uLL}, +{0x8000000000000002uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x0000000100000001uLL}, +{0x8000000000000002uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x8000000000000002uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0x8000000000000002uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFF2uLL}, +{0x8000000000000002uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB08uLL}, +{0x8000000000000002uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EEuLL}, +{0x8000000000000002uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000003uLL}, +{0x8000000000000002uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x0000000080000002uLL}, +{0x8000000000000002uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000005uLL}, +{0x8000000000000002uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000004uLL}, +{0x8000000000000002uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000003uLL}, +{0x8000000000000002uLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0x8000000000000002uLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x8000000000000002uLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x8000000000000002uLL, 0x8000000000000003uLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000002uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000002uLL}, +{0x8000000000000003uLL, 0x0000000000000001uLL, 0x8000000000000003uLL, 0x0000000000000000uLL}, +{0x8000000000000003uLL, 0x0000000000000002uLL, 0x4000000000000001uLL, 0x0000000000000001uLL}, +{0x8000000000000003uLL, 0x0000000000000003uLL, 0x2AAAAAAAAAAAAAABuLL, 0x0000000000000002uLL}, +{0x8000000000000003uLL, 0x0000000000000010uLL, 0x0800000000000000uLL, 0x0000000000000003uLL}, +{0x8000000000000003uLL, 0x00000000078644FAuLL, 0x0000001102D8BD7EuLL, 0x00000000040D7AF7uLL}, +{0x8000000000000003uLL, 0x000000000747AE14uLL, 0x00000011951952BDuLL, 0x00000000065E133FuLL}, +{0x8000000000000003uLL, 0x000000007FFFFFFFuLL, 0x0000000100000002uLL, 0x0000000000000005uLL}, +{0x8000000000000003uLL, 0x0000000080000000uLL, 0x0000000100000000uLL, 0x0000000000000003uLL}, +{0x8000000000000003uLL, 0x00000000FFFFFFFDuLL, 0x0000000080000001uLL, 0x0000000080000006uLL}, +{0x8000000000000003uLL, 0x00000000FFFFFFFEuLL, 0x0000000080000001uLL, 0x0000000000000005uLL}, +{0x8000000000000003uLL, 0x00000000FFFFFFFFuLL, 0x0000000080000000uLL, 0x0000000080000003uLL}, +{0x8000000000000003uLL, 0x0000000100000000uLL, 0x0000000080000000uLL, 0x0000000000000003uLL}, +{0x8000000000000003uLL, 0x0000000100000001uLL, 0x000000007FFFFFFFuLL, 0x0000000080000004uLL}, +{0x8000000000000003uLL, 0x0000000100000002uLL, 0x000000007FFFFFFFuLL, 0x0000000000000005uLL}, +{0x8000000000000003uLL, 0x0000000100000003uLL, 0x000000007FFFFFFEuLL, 0x0000000080000009uLL}, +{0x8000000000000003uLL, 0x0000000100000010uLL, 0x000000007FFFFFF8uLL, 0x0000000000000083uLL}, +{0x8000000000000003uLL, 0x00000001078644FAuLL, 0x000000007C585DAEuLL, 0x000000004DBE4C17uLL}, +{0x8000000000000003uLL, 0x000000010747AE14uLL, 0x000000007C75ED2DuLL, 0x000000001D19E27FuLL}, +{0x8000000000000003uLL, 0x000000017FFFFFFFuLL, 0x0000000055555555uLL, 0x00000000D5555558uLL}, +{0x8000000000000003uLL, 0x0000000180000000uLL, 0x0000000055555555uLL, 0x0000000080000003uLL}, +{0x8000000000000003uLL, 0x00000001FFFFFFFDuLL, 0x0000000040000000uLL, 0x00000000C0000003uLL}, +{0x8000000000000003uLL, 0x00000001FFFFFFFEuLL, 0x0000000040000000uLL, 0x0000000080000003uLL}, +{0x8000000000000003uLL, 0x00000001FFFFFFFFuLL, 0x0000000040000000uLL, 0x0000000040000003uLL}, +{0x8000000000000003uLL, 0x0000000200000000uLL, 0x0000000040000000uLL, 0x0000000000000003uLL}, +{0x8000000000000003uLL, 0x0000000200000001uLL, 0x000000003FFFFFFFuLL, 0x00000001C0000004uLL}, +{0x8000000000000003uLL, 0x0000000200000002uLL, 0x000000003FFFFFFFuLL, 0x0000000180000005uLL}, +{0x8000000000000003uLL, 0x0000000200000003uLL, 0x000000003FFFFFFFuLL, 0x0000000140000006uLL}, +{0x8000000000000003uLL, 0x0000000200000010uLL, 0x000000003FFFFFFEuLL, 0x0000000000000023uLL}, +{0x8000000000000003uLL, 0x00000002078644FAuLL, 0x000000003F12B425uLL, 0x0000000021843FE1uLL}, +{0x8000000000000003uLL, 0x000000020747AE14uLL, 0x000000003F1A4E53uLL, 0x0000000132B07787uLL}, +{0x8000000000000003uLL, 0x000000027FFFFFFFuLL, 0x0000000033333333uLL, 0x00000000B3333336uLL}, +{0x8000000000000003uLL, 0x0000000280000000uLL, 0x0000000033333333uLL, 0x0000000080000003uLL}, +{0x8000000000000003uLL, 0x00000002FFFFFFFDuLL, 0x000000002AAAAAAAuLL, 0x0000000280000001uLL}, +{0x8000000000000003uLL, 0x00000002FFFFFFFEuLL, 0x000000002AAAAAAAuLL, 0x0000000255555557uLL}, +{0x8000000000000003uLL, 0x00000002FFFFFFFFuLL, 0x000000002AAAAAAAuLL, 0x000000022AAAAAADuLL}, +{0x8000000000000003uLL, 0x0000000300000000uLL, 0x000000002AAAAAAAuLL, 0x0000000200000003uLL}, +{0x8000000000000003uLL, 0x0000000300000001uLL, 0x000000002AAAAAAAuLL, 0x00000001D5555559uLL}, +{0x8000000000000003uLL, 0x0000000300000002uLL, 0x000000002AAAAAAAuLL, 0x00000001AAAAAAAFuLL}, +{0x8000000000000003uLL, 0x0000000300000003uLL, 0x000000002AAAAAAAuLL, 0x0000000180000005uLL}, +{0x8000000000000003uLL, 0x0000000300000010uLL, 0x000000002AAAAAA9uLL, 0x0000000255555573uLL}, +{0x8000000000000003uLL, 0x00000003078644FAuLL, 0x000000002A40B0A4uLL, 0x000000009C0FEFDBuLL}, +{0x8000000000000003uLL, 0x000000030747AE14uLL, 0x000000002A4419E3uLL, 0x000000010620B047uLL}, +{0x8000000000000003uLL, 0x000000037FFFFFFFuLL, 0x0000000024924924uLL, 0x0000000224924927uLL}, +{0x8000000000000003uLL, 0x0000000380000000uLL, 0x0000000024924924uLL, 0x0000000200000003uLL}, +{0x8000000000000003uLL, 0x00000003FFFFFFFDuLL, 0x0000000020000000uLL, 0x0000000060000003uLL}, +{0x8000000000000003uLL, 0x00000003FFFFFFFEuLL, 0x0000000020000000uLL, 0x0000000040000003uLL}, +{0x8000000000000003uLL, 0x00000003FFFFFFFFuLL, 0x0000000020000000uLL, 0x0000000020000003uLL}, +{0x8000000000000003uLL, 0x0000001000000000uLL, 0x0000000008000000uLL, 0x0000000000000003uLL}, +{0x8000000000000003uLL, 0x0000001000000001uLL, 0x0000000007FFFFFFuLL, 0x0000000FF8000004uLL}, +{0x8000000000000003uLL, 0x0000001000000002uLL, 0x0000000007FFFFFFuLL, 0x0000000FF0000005uLL}, +{0x8000000000000003uLL, 0x0000001000000003uLL, 0x0000000007FFFFFFuLL, 0x0000000FE8000006uLL}, +{0x8000000000000003uLL, 0x0000001000000010uLL, 0x0000000007FFFFFFuLL, 0x0000000F80000013uLL}, +{0x8000000000000003uLL, 0x00000010078644FAuLL, 0x0000000007FC3EA1uLL, 0x0000000A03C212C9uLL}, +{0x8000000000000003uLL, 0x000000100747AE14uLL, 0x0000000007FC5DD0uLL, 0x0000000323D54BC3uLL}, +{0x8000000000000003uLL, 0x000000107FFFFFFFuLL, 0x0000000007C1F07CuLL, 0x0000000207C1F07FuLL}, +{0x8000000000000003uLL, 0x0000001080000000uLL, 0x0000000007C1F07CuLL, 0x0000000200000003uLL}, +{0x8000000000000003uLL, 0x00000010FFFFFFFDuLL, 0x0000000007878787uLL, 0x0000000916969698uLL}, +{0x8000000000000003uLL, 0x00000010FFFFFFFEuLL, 0x0000000007878787uLL, 0x000000090F0F0F11uLL}, +{0x8000000000000003uLL, 0x00000010FFFFFFFFuLL, 0x0000000007878787uLL, 0x000000090787878AuLL}, +{0x8000000000000003uLL, 0x078644FA00000000uLL, 0x0000000000000011uLL, 0x00156B6600000003uLL}, +{0x8000000000000003uLL, 0x078644FA00000001uLL, 0x0000000000000011uLL, 0x00156B65FFFFFFF2uLL}, +{0x8000000000000003uLL, 0x078644FA00000002uLL, 0x0000000000000011uLL, 0x00156B65FFFFFFE1uLL}, +{0x8000000000000003uLL, 0x078644FA00000003uLL, 0x0000000000000011uLL, 0x00156B65FFFFFFD0uLL}, +{0x8000000000000003uLL, 0x078644FA00000010uLL, 0x0000000000000011uLL, 0x00156B65FFFFFEF3uLL}, +{0x8000000000000003uLL, 0x078644FA078644FAuLL, 0x0000000000000011uLL, 0x00156B6580156B69uLL}, +{0x8000000000000003uLL, 0x078644FA0747AE14uLL, 0x0000000000000011uLL, 0x00156B65843D70AFuLL}, +{0x8000000000000003uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5D80000014uLL}, +{0x8000000000000003uLL, 0x078644FA80000000uLL, 0x0000000000000011uLL, 0x00156B5D80000003uLL}, +{0x8000000000000003uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000011uLL, 0x00156B5500000036uLL}, +{0x8000000000000003uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000011uLL, 0x00156B5500000025uLL}, +{0x8000000000000003uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5500000014uLL}, +{0x8000000000000003uLL, 0x0747AE1400000000uLL, 0x0000000000000011uLL, 0x043D70AC00000003uLL}, +{0x8000000000000003uLL, 0x0747AE1400000001uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFFF2uLL}, +{0x8000000000000003uLL, 0x0747AE1400000002uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFFE1uLL}, +{0x8000000000000003uLL, 0x0747AE1400000003uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFFD0uLL}, +{0x8000000000000003uLL, 0x0747AE1400000010uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFEF3uLL}, +{0x8000000000000003uLL, 0x0747AE14078644FAuLL, 0x0000000000000011uLL, 0x043D70AB80156B69uLL}, +{0x8000000000000003uLL, 0x0747AE140747AE14uLL, 0x0000000000000011uLL, 0x043D70AB843D70AFuLL}, +{0x8000000000000003uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000011uLL, 0x043D70A380000014uLL}, +{0x8000000000000003uLL, 0x0747AE1480000000uLL, 0x0000000000000011uLL, 0x043D70A380000003uLL}, +{0x8000000000000003uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000011uLL, 0x043D709B00000036uLL}, +{0x8000000000000003uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000011uLL, 0x043D709B00000025uLL}, +{0x8000000000000003uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000011uLL, 0x043D709B00000014uLL}, +{0x8000000000000003uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x0000000100000003uLL}, +{0x8000000000000003uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x0000000100000002uLL}, +{0x8000000000000003uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x0000000100000001uLL}, +{0x8000000000000003uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x8000000000000003uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFF3uLL}, +{0x8000000000000003uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB09uLL}, +{0x8000000000000003uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EFuLL}, +{0x8000000000000003uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000004uLL}, +{0x8000000000000003uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x0000000080000003uLL}, +{0x8000000000000003uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000006uLL}, +{0x8000000000000003uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000005uLL}, +{0x8000000000000003uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000004uLL}, +{0x8000000000000003uLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x0000000000000003uLL}, +{0x8000000000000003uLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0x8000000000000003uLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x8000000000000003uLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x8000000000000003uLL, 0x8000000000000010uLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000003uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000003uLL}, +{0x8000000000000010uLL, 0x0000000000000001uLL, 0x8000000000000010uLL, 0x0000000000000000uLL}, +{0x8000000000000010uLL, 0x0000000000000002uLL, 0x4000000000000008uLL, 0x0000000000000000uLL}, +{0x8000000000000010uLL, 0x0000000000000003uLL, 0x2AAAAAAAAAAAAAB0uLL, 0x0000000000000000uLL}, +{0x8000000000000010uLL, 0x0000000000000010uLL, 0x0800000000000001uLL, 0x0000000000000000uLL}, +{0x8000000000000010uLL, 0x00000000078644FAuLL, 0x0000001102D8BD7EuLL, 0x00000000040D7B04uLL}, +{0x8000000000000010uLL, 0x000000000747AE14uLL, 0x00000011951952BDuLL, 0x00000000065E134CuLL}, +{0x8000000000000010uLL, 0x000000007FFFFFFFuLL, 0x0000000100000002uLL, 0x0000000000000012uLL}, +{0x8000000000000010uLL, 0x0000000080000000uLL, 0x0000000100000000uLL, 0x0000000000000010uLL}, +{0x8000000000000010uLL, 0x00000000FFFFFFFDuLL, 0x0000000080000001uLL, 0x0000000080000013uLL}, +{0x8000000000000010uLL, 0x00000000FFFFFFFEuLL, 0x0000000080000001uLL, 0x0000000000000012uLL}, +{0x8000000000000010uLL, 0x00000000FFFFFFFFuLL, 0x0000000080000000uLL, 0x0000000080000010uLL}, +{0x8000000000000010uLL, 0x0000000100000000uLL, 0x0000000080000000uLL, 0x0000000000000010uLL}, +{0x8000000000000010uLL, 0x0000000100000001uLL, 0x000000007FFFFFFFuLL, 0x0000000080000011uLL}, +{0x8000000000000010uLL, 0x0000000100000002uLL, 0x000000007FFFFFFFuLL, 0x0000000000000012uLL}, +{0x8000000000000010uLL, 0x0000000100000003uLL, 0x000000007FFFFFFEuLL, 0x0000000080000016uLL}, +{0x8000000000000010uLL, 0x0000000100000010uLL, 0x000000007FFFFFF8uLL, 0x0000000000000090uLL}, +{0x8000000000000010uLL, 0x00000001078644FAuLL, 0x000000007C585DAEuLL, 0x000000004DBE4C24uLL}, +{0x8000000000000010uLL, 0x000000010747AE14uLL, 0x000000007C75ED2DuLL, 0x000000001D19E28CuLL}, +{0x8000000000000010uLL, 0x000000017FFFFFFFuLL, 0x0000000055555555uLL, 0x00000000D5555565uLL}, +{0x8000000000000010uLL, 0x0000000180000000uLL, 0x0000000055555555uLL, 0x0000000080000010uLL}, +{0x8000000000000010uLL, 0x00000001FFFFFFFDuLL, 0x0000000040000000uLL, 0x00000000C0000010uLL}, +{0x8000000000000010uLL, 0x00000001FFFFFFFEuLL, 0x0000000040000000uLL, 0x0000000080000010uLL}, +{0x8000000000000010uLL, 0x00000001FFFFFFFFuLL, 0x0000000040000000uLL, 0x0000000040000010uLL}, +{0x8000000000000010uLL, 0x0000000200000000uLL, 0x0000000040000000uLL, 0x0000000000000010uLL}, +{0x8000000000000010uLL, 0x0000000200000001uLL, 0x000000003FFFFFFFuLL, 0x00000001C0000011uLL}, +{0x8000000000000010uLL, 0x0000000200000002uLL, 0x000000003FFFFFFFuLL, 0x0000000180000012uLL}, +{0x8000000000000010uLL, 0x0000000200000003uLL, 0x000000003FFFFFFFuLL, 0x0000000140000013uLL}, +{0x8000000000000010uLL, 0x0000000200000010uLL, 0x000000003FFFFFFEuLL, 0x0000000000000030uLL}, +{0x8000000000000010uLL, 0x00000002078644FAuLL, 0x000000003F12B425uLL, 0x0000000021843FEEuLL}, +{0x8000000000000010uLL, 0x000000020747AE14uLL, 0x000000003F1A4E53uLL, 0x0000000132B07794uLL}, +{0x8000000000000010uLL, 0x000000027FFFFFFFuLL, 0x0000000033333333uLL, 0x00000000B3333343uLL}, +{0x8000000000000010uLL, 0x0000000280000000uLL, 0x0000000033333333uLL, 0x0000000080000010uLL}, +{0x8000000000000010uLL, 0x00000002FFFFFFFDuLL, 0x000000002AAAAAAAuLL, 0x000000028000000EuLL}, +{0x8000000000000010uLL, 0x00000002FFFFFFFEuLL, 0x000000002AAAAAAAuLL, 0x0000000255555564uLL}, +{0x8000000000000010uLL, 0x00000002FFFFFFFFuLL, 0x000000002AAAAAAAuLL, 0x000000022AAAAABAuLL}, +{0x8000000000000010uLL, 0x0000000300000000uLL, 0x000000002AAAAAAAuLL, 0x0000000200000010uLL}, +{0x8000000000000010uLL, 0x0000000300000001uLL, 0x000000002AAAAAAAuLL, 0x00000001D5555566uLL}, +{0x8000000000000010uLL, 0x0000000300000002uLL, 0x000000002AAAAAAAuLL, 0x00000001AAAAAABCuLL}, +{0x8000000000000010uLL, 0x0000000300000003uLL, 0x000000002AAAAAAAuLL, 0x0000000180000012uLL}, +{0x8000000000000010uLL, 0x0000000300000010uLL, 0x000000002AAAAAA9uLL, 0x0000000255555580uLL}, +{0x8000000000000010uLL, 0x00000003078644FAuLL, 0x000000002A40B0A4uLL, 0x000000009C0FEFE8uLL}, +{0x8000000000000010uLL, 0x000000030747AE14uLL, 0x000000002A4419E3uLL, 0x000000010620B054uLL}, +{0x8000000000000010uLL, 0x000000037FFFFFFFuLL, 0x0000000024924924uLL, 0x0000000224924934uLL}, +{0x8000000000000010uLL, 0x0000000380000000uLL, 0x0000000024924924uLL, 0x0000000200000010uLL}, +{0x8000000000000010uLL, 0x00000003FFFFFFFDuLL, 0x0000000020000000uLL, 0x0000000060000010uLL}, +{0x8000000000000010uLL, 0x00000003FFFFFFFEuLL, 0x0000000020000000uLL, 0x0000000040000010uLL}, +{0x8000000000000010uLL, 0x00000003FFFFFFFFuLL, 0x0000000020000000uLL, 0x0000000020000010uLL}, +{0x8000000000000010uLL, 0x0000001000000000uLL, 0x0000000008000000uLL, 0x0000000000000010uLL}, +{0x8000000000000010uLL, 0x0000001000000001uLL, 0x0000000007FFFFFFuLL, 0x0000000FF8000011uLL}, +{0x8000000000000010uLL, 0x0000001000000002uLL, 0x0000000007FFFFFFuLL, 0x0000000FF0000012uLL}, +{0x8000000000000010uLL, 0x0000001000000003uLL, 0x0000000007FFFFFFuLL, 0x0000000FE8000013uLL}, +{0x8000000000000010uLL, 0x0000001000000010uLL, 0x0000000007FFFFFFuLL, 0x0000000F80000020uLL}, +{0x8000000000000010uLL, 0x00000010078644FAuLL, 0x0000000007FC3EA1uLL, 0x0000000A03C212D6uLL}, +{0x8000000000000010uLL, 0x000000100747AE14uLL, 0x0000000007FC5DD0uLL, 0x0000000323D54BD0uLL}, +{0x8000000000000010uLL, 0x000000107FFFFFFFuLL, 0x0000000007C1F07CuLL, 0x0000000207C1F08CuLL}, +{0x8000000000000010uLL, 0x0000001080000000uLL, 0x0000000007C1F07CuLL, 0x0000000200000010uLL}, +{0x8000000000000010uLL, 0x00000010FFFFFFFDuLL, 0x0000000007878787uLL, 0x00000009169696A5uLL}, +{0x8000000000000010uLL, 0x00000010FFFFFFFEuLL, 0x0000000007878787uLL, 0x000000090F0F0F1EuLL}, +{0x8000000000000010uLL, 0x00000010FFFFFFFFuLL, 0x0000000007878787uLL, 0x0000000907878797uLL}, +{0x8000000000000010uLL, 0x078644FA00000000uLL, 0x0000000000000011uLL, 0x00156B6600000010uLL}, +{0x8000000000000010uLL, 0x078644FA00000001uLL, 0x0000000000000011uLL, 0x00156B65FFFFFFFFuLL}, +{0x8000000000000010uLL, 0x078644FA00000002uLL, 0x0000000000000011uLL, 0x00156B65FFFFFFEEuLL}, +{0x8000000000000010uLL, 0x078644FA00000003uLL, 0x0000000000000011uLL, 0x00156B65FFFFFFDDuLL}, +{0x8000000000000010uLL, 0x078644FA00000010uLL, 0x0000000000000011uLL, 0x00156B65FFFFFF00uLL}, +{0x8000000000000010uLL, 0x078644FA078644FAuLL, 0x0000000000000011uLL, 0x00156B6580156B76uLL}, +{0x8000000000000010uLL, 0x078644FA0747AE14uLL, 0x0000000000000011uLL, 0x00156B65843D70BCuLL}, +{0x8000000000000010uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5D80000021uLL}, +{0x8000000000000010uLL, 0x078644FA80000000uLL, 0x0000000000000011uLL, 0x00156B5D80000010uLL}, +{0x8000000000000010uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000011uLL, 0x00156B5500000043uLL}, +{0x8000000000000010uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000011uLL, 0x00156B5500000032uLL}, +{0x8000000000000010uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5500000021uLL}, +{0x8000000000000010uLL, 0x0747AE1400000000uLL, 0x0000000000000011uLL, 0x043D70AC00000010uLL}, +{0x8000000000000010uLL, 0x0747AE1400000001uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFFFFuLL}, +{0x8000000000000010uLL, 0x0747AE1400000002uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFFEEuLL}, +{0x8000000000000010uLL, 0x0747AE1400000003uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFFDDuLL}, +{0x8000000000000010uLL, 0x0747AE1400000010uLL, 0x0000000000000011uLL, 0x043D70ABFFFFFF00uLL}, +{0x8000000000000010uLL, 0x0747AE14078644FAuLL, 0x0000000000000011uLL, 0x043D70AB80156B76uLL}, +{0x8000000000000010uLL, 0x0747AE140747AE14uLL, 0x0000000000000011uLL, 0x043D70AB843D70BCuLL}, +{0x8000000000000010uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000011uLL, 0x043D70A380000021uLL}, +{0x8000000000000010uLL, 0x0747AE1480000000uLL, 0x0000000000000011uLL, 0x043D70A380000010uLL}, +{0x8000000000000010uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000011uLL, 0x043D709B00000043uLL}, +{0x8000000000000010uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000011uLL, 0x043D709B00000032uLL}, +{0x8000000000000010uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000011uLL, 0x043D709B00000021uLL}, +{0x8000000000000010uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x0000000100000010uLL}, +{0x8000000000000010uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x000000010000000FuLL}, +{0x8000000000000010uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x000000010000000EuLL}, +{0x8000000000000010uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x000000010000000DuLL}, +{0x8000000000000010uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x8000000000000010uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB16uLL}, +{0x8000000000000010uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851FCuLL}, +{0x8000000000000010uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000011uLL}, +{0x8000000000000010uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x0000000080000010uLL}, +{0x8000000000000010uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000013uLL}, +{0x8000000000000010uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000012uLL}, +{0x8000000000000010uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000011uLL}, +{0x8000000000000010uLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x0000000000000010uLL}, +{0x8000000000000010uLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x000000000000000FuLL}, +{0x8000000000000010uLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x000000000000000EuLL}, +{0x8000000000000010uLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x000000000000000DuLL}, +{0x8000000000000010uLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x8000000000000010uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x8000000000000010uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x8000000000000010uLL}, +{0x80000000078644FAuLL, 0x0000000000000001uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL}, +{0x80000000078644FAuLL, 0x0000000000000002uLL, 0x4000000003C3227DuLL, 0x0000000000000000uLL}, +{0x80000000078644FAuLL, 0x0000000000000003uLL, 0x2AAAAAAAAD2CC1A8uLL, 0x0000000000000002uLL}, +{0x80000000078644FAuLL, 0x0000000000000010uLL, 0x080000000078644FuLL, 0x000000000000000AuLL}, +{0x80000000078644FAuLL, 0x00000000078644FAuLL, 0x0000001102D8BD7FuLL, 0x00000000040D7AF4uLL}, +{0x80000000078644FAuLL, 0x000000000747AE14uLL, 0x00000011951952BEuLL, 0x00000000069CAA22uLL}, +{0x80000000078644FAuLL, 0x000000007FFFFFFFuLL, 0x0000000100000002uLL, 0x00000000078644FCuLL}, +{0x80000000078644FAuLL, 0x0000000080000000uLL, 0x0000000100000000uLL, 0x00000000078644FAuLL}, +{0x80000000078644FAuLL, 0x00000000FFFFFFFDuLL, 0x0000000080000001uLL, 0x00000000878644FDuLL}, +{0x80000000078644FAuLL, 0x00000000FFFFFFFEuLL, 0x0000000080000001uLL, 0x00000000078644FCuLL}, +{0x80000000078644FAuLL, 0x00000000FFFFFFFFuLL, 0x0000000080000000uLL, 0x00000000878644FAuLL}, +{0x80000000078644FAuLL, 0x0000000100000000uLL, 0x0000000080000000uLL, 0x00000000078644FAuLL}, +{0x80000000078644FAuLL, 0x0000000100000001uLL, 0x000000007FFFFFFFuLL, 0x00000000878644FBuLL}, +{0x80000000078644FAuLL, 0x0000000100000002uLL, 0x000000007FFFFFFFuLL, 0x00000000078644FCuLL}, +{0x80000000078644FAuLL, 0x0000000100000003uLL, 0x000000007FFFFFFEuLL, 0x0000000087864500uLL}, +{0x80000000078644FAuLL, 0x0000000100000010uLL, 0x000000007FFFFFF8uLL, 0x000000000786457AuLL}, +{0x80000000078644FAuLL, 0x00000001078644FAuLL, 0x000000007C585DAEuLL, 0x000000005544910EuLL}, +{0x80000000078644FAuLL, 0x000000010747AE14uLL, 0x000000007C75ED2DuLL, 0x0000000024A02776uLL}, +{0x80000000078644FAuLL, 0x000000017FFFFFFFuLL, 0x0000000055555555uLL, 0x00000000DCDB9A4FuLL}, +{0x80000000078644FAuLL, 0x0000000180000000uLL, 0x0000000055555555uLL, 0x00000000878644FAuLL}, +{0x80000000078644FAuLL, 0x00000001FFFFFFFDuLL, 0x0000000040000000uLL, 0x00000000C78644FAuLL}, +{0x80000000078644FAuLL, 0x00000001FFFFFFFEuLL, 0x0000000040000000uLL, 0x00000000878644FAuLL}, +{0x80000000078644FAuLL, 0x00000001FFFFFFFFuLL, 0x0000000040000000uLL, 0x00000000478644FAuLL}, +{0x80000000078644FAuLL, 0x0000000200000000uLL, 0x0000000040000000uLL, 0x00000000078644FAuLL}, +{0x80000000078644FAuLL, 0x0000000200000001uLL, 0x000000003FFFFFFFuLL, 0x00000001C78644FBuLL}, +{0x80000000078644FAuLL, 0x0000000200000002uLL, 0x000000003FFFFFFFuLL, 0x00000001878644FCuLL}, +{0x80000000078644FAuLL, 0x0000000200000003uLL, 0x000000003FFFFFFFuLL, 0x00000001478644FDuLL}, +{0x80000000078644FAuLL, 0x0000000200000010uLL, 0x000000003FFFFFFEuLL, 0x000000000786451AuLL}, +{0x80000000078644FAuLL, 0x00000002078644FAuLL, 0x000000003F12B425uLL, 0x00000000290A84D8uLL}, +{0x80000000078644FAuLL, 0x000000020747AE14uLL, 0x000000003F1A4E53uLL, 0x000000013A36BC7EuLL}, +{0x80000000078644FAuLL, 0x000000027FFFFFFFuLL, 0x0000000033333333uLL, 0x00000000BAB9782DuLL}, +{0x80000000078644FAuLL, 0x0000000280000000uLL, 0x0000000033333333uLL, 0x00000000878644FAuLL}, +{0x80000000078644FAuLL, 0x00000002FFFFFFFDuLL, 0x000000002AAAAAAAuLL, 0x00000002878644F8uLL}, +{0x80000000078644FAuLL, 0x00000002FFFFFFFEuLL, 0x000000002AAAAAAAuLL, 0x000000025CDB9A4EuLL}, +{0x80000000078644FAuLL, 0x00000002FFFFFFFFuLL, 0x000000002AAAAAAAuLL, 0x000000023230EFA4uLL}, +{0x80000000078644FAuLL, 0x0000000300000000uLL, 0x000000002AAAAAAAuLL, 0x00000002078644FAuLL}, +{0x80000000078644FAuLL, 0x0000000300000001uLL, 0x000000002AAAAAAAuLL, 0x00000001DCDB9A50uLL}, +{0x80000000078644FAuLL, 0x0000000300000002uLL, 0x000000002AAAAAAAuLL, 0x00000001B230EFA6uLL}, +{0x80000000078644FAuLL, 0x0000000300000003uLL, 0x000000002AAAAAAAuLL, 0x00000001878644FCuLL}, +{0x80000000078644FAuLL, 0x0000000300000010uLL, 0x000000002AAAAAA9uLL, 0x000000025CDB9A6AuLL}, +{0x80000000078644FAuLL, 0x00000003078644FAuLL, 0x000000002A40B0A4uLL, 0x00000000A39634D2uLL}, +{0x80000000078644FAuLL, 0x000000030747AE14uLL, 0x000000002A4419E3uLL, 0x000000010DA6F53EuLL}, +{0x80000000078644FAuLL, 0x000000037FFFFFFFuLL, 0x0000000024924924uLL, 0x000000022C188E1EuLL}, +{0x80000000078644FAuLL, 0x0000000380000000uLL, 0x0000000024924924uLL, 0x00000002078644FAuLL}, +{0x80000000078644FAuLL, 0x00000003FFFFFFFDuLL, 0x0000000020000000uLL, 0x00000000678644FAuLL}, +{0x80000000078644FAuLL, 0x00000003FFFFFFFEuLL, 0x0000000020000000uLL, 0x00000000478644FAuLL}, +{0x80000000078644FAuLL, 0x00000003FFFFFFFFuLL, 0x0000000020000000uLL, 0x00000000278644FAuLL}, +{0x80000000078644FAuLL, 0x0000001000000000uLL, 0x0000000008000000uLL, 0x00000000078644FAuLL}, +{0x80000000078644FAuLL, 0x0000001000000001uLL, 0x0000000007FFFFFFuLL, 0x0000000FFF8644FBuLL}, +{0x80000000078644FAuLL, 0x0000001000000002uLL, 0x0000000007FFFFFFuLL, 0x0000000FF78644FCuLL}, +{0x80000000078644FAuLL, 0x0000001000000003uLL, 0x0000000007FFFFFFuLL, 0x0000000FEF8644FDuLL}, +{0x80000000078644FAuLL, 0x0000001000000010uLL, 0x0000000007FFFFFFuLL, 0x0000000F8786450AuLL}, +{0x80000000078644FAuLL, 0x00000010078644FAuLL, 0x0000000007FC3EA1uLL, 0x0000000A0B4857C0uLL}, +{0x80000000078644FAuLL, 0x000000100747AE14uLL, 0x0000000007FC5DD0uLL, 0x000000032B5B90BAuLL}, +{0x80000000078644FAuLL, 0x000000107FFFFFFFuLL, 0x0000000007C1F07CuLL, 0x000000020F483576uLL}, +{0x80000000078644FAuLL, 0x0000001080000000uLL, 0x0000000007C1F07CuLL, 0x00000002078644FAuLL}, +{0x80000000078644FAuLL, 0x00000010FFFFFFFDuLL, 0x0000000007878787uLL, 0x000000091E1CDB8FuLL}, +{0x80000000078644FAuLL, 0x00000010FFFFFFFEuLL, 0x0000000007878787uLL, 0x0000000916955408uLL}, +{0x80000000078644FAuLL, 0x00000010FFFFFFFFuLL, 0x0000000007878787uLL, 0x000000090F0DCC81uLL}, +{0x80000000078644FAuLL, 0x078644FA00000000uLL, 0x0000000000000011uLL, 0x00156B66078644FAuLL}, +{0x80000000078644FAuLL, 0x078644FA00000001uLL, 0x0000000000000011uLL, 0x00156B66078644E9uLL}, +{0x80000000078644FAuLL, 0x078644FA00000002uLL, 0x0000000000000011uLL, 0x00156B66078644D8uLL}, +{0x80000000078644FAuLL, 0x078644FA00000003uLL, 0x0000000000000011uLL, 0x00156B66078644C7uLL}, +{0x80000000078644FAuLL, 0x078644FA00000010uLL, 0x0000000000000011uLL, 0x00156B66078643EAuLL}, +{0x80000000078644FAuLL, 0x078644FA078644FAuLL, 0x0000000000000011uLL, 0x00156B65879BB060uLL}, +{0x80000000078644FAuLL, 0x078644FA0747AE14uLL, 0x0000000000000011uLL, 0x00156B658BC3B5A6uLL}, +{0x80000000078644FAuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5D8786450BuLL}, +{0x80000000078644FAuLL, 0x078644FA80000000uLL, 0x0000000000000011uLL, 0x00156B5D878644FAuLL}, +{0x80000000078644FAuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000011uLL, 0x00156B550786452DuLL}, +{0x80000000078644FAuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000011uLL, 0x00156B550786451CuLL}, +{0x80000000078644FAuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000011uLL, 0x00156B550786450BuLL}, +{0x80000000078644FAuLL, 0x0747AE1400000000uLL, 0x0000000000000011uLL, 0x043D70AC078644FAuLL}, +{0x80000000078644FAuLL, 0x0747AE1400000001uLL, 0x0000000000000011uLL, 0x043D70AC078644E9uLL}, +{0x80000000078644FAuLL, 0x0747AE1400000002uLL, 0x0000000000000011uLL, 0x043D70AC078644D8uLL}, +{0x80000000078644FAuLL, 0x0747AE1400000003uLL, 0x0000000000000011uLL, 0x043D70AC078644C7uLL}, +{0x80000000078644FAuLL, 0x0747AE1400000010uLL, 0x0000000000000011uLL, 0x043D70AC078643EAuLL}, +{0x80000000078644FAuLL, 0x0747AE14078644FAuLL, 0x0000000000000011uLL, 0x043D70AB879BB060uLL}, +{0x80000000078644FAuLL, 0x0747AE140747AE14uLL, 0x0000000000000011uLL, 0x043D70AB8BC3B5A6uLL}, +{0x80000000078644FAuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000011uLL, 0x043D70A38786450BuLL}, +{0x80000000078644FAuLL, 0x0747AE1480000000uLL, 0x0000000000000011uLL, 0x043D70A3878644FAuLL}, +{0x80000000078644FAuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000011uLL, 0x043D709B0786452DuLL}, +{0x80000000078644FAuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000011uLL, 0x043D709B0786451CuLL}, +{0x80000000078644FAuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000011uLL, 0x043D709B0786450BuLL}, +{0x80000000078644FAuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x00000001078644FAuLL}, +{0x80000000078644FAuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x00000001078644F9uLL}, +{0x80000000078644FAuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x00000001078644F8uLL}, +{0x80000000078644FAuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x00000001078644F7uLL}, +{0x80000000078644FAuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x00000001078644EAuLL}, +{0x80000000078644FAuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x80000000078644FAuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x00000001003E96E6uLL}, +{0x80000000078644FAuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x00000000878644FBuLL}, +{0x80000000078644FAuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x00000000878644FAuLL}, +{0x80000000078644FAuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x00000000078644FDuLL}, +{0x80000000078644FAuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x00000000078644FCuLL}, +{0x80000000078644FAuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x00000000078644FBuLL}, +{0x80000000078644FAuLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x00000000078644FAuLL}, +{0x80000000078644FAuLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x00000000078644F9uLL}, +{0x80000000078644FAuLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x00000000078644F8uLL}, +{0x80000000078644FAuLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x00000000078644F7uLL}, +{0x80000000078644FAuLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x00000000078644EAuLL}, +{0x80000000078644FAuLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x80000000078644FAuLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x00000000003E96E6uLL}, +{0x80000000078644FAuLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x80000000078644FAuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x80000000078644FAuLL}, +{0x800000000747AE14uLL, 0x0000000000000001uLL, 0x800000000747AE14uLL, 0x0000000000000000uLL}, +{0x800000000747AE14uLL, 0x0000000000000002uLL, 0x4000000003A3D70AuLL, 0x0000000000000000uLL}, +{0x800000000747AE14uLL, 0x0000000000000003uLL, 0x2AAAAAAAAD17E4B1uLL, 0x0000000000000001uLL}, +{0x800000000747AE14uLL, 0x0000000000000010uLL, 0x0800000000747AE1uLL, 0x0000000000000004uLL}, +{0x800000000747AE14uLL, 0x00000000078644FAuLL, 0x0000001102D8BD7FuLL, 0x0000000003CEE40EuLL}, +{0x800000000747AE14uLL, 0x000000000747AE14uLL, 0x00000011951952BEuLL, 0x00000000065E133CuLL}, +{0x800000000747AE14uLL, 0x000000007FFFFFFFuLL, 0x0000000100000002uLL, 0x000000000747AE16uLL}, +{0x800000000747AE14uLL, 0x0000000080000000uLL, 0x0000000100000000uLL, 0x000000000747AE14uLL}, +{0x800000000747AE14uLL, 0x00000000FFFFFFFDuLL, 0x0000000080000001uLL, 0x000000008747AE17uLL}, +{0x800000000747AE14uLL, 0x00000000FFFFFFFEuLL, 0x0000000080000001uLL, 0x000000000747AE16uLL}, +{0x800000000747AE14uLL, 0x00000000FFFFFFFFuLL, 0x0000000080000000uLL, 0x000000008747AE14uLL}, +{0x800000000747AE14uLL, 0x0000000100000000uLL, 0x0000000080000000uLL, 0x000000000747AE14uLL}, +{0x800000000747AE14uLL, 0x0000000100000001uLL, 0x000000007FFFFFFFuLL, 0x000000008747AE15uLL}, +{0x800000000747AE14uLL, 0x0000000100000002uLL, 0x000000007FFFFFFFuLL, 0x000000000747AE16uLL}, +{0x800000000747AE14uLL, 0x0000000100000003uLL, 0x000000007FFFFFFEuLL, 0x000000008747AE1AuLL}, +{0x800000000747AE14uLL, 0x0000000100000010uLL, 0x000000007FFFFFF8uLL, 0x000000000747AE94uLL}, +{0x800000000747AE14uLL, 0x00000001078644FAuLL, 0x000000007C585DAEuLL, 0x000000005505FA28uLL}, +{0x800000000747AE14uLL, 0x000000010747AE14uLL, 0x000000007C75ED2DuLL, 0x0000000024619090uLL}, +{0x800000000747AE14uLL, 0x000000017FFFFFFFuLL, 0x0000000055555555uLL, 0x00000000DC9D0369uLL}, +{0x800000000747AE14uLL, 0x0000000180000000uLL, 0x0000000055555555uLL, 0x000000008747AE14uLL}, +{0x800000000747AE14uLL, 0x00000001FFFFFFFDuLL, 0x0000000040000000uLL, 0x00000000C747AE14uLL}, +{0x800000000747AE14uLL, 0x00000001FFFFFFFEuLL, 0x0000000040000000uLL, 0x000000008747AE14uLL}, +{0x800000000747AE14uLL, 0x00000001FFFFFFFFuLL, 0x0000000040000000uLL, 0x000000004747AE14uLL}, +{0x800000000747AE14uLL, 0x0000000200000000uLL, 0x0000000040000000uLL, 0x000000000747AE14uLL}, +{0x800000000747AE14uLL, 0x0000000200000001uLL, 0x000000003FFFFFFFuLL, 0x00000001C747AE15uLL}, +{0x800000000747AE14uLL, 0x0000000200000002uLL, 0x000000003FFFFFFFuLL, 0x000000018747AE16uLL}, +{0x800000000747AE14uLL, 0x0000000200000003uLL, 0x000000003FFFFFFFuLL, 0x000000014747AE17uLL}, +{0x800000000747AE14uLL, 0x0000000200000010uLL, 0x000000003FFFFFFEuLL, 0x000000000747AE34uLL}, +{0x800000000747AE14uLL, 0x00000002078644FAuLL, 0x000000003F12B425uLL, 0x0000000028CBEDF2uLL}, +{0x800000000747AE14uLL, 0x000000020747AE14uLL, 0x000000003F1A4E53uLL, 0x0000000139F82598uLL}, +{0x800000000747AE14uLL, 0x000000027FFFFFFFuLL, 0x0000000033333333uLL, 0x00000000BA7AE147uLL}, +{0x800000000747AE14uLL, 0x0000000280000000uLL, 0x0000000033333333uLL, 0x000000008747AE14uLL}, +{0x800000000747AE14uLL, 0x00000002FFFFFFFDuLL, 0x000000002AAAAAAAuLL, 0x000000028747AE12uLL}, +{0x800000000747AE14uLL, 0x00000002FFFFFFFEuLL, 0x000000002AAAAAAAuLL, 0x000000025C9D0368uLL}, +{0x800000000747AE14uLL, 0x00000002FFFFFFFFuLL, 0x000000002AAAAAAAuLL, 0x0000000231F258BEuLL}, +{0x800000000747AE14uLL, 0x0000000300000000uLL, 0x000000002AAAAAAAuLL, 0x000000020747AE14uLL}, +{0x800000000747AE14uLL, 0x0000000300000001uLL, 0x000000002AAAAAAAuLL, 0x00000001DC9D036AuLL}, +{0x800000000747AE14uLL, 0x0000000300000002uLL, 0x000000002AAAAAAAuLL, 0x00000001B1F258C0uLL}, +{0x800000000747AE14uLL, 0x0000000300000003uLL, 0x000000002AAAAAAAuLL, 0x000000018747AE16uLL}, +{0x800000000747AE14uLL, 0x0000000300000010uLL, 0x000000002AAAAAA9uLL, 0x000000025C9D0384uLL}, +{0x800000000747AE14uLL, 0x00000003078644FAuLL, 0x000000002A40B0A4uLL, 0x00000000A3579DECuLL}, +{0x800000000747AE14uLL, 0x000000030747AE14uLL, 0x000000002A4419E3uLL, 0x000000010D685E58uLL}, +{0x800000000747AE14uLL, 0x000000037FFFFFFFuLL, 0x0000000024924924uLL, 0x000000022BD9F738uLL}, +{0x800000000747AE14uLL, 0x0000000380000000uLL, 0x0000000024924924uLL, 0x000000020747AE14uLL}, +{0x800000000747AE14uLL, 0x00000003FFFFFFFDuLL, 0x0000000020000000uLL, 0x000000006747AE14uLL}, +{0x800000000747AE14uLL, 0x00000003FFFFFFFEuLL, 0x0000000020000000uLL, 0x000000004747AE14uLL}, +{0x800000000747AE14uLL, 0x00000003FFFFFFFFuLL, 0x0000000020000000uLL, 0x000000002747AE14uLL}, +{0x800000000747AE14uLL, 0x0000001000000000uLL, 0x0000000008000000uLL, 0x000000000747AE14uLL}, +{0x800000000747AE14uLL, 0x0000001000000001uLL, 0x0000000007FFFFFFuLL, 0x0000000FFF47AE15uLL}, +{0x800000000747AE14uLL, 0x0000001000000002uLL, 0x0000000007FFFFFFuLL, 0x0000000FF747AE16uLL}, +{0x800000000747AE14uLL, 0x0000001000000003uLL, 0x0000000007FFFFFFuLL, 0x0000000FEF47AE17uLL}, +{0x800000000747AE14uLL, 0x0000001000000010uLL, 0x0000000007FFFFFFuLL, 0x0000000F8747AE24uLL}, +{0x800000000747AE14uLL, 0x00000010078644FAuLL, 0x0000000007FC3EA1uLL, 0x0000000A0B09C0DAuLL}, +{0x800000000747AE14uLL, 0x000000100747AE14uLL, 0x0000000007FC5DD0uLL, 0x000000032B1CF9D4uLL}, +{0x800000000747AE14uLL, 0x000000107FFFFFFFuLL, 0x0000000007C1F07CuLL, 0x000000020F099E90uLL}, +{0x800000000747AE14uLL, 0x0000001080000000uLL, 0x0000000007C1F07CuLL, 0x000000020747AE14uLL}, +{0x800000000747AE14uLL, 0x00000010FFFFFFFDuLL, 0x0000000007878787uLL, 0x000000091DDE44A9uLL}, +{0x800000000747AE14uLL, 0x00000010FFFFFFFEuLL, 0x0000000007878787uLL, 0x000000091656BD22uLL}, +{0x800000000747AE14uLL, 0x00000010FFFFFFFFuLL, 0x0000000007878787uLL, 0x000000090ECF359BuLL}, +{0x800000000747AE14uLL, 0x078644FA00000000uLL, 0x0000000000000011uLL, 0x00156B660747AE14uLL}, +{0x800000000747AE14uLL, 0x078644FA00000001uLL, 0x0000000000000011uLL, 0x00156B660747AE03uLL}, +{0x800000000747AE14uLL, 0x078644FA00000002uLL, 0x0000000000000011uLL, 0x00156B660747ADF2uLL}, +{0x800000000747AE14uLL, 0x078644FA00000003uLL, 0x0000000000000011uLL, 0x00156B660747ADE1uLL}, +{0x800000000747AE14uLL, 0x078644FA00000010uLL, 0x0000000000000011uLL, 0x00156B660747AD04uLL}, +{0x800000000747AE14uLL, 0x078644FA078644FAuLL, 0x0000000000000011uLL, 0x00156B65875D197AuLL}, +{0x800000000747AE14uLL, 0x078644FA0747AE14uLL, 0x0000000000000011uLL, 0x00156B658B851EC0uLL}, +{0x800000000747AE14uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5D8747AE25uLL}, +{0x800000000747AE14uLL, 0x078644FA80000000uLL, 0x0000000000000011uLL, 0x00156B5D8747AE14uLL}, +{0x800000000747AE14uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000011uLL, 0x00156B550747AE47uLL}, +{0x800000000747AE14uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000011uLL, 0x00156B550747AE36uLL}, +{0x800000000747AE14uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000011uLL, 0x00156B550747AE25uLL}, +{0x800000000747AE14uLL, 0x0747AE1400000000uLL, 0x0000000000000011uLL, 0x043D70AC0747AE14uLL}, +{0x800000000747AE14uLL, 0x0747AE1400000001uLL, 0x0000000000000011uLL, 0x043D70AC0747AE03uLL}, +{0x800000000747AE14uLL, 0x0747AE1400000002uLL, 0x0000000000000011uLL, 0x043D70AC0747ADF2uLL}, +{0x800000000747AE14uLL, 0x0747AE1400000003uLL, 0x0000000000000011uLL, 0x043D70AC0747ADE1uLL}, +{0x800000000747AE14uLL, 0x0747AE1400000010uLL, 0x0000000000000011uLL, 0x043D70AC0747AD04uLL}, +{0x800000000747AE14uLL, 0x0747AE14078644FAuLL, 0x0000000000000011uLL, 0x043D70AB875D197AuLL}, +{0x800000000747AE14uLL, 0x0747AE140747AE14uLL, 0x0000000000000011uLL, 0x043D70AB8B851EC0uLL}, +{0x800000000747AE14uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000011uLL, 0x043D70A38747AE25uLL}, +{0x800000000747AE14uLL, 0x0747AE1480000000uLL, 0x0000000000000011uLL, 0x043D70A38747AE14uLL}, +{0x800000000747AE14uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000011uLL, 0x043D709B0747AE47uLL}, +{0x800000000747AE14uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000011uLL, 0x043D709B0747AE36uLL}, +{0x800000000747AE14uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000011uLL, 0x043D709B0747AE25uLL}, +{0x800000000747AE14uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x000000010747AE14uLL}, +{0x800000000747AE14uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x000000010747AE13uLL}, +{0x800000000747AE14uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x000000010747AE12uLL}, +{0x800000000747AE14uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x000000010747AE11uLL}, +{0x800000000747AE14uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x000000010747AE04uLL}, +{0x800000000747AE14uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x00000000FFC1691AuLL}, +{0x800000000747AE14uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x800000000747AE14uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x000000008747AE15uLL}, +{0x800000000747AE14uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x000000008747AE14uLL}, +{0x800000000747AE14uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x000000000747AE17uLL}, +{0x800000000747AE14uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x000000000747AE16uLL}, +{0x800000000747AE14uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x000000000747AE15uLL}, +{0x800000000747AE14uLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x000000000747AE14uLL}, +{0x800000000747AE14uLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x000000000747AE13uLL}, +{0x800000000747AE14uLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x000000000747AE12uLL}, +{0x800000000747AE14uLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x000000000747AE11uLL}, +{0x800000000747AE14uLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x000000000747AE04uLL}, +{0x800000000747AE14uLL, 0x80000000078644FAuLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x800000000747AE14uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000000747AE14uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x800000000747AE14uLL}, +{0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x800000007FFFFFFFuLL, 0x0000000000000000uLL}, +{0x800000007FFFFFFFuLL, 0x0000000000000002uLL, 0x400000003FFFFFFFuLL, 0x0000000000000001uLL}, +{0x800000007FFFFFFFuLL, 0x0000000000000003uLL, 0x2AAAAAAAD5555555uLL, 0x0000000000000000uLL}, +{0x800000007FFFFFFFuLL, 0x0000000000000010uLL, 0x0800000007FFFFFFuLL, 0x000000000000000FuLL}, +{0x800000007FFFFFFFuLL, 0x00000000078644FAuLL, 0x0000001102D8BD8FuLL, 0x000000000422E659uLL}, +{0x800000007FFFFFFFuLL, 0x000000000747AE14uLL, 0x00000011951952CFuLL, 0x000000000353D5D3uLL}, +{0x800000007FFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x0000000100000003uLL, 0x0000000000000002uLL}, +{0x800000007FFFFFFFuLL, 0x0000000080000000uLL, 0x0000000100000000uLL, 0x000000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0x00000000FFFFFFFDuLL, 0x0000000080000002uLL, 0x0000000000000005uLL}, +{0x800000007FFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x0000000080000001uLL, 0x0000000080000001uLL}, +{0x800000007FFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x0000000080000001uLL, 0x0000000000000000uLL}, +{0x800000007FFFFFFFuLL, 0x0000000100000000uLL, 0x0000000080000000uLL, 0x000000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0x0000000100000001uLL, 0x000000007FFFFFFFuLL, 0x0000000100000000uLL}, +{0x800000007FFFFFFFuLL, 0x0000000100000002uLL, 0x000000007FFFFFFFuLL, 0x0000000080000001uLL}, +{0x800000007FFFFFFFuLL, 0x0000000100000003uLL, 0x000000007FFFFFFFuLL, 0x0000000000000002uLL}, +{0x800000007FFFFFFFuLL, 0x0000000100000010uLL, 0x000000007FFFFFF8uLL, 0x000000008000007FuLL}, +{0x800000007FFFFFFFuLL, 0x00000001078644FAuLL, 0x000000007C585DAEuLL, 0x00000000CDBE4C13uLL}, +{0x800000007FFFFFFFuLL, 0x000000010747AE14uLL, 0x000000007C75ED2DuLL, 0x000000009D19E27BuLL}, +{0x800000007FFFFFFFuLL, 0x000000017FFFFFFFuLL, 0x0000000055555555uLL, 0x0000000155555554uLL}, +{0x800000007FFFFFFFuLL, 0x0000000180000000uLL, 0x0000000055555555uLL, 0x00000000FFFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0x00000001FFFFFFFDuLL, 0x0000000040000000uLL, 0x000000013FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0x00000001FFFFFFFEuLL, 0x0000000040000000uLL, 0x00000000FFFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0x00000001FFFFFFFFuLL, 0x0000000040000000uLL, 0x00000000BFFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0x0000000200000000uLL, 0x0000000040000000uLL, 0x000000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0x0000000200000001uLL, 0x0000000040000000uLL, 0x000000003FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0x0000000200000002uLL, 0x000000003FFFFFFFuLL, 0x0000000200000001uLL}, +{0x800000007FFFFFFFuLL, 0x0000000200000003uLL, 0x000000003FFFFFFFuLL, 0x00000001C0000002uLL}, +{0x800000007FFFFFFFuLL, 0x0000000200000010uLL, 0x000000003FFFFFFEuLL, 0x000000008000001FuLL}, +{0x800000007FFFFFFFuLL, 0x00000002078644FAuLL, 0x000000003F12B425uLL, 0x00000000A1843FDDuLL}, +{0x800000007FFFFFFFuLL, 0x000000020747AE14uLL, 0x000000003F1A4E53uLL, 0x00000001B2B07783uLL}, +{0x800000007FFFFFFFuLL, 0x000000027FFFFFFFuLL, 0x0000000033333333uLL, 0x0000000133333332uLL}, +{0x800000007FFFFFFFuLL, 0x0000000280000000uLL, 0x0000000033333333uLL, 0x00000000FFFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0x00000002FFFFFFFDuLL, 0x000000002AAAAAABuLL, 0x0000000000000000uLL}, +{0x800000007FFFFFFFuLL, 0x00000002FFFFFFFEuLL, 0x000000002AAAAAAAuLL, 0x00000002D5555553uLL}, +{0x800000007FFFFFFFuLL, 0x00000002FFFFFFFFuLL, 0x000000002AAAAAAAuLL, 0x00000002AAAAAAA9uLL}, +{0x800000007FFFFFFFuLL, 0x0000000300000000uLL, 0x000000002AAAAAAAuLL, 0x000000027FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0x0000000300000001uLL, 0x000000002AAAAAAAuLL, 0x0000000255555555uLL}, +{0x800000007FFFFFFFuLL, 0x0000000300000002uLL, 0x000000002AAAAAAAuLL, 0x000000022AAAAAABuLL}, +{0x800000007FFFFFFFuLL, 0x0000000300000003uLL, 0x000000002AAAAAAAuLL, 0x0000000200000001uLL}, +{0x800000007FFFFFFFuLL, 0x0000000300000010uLL, 0x000000002AAAAAA9uLL, 0x00000002D555556FuLL}, +{0x800000007FFFFFFFuLL, 0x00000003078644FAuLL, 0x000000002A40B0A4uLL, 0x000000011C0FEFD7uLL}, +{0x800000007FFFFFFFuLL, 0x000000030747AE14uLL, 0x000000002A4419E3uLL, 0x000000018620B043uLL}, +{0x800000007FFFFFFFuLL, 0x000000037FFFFFFFuLL, 0x0000000024924924uLL, 0x00000002A4924923uLL}, +{0x800000007FFFFFFFuLL, 0x0000000380000000uLL, 0x0000000024924924uLL, 0x000000027FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0x00000003FFFFFFFDuLL, 0x0000000020000000uLL, 0x00000000DFFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0x00000003FFFFFFFEuLL, 0x0000000020000000uLL, 0x00000000BFFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0x00000003FFFFFFFFuLL, 0x0000000020000000uLL, 0x000000009FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0x0000001000000000uLL, 0x0000000008000000uLL, 0x000000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0x0000001000000001uLL, 0x0000000008000000uLL, 0x0000000077FFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0x0000001000000002uLL, 0x0000000008000000uLL, 0x000000006FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0x0000001000000003uLL, 0x0000000008000000uLL, 0x0000000067FFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0x0000001000000010uLL, 0x0000000007FFFFFFuLL, 0x000000100000000FuLL}, +{0x800000007FFFFFFFuLL, 0x00000010078644FAuLL, 0x0000000007FC3EA1uLL, 0x0000000A83C212C5uLL}, +{0x800000007FFFFFFFuLL, 0x000000100747AE14uLL, 0x0000000007FC5DD0uLL, 0x00000003A3D54BBFuLL}, +{0x800000007FFFFFFFuLL, 0x000000107FFFFFFFuLL, 0x0000000007C1F07CuLL, 0x0000000287C1F07BuLL}, +{0x800000007FFFFFFFuLL, 0x0000001080000000uLL, 0x0000000007C1F07CuLL, 0x000000027FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0x00000010FFFFFFFDuLL, 0x0000000007878787uLL, 0x0000000996969694uLL}, +{0x800000007FFFFFFFuLL, 0x00000010FFFFFFFEuLL, 0x0000000007878787uLL, 0x000000098F0F0F0DuLL}, +{0x800000007FFFFFFFuLL, 0x00000010FFFFFFFFuLL, 0x0000000007878787uLL, 0x0000000987878786uLL}, +{0x800000007FFFFFFFuLL, 0x078644FA00000000uLL, 0x0000000000000011uLL, 0x00156B667FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0x078644FA00000001uLL, 0x0000000000000011uLL, 0x00156B667FFFFFEEuLL}, +{0x800000007FFFFFFFuLL, 0x078644FA00000002uLL, 0x0000000000000011uLL, 0x00156B667FFFFFDDuLL}, +{0x800000007FFFFFFFuLL, 0x078644FA00000003uLL, 0x0000000000000011uLL, 0x00156B667FFFFFCCuLL}, +{0x800000007FFFFFFFuLL, 0x078644FA00000010uLL, 0x0000000000000011uLL, 0x00156B667FFFFEEFuLL}, +{0x800000007FFFFFFFuLL, 0x078644FA078644FAuLL, 0x0000000000000011uLL, 0x00156B6600156B65uLL}, +{0x800000007FFFFFFFuLL, 0x078644FA0747AE14uLL, 0x0000000000000011uLL, 0x00156B66043D70ABuLL}, +{0x800000007FFFFFFFuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5E00000010uLL}, +{0x800000007FFFFFFFuLL, 0x078644FA80000000uLL, 0x0000000000000011uLL, 0x00156B5DFFFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000011uLL, 0x00156B5580000032uLL}, +{0x800000007FFFFFFFuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000011uLL, 0x00156B5580000021uLL}, +{0x800000007FFFFFFFuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5580000010uLL}, +{0x800000007FFFFFFFuLL, 0x0747AE1400000000uLL, 0x0000000000000011uLL, 0x043D70AC7FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0x0747AE1400000001uLL, 0x0000000000000011uLL, 0x043D70AC7FFFFFEEuLL}, +{0x800000007FFFFFFFuLL, 0x0747AE1400000002uLL, 0x0000000000000011uLL, 0x043D70AC7FFFFFDDuLL}, +{0x800000007FFFFFFFuLL, 0x0747AE1400000003uLL, 0x0000000000000011uLL, 0x043D70AC7FFFFFCCuLL}, +{0x800000007FFFFFFFuLL, 0x0747AE1400000010uLL, 0x0000000000000011uLL, 0x043D70AC7FFFFEEFuLL}, +{0x800000007FFFFFFFuLL, 0x0747AE14078644FAuLL, 0x0000000000000011uLL, 0x043D70AC00156B65uLL}, +{0x800000007FFFFFFFuLL, 0x0747AE140747AE14uLL, 0x0000000000000011uLL, 0x043D70AC043D70ABuLL}, +{0x800000007FFFFFFFuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000011uLL, 0x043D70A400000010uLL}, +{0x800000007FFFFFFFuLL, 0x0747AE1480000000uLL, 0x0000000000000011uLL, 0x043D70A3FFFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000011uLL, 0x043D709B80000032uLL}, +{0x800000007FFFFFFFuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000011uLL, 0x043D709B80000021uLL}, +{0x800000007FFFFFFFuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000011uLL, 0x043D709B80000010uLL}, +{0x800000007FFFFFFFuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x000000017FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x000000017FFFFFFEuLL}, +{0x800000007FFFFFFFuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x000000017FFFFFFDuLL}, +{0x800000007FFFFFFFuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x000000017FFFFFFCuLL}, +{0x800000007FFFFFFFuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x000000017FFFFFEFuLL}, +{0x800000007FFFFFFFuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x000000017879BB05uLL}, +{0x800000007FFFFFFFuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x0000000178B851EBuLL}, +{0x800000007FFFFFFFuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x800000007FFFFFFFuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000080000002uLL}, +{0x800000007FFFFFFFuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000080000001uLL}, +{0x800000007FFFFFFFuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000000uLL}, +{0x800000007FFFFFFFuLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x800000007FFFFFFFuLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0x800000007FFFFFFFuLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x000000007FFFFFFCuLL}, +{0x800000007FFFFFFFuLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x000000007FFFFFEFuLL}, +{0x800000007FFFFFFFuLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x000000007879BB05uLL}, +{0x800000007FFFFFFFuLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x0000000078B851EBuLL}, +{0x800000007FFFFFFFuLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x800000007FFFFFFFuLL, 0x8000000080000000uLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x800000007FFFFFFFuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x800000007FFFFFFFuLL}, +{0x8000000080000000uLL, 0x0000000000000001uLL, 0x8000000080000000uLL, 0x0000000000000000uLL}, +{0x8000000080000000uLL, 0x0000000000000002uLL, 0x4000000040000000uLL, 0x0000000000000000uLL}, +{0x8000000080000000uLL, 0x0000000000000003uLL, 0x2AAAAAAAD5555555uLL, 0x0000000000000001uLL}, +{0x8000000080000000uLL, 0x0000000000000010uLL, 0x0800000008000000uLL, 0x0000000000000000uLL}, +{0x8000000080000000uLL, 0x00000000078644FAuLL, 0x0000001102D8BD8FuLL, 0x000000000422E65AuLL}, +{0x8000000080000000uLL, 0x000000000747AE14uLL, 0x00000011951952CFuLL, 0x000000000353D5D4uLL}, +{0x8000000080000000uLL, 0x000000007FFFFFFFuLL, 0x0000000100000003uLL, 0x0000000000000003uLL}, +{0x8000000080000000uLL, 0x0000000080000000uLL, 0x0000000100000001uLL, 0x0000000000000000uLL}, +{0x8000000080000000uLL, 0x00000000FFFFFFFDuLL, 0x0000000080000002uLL, 0x0000000000000006uLL}, +{0x8000000080000000uLL, 0x00000000FFFFFFFEuLL, 0x0000000080000001uLL, 0x0000000080000002uLL}, +{0x8000000080000000uLL, 0x00000000FFFFFFFFuLL, 0x0000000080000001uLL, 0x0000000000000001uLL}, +{0x8000000080000000uLL, 0x0000000100000000uLL, 0x0000000080000000uLL, 0x0000000080000000uLL}, +{0x8000000080000000uLL, 0x0000000100000001uLL, 0x0000000080000000uLL, 0x0000000000000000uLL}, +{0x8000000080000000uLL, 0x0000000100000002uLL, 0x000000007FFFFFFFuLL, 0x0000000080000002uLL}, +{0x8000000080000000uLL, 0x0000000100000003uLL, 0x000000007FFFFFFFuLL, 0x0000000000000003uLL}, +{0x8000000080000000uLL, 0x0000000100000010uLL, 0x000000007FFFFFF8uLL, 0x0000000080000080uLL}, +{0x8000000080000000uLL, 0x00000001078644FAuLL, 0x000000007C585DAEuLL, 0x00000000CDBE4C14uLL}, +{0x8000000080000000uLL, 0x000000010747AE14uLL, 0x000000007C75ED2DuLL, 0x000000009D19E27CuLL}, +{0x8000000080000000uLL, 0x000000017FFFFFFFuLL, 0x0000000055555555uLL, 0x0000000155555555uLL}, +{0x8000000080000000uLL, 0x0000000180000000uLL, 0x0000000055555555uLL, 0x0000000100000000uLL}, +{0x8000000080000000uLL, 0x00000001FFFFFFFDuLL, 0x0000000040000000uLL, 0x0000000140000000uLL}, +{0x8000000080000000uLL, 0x00000001FFFFFFFEuLL, 0x0000000040000000uLL, 0x0000000100000000uLL}, +{0x8000000080000000uLL, 0x00000001FFFFFFFFuLL, 0x0000000040000000uLL, 0x00000000C0000000uLL}, +{0x8000000080000000uLL, 0x0000000200000000uLL, 0x0000000040000000uLL, 0x0000000080000000uLL}, +{0x8000000080000000uLL, 0x0000000200000001uLL, 0x0000000040000000uLL, 0x0000000040000000uLL}, +{0x8000000080000000uLL, 0x0000000200000002uLL, 0x0000000040000000uLL, 0x0000000000000000uLL}, +{0x8000000080000000uLL, 0x0000000200000003uLL, 0x000000003FFFFFFFuLL, 0x00000001C0000003uLL}, +{0x8000000080000000uLL, 0x0000000200000010uLL, 0x000000003FFFFFFEuLL, 0x0000000080000020uLL}, +{0x8000000080000000uLL, 0x00000002078644FAuLL, 0x000000003F12B425uLL, 0x00000000A1843FDEuLL}, +{0x8000000080000000uLL, 0x000000020747AE14uLL, 0x000000003F1A4E53uLL, 0x00000001B2B07784uLL}, +{0x8000000080000000uLL, 0x000000027FFFFFFFuLL, 0x0000000033333333uLL, 0x0000000133333333uLL}, +{0x8000000080000000uLL, 0x0000000280000000uLL, 0x0000000033333333uLL, 0x0000000100000000uLL}, +{0x8000000080000000uLL, 0x00000002FFFFFFFDuLL, 0x000000002AAAAAABuLL, 0x0000000000000001uLL}, +{0x8000000080000000uLL, 0x00000002FFFFFFFEuLL, 0x000000002AAAAAAAuLL, 0x00000002D5555554uLL}, +{0x8000000080000000uLL, 0x00000002FFFFFFFFuLL, 0x000000002AAAAAAAuLL, 0x00000002AAAAAAAAuLL}, +{0x8000000080000000uLL, 0x0000000300000000uLL, 0x000000002AAAAAAAuLL, 0x0000000280000000uLL}, +{0x8000000080000000uLL, 0x0000000300000001uLL, 0x000000002AAAAAAAuLL, 0x0000000255555556uLL}, +{0x8000000080000000uLL, 0x0000000300000002uLL, 0x000000002AAAAAAAuLL, 0x000000022AAAAAACuLL}, +{0x8000000080000000uLL, 0x0000000300000003uLL, 0x000000002AAAAAAAuLL, 0x0000000200000002uLL}, +{0x8000000080000000uLL, 0x0000000300000010uLL, 0x000000002AAAAAA9uLL, 0x00000002D5555570uLL}, +{0x8000000080000000uLL, 0x00000003078644FAuLL, 0x000000002A40B0A4uLL, 0x000000011C0FEFD8uLL}, +{0x8000000080000000uLL, 0x000000030747AE14uLL, 0x000000002A4419E3uLL, 0x000000018620B044uLL}, +{0x8000000080000000uLL, 0x000000037FFFFFFFuLL, 0x0000000024924924uLL, 0x00000002A4924924uLL}, +{0x8000000080000000uLL, 0x0000000380000000uLL, 0x0000000024924924uLL, 0x0000000280000000uLL}, +{0x8000000080000000uLL, 0x00000003FFFFFFFDuLL, 0x0000000020000000uLL, 0x00000000E0000000uLL}, +{0x8000000080000000uLL, 0x00000003FFFFFFFEuLL, 0x0000000020000000uLL, 0x00000000C0000000uLL}, +{0x8000000080000000uLL, 0x00000003FFFFFFFFuLL, 0x0000000020000000uLL, 0x00000000A0000000uLL}, +{0x8000000080000000uLL, 0x0000001000000000uLL, 0x0000000008000000uLL, 0x0000000080000000uLL}, +{0x8000000080000000uLL, 0x0000001000000001uLL, 0x0000000008000000uLL, 0x0000000078000000uLL}, +{0x8000000080000000uLL, 0x0000001000000002uLL, 0x0000000008000000uLL, 0x0000000070000000uLL}, +{0x8000000080000000uLL, 0x0000001000000003uLL, 0x0000000008000000uLL, 0x0000000068000000uLL}, +{0x8000000080000000uLL, 0x0000001000000010uLL, 0x0000000008000000uLL, 0x0000000000000000uLL}, +{0x8000000080000000uLL, 0x00000010078644FAuLL, 0x0000000007FC3EA1uLL, 0x0000000A83C212C6uLL}, +{0x8000000080000000uLL, 0x000000100747AE14uLL, 0x0000000007FC5DD0uLL, 0x00000003A3D54BC0uLL}, +{0x8000000080000000uLL, 0x000000107FFFFFFFuLL, 0x0000000007C1F07CuLL, 0x0000000287C1F07CuLL}, +{0x8000000080000000uLL, 0x0000001080000000uLL, 0x0000000007C1F07CuLL, 0x0000000280000000uLL}, +{0x8000000080000000uLL, 0x00000010FFFFFFFDuLL, 0x0000000007878787uLL, 0x0000000996969695uLL}, +{0x8000000080000000uLL, 0x00000010FFFFFFFEuLL, 0x0000000007878787uLL, 0x000000098F0F0F0EuLL}, +{0x8000000080000000uLL, 0x00000010FFFFFFFFuLL, 0x0000000007878787uLL, 0x0000000987878787uLL}, +{0x8000000080000000uLL, 0x078644FA00000000uLL, 0x0000000000000011uLL, 0x00156B6680000000uLL}, +{0x8000000080000000uLL, 0x078644FA00000001uLL, 0x0000000000000011uLL, 0x00156B667FFFFFEFuLL}, +{0x8000000080000000uLL, 0x078644FA00000002uLL, 0x0000000000000011uLL, 0x00156B667FFFFFDEuLL}, +{0x8000000080000000uLL, 0x078644FA00000003uLL, 0x0000000000000011uLL, 0x00156B667FFFFFCDuLL}, +{0x8000000080000000uLL, 0x078644FA00000010uLL, 0x0000000000000011uLL, 0x00156B667FFFFEF0uLL}, +{0x8000000080000000uLL, 0x078644FA078644FAuLL, 0x0000000000000011uLL, 0x00156B6600156B66uLL}, +{0x8000000080000000uLL, 0x078644FA0747AE14uLL, 0x0000000000000011uLL, 0x00156B66043D70ACuLL}, +{0x8000000080000000uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5E00000011uLL}, +{0x8000000080000000uLL, 0x078644FA80000000uLL, 0x0000000000000011uLL, 0x00156B5E00000000uLL}, +{0x8000000080000000uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000011uLL, 0x00156B5580000033uLL}, +{0x8000000080000000uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000011uLL, 0x00156B5580000022uLL}, +{0x8000000080000000uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5580000011uLL}, +{0x8000000080000000uLL, 0x0747AE1400000000uLL, 0x0000000000000011uLL, 0x043D70AC80000000uLL}, +{0x8000000080000000uLL, 0x0747AE1400000001uLL, 0x0000000000000011uLL, 0x043D70AC7FFFFFEFuLL}, +{0x8000000080000000uLL, 0x0747AE1400000002uLL, 0x0000000000000011uLL, 0x043D70AC7FFFFFDEuLL}, +{0x8000000080000000uLL, 0x0747AE1400000003uLL, 0x0000000000000011uLL, 0x043D70AC7FFFFFCDuLL}, +{0x8000000080000000uLL, 0x0747AE1400000010uLL, 0x0000000000000011uLL, 0x043D70AC7FFFFEF0uLL}, +{0x8000000080000000uLL, 0x0747AE14078644FAuLL, 0x0000000000000011uLL, 0x043D70AC00156B66uLL}, +{0x8000000080000000uLL, 0x0747AE140747AE14uLL, 0x0000000000000011uLL, 0x043D70AC043D70ACuLL}, +{0x8000000080000000uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000011uLL, 0x043D70A400000011uLL}, +{0x8000000080000000uLL, 0x0747AE1480000000uLL, 0x0000000000000011uLL, 0x043D70A400000000uLL}, +{0x8000000080000000uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000011uLL, 0x043D709B80000033uLL}, +{0x8000000080000000uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000011uLL, 0x043D709B80000022uLL}, +{0x8000000080000000uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000011uLL, 0x043D709B80000011uLL}, +{0x8000000080000000uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x0000000180000000uLL}, +{0x8000000080000000uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x000000017FFFFFFFuLL}, +{0x8000000080000000uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x000000017FFFFFFEuLL}, +{0x8000000080000000uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x000000017FFFFFFDuLL}, +{0x8000000080000000uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x000000017FFFFFF0uLL}, +{0x8000000080000000uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x000000017879BB06uLL}, +{0x8000000080000000uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x0000000178B851ECuLL}, +{0x8000000080000000uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000100000001uLL}, +{0x8000000080000000uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x8000000080000000uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000080000003uLL}, +{0x8000000080000000uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000080000002uLL}, +{0x8000000080000000uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000001uLL}, +{0x8000000080000000uLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x0000000080000000uLL}, +{0x8000000080000000uLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0x8000000080000000uLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x8000000080000000uLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0x8000000080000000uLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x000000007FFFFFF0uLL}, +{0x8000000080000000uLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x000000007879BB06uLL}, +{0x8000000080000000uLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x0000000078B851ECuLL}, +{0x8000000080000000uLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x8000000080000000uLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x8000000080000000uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x8000000080000000uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x8000000080000000uLL}, +{0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000000uLL}, +{0x80000000FFFFFFFDuLL, 0x0000000000000002uLL, 0x400000007FFFFFFEuLL, 0x0000000000000001uLL}, +{0x80000000FFFFFFFDuLL, 0x0000000000000003uLL, 0x2AAAAAAAFFFFFFFFuLL, 0x0000000000000000uLL}, +{0x80000000FFFFFFFDuLL, 0x0000000000000010uLL, 0x080000000FFFFFFFuLL, 0x000000000000000DuLL}, +{0x80000000FFFFFFFDuLL, 0x00000000078644FAuLL, 0x0000001102D8BDA0uLL, 0x00000000043851BDuLL}, +{0x80000000FFFFFFFDuLL, 0x000000000747AE14uLL, 0x00000011951952E1uLL, 0x0000000000499869uLL}, +{0x80000000FFFFFFFDuLL, 0x000000007FFFFFFFuLL, 0x0000000100000004uLL, 0x0000000000000001uLL}, +{0x80000000FFFFFFFDuLL, 0x0000000080000000uLL, 0x0000000100000001uLL, 0x000000007FFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0x00000000FFFFFFFDuLL, 0x0000000080000002uLL, 0x0000000080000003uLL}, +{0x80000000FFFFFFFDuLL, 0x00000000FFFFFFFEuLL, 0x0000000080000002uLL, 0x0000000000000001uLL}, +{0x80000000FFFFFFFDuLL, 0x00000000FFFFFFFFuLL, 0x0000000080000001uLL, 0x000000007FFFFFFEuLL}, +{0x80000000FFFFFFFDuLL, 0x0000000100000000uLL, 0x0000000080000000uLL, 0x00000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0x0000000100000001uLL, 0x0000000080000000uLL, 0x000000007FFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0x0000000100000002uLL, 0x000000007FFFFFFFuLL, 0x00000000FFFFFFFFuLL}, +{0x80000000FFFFFFFDuLL, 0x0000000100000003uLL, 0x000000007FFFFFFFuLL, 0x0000000080000000uLL}, +{0x80000000FFFFFFFDuLL, 0x0000000100000010uLL, 0x000000007FFFFFF9uLL, 0x000000000000006DuLL}, +{0x80000000FFFFFFFDuLL, 0x00000001078644FAuLL, 0x000000007C585DAFuLL, 0x0000000046380717uLL}, +{0x80000000FFFFFFFDuLL, 0x000000010747AE14uLL, 0x000000007C75ED2EuLL, 0x0000000015D23465uLL}, +{0x80000000FFFFFFFDuLL, 0x000000017FFFFFFFuLL, 0x0000000055555556uLL, 0x0000000055555553uLL}, +{0x80000000FFFFFFFDuLL, 0x0000000180000000uLL, 0x0000000055555555uLL, 0x000000017FFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0x00000001FFFFFFFDuLL, 0x0000000040000000uLL, 0x00000001BFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0x00000001FFFFFFFEuLL, 0x0000000040000000uLL, 0x000000017FFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0x00000001FFFFFFFFuLL, 0x0000000040000000uLL, 0x000000013FFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0x0000000200000000uLL, 0x0000000040000000uLL, 0x00000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0x0000000200000001uLL, 0x0000000040000000uLL, 0x00000000BFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0x0000000200000002uLL, 0x0000000040000000uLL, 0x000000007FFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0x0000000200000003uLL, 0x0000000040000000uLL, 0x000000003FFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0x0000000200000010uLL, 0x000000003FFFFFFEuLL, 0x000000010000001DuLL}, +{0x80000000FFFFFFFDuLL, 0x00000002078644FAuLL, 0x000000003F12B425uLL, 0x0000000121843FDBuLL}, +{0x80000000FFFFFFFDuLL, 0x000000020747AE14uLL, 0x000000003F1A4E54uLL, 0x000000002B68C96DuLL}, +{0x80000000FFFFFFFDuLL, 0x000000027FFFFFFFuLL, 0x0000000033333333uLL, 0x00000001B3333330uLL}, +{0x80000000FFFFFFFDuLL, 0x0000000280000000uLL, 0x0000000033333333uLL, 0x000000017FFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0x00000002FFFFFFFDuLL, 0x000000002AAAAAABuLL, 0x000000007FFFFFFEuLL}, +{0x80000000FFFFFFFDuLL, 0x00000002FFFFFFFEuLL, 0x000000002AAAAAABuLL, 0x0000000055555553uLL}, +{0x80000000FFFFFFFDuLL, 0x00000002FFFFFFFFuLL, 0x000000002AAAAAABuLL, 0x000000002AAAAAA8uLL}, +{0x80000000FFFFFFFDuLL, 0x0000000300000000uLL, 0x000000002AAAAAAAuLL, 0x00000002FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0x0000000300000001uLL, 0x000000002AAAAAAAuLL, 0x00000002D5555553uLL}, +{0x80000000FFFFFFFDuLL, 0x0000000300000002uLL, 0x000000002AAAAAAAuLL, 0x00000002AAAAAAA9uLL}, +{0x80000000FFFFFFFDuLL, 0x0000000300000003uLL, 0x000000002AAAAAAAuLL, 0x000000027FFFFFFFuLL}, +{0x80000000FFFFFFFDuLL, 0x0000000300000010uLL, 0x000000002AAAAAAAuLL, 0x000000005555555DuLL}, +{0x80000000FFFFFFFDuLL, 0x00000003078644FAuLL, 0x000000002A40B0A4uLL, 0x000000019C0FEFD5uLL}, +{0x80000000FFFFFFFDuLL, 0x000000030747AE14uLL, 0x000000002A4419E3uLL, 0x000000020620B041uLL}, +{0x80000000FFFFFFFDuLL, 0x000000037FFFFFFFuLL, 0x0000000024924924uLL, 0x0000000324924921uLL}, +{0x80000000FFFFFFFDuLL, 0x0000000380000000uLL, 0x0000000024924924uLL, 0x00000002FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0x00000003FFFFFFFDuLL, 0x0000000020000000uLL, 0x000000015FFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0x00000003FFFFFFFEuLL, 0x0000000020000000uLL, 0x000000013FFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0x00000003FFFFFFFFuLL, 0x0000000020000000uLL, 0x000000011FFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0x0000001000000000uLL, 0x0000000008000000uLL, 0x00000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0x0000001000000001uLL, 0x0000000008000000uLL, 0x00000000F7FFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0x0000001000000002uLL, 0x0000000008000000uLL, 0x00000000EFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0x0000001000000003uLL, 0x0000000008000000uLL, 0x00000000E7FFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0x0000001000000010uLL, 0x0000000008000000uLL, 0x000000007FFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0x00000010078644FAuLL, 0x0000000007FC3EA1uLL, 0x0000000B03C212C3uLL}, +{0x80000000FFFFFFFDuLL, 0x000000100747AE14uLL, 0x0000000007FC5DD0uLL, 0x0000000423D54BBDuLL}, +{0x80000000FFFFFFFDuLL, 0x000000107FFFFFFFuLL, 0x0000000007C1F07CuLL, 0x0000000307C1F079uLL}, +{0x80000000FFFFFFFDuLL, 0x0000001080000000uLL, 0x0000000007C1F07CuLL, 0x00000002FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0x00000010FFFFFFFDuLL, 0x0000000007878787uLL, 0x0000000A16969692uLL}, +{0x80000000FFFFFFFDuLL, 0x00000010FFFFFFFEuLL, 0x0000000007878787uLL, 0x0000000A0F0F0F0BuLL}, +{0x80000000FFFFFFFDuLL, 0x00000010FFFFFFFFuLL, 0x0000000007878787uLL, 0x0000000A07878784uLL}, +{0x80000000FFFFFFFDuLL, 0x078644FA00000000uLL, 0x0000000000000011uLL, 0x00156B66FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0x078644FA00000001uLL, 0x0000000000000011uLL, 0x00156B66FFFFFFECuLL}, +{0x80000000FFFFFFFDuLL, 0x078644FA00000002uLL, 0x0000000000000011uLL, 0x00156B66FFFFFFDBuLL}, +{0x80000000FFFFFFFDuLL, 0x078644FA00000003uLL, 0x0000000000000011uLL, 0x00156B66FFFFFFCAuLL}, +{0x80000000FFFFFFFDuLL, 0x078644FA00000010uLL, 0x0000000000000011uLL, 0x00156B66FFFFFEEDuLL}, +{0x80000000FFFFFFFDuLL, 0x078644FA078644FAuLL, 0x0000000000000011uLL, 0x00156B6680156B63uLL}, +{0x80000000FFFFFFFDuLL, 0x078644FA0747AE14uLL, 0x0000000000000011uLL, 0x00156B66843D70A9uLL}, +{0x80000000FFFFFFFDuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5E8000000EuLL}, +{0x80000000FFFFFFFDuLL, 0x078644FA80000000uLL, 0x0000000000000011uLL, 0x00156B5E7FFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000011uLL, 0x00156B5600000030uLL}, +{0x80000000FFFFFFFDuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000011uLL, 0x00156B560000001FuLL}, +{0x80000000FFFFFFFDuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000011uLL, 0x00156B560000000EuLL}, +{0x80000000FFFFFFFDuLL, 0x0747AE1400000000uLL, 0x0000000000000011uLL, 0x043D70ACFFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0x0747AE1400000001uLL, 0x0000000000000011uLL, 0x043D70ACFFFFFFECuLL}, +{0x80000000FFFFFFFDuLL, 0x0747AE1400000002uLL, 0x0000000000000011uLL, 0x043D70ACFFFFFFDBuLL}, +{0x80000000FFFFFFFDuLL, 0x0747AE1400000003uLL, 0x0000000000000011uLL, 0x043D70ACFFFFFFCAuLL}, +{0x80000000FFFFFFFDuLL, 0x0747AE1400000010uLL, 0x0000000000000011uLL, 0x043D70ACFFFFFEEDuLL}, +{0x80000000FFFFFFFDuLL, 0x0747AE14078644FAuLL, 0x0000000000000011uLL, 0x043D70AC80156B63uLL}, +{0x80000000FFFFFFFDuLL, 0x0747AE140747AE14uLL, 0x0000000000000011uLL, 0x043D70AC843D70A9uLL}, +{0x80000000FFFFFFFDuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000011uLL, 0x043D70A48000000EuLL}, +{0x80000000FFFFFFFDuLL, 0x0747AE1480000000uLL, 0x0000000000000011uLL, 0x043D70A47FFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000011uLL, 0x043D709C00000030uLL}, +{0x80000000FFFFFFFDuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000011uLL, 0x043D709C0000001FuLL}, +{0x80000000FFFFFFFDuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000011uLL, 0x043D709C0000000EuLL}, +{0x80000000FFFFFFFDuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFCuLL}, +{0x80000000FFFFFFFDuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFBuLL}, +{0x80000000FFFFFFFDuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFAuLL}, +{0x80000000FFFFFFFDuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x00000001FFFFFFEDuLL}, +{0x80000000FFFFFFFDuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x00000001F879BB03uLL}, +{0x80000000FFFFFFFDuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x00000001F8B851E9uLL}, +{0x80000000FFFFFFFDuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x000000017FFFFFFEuLL}, +{0x80000000FFFFFFFDuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x000000017FFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x80000000FFFFFFFDuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0x80000000FFFFFFFDuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0x80000000FFFFFFFDuLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFCuLL}, +{0x80000000FFFFFFFDuLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFBuLL}, +{0x80000000FFFFFFFDuLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFAuLL}, +{0x80000000FFFFFFFDuLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFEDuLL}, +{0x80000000FFFFFFFDuLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB03uLL}, +{0x80000000FFFFFFFDuLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851E9uLL}, +{0x80000000FFFFFFFDuLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x80000000FFFFFFFDuLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x80000000FFFFFFFDuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFDuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFDuLL}, +{0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000000uLL}, +{0x80000000FFFFFFFEuLL, 0x0000000000000002uLL, 0x400000007FFFFFFFuLL, 0x0000000000000000uLL}, +{0x80000000FFFFFFFEuLL, 0x0000000000000003uLL, 0x2AAAAAAAFFFFFFFFuLL, 0x0000000000000001uLL}, +{0x80000000FFFFFFFEuLL, 0x0000000000000010uLL, 0x080000000FFFFFFFuLL, 0x000000000000000EuLL}, +{0x80000000FFFFFFFEuLL, 0x00000000078644FAuLL, 0x0000001102D8BDA0uLL, 0x00000000043851BEuLL}, +{0x80000000FFFFFFFEuLL, 0x000000000747AE14uLL, 0x00000011951952E1uLL, 0x000000000049986AuLL}, +{0x80000000FFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x0000000100000004uLL, 0x0000000000000002uLL}, +{0x80000000FFFFFFFEuLL, 0x0000000080000000uLL, 0x0000000100000001uLL, 0x000000007FFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0x00000000FFFFFFFDuLL, 0x0000000080000002uLL, 0x0000000080000004uLL}, +{0x80000000FFFFFFFEuLL, 0x00000000FFFFFFFEuLL, 0x0000000080000002uLL, 0x0000000000000002uLL}, +{0x80000000FFFFFFFEuLL, 0x00000000FFFFFFFFuLL, 0x0000000080000001uLL, 0x000000007FFFFFFFuLL}, +{0x80000000FFFFFFFEuLL, 0x0000000100000000uLL, 0x0000000080000000uLL, 0x00000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0x0000000100000001uLL, 0x0000000080000000uLL, 0x000000007FFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0x0000000100000002uLL, 0x000000007FFFFFFFuLL, 0x0000000100000000uLL}, +{0x80000000FFFFFFFEuLL, 0x0000000100000003uLL, 0x000000007FFFFFFFuLL, 0x0000000080000001uLL}, +{0x80000000FFFFFFFEuLL, 0x0000000100000010uLL, 0x000000007FFFFFF9uLL, 0x000000000000006EuLL}, +{0x80000000FFFFFFFEuLL, 0x00000001078644FAuLL, 0x000000007C585DAFuLL, 0x0000000046380718uLL}, +{0x80000000FFFFFFFEuLL, 0x000000010747AE14uLL, 0x000000007C75ED2EuLL, 0x0000000015D23466uLL}, +{0x80000000FFFFFFFEuLL, 0x000000017FFFFFFFuLL, 0x0000000055555556uLL, 0x0000000055555554uLL}, +{0x80000000FFFFFFFEuLL, 0x0000000180000000uLL, 0x0000000055555555uLL, 0x000000017FFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0x00000001FFFFFFFDuLL, 0x0000000040000000uLL, 0x00000001BFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0x00000001FFFFFFFEuLL, 0x0000000040000000uLL, 0x000000017FFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0x00000001FFFFFFFFuLL, 0x0000000040000000uLL, 0x000000013FFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0x0000000200000000uLL, 0x0000000040000000uLL, 0x00000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0x0000000200000001uLL, 0x0000000040000000uLL, 0x00000000BFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0x0000000200000002uLL, 0x0000000040000000uLL, 0x000000007FFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0x0000000200000003uLL, 0x0000000040000000uLL, 0x000000003FFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0x0000000200000010uLL, 0x000000003FFFFFFEuLL, 0x000000010000001EuLL}, +{0x80000000FFFFFFFEuLL, 0x00000002078644FAuLL, 0x000000003F12B425uLL, 0x0000000121843FDCuLL}, +{0x80000000FFFFFFFEuLL, 0x000000020747AE14uLL, 0x000000003F1A4E54uLL, 0x000000002B68C96EuLL}, +{0x80000000FFFFFFFEuLL, 0x000000027FFFFFFFuLL, 0x0000000033333333uLL, 0x00000001B3333331uLL}, +{0x80000000FFFFFFFEuLL, 0x0000000280000000uLL, 0x0000000033333333uLL, 0x000000017FFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0x00000002FFFFFFFDuLL, 0x000000002AAAAAABuLL, 0x000000007FFFFFFFuLL}, +{0x80000000FFFFFFFEuLL, 0x00000002FFFFFFFEuLL, 0x000000002AAAAAABuLL, 0x0000000055555554uLL}, +{0x80000000FFFFFFFEuLL, 0x00000002FFFFFFFFuLL, 0x000000002AAAAAABuLL, 0x000000002AAAAAA9uLL}, +{0x80000000FFFFFFFEuLL, 0x0000000300000000uLL, 0x000000002AAAAAAAuLL, 0x00000002FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0x0000000300000001uLL, 0x000000002AAAAAAAuLL, 0x00000002D5555554uLL}, +{0x80000000FFFFFFFEuLL, 0x0000000300000002uLL, 0x000000002AAAAAAAuLL, 0x00000002AAAAAAAAuLL}, +{0x80000000FFFFFFFEuLL, 0x0000000300000003uLL, 0x000000002AAAAAAAuLL, 0x0000000280000000uLL}, +{0x80000000FFFFFFFEuLL, 0x0000000300000010uLL, 0x000000002AAAAAAAuLL, 0x000000005555555EuLL}, +{0x80000000FFFFFFFEuLL, 0x00000003078644FAuLL, 0x000000002A40B0A4uLL, 0x000000019C0FEFD6uLL}, +{0x80000000FFFFFFFEuLL, 0x000000030747AE14uLL, 0x000000002A4419E3uLL, 0x000000020620B042uLL}, +{0x80000000FFFFFFFEuLL, 0x000000037FFFFFFFuLL, 0x0000000024924924uLL, 0x0000000324924922uLL}, +{0x80000000FFFFFFFEuLL, 0x0000000380000000uLL, 0x0000000024924924uLL, 0x00000002FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0x00000003FFFFFFFDuLL, 0x0000000020000000uLL, 0x000000015FFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0x00000003FFFFFFFEuLL, 0x0000000020000000uLL, 0x000000013FFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0x00000003FFFFFFFFuLL, 0x0000000020000000uLL, 0x000000011FFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0x0000001000000000uLL, 0x0000000008000000uLL, 0x00000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0x0000001000000001uLL, 0x0000000008000000uLL, 0x00000000F7FFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0x0000001000000002uLL, 0x0000000008000000uLL, 0x00000000EFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0x0000001000000003uLL, 0x0000000008000000uLL, 0x00000000E7FFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0x0000001000000010uLL, 0x0000000008000000uLL, 0x000000007FFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0x00000010078644FAuLL, 0x0000000007FC3EA1uLL, 0x0000000B03C212C4uLL}, +{0x80000000FFFFFFFEuLL, 0x000000100747AE14uLL, 0x0000000007FC5DD0uLL, 0x0000000423D54BBEuLL}, +{0x80000000FFFFFFFEuLL, 0x000000107FFFFFFFuLL, 0x0000000007C1F07CuLL, 0x0000000307C1F07AuLL}, +{0x80000000FFFFFFFEuLL, 0x0000001080000000uLL, 0x0000000007C1F07CuLL, 0x00000002FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0x00000010FFFFFFFDuLL, 0x0000000007878787uLL, 0x0000000A16969693uLL}, +{0x80000000FFFFFFFEuLL, 0x00000010FFFFFFFEuLL, 0x0000000007878787uLL, 0x0000000A0F0F0F0CuLL}, +{0x80000000FFFFFFFEuLL, 0x00000010FFFFFFFFuLL, 0x0000000007878787uLL, 0x0000000A07878785uLL}, +{0x80000000FFFFFFFEuLL, 0x078644FA00000000uLL, 0x0000000000000011uLL, 0x00156B66FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0x078644FA00000001uLL, 0x0000000000000011uLL, 0x00156B66FFFFFFEDuLL}, +{0x80000000FFFFFFFEuLL, 0x078644FA00000002uLL, 0x0000000000000011uLL, 0x00156B66FFFFFFDCuLL}, +{0x80000000FFFFFFFEuLL, 0x078644FA00000003uLL, 0x0000000000000011uLL, 0x00156B66FFFFFFCBuLL}, +{0x80000000FFFFFFFEuLL, 0x078644FA00000010uLL, 0x0000000000000011uLL, 0x00156B66FFFFFEEEuLL}, +{0x80000000FFFFFFFEuLL, 0x078644FA078644FAuLL, 0x0000000000000011uLL, 0x00156B6680156B64uLL}, +{0x80000000FFFFFFFEuLL, 0x078644FA0747AE14uLL, 0x0000000000000011uLL, 0x00156B66843D70AAuLL}, +{0x80000000FFFFFFFEuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5E8000000FuLL}, +{0x80000000FFFFFFFEuLL, 0x078644FA80000000uLL, 0x0000000000000011uLL, 0x00156B5E7FFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000011uLL, 0x00156B5600000031uLL}, +{0x80000000FFFFFFFEuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000011uLL, 0x00156B5600000020uLL}, +{0x80000000FFFFFFFEuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000011uLL, 0x00156B560000000FuLL}, +{0x80000000FFFFFFFEuLL, 0x0747AE1400000000uLL, 0x0000000000000011uLL, 0x043D70ACFFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0x0747AE1400000001uLL, 0x0000000000000011uLL, 0x043D70ACFFFFFFEDuLL}, +{0x80000000FFFFFFFEuLL, 0x0747AE1400000002uLL, 0x0000000000000011uLL, 0x043D70ACFFFFFFDCuLL}, +{0x80000000FFFFFFFEuLL, 0x0747AE1400000003uLL, 0x0000000000000011uLL, 0x043D70ACFFFFFFCBuLL}, +{0x80000000FFFFFFFEuLL, 0x0747AE1400000010uLL, 0x0000000000000011uLL, 0x043D70ACFFFFFEEEuLL}, +{0x80000000FFFFFFFEuLL, 0x0747AE14078644FAuLL, 0x0000000000000011uLL, 0x043D70AC80156B64uLL}, +{0x80000000FFFFFFFEuLL, 0x0747AE140747AE14uLL, 0x0000000000000011uLL, 0x043D70AC843D70AAuLL}, +{0x80000000FFFFFFFEuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000011uLL, 0x043D70A48000000FuLL}, +{0x80000000FFFFFFFEuLL, 0x0747AE1480000000uLL, 0x0000000000000011uLL, 0x043D70A47FFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000011uLL, 0x043D709C00000031uLL}, +{0x80000000FFFFFFFEuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000011uLL, 0x043D709C00000020uLL}, +{0x80000000FFFFFFFEuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000011uLL, 0x043D709C0000000FuLL}, +{0x80000000FFFFFFFEuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFDuLL}, +{0x80000000FFFFFFFEuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFCuLL}, +{0x80000000FFFFFFFEuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFBuLL}, +{0x80000000FFFFFFFEuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x00000001FFFFFFEEuLL}, +{0x80000000FFFFFFFEuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x00000001F879BB04uLL}, +{0x80000000FFFFFFFEuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x00000001F8B851EAuLL}, +{0x80000000FFFFFFFEuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x000000017FFFFFFFuLL}, +{0x80000000FFFFFFFEuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x000000017FFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000100000001uLL}, +{0x80000000FFFFFFFEuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x80000000FFFFFFFEuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0x80000000FFFFFFFEuLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0x80000000FFFFFFFEuLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFCuLL}, +{0x80000000FFFFFFFEuLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFBuLL}, +{0x80000000FFFFFFFEuLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFEEuLL}, +{0x80000000FFFFFFFEuLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB04uLL}, +{0x80000000FFFFFFFEuLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EAuLL}, +{0x80000000FFFFFFFEuLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0x80000000FFFFFFFEuLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x80000000FFFFFFFEuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x80000000FFFFFFFEuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFEuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFEuLL}, +{0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000000uLL}, +{0x80000000FFFFFFFFuLL, 0x0000000000000002uLL, 0x400000007FFFFFFFuLL, 0x0000000000000001uLL}, +{0x80000000FFFFFFFFuLL, 0x0000000000000003uLL, 0x2AAAAAAAFFFFFFFFuLL, 0x0000000000000002uLL}, +{0x80000000FFFFFFFFuLL, 0x0000000000000010uLL, 0x080000000FFFFFFFuLL, 0x000000000000000FuLL}, +{0x80000000FFFFFFFFuLL, 0x00000000078644FAuLL, 0x0000001102D8BDA0uLL, 0x00000000043851BFuLL}, +{0x80000000FFFFFFFFuLL, 0x000000000747AE14uLL, 0x00000011951952E1uLL, 0x000000000049986BuLL}, +{0x80000000FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x0000000100000004uLL, 0x0000000000000003uLL}, +{0x80000000FFFFFFFFuLL, 0x0000000080000000uLL, 0x0000000100000001uLL, 0x000000007FFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0x00000000FFFFFFFDuLL, 0x0000000080000002uLL, 0x0000000080000005uLL}, +{0x80000000FFFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x0000000080000002uLL, 0x0000000000000003uLL}, +{0x80000000FFFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x0000000080000001uLL, 0x0000000080000000uLL}, +{0x80000000FFFFFFFFuLL, 0x0000000100000000uLL, 0x0000000080000000uLL, 0x00000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0x0000000100000001uLL, 0x0000000080000000uLL, 0x000000007FFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0x0000000100000002uLL, 0x000000007FFFFFFFuLL, 0x0000000100000001uLL}, +{0x80000000FFFFFFFFuLL, 0x0000000100000003uLL, 0x000000007FFFFFFFuLL, 0x0000000080000002uLL}, +{0x80000000FFFFFFFFuLL, 0x0000000100000010uLL, 0x000000007FFFFFF9uLL, 0x000000000000006FuLL}, +{0x80000000FFFFFFFFuLL, 0x00000001078644FAuLL, 0x000000007C585DAFuLL, 0x0000000046380719uLL}, +{0x80000000FFFFFFFFuLL, 0x000000010747AE14uLL, 0x000000007C75ED2EuLL, 0x0000000015D23467uLL}, +{0x80000000FFFFFFFFuLL, 0x000000017FFFFFFFuLL, 0x0000000055555556uLL, 0x0000000055555555uLL}, +{0x80000000FFFFFFFFuLL, 0x0000000180000000uLL, 0x0000000055555555uLL, 0x000000017FFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0x00000001FFFFFFFDuLL, 0x0000000040000000uLL, 0x00000001BFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0x00000001FFFFFFFEuLL, 0x0000000040000000uLL, 0x000000017FFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0x00000001FFFFFFFFuLL, 0x0000000040000000uLL, 0x000000013FFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0x0000000200000000uLL, 0x0000000040000000uLL, 0x00000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0x0000000200000001uLL, 0x0000000040000000uLL, 0x00000000BFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0x0000000200000002uLL, 0x0000000040000000uLL, 0x000000007FFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0x0000000200000003uLL, 0x0000000040000000uLL, 0x000000003FFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0x0000000200000010uLL, 0x000000003FFFFFFEuLL, 0x000000010000001FuLL}, +{0x80000000FFFFFFFFuLL, 0x00000002078644FAuLL, 0x000000003F12B425uLL, 0x0000000121843FDDuLL}, +{0x80000000FFFFFFFFuLL, 0x000000020747AE14uLL, 0x000000003F1A4E54uLL, 0x000000002B68C96FuLL}, +{0x80000000FFFFFFFFuLL, 0x000000027FFFFFFFuLL, 0x0000000033333333uLL, 0x00000001B3333332uLL}, +{0x80000000FFFFFFFFuLL, 0x0000000280000000uLL, 0x0000000033333333uLL, 0x000000017FFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0x00000002FFFFFFFDuLL, 0x000000002AAAAAABuLL, 0x0000000080000000uLL}, +{0x80000000FFFFFFFFuLL, 0x00000002FFFFFFFEuLL, 0x000000002AAAAAABuLL, 0x0000000055555555uLL}, +{0x80000000FFFFFFFFuLL, 0x00000002FFFFFFFFuLL, 0x000000002AAAAAABuLL, 0x000000002AAAAAAAuLL}, +{0x80000000FFFFFFFFuLL, 0x0000000300000000uLL, 0x000000002AAAAAAAuLL, 0x00000002FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0x0000000300000001uLL, 0x000000002AAAAAAAuLL, 0x00000002D5555555uLL}, +{0x80000000FFFFFFFFuLL, 0x0000000300000002uLL, 0x000000002AAAAAAAuLL, 0x00000002AAAAAAABuLL}, +{0x80000000FFFFFFFFuLL, 0x0000000300000003uLL, 0x000000002AAAAAAAuLL, 0x0000000280000001uLL}, +{0x80000000FFFFFFFFuLL, 0x0000000300000010uLL, 0x000000002AAAAAAAuLL, 0x000000005555555FuLL}, +{0x80000000FFFFFFFFuLL, 0x00000003078644FAuLL, 0x000000002A40B0A4uLL, 0x000000019C0FEFD7uLL}, +{0x80000000FFFFFFFFuLL, 0x000000030747AE14uLL, 0x000000002A4419E3uLL, 0x000000020620B043uLL}, +{0x80000000FFFFFFFFuLL, 0x000000037FFFFFFFuLL, 0x0000000024924924uLL, 0x0000000324924923uLL}, +{0x80000000FFFFFFFFuLL, 0x0000000380000000uLL, 0x0000000024924924uLL, 0x00000002FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0x00000003FFFFFFFDuLL, 0x0000000020000000uLL, 0x000000015FFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0x00000003FFFFFFFEuLL, 0x0000000020000000uLL, 0x000000013FFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0x00000003FFFFFFFFuLL, 0x0000000020000000uLL, 0x000000011FFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0x0000001000000000uLL, 0x0000000008000000uLL, 0x00000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0x0000001000000001uLL, 0x0000000008000000uLL, 0x00000000F7FFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0x0000001000000002uLL, 0x0000000008000000uLL, 0x00000000EFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0x0000001000000003uLL, 0x0000000008000000uLL, 0x00000000E7FFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0x0000001000000010uLL, 0x0000000008000000uLL, 0x000000007FFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0x00000010078644FAuLL, 0x0000000007FC3EA1uLL, 0x0000000B03C212C5uLL}, +{0x80000000FFFFFFFFuLL, 0x000000100747AE14uLL, 0x0000000007FC5DD0uLL, 0x0000000423D54BBFuLL}, +{0x80000000FFFFFFFFuLL, 0x000000107FFFFFFFuLL, 0x0000000007C1F07CuLL, 0x0000000307C1F07BuLL}, +{0x80000000FFFFFFFFuLL, 0x0000001080000000uLL, 0x0000000007C1F07CuLL, 0x00000002FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0x00000010FFFFFFFDuLL, 0x0000000007878787uLL, 0x0000000A16969694uLL}, +{0x80000000FFFFFFFFuLL, 0x00000010FFFFFFFEuLL, 0x0000000007878787uLL, 0x0000000A0F0F0F0DuLL}, +{0x80000000FFFFFFFFuLL, 0x00000010FFFFFFFFuLL, 0x0000000007878787uLL, 0x0000000A07878786uLL}, +{0x80000000FFFFFFFFuLL, 0x078644FA00000000uLL, 0x0000000000000011uLL, 0x00156B66FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0x078644FA00000001uLL, 0x0000000000000011uLL, 0x00156B66FFFFFFEEuLL}, +{0x80000000FFFFFFFFuLL, 0x078644FA00000002uLL, 0x0000000000000011uLL, 0x00156B66FFFFFFDDuLL}, +{0x80000000FFFFFFFFuLL, 0x078644FA00000003uLL, 0x0000000000000011uLL, 0x00156B66FFFFFFCCuLL}, +{0x80000000FFFFFFFFuLL, 0x078644FA00000010uLL, 0x0000000000000011uLL, 0x00156B66FFFFFEEFuLL}, +{0x80000000FFFFFFFFuLL, 0x078644FA078644FAuLL, 0x0000000000000011uLL, 0x00156B6680156B65uLL}, +{0x80000000FFFFFFFFuLL, 0x078644FA0747AE14uLL, 0x0000000000000011uLL, 0x00156B66843D70ABuLL}, +{0x80000000FFFFFFFFuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5E80000010uLL}, +{0x80000000FFFFFFFFuLL, 0x078644FA80000000uLL, 0x0000000000000011uLL, 0x00156B5E7FFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000011uLL, 0x00156B5600000032uLL}, +{0x80000000FFFFFFFFuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000011uLL, 0x00156B5600000021uLL}, +{0x80000000FFFFFFFFuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000011uLL, 0x00156B5600000010uLL}, +{0x80000000FFFFFFFFuLL, 0x0747AE1400000000uLL, 0x0000000000000011uLL, 0x043D70ACFFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0x0747AE1400000001uLL, 0x0000000000000011uLL, 0x043D70ACFFFFFFEEuLL}, +{0x80000000FFFFFFFFuLL, 0x0747AE1400000002uLL, 0x0000000000000011uLL, 0x043D70ACFFFFFFDDuLL}, +{0x80000000FFFFFFFFuLL, 0x0747AE1400000003uLL, 0x0000000000000011uLL, 0x043D70ACFFFFFFCCuLL}, +{0x80000000FFFFFFFFuLL, 0x0747AE1400000010uLL, 0x0000000000000011uLL, 0x043D70ACFFFFFEEFuLL}, +{0x80000000FFFFFFFFuLL, 0x0747AE14078644FAuLL, 0x0000000000000011uLL, 0x043D70AC80156B65uLL}, +{0x80000000FFFFFFFFuLL, 0x0747AE140747AE14uLL, 0x0000000000000011uLL, 0x043D70AC843D70ABuLL}, +{0x80000000FFFFFFFFuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000011uLL, 0x043D70A480000010uLL}, +{0x80000000FFFFFFFFuLL, 0x0747AE1480000000uLL, 0x0000000000000011uLL, 0x043D70A47FFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000011uLL, 0x043D709C00000032uLL}, +{0x80000000FFFFFFFFuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000011uLL, 0x043D709C00000021uLL}, +{0x80000000FFFFFFFFuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000011uLL, 0x043D709C00000010uLL}, +{0x80000000FFFFFFFFuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFEuLL}, +{0x80000000FFFFFFFFuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFDuLL}, +{0x80000000FFFFFFFFuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFCuLL}, +{0x80000000FFFFFFFFuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x00000001FFFFFFEFuLL}, +{0x80000000FFFFFFFFuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x00000001F879BB05uLL}, +{0x80000000FFFFFFFFuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x00000001F8B851EBuLL}, +{0x80000000FFFFFFFFuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000180000000uLL}, +{0x80000000FFFFFFFFuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x000000017FFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000100000002uLL}, +{0x80000000FFFFFFFFuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000100000001uLL}, +{0x80000000FFFFFFFFuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0x80000000FFFFFFFFuLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0x80000000FFFFFFFFuLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0x80000000FFFFFFFFuLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFCuLL}, +{0x80000000FFFFFFFFuLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFEFuLL}, +{0x80000000FFFFFFFFuLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB05uLL}, +{0x80000000FFFFFFFFuLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EBuLL}, +{0x80000000FFFFFFFFuLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000000uLL}, +{0x80000000FFFFFFFFuLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0x80000000FFFFFFFFuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0x80000000FFFFFFFFuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0x80000000FFFFFFFFuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0x80000000FFFFFFFFuLL}, +{0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000000uLL}, +{0xFFFFFFFD00000000uLL, 0x0000000000000002uLL, 0x7FFFFFFE80000000uLL, 0x0000000000000000uLL}, +{0xFFFFFFFD00000000uLL, 0x0000000000000003uLL, 0x5555555455555555uLL, 0x0000000000000001uLL}, +{0xFFFFFFFD00000000uLL, 0x0000000000000010uLL, 0x0FFFFFFFD0000000uLL, 0x0000000000000000uLL}, +{0xFFFFFFFD00000000uLL, 0x00000000078644FAuLL, 0x0000002205B17A97uLL, 0x0000000000142C8AuLL}, +{0xFFFFFFFD00000000uLL, 0x000000000747AE14uLL, 0x000000232A32A512uLL, 0x0000000001DADE98uLL}, +{0xFFFFFFFD00000000uLL, 0x000000007FFFFFFFuLL, 0x00000001FFFFFFFDuLL, 0x000000007FFFFFFDuLL}, +{0xFFFFFFFD00000000uLL, 0x0000000080000000uLL, 0x00000001FFFFFFFAuLL, 0x0000000000000000uLL}, +{0xFFFFFFFD00000000uLL, 0x00000000FFFFFFFDuLL, 0x0000000100000000uLL, 0x0000000000000000uLL}, +{0xFFFFFFFD00000000uLL, 0x00000000FFFFFFFEuLL, 0x00000000FFFFFFFEuLL, 0x00000000FFFFFFFCuLL}, +{0xFFFFFFFD00000000uLL, 0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFDuLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFD00000000uLL, 0x0000000100000000uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000000uLL}, +{0xFFFFFFFD00000000uLL, 0x0000000100000001uLL, 0x00000000FFFFFFFCuLL, 0x0000000000000004uLL}, +{0xFFFFFFFD00000000uLL, 0x0000000100000002uLL, 0x00000000FFFFFFFBuLL, 0x000000000000000AuLL}, +{0xFFFFFFFD00000000uLL, 0x0000000100000003uLL, 0x00000000FFFFFFFAuLL, 0x0000000000000012uLL}, +{0xFFFFFFFD00000000uLL, 0x0000000100000010uLL, 0x00000000FFFFFFEDuLL, 0x0000000000000130uLL}, +{0xFFFFFFFD00000000uLL, 0x00000001078644FAuLL, 0x00000000F8B0BB59uLL, 0x00000000B20F6716uLL}, +{0xFFFFFFFD00000000uLL, 0x000000010747AE14uLL, 0x00000000F8EBDA57uLL, 0x00000000500ACF34uLL}, +{0xFFFFFFFD00000000uLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAA9uLL, 0x000000002AAAAAA9uLL}, +{0xFFFFFFFD00000000uLL, 0x0000000180000000uLL, 0x00000000AAAAAAA8uLL, 0x0000000100000000uLL}, +{0xFFFFFFFD00000000uLL, 0x00000001FFFFFFFDuLL, 0x000000007FFFFFFFuLL, 0x000000007FFFFFFDuLL}, +{0xFFFFFFFD00000000uLL, 0x00000001FFFFFFFEuLL, 0x000000007FFFFFFEuLL, 0x00000001FFFFFFFCuLL}, +{0xFFFFFFFD00000000uLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFEuLL, 0x000000017FFFFFFEuLL}, +{0xFFFFFFFD00000000uLL, 0x0000000200000000uLL, 0x000000007FFFFFFEuLL, 0x0000000100000000uLL}, +{0xFFFFFFFD00000000uLL, 0x0000000200000001uLL, 0x000000007FFFFFFEuLL, 0x0000000080000002uLL}, +{0xFFFFFFFD00000000uLL, 0x0000000200000002uLL, 0x000000007FFFFFFEuLL, 0x0000000000000004uLL}, +{0xFFFFFFFD00000000uLL, 0x0000000200000003uLL, 0x000000007FFFFFFDuLL, 0x0000000180000009uLL}, +{0xFFFFFFFD00000000uLL, 0x0000000200000010uLL, 0x000000007FFFFFFAuLL, 0x0000000100000060uLL}, +{0xFFFFFFFD00000000uLL, 0x00000002078644FAuLL, 0x000000007E256848uLL, 0x00000001521509B0uLL}, +{0xFFFFFFFD00000000uLL, 0x000000020747AE14uLL, 0x000000007E349CA5uLL, 0x000000016CA89D1CuLL}, +{0xFFFFFFFD00000000uLL, 0x000000027FFFFFFFuLL, 0x0000000066666665uLL, 0x00000000E6666665uLL}, +{0xFFFFFFFD00000000uLL, 0x0000000280000000uLL, 0x0000000066666665uLL, 0x0000000080000000uLL}, +{0xFFFFFFFD00000000uLL, 0x00000002FFFFFFFDuLL, 0x0000000055555554uLL, 0x00000001FFFFFFFCuLL}, +{0xFFFFFFFD00000000uLL, 0x00000002FFFFFFFEuLL, 0x0000000055555554uLL, 0x00000001AAAAAAA8uLL}, +{0xFFFFFFFD00000000uLL, 0x00000002FFFFFFFFuLL, 0x0000000055555554uLL, 0x0000000155555554uLL}, +{0xFFFFFFFD00000000uLL, 0x0000000300000000uLL, 0x0000000055555554uLL, 0x0000000100000000uLL}, +{0xFFFFFFFD00000000uLL, 0x0000000300000001uLL, 0x0000000055555554uLL, 0x00000000AAAAAAACuLL}, +{0xFFFFFFFD00000000uLL, 0x0000000300000002uLL, 0x0000000055555554uLL, 0x0000000055555558uLL}, +{0xFFFFFFFD00000000uLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x0000000000000004uLL}, +{0xFFFFFFFD00000000uLL, 0x0000000300000010uLL, 0x0000000055555552uLL, 0x00000001AAAAAAE0uLL}, +{0xFFFFFFFD00000000uLL, 0x00000003078644FAuLL, 0x0000000054816147uLL, 0x000000013FA624AAuLL}, +{0xFFFFFFFD00000000uLL, 0x000000030747AE14uLL, 0x00000000548833C5uLL, 0x0000000213890E9CuLL}, +{0xFFFFFFFD00000000uLL, 0x000000037FFFFFFFuLL, 0x0000000049249248uLL, 0x0000000149249248uLL}, +{0xFFFFFFFD00000000uLL, 0x0000000380000000uLL, 0x0000000049249248uLL, 0x0000000100000000uLL}, +{0xFFFFFFFD00000000uLL, 0x00000003FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000001BFFFFFFDuLL}, +{0xFFFFFFFD00000000uLL, 0x00000003FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x000000017FFFFFFEuLL}, +{0xFFFFFFFD00000000uLL, 0x00000003FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x000000013FFFFFFFuLL}, +{0xFFFFFFFD00000000uLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000D00000000uLL}, +{0xFFFFFFFD00000000uLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000CF0000001uLL}, +{0xFFFFFFFD00000000uLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000CE0000002uLL}, +{0xFFFFFFFD00000000uLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000CD0000003uLL}, +{0xFFFFFFFD00000000uLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000C00000010uLL}, +{0xFFFFFFFD00000000uLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x00000000FFFDE092uLL}, +{0xFFFFFFFD00000000uLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x0000000347AA9780uLL}, +{0xFFFFFFFD00000000uLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x000000010F83E0F8uLL}, +{0xFFFFFFFD00000000uLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x0000000100000000uLL}, +{0xFFFFFFFD00000000uLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0EuLL, 0x0000000F2D2D2D2AuLL}, +{0xFFFFFFFD00000000uLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0EuLL, 0x0000000F1E1E1E1CuLL}, +{0xFFFFFFFD00000000uLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0EuLL, 0x0000000F0F0F0F0EuLL}, +{0xFFFFFFFD00000000uLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6C900000000uLL}, +{0xFFFFFFFD00000000uLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6C8FFFFFFDEuLL}, +{0xFFFFFFFD00000000uLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6C8FFFFFFBCuLL}, +{0xFFFFFFFD00000000uLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6C8FFFFFF9AuLL}, +{0xFFFFFFFD00000000uLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6C8FFFFFDE0uLL}, +{0xFFFFFFFD00000000uLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6C8002AD6CCuLL}, +{0xFFFFFFFD00000000uLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6C8087AE158uLL}, +{0xFFFFFFFD00000000uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6B800000022uLL}, +{0xFFFFFFFD00000000uLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6B800000000uLL}, +{0xFFFFFFFD00000000uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6A700000066uLL}, +{0xFFFFFFFD00000000uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6A700000044uLL}, +{0xFFFFFFFD00000000uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6A700000022uLL}, +{0xFFFFFFFD00000000uLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x0133334100000000uLL}, +{0xFFFFFFFD00000000uLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x01333340FFFFFFDDuLL}, +{0xFFFFFFFD00000000uLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x01333340FFFFFFBAuLL}, +{0xFFFFFFFD00000000uLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x01333340FFFFFF97uLL}, +{0xFFFFFFFD00000000uLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x01333340FFFFFDD0uLL}, +{0xFFFFFFFD00000000uLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x0133333FF8A491D2uLL}, +{0xFFFFFFFD00000000uLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x0133334001333344uLL}, +{0xFFFFFFFD00000000uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x0133332F80000023uLL}, +{0xFFFFFFFD00000000uLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x0133332F80000000uLL}, +{0xFFFFFFFD00000000uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x0133331E00000069uLL}, +{0xFFFFFFFD00000000uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133331E00000046uLL}, +{0xFFFFFFFD00000000uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133331E00000023uLL}, +{0xFFFFFFFD00000000uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE00000000uLL}, +{0xFFFFFFFD00000000uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFD00000000uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFFEuLL}, +{0xFFFFFFFD00000000uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFFDuLL}, +{0xFFFFFFFD00000000uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFF0uLL}, +{0xFFFFFFFD00000000uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFDF879BB06uLL}, +{0xFFFFFFFD00000000uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFDF8B851ECuLL}, +{0xFFFFFFFD00000000uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD80000001uLL}, +{0xFFFFFFFD00000000uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x7FFFFFFD80000000uLL}, +{0xFFFFFFFD00000000uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000003uLL}, +{0xFFFFFFFD00000000uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000002uLL}, +{0xFFFFFFFD00000000uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000001uLL}, +{0xFFFFFFFD00000000uLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFCFFFFFFFFuLL}, +{0xFFFFFFFD00000000uLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFCFFFFFFFEuLL}, +{0xFFFFFFFD00000000uLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFCFFFFFFFDuLL}, +{0xFFFFFFFD00000000uLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFCFFFFFFF0uLL}, +{0xFFFFFFFD00000000uLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFCF879BB06uLL}, +{0xFFFFFFFD00000000uLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFCF8B851ECuLL}, +{0xFFFFFFFD00000000uLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFC80000001uLL}, +{0xFFFFFFFD00000000uLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFC80000000uLL}, +{0xFFFFFFFD00000000uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFC00000003uLL}, +{0xFFFFFFFD00000000uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFC00000002uLL}, +{0xFFFFFFFD00000000uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFC00000001uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000000uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000000uLL}, +{0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFD00000001uLL, 0x0000000000000002uLL, 0x7FFFFFFE80000000uLL, 0x0000000000000001uLL}, +{0xFFFFFFFD00000001uLL, 0x0000000000000003uLL, 0x5555555455555555uLL, 0x0000000000000002uLL}, +{0xFFFFFFFD00000001uLL, 0x0000000000000010uLL, 0x0FFFFFFFD0000000uLL, 0x0000000000000001uLL}, +{0xFFFFFFFD00000001uLL, 0x00000000078644FAuLL, 0x0000002205B17A97uLL, 0x0000000000142C8BuLL}, +{0xFFFFFFFD00000001uLL, 0x000000000747AE14uLL, 0x000000232A32A512uLL, 0x0000000001DADE99uLL}, +{0xFFFFFFFD00000001uLL, 0x000000007FFFFFFFuLL, 0x00000001FFFFFFFDuLL, 0x000000007FFFFFFEuLL}, +{0xFFFFFFFD00000001uLL, 0x0000000080000000uLL, 0x00000001FFFFFFFAuLL, 0x0000000000000001uLL}, +{0xFFFFFFFD00000001uLL, 0x00000000FFFFFFFDuLL, 0x0000000100000000uLL, 0x0000000000000001uLL}, +{0xFFFFFFFD00000001uLL, 0x00000000FFFFFFFEuLL, 0x00000000FFFFFFFEuLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFD00000001uLL, 0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFDuLL, 0x00000000FFFFFFFEuLL}, +{0xFFFFFFFD00000001uLL, 0x0000000100000000uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000001uLL}, +{0xFFFFFFFD00000001uLL, 0x0000000100000001uLL, 0x00000000FFFFFFFCuLL, 0x0000000000000005uLL}, +{0xFFFFFFFD00000001uLL, 0x0000000100000002uLL, 0x00000000FFFFFFFBuLL, 0x000000000000000BuLL}, +{0xFFFFFFFD00000001uLL, 0x0000000100000003uLL, 0x00000000FFFFFFFAuLL, 0x0000000000000013uLL}, +{0xFFFFFFFD00000001uLL, 0x0000000100000010uLL, 0x00000000FFFFFFEDuLL, 0x0000000000000131uLL}, +{0xFFFFFFFD00000001uLL, 0x00000001078644FAuLL, 0x00000000F8B0BB59uLL, 0x00000000B20F6717uLL}, +{0xFFFFFFFD00000001uLL, 0x000000010747AE14uLL, 0x00000000F8EBDA57uLL, 0x00000000500ACF35uLL}, +{0xFFFFFFFD00000001uLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAA9uLL, 0x000000002AAAAAAAuLL}, +{0xFFFFFFFD00000001uLL, 0x0000000180000000uLL, 0x00000000AAAAAAA8uLL, 0x0000000100000001uLL}, +{0xFFFFFFFD00000001uLL, 0x00000001FFFFFFFDuLL, 0x000000007FFFFFFFuLL, 0x000000007FFFFFFEuLL}, +{0xFFFFFFFD00000001uLL, 0x00000001FFFFFFFEuLL, 0x000000007FFFFFFEuLL, 0x00000001FFFFFFFDuLL}, +{0xFFFFFFFD00000001uLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFEuLL, 0x000000017FFFFFFFuLL}, +{0xFFFFFFFD00000001uLL, 0x0000000200000000uLL, 0x000000007FFFFFFEuLL, 0x0000000100000001uLL}, +{0xFFFFFFFD00000001uLL, 0x0000000200000001uLL, 0x000000007FFFFFFEuLL, 0x0000000080000003uLL}, +{0xFFFFFFFD00000001uLL, 0x0000000200000002uLL, 0x000000007FFFFFFEuLL, 0x0000000000000005uLL}, +{0xFFFFFFFD00000001uLL, 0x0000000200000003uLL, 0x000000007FFFFFFDuLL, 0x000000018000000AuLL}, +{0xFFFFFFFD00000001uLL, 0x0000000200000010uLL, 0x000000007FFFFFFAuLL, 0x0000000100000061uLL}, +{0xFFFFFFFD00000001uLL, 0x00000002078644FAuLL, 0x000000007E256848uLL, 0x00000001521509B1uLL}, +{0xFFFFFFFD00000001uLL, 0x000000020747AE14uLL, 0x000000007E349CA5uLL, 0x000000016CA89D1DuLL}, +{0xFFFFFFFD00000001uLL, 0x000000027FFFFFFFuLL, 0x0000000066666665uLL, 0x00000000E6666666uLL}, +{0xFFFFFFFD00000001uLL, 0x0000000280000000uLL, 0x0000000066666665uLL, 0x0000000080000001uLL}, +{0xFFFFFFFD00000001uLL, 0x00000002FFFFFFFDuLL, 0x0000000055555554uLL, 0x00000001FFFFFFFDuLL}, +{0xFFFFFFFD00000001uLL, 0x00000002FFFFFFFEuLL, 0x0000000055555554uLL, 0x00000001AAAAAAA9uLL}, +{0xFFFFFFFD00000001uLL, 0x00000002FFFFFFFFuLL, 0x0000000055555554uLL, 0x0000000155555555uLL}, +{0xFFFFFFFD00000001uLL, 0x0000000300000000uLL, 0x0000000055555554uLL, 0x0000000100000001uLL}, +{0xFFFFFFFD00000001uLL, 0x0000000300000001uLL, 0x0000000055555554uLL, 0x00000000AAAAAAADuLL}, +{0xFFFFFFFD00000001uLL, 0x0000000300000002uLL, 0x0000000055555554uLL, 0x0000000055555559uLL}, +{0xFFFFFFFD00000001uLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x0000000000000005uLL}, +{0xFFFFFFFD00000001uLL, 0x0000000300000010uLL, 0x0000000055555552uLL, 0x00000001AAAAAAE1uLL}, +{0xFFFFFFFD00000001uLL, 0x00000003078644FAuLL, 0x0000000054816147uLL, 0x000000013FA624ABuLL}, +{0xFFFFFFFD00000001uLL, 0x000000030747AE14uLL, 0x00000000548833C5uLL, 0x0000000213890E9DuLL}, +{0xFFFFFFFD00000001uLL, 0x000000037FFFFFFFuLL, 0x0000000049249248uLL, 0x0000000149249249uLL}, +{0xFFFFFFFD00000001uLL, 0x0000000380000000uLL, 0x0000000049249248uLL, 0x0000000100000001uLL}, +{0xFFFFFFFD00000001uLL, 0x00000003FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000001BFFFFFFEuLL}, +{0xFFFFFFFD00000001uLL, 0x00000003FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x000000017FFFFFFFuLL}, +{0xFFFFFFFD00000001uLL, 0x00000003FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x0000000140000000uLL}, +{0xFFFFFFFD00000001uLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000D00000001uLL}, +{0xFFFFFFFD00000001uLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000CF0000002uLL}, +{0xFFFFFFFD00000001uLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000CE0000003uLL}, +{0xFFFFFFFD00000001uLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000CD0000004uLL}, +{0xFFFFFFFD00000001uLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000C00000011uLL}, +{0xFFFFFFFD00000001uLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x00000000FFFDE093uLL}, +{0xFFFFFFFD00000001uLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x0000000347AA9781uLL}, +{0xFFFFFFFD00000001uLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x000000010F83E0F9uLL}, +{0xFFFFFFFD00000001uLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x0000000100000001uLL}, +{0xFFFFFFFD00000001uLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0EuLL, 0x0000000F2D2D2D2BuLL}, +{0xFFFFFFFD00000001uLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0EuLL, 0x0000000F1E1E1E1DuLL}, +{0xFFFFFFFD00000001uLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0EuLL, 0x0000000F0F0F0F0FuLL}, +{0xFFFFFFFD00000001uLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6C900000001uLL}, +{0xFFFFFFFD00000001uLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6C8FFFFFFDFuLL}, +{0xFFFFFFFD00000001uLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6C8FFFFFFBDuLL}, +{0xFFFFFFFD00000001uLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6C8FFFFFF9BuLL}, +{0xFFFFFFFD00000001uLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6C8FFFFFDE1uLL}, +{0xFFFFFFFD00000001uLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6C8002AD6CDuLL}, +{0xFFFFFFFD00000001uLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6C8087AE159uLL}, +{0xFFFFFFFD00000001uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6B800000023uLL}, +{0xFFFFFFFD00000001uLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6B800000001uLL}, +{0xFFFFFFFD00000001uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6A700000067uLL}, +{0xFFFFFFFD00000001uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6A700000045uLL}, +{0xFFFFFFFD00000001uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6A700000023uLL}, +{0xFFFFFFFD00000001uLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x0133334100000001uLL}, +{0xFFFFFFFD00000001uLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x01333340FFFFFFDEuLL}, +{0xFFFFFFFD00000001uLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x01333340FFFFFFBBuLL}, +{0xFFFFFFFD00000001uLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x01333340FFFFFF98uLL}, +{0xFFFFFFFD00000001uLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x01333340FFFFFDD1uLL}, +{0xFFFFFFFD00000001uLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x0133333FF8A491D3uLL}, +{0xFFFFFFFD00000001uLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x0133334001333345uLL}, +{0xFFFFFFFD00000001uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x0133332F80000024uLL}, +{0xFFFFFFFD00000001uLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x0133332F80000001uLL}, +{0xFFFFFFFD00000001uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x0133331E0000006AuLL}, +{0xFFFFFFFD00000001uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133331E00000047uLL}, +{0xFFFFFFFD00000001uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133331E00000024uLL}, +{0xFFFFFFFD00000001uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE00000001uLL}, +{0xFFFFFFFD00000001uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x7FFFFFFE00000000uLL}, +{0xFFFFFFFD00000001uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFD00000001uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFFEuLL}, +{0xFFFFFFFD00000001uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFF1uLL}, +{0xFFFFFFFD00000001uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFDF879BB07uLL}, +{0xFFFFFFFD00000001uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFDF8B851EDuLL}, +{0xFFFFFFFD00000001uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD80000002uLL}, +{0xFFFFFFFD00000001uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x7FFFFFFD80000001uLL}, +{0xFFFFFFFD00000001uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000004uLL}, +{0xFFFFFFFD00000001uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000003uLL}, +{0xFFFFFFFD00000001uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000002uLL}, +{0xFFFFFFFD00000001uLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFD00000000uLL}, +{0xFFFFFFFD00000001uLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFCFFFFFFFFuLL}, +{0xFFFFFFFD00000001uLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFCFFFFFFFEuLL}, +{0xFFFFFFFD00000001uLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFCFFFFFFF1uLL}, +{0xFFFFFFFD00000001uLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFCF879BB07uLL}, +{0xFFFFFFFD00000001uLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFCF8B851EDuLL}, +{0xFFFFFFFD00000001uLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFC80000002uLL}, +{0xFFFFFFFD00000001uLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFC80000001uLL}, +{0xFFFFFFFD00000001uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFC00000004uLL}, +{0xFFFFFFFD00000001uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFC00000003uLL}, +{0xFFFFFFFD00000001uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFC00000002uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000001uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000001uLL}, +{0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000000uLL}, +{0xFFFFFFFD00000002uLL, 0x0000000000000002uLL, 0x7FFFFFFE80000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFD00000002uLL, 0x0000000000000003uLL, 0x5555555455555556uLL, 0x0000000000000000uLL}, +{0xFFFFFFFD00000002uLL, 0x0000000000000010uLL, 0x0FFFFFFFD0000000uLL, 0x0000000000000002uLL}, +{0xFFFFFFFD00000002uLL, 0x00000000078644FAuLL, 0x0000002205B17A97uLL, 0x0000000000142C8CuLL}, +{0xFFFFFFFD00000002uLL, 0x000000000747AE14uLL, 0x000000232A32A512uLL, 0x0000000001DADE9AuLL}, +{0xFFFFFFFD00000002uLL, 0x000000007FFFFFFFuLL, 0x00000001FFFFFFFEuLL, 0x0000000000000000uLL}, +{0xFFFFFFFD00000002uLL, 0x0000000080000000uLL, 0x00000001FFFFFFFAuLL, 0x0000000000000002uLL}, +{0xFFFFFFFD00000002uLL, 0x00000000FFFFFFFDuLL, 0x0000000100000000uLL, 0x0000000000000002uLL}, +{0xFFFFFFFD00000002uLL, 0x00000000FFFFFFFEuLL, 0x00000000FFFFFFFFuLL, 0x0000000000000000uLL}, +{0xFFFFFFFD00000002uLL, 0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x0000000000000000uLL}, +{0xFFFFFFFD00000002uLL, 0x0000000100000000uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000002uLL}, +{0xFFFFFFFD00000002uLL, 0x0000000100000001uLL, 0x00000000FFFFFFFCuLL, 0x0000000000000006uLL}, +{0xFFFFFFFD00000002uLL, 0x0000000100000002uLL, 0x00000000FFFFFFFBuLL, 0x000000000000000CuLL}, +{0xFFFFFFFD00000002uLL, 0x0000000100000003uLL, 0x00000000FFFFFFFAuLL, 0x0000000000000014uLL}, +{0xFFFFFFFD00000002uLL, 0x0000000100000010uLL, 0x00000000FFFFFFEDuLL, 0x0000000000000132uLL}, +{0xFFFFFFFD00000002uLL, 0x00000001078644FAuLL, 0x00000000F8B0BB59uLL, 0x00000000B20F6718uLL}, +{0xFFFFFFFD00000002uLL, 0x000000010747AE14uLL, 0x00000000F8EBDA57uLL, 0x00000000500ACF36uLL}, +{0xFFFFFFFD00000002uLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAA9uLL, 0x000000002AAAAAABuLL}, +{0xFFFFFFFD00000002uLL, 0x0000000180000000uLL, 0x00000000AAAAAAA8uLL, 0x0000000100000002uLL}, +{0xFFFFFFFD00000002uLL, 0x00000001FFFFFFFDuLL, 0x000000007FFFFFFFuLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFD00000002uLL, 0x00000001FFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x0000000000000000uLL}, +{0xFFFFFFFD00000002uLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFEuLL, 0x0000000180000000uLL}, +{0xFFFFFFFD00000002uLL, 0x0000000200000000uLL, 0x000000007FFFFFFEuLL, 0x0000000100000002uLL}, +{0xFFFFFFFD00000002uLL, 0x0000000200000001uLL, 0x000000007FFFFFFEuLL, 0x0000000080000004uLL}, +{0xFFFFFFFD00000002uLL, 0x0000000200000002uLL, 0x000000007FFFFFFEuLL, 0x0000000000000006uLL}, +{0xFFFFFFFD00000002uLL, 0x0000000200000003uLL, 0x000000007FFFFFFDuLL, 0x000000018000000BuLL}, +{0xFFFFFFFD00000002uLL, 0x0000000200000010uLL, 0x000000007FFFFFFAuLL, 0x0000000100000062uLL}, +{0xFFFFFFFD00000002uLL, 0x00000002078644FAuLL, 0x000000007E256848uLL, 0x00000001521509B2uLL}, +{0xFFFFFFFD00000002uLL, 0x000000020747AE14uLL, 0x000000007E349CA5uLL, 0x000000016CA89D1EuLL}, +{0xFFFFFFFD00000002uLL, 0x000000027FFFFFFFuLL, 0x0000000066666665uLL, 0x00000000E6666667uLL}, +{0xFFFFFFFD00000002uLL, 0x0000000280000000uLL, 0x0000000066666665uLL, 0x0000000080000002uLL}, +{0xFFFFFFFD00000002uLL, 0x00000002FFFFFFFDuLL, 0x0000000055555554uLL, 0x00000001FFFFFFFEuLL}, +{0xFFFFFFFD00000002uLL, 0x00000002FFFFFFFEuLL, 0x0000000055555554uLL, 0x00000001AAAAAAAAuLL}, +{0xFFFFFFFD00000002uLL, 0x00000002FFFFFFFFuLL, 0x0000000055555554uLL, 0x0000000155555556uLL}, +{0xFFFFFFFD00000002uLL, 0x0000000300000000uLL, 0x0000000055555554uLL, 0x0000000100000002uLL}, +{0xFFFFFFFD00000002uLL, 0x0000000300000001uLL, 0x0000000055555554uLL, 0x00000000AAAAAAAEuLL}, +{0xFFFFFFFD00000002uLL, 0x0000000300000002uLL, 0x0000000055555554uLL, 0x000000005555555AuLL}, +{0xFFFFFFFD00000002uLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x0000000000000006uLL}, +{0xFFFFFFFD00000002uLL, 0x0000000300000010uLL, 0x0000000055555552uLL, 0x00000001AAAAAAE2uLL}, +{0xFFFFFFFD00000002uLL, 0x00000003078644FAuLL, 0x0000000054816147uLL, 0x000000013FA624ACuLL}, +{0xFFFFFFFD00000002uLL, 0x000000030747AE14uLL, 0x00000000548833C5uLL, 0x0000000213890E9EuLL}, +{0xFFFFFFFD00000002uLL, 0x000000037FFFFFFFuLL, 0x0000000049249248uLL, 0x000000014924924AuLL}, +{0xFFFFFFFD00000002uLL, 0x0000000380000000uLL, 0x0000000049249248uLL, 0x0000000100000002uLL}, +{0xFFFFFFFD00000002uLL, 0x00000003FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000001BFFFFFFFuLL}, +{0xFFFFFFFD00000002uLL, 0x00000003FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x0000000180000000uLL}, +{0xFFFFFFFD00000002uLL, 0x00000003FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x0000000140000001uLL}, +{0xFFFFFFFD00000002uLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000D00000002uLL}, +{0xFFFFFFFD00000002uLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000CF0000003uLL}, +{0xFFFFFFFD00000002uLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000CE0000004uLL}, +{0xFFFFFFFD00000002uLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000CD0000005uLL}, +{0xFFFFFFFD00000002uLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000C00000012uLL}, +{0xFFFFFFFD00000002uLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x00000000FFFDE094uLL}, +{0xFFFFFFFD00000002uLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x0000000347AA9782uLL}, +{0xFFFFFFFD00000002uLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x000000010F83E0FAuLL}, +{0xFFFFFFFD00000002uLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x0000000100000002uLL}, +{0xFFFFFFFD00000002uLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0EuLL, 0x0000000F2D2D2D2CuLL}, +{0xFFFFFFFD00000002uLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0EuLL, 0x0000000F1E1E1E1EuLL}, +{0xFFFFFFFD00000002uLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0EuLL, 0x0000000F0F0F0F10uLL}, +{0xFFFFFFFD00000002uLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6C900000002uLL}, +{0xFFFFFFFD00000002uLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6C8FFFFFFE0uLL}, +{0xFFFFFFFD00000002uLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6C8FFFFFFBEuLL}, +{0xFFFFFFFD00000002uLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6C8FFFFFF9CuLL}, +{0xFFFFFFFD00000002uLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6C8FFFFFDE2uLL}, +{0xFFFFFFFD00000002uLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6C8002AD6CEuLL}, +{0xFFFFFFFD00000002uLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6C8087AE15AuLL}, +{0xFFFFFFFD00000002uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6B800000024uLL}, +{0xFFFFFFFD00000002uLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6B800000002uLL}, +{0xFFFFFFFD00000002uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6A700000068uLL}, +{0xFFFFFFFD00000002uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6A700000046uLL}, +{0xFFFFFFFD00000002uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6A700000024uLL}, +{0xFFFFFFFD00000002uLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x0133334100000002uLL}, +{0xFFFFFFFD00000002uLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x01333340FFFFFFDFuLL}, +{0xFFFFFFFD00000002uLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x01333340FFFFFFBCuLL}, +{0xFFFFFFFD00000002uLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x01333340FFFFFF99uLL}, +{0xFFFFFFFD00000002uLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x01333340FFFFFDD2uLL}, +{0xFFFFFFFD00000002uLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x0133333FF8A491D4uLL}, +{0xFFFFFFFD00000002uLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x0133334001333346uLL}, +{0xFFFFFFFD00000002uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x0133332F80000025uLL}, +{0xFFFFFFFD00000002uLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x0133332F80000002uLL}, +{0xFFFFFFFD00000002uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x0133331E0000006BuLL}, +{0xFFFFFFFD00000002uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133331E00000048uLL}, +{0xFFFFFFFD00000002uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133331E00000025uLL}, +{0xFFFFFFFD00000002uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE00000002uLL}, +{0xFFFFFFFD00000002uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x7FFFFFFE00000001uLL}, +{0xFFFFFFFD00000002uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x7FFFFFFE00000000uLL}, +{0xFFFFFFFD00000002uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFD00000002uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFF2uLL}, +{0xFFFFFFFD00000002uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFDF879BB08uLL}, +{0xFFFFFFFD00000002uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFDF8B851EEuLL}, +{0xFFFFFFFD00000002uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD80000003uLL}, +{0xFFFFFFFD00000002uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x7FFFFFFD80000002uLL}, +{0xFFFFFFFD00000002uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000005uLL}, +{0xFFFFFFFD00000002uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000004uLL}, +{0xFFFFFFFD00000002uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000003uLL}, +{0xFFFFFFFD00000002uLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFD00000002uLL}, +{0xFFFFFFFD00000002uLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFD00000001uLL}, +{0xFFFFFFFD00000002uLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFD00000000uLL}, +{0xFFFFFFFD00000002uLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFCFFFFFFFFuLL}, +{0xFFFFFFFD00000002uLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFCFFFFFFF2uLL}, +{0xFFFFFFFD00000002uLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFCF879BB08uLL}, +{0xFFFFFFFD00000002uLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFCF8B851EEuLL}, +{0xFFFFFFFD00000002uLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFC80000003uLL}, +{0xFFFFFFFD00000002uLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFC80000002uLL}, +{0xFFFFFFFD00000002uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFC00000005uLL}, +{0xFFFFFFFD00000002uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFC00000004uLL}, +{0xFFFFFFFD00000002uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFC00000003uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000002uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000002uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000002uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000002uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000002uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000002uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000002uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000002uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000002uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000002uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000002uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000002uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000002uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000002uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000002uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000002uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000002uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000002uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000002uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000002uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000002uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000002uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000002uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000002uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000002uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000002uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000002uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000002uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000002uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000002uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000002uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000002uLL}, +{0xFFFFFFFD00000002uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000002uLL}, +{0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000000uLL}, +{0xFFFFFFFD00000003uLL, 0x0000000000000002uLL, 0x7FFFFFFE80000001uLL, 0x0000000000000001uLL}, +{0xFFFFFFFD00000003uLL, 0x0000000000000003uLL, 0x5555555455555556uLL, 0x0000000000000001uLL}, +{0xFFFFFFFD00000003uLL, 0x0000000000000010uLL, 0x0FFFFFFFD0000000uLL, 0x0000000000000003uLL}, +{0xFFFFFFFD00000003uLL, 0x00000000078644FAuLL, 0x0000002205B17A97uLL, 0x0000000000142C8DuLL}, +{0xFFFFFFFD00000003uLL, 0x000000000747AE14uLL, 0x000000232A32A512uLL, 0x0000000001DADE9BuLL}, +{0xFFFFFFFD00000003uLL, 0x000000007FFFFFFFuLL, 0x00000001FFFFFFFEuLL, 0x0000000000000001uLL}, +{0xFFFFFFFD00000003uLL, 0x0000000080000000uLL, 0x00000001FFFFFFFAuLL, 0x0000000000000003uLL}, +{0xFFFFFFFD00000003uLL, 0x00000000FFFFFFFDuLL, 0x0000000100000000uLL, 0x0000000000000003uLL}, +{0xFFFFFFFD00000003uLL, 0x00000000FFFFFFFEuLL, 0x00000000FFFFFFFFuLL, 0x0000000000000001uLL}, +{0xFFFFFFFD00000003uLL, 0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x0000000000000001uLL}, +{0xFFFFFFFD00000003uLL, 0x0000000100000000uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000003uLL}, +{0xFFFFFFFD00000003uLL, 0x0000000100000001uLL, 0x00000000FFFFFFFCuLL, 0x0000000000000007uLL}, +{0xFFFFFFFD00000003uLL, 0x0000000100000002uLL, 0x00000000FFFFFFFBuLL, 0x000000000000000DuLL}, +{0xFFFFFFFD00000003uLL, 0x0000000100000003uLL, 0x00000000FFFFFFFAuLL, 0x0000000000000015uLL}, +{0xFFFFFFFD00000003uLL, 0x0000000100000010uLL, 0x00000000FFFFFFEDuLL, 0x0000000000000133uLL}, +{0xFFFFFFFD00000003uLL, 0x00000001078644FAuLL, 0x00000000F8B0BB59uLL, 0x00000000B20F6719uLL}, +{0xFFFFFFFD00000003uLL, 0x000000010747AE14uLL, 0x00000000F8EBDA57uLL, 0x00000000500ACF37uLL}, +{0xFFFFFFFD00000003uLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAA9uLL, 0x000000002AAAAAACuLL}, +{0xFFFFFFFD00000003uLL, 0x0000000180000000uLL, 0x00000000AAAAAAA8uLL, 0x0000000100000003uLL}, +{0xFFFFFFFD00000003uLL, 0x00000001FFFFFFFDuLL, 0x000000007FFFFFFFuLL, 0x0000000080000000uLL}, +{0xFFFFFFFD00000003uLL, 0x00000001FFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x0000000000000001uLL}, +{0xFFFFFFFD00000003uLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFEuLL, 0x0000000180000001uLL}, +{0xFFFFFFFD00000003uLL, 0x0000000200000000uLL, 0x000000007FFFFFFEuLL, 0x0000000100000003uLL}, +{0xFFFFFFFD00000003uLL, 0x0000000200000001uLL, 0x000000007FFFFFFEuLL, 0x0000000080000005uLL}, +{0xFFFFFFFD00000003uLL, 0x0000000200000002uLL, 0x000000007FFFFFFEuLL, 0x0000000000000007uLL}, +{0xFFFFFFFD00000003uLL, 0x0000000200000003uLL, 0x000000007FFFFFFDuLL, 0x000000018000000CuLL}, +{0xFFFFFFFD00000003uLL, 0x0000000200000010uLL, 0x000000007FFFFFFAuLL, 0x0000000100000063uLL}, +{0xFFFFFFFD00000003uLL, 0x00000002078644FAuLL, 0x000000007E256848uLL, 0x00000001521509B3uLL}, +{0xFFFFFFFD00000003uLL, 0x000000020747AE14uLL, 0x000000007E349CA5uLL, 0x000000016CA89D1FuLL}, +{0xFFFFFFFD00000003uLL, 0x000000027FFFFFFFuLL, 0x0000000066666665uLL, 0x00000000E6666668uLL}, +{0xFFFFFFFD00000003uLL, 0x0000000280000000uLL, 0x0000000066666665uLL, 0x0000000080000003uLL}, +{0xFFFFFFFD00000003uLL, 0x00000002FFFFFFFDuLL, 0x0000000055555554uLL, 0x00000001FFFFFFFFuLL}, +{0xFFFFFFFD00000003uLL, 0x00000002FFFFFFFEuLL, 0x0000000055555554uLL, 0x00000001AAAAAAABuLL}, +{0xFFFFFFFD00000003uLL, 0x00000002FFFFFFFFuLL, 0x0000000055555554uLL, 0x0000000155555557uLL}, +{0xFFFFFFFD00000003uLL, 0x0000000300000000uLL, 0x0000000055555554uLL, 0x0000000100000003uLL}, +{0xFFFFFFFD00000003uLL, 0x0000000300000001uLL, 0x0000000055555554uLL, 0x00000000AAAAAAAFuLL}, +{0xFFFFFFFD00000003uLL, 0x0000000300000002uLL, 0x0000000055555554uLL, 0x000000005555555BuLL}, +{0xFFFFFFFD00000003uLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x0000000000000007uLL}, +{0xFFFFFFFD00000003uLL, 0x0000000300000010uLL, 0x0000000055555552uLL, 0x00000001AAAAAAE3uLL}, +{0xFFFFFFFD00000003uLL, 0x00000003078644FAuLL, 0x0000000054816147uLL, 0x000000013FA624ADuLL}, +{0xFFFFFFFD00000003uLL, 0x000000030747AE14uLL, 0x00000000548833C5uLL, 0x0000000213890E9FuLL}, +{0xFFFFFFFD00000003uLL, 0x000000037FFFFFFFuLL, 0x0000000049249248uLL, 0x000000014924924BuLL}, +{0xFFFFFFFD00000003uLL, 0x0000000380000000uLL, 0x0000000049249248uLL, 0x0000000100000003uLL}, +{0xFFFFFFFD00000003uLL, 0x00000003FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000001C0000000uLL}, +{0xFFFFFFFD00000003uLL, 0x00000003FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x0000000180000001uLL}, +{0xFFFFFFFD00000003uLL, 0x00000003FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x0000000140000002uLL}, +{0xFFFFFFFD00000003uLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000D00000003uLL}, +{0xFFFFFFFD00000003uLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000CF0000004uLL}, +{0xFFFFFFFD00000003uLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000CE0000005uLL}, +{0xFFFFFFFD00000003uLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000CD0000006uLL}, +{0xFFFFFFFD00000003uLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000C00000013uLL}, +{0xFFFFFFFD00000003uLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x00000000FFFDE095uLL}, +{0xFFFFFFFD00000003uLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x0000000347AA9783uLL}, +{0xFFFFFFFD00000003uLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x000000010F83E0FBuLL}, +{0xFFFFFFFD00000003uLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x0000000100000003uLL}, +{0xFFFFFFFD00000003uLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0EuLL, 0x0000000F2D2D2D2DuLL}, +{0xFFFFFFFD00000003uLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0EuLL, 0x0000000F1E1E1E1FuLL}, +{0xFFFFFFFD00000003uLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0EuLL, 0x0000000F0F0F0F11uLL}, +{0xFFFFFFFD00000003uLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6C900000003uLL}, +{0xFFFFFFFD00000003uLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6C8FFFFFFE1uLL}, +{0xFFFFFFFD00000003uLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6C8FFFFFFBFuLL}, +{0xFFFFFFFD00000003uLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6C8FFFFFF9DuLL}, +{0xFFFFFFFD00000003uLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6C8FFFFFDE3uLL}, +{0xFFFFFFFD00000003uLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6C8002AD6CFuLL}, +{0xFFFFFFFD00000003uLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6C8087AE15BuLL}, +{0xFFFFFFFD00000003uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6B800000025uLL}, +{0xFFFFFFFD00000003uLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6B800000003uLL}, +{0xFFFFFFFD00000003uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6A700000069uLL}, +{0xFFFFFFFD00000003uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6A700000047uLL}, +{0xFFFFFFFD00000003uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6A700000025uLL}, +{0xFFFFFFFD00000003uLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x0133334100000003uLL}, +{0xFFFFFFFD00000003uLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x01333340FFFFFFE0uLL}, +{0xFFFFFFFD00000003uLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x01333340FFFFFFBDuLL}, +{0xFFFFFFFD00000003uLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x01333340FFFFFF9AuLL}, +{0xFFFFFFFD00000003uLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x01333340FFFFFDD3uLL}, +{0xFFFFFFFD00000003uLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x0133333FF8A491D5uLL}, +{0xFFFFFFFD00000003uLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x0133334001333347uLL}, +{0xFFFFFFFD00000003uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x0133332F80000026uLL}, +{0xFFFFFFFD00000003uLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x0133332F80000003uLL}, +{0xFFFFFFFD00000003uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x0133331E0000006CuLL}, +{0xFFFFFFFD00000003uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133331E00000049uLL}, +{0xFFFFFFFD00000003uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133331E00000026uLL}, +{0xFFFFFFFD00000003uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE00000003uLL}, +{0xFFFFFFFD00000003uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x7FFFFFFE00000002uLL}, +{0xFFFFFFFD00000003uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x7FFFFFFE00000001uLL}, +{0xFFFFFFFD00000003uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x7FFFFFFE00000000uLL}, +{0xFFFFFFFD00000003uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFF3uLL}, +{0xFFFFFFFD00000003uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFDF879BB09uLL}, +{0xFFFFFFFD00000003uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFDF8B851EFuLL}, +{0xFFFFFFFD00000003uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD80000004uLL}, +{0xFFFFFFFD00000003uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x7FFFFFFD80000003uLL}, +{0xFFFFFFFD00000003uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000006uLL}, +{0xFFFFFFFD00000003uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000005uLL}, +{0xFFFFFFFD00000003uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000004uLL}, +{0xFFFFFFFD00000003uLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFD00000003uLL}, +{0xFFFFFFFD00000003uLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFD00000002uLL}, +{0xFFFFFFFD00000003uLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFD00000001uLL}, +{0xFFFFFFFD00000003uLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFD00000000uLL}, +{0xFFFFFFFD00000003uLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFCFFFFFFF3uLL}, +{0xFFFFFFFD00000003uLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFCF879BB09uLL}, +{0xFFFFFFFD00000003uLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFCF8B851EFuLL}, +{0xFFFFFFFD00000003uLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFC80000004uLL}, +{0xFFFFFFFD00000003uLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFC80000003uLL}, +{0xFFFFFFFD00000003uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFC00000006uLL}, +{0xFFFFFFFD00000003uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFC00000005uLL}, +{0xFFFFFFFD00000003uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFC00000004uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x0000000000000003uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000003uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000003uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000003uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000003uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000003uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000003uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000003uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000003uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000003uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000003uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000003uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000003uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000003uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000003uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000003uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000003uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000003uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000003uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000003uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000003uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000003uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000003uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000003uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000003uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000003uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000003uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000003uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000003uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000003uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000003uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000003uLL}, +{0xFFFFFFFD00000003uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000003uLL}, +{0xFFFFFFFD00000010uLL, 0x0000000000000001uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000000uLL}, +{0xFFFFFFFD00000010uLL, 0x0000000000000002uLL, 0x7FFFFFFE80000008uLL, 0x0000000000000000uLL}, +{0xFFFFFFFD00000010uLL, 0x0000000000000003uLL, 0x555555545555555AuLL, 0x0000000000000002uLL}, +{0xFFFFFFFD00000010uLL, 0x0000000000000010uLL, 0x0FFFFFFFD0000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFD00000010uLL, 0x00000000078644FAuLL, 0x0000002205B17A97uLL, 0x0000000000142C9AuLL}, +{0xFFFFFFFD00000010uLL, 0x000000000747AE14uLL, 0x000000232A32A512uLL, 0x0000000001DADEA8uLL}, +{0xFFFFFFFD00000010uLL, 0x000000007FFFFFFFuLL, 0x00000001FFFFFFFEuLL, 0x000000000000000EuLL}, +{0xFFFFFFFD00000010uLL, 0x0000000080000000uLL, 0x00000001FFFFFFFAuLL, 0x0000000000000010uLL}, +{0xFFFFFFFD00000010uLL, 0x00000000FFFFFFFDuLL, 0x0000000100000000uLL, 0x0000000000000010uLL}, +{0xFFFFFFFD00000010uLL, 0x00000000FFFFFFFEuLL, 0x00000000FFFFFFFFuLL, 0x000000000000000EuLL}, +{0xFFFFFFFD00000010uLL, 0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x000000000000000EuLL}, +{0xFFFFFFFD00000010uLL, 0x0000000100000000uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000010uLL}, +{0xFFFFFFFD00000010uLL, 0x0000000100000001uLL, 0x00000000FFFFFFFCuLL, 0x0000000000000014uLL}, +{0xFFFFFFFD00000010uLL, 0x0000000100000002uLL, 0x00000000FFFFFFFBuLL, 0x000000000000001AuLL}, +{0xFFFFFFFD00000010uLL, 0x0000000100000003uLL, 0x00000000FFFFFFFAuLL, 0x0000000000000022uLL}, +{0xFFFFFFFD00000010uLL, 0x0000000100000010uLL, 0x00000000FFFFFFEDuLL, 0x0000000000000140uLL}, +{0xFFFFFFFD00000010uLL, 0x00000001078644FAuLL, 0x00000000F8B0BB59uLL, 0x00000000B20F6726uLL}, +{0xFFFFFFFD00000010uLL, 0x000000010747AE14uLL, 0x00000000F8EBDA57uLL, 0x00000000500ACF44uLL}, +{0xFFFFFFFD00000010uLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAA9uLL, 0x000000002AAAAAB9uLL}, +{0xFFFFFFFD00000010uLL, 0x0000000180000000uLL, 0x00000000AAAAAAA8uLL, 0x0000000100000010uLL}, +{0xFFFFFFFD00000010uLL, 0x00000001FFFFFFFDuLL, 0x000000007FFFFFFFuLL, 0x000000008000000DuLL}, +{0xFFFFFFFD00000010uLL, 0x00000001FFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x000000000000000EuLL}, +{0xFFFFFFFD00000010uLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFEuLL, 0x000000018000000EuLL}, +{0xFFFFFFFD00000010uLL, 0x0000000200000000uLL, 0x000000007FFFFFFEuLL, 0x0000000100000010uLL}, +{0xFFFFFFFD00000010uLL, 0x0000000200000001uLL, 0x000000007FFFFFFEuLL, 0x0000000080000012uLL}, +{0xFFFFFFFD00000010uLL, 0x0000000200000002uLL, 0x000000007FFFFFFEuLL, 0x0000000000000014uLL}, +{0xFFFFFFFD00000010uLL, 0x0000000200000003uLL, 0x000000007FFFFFFDuLL, 0x0000000180000019uLL}, +{0xFFFFFFFD00000010uLL, 0x0000000200000010uLL, 0x000000007FFFFFFAuLL, 0x0000000100000070uLL}, +{0xFFFFFFFD00000010uLL, 0x00000002078644FAuLL, 0x000000007E256848uLL, 0x00000001521509C0uLL}, +{0xFFFFFFFD00000010uLL, 0x000000020747AE14uLL, 0x000000007E349CA5uLL, 0x000000016CA89D2CuLL}, +{0xFFFFFFFD00000010uLL, 0x000000027FFFFFFFuLL, 0x0000000066666665uLL, 0x00000000E6666675uLL}, +{0xFFFFFFFD00000010uLL, 0x0000000280000000uLL, 0x0000000066666665uLL, 0x0000000080000010uLL}, +{0xFFFFFFFD00000010uLL, 0x00000002FFFFFFFDuLL, 0x0000000055555554uLL, 0x000000020000000CuLL}, +{0xFFFFFFFD00000010uLL, 0x00000002FFFFFFFEuLL, 0x0000000055555554uLL, 0x00000001AAAAAAB8uLL}, +{0xFFFFFFFD00000010uLL, 0x00000002FFFFFFFFuLL, 0x0000000055555554uLL, 0x0000000155555564uLL}, +{0xFFFFFFFD00000010uLL, 0x0000000300000000uLL, 0x0000000055555554uLL, 0x0000000100000010uLL}, +{0xFFFFFFFD00000010uLL, 0x0000000300000001uLL, 0x0000000055555554uLL, 0x00000000AAAAAABCuLL}, +{0xFFFFFFFD00000010uLL, 0x0000000300000002uLL, 0x0000000055555554uLL, 0x0000000055555568uLL}, +{0xFFFFFFFD00000010uLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x0000000000000014uLL}, +{0xFFFFFFFD00000010uLL, 0x0000000300000010uLL, 0x0000000055555552uLL, 0x00000001AAAAAAF0uLL}, +{0xFFFFFFFD00000010uLL, 0x00000003078644FAuLL, 0x0000000054816147uLL, 0x000000013FA624BAuLL}, +{0xFFFFFFFD00000010uLL, 0x000000030747AE14uLL, 0x00000000548833C5uLL, 0x0000000213890EACuLL}, +{0xFFFFFFFD00000010uLL, 0x000000037FFFFFFFuLL, 0x0000000049249248uLL, 0x0000000149249258uLL}, +{0xFFFFFFFD00000010uLL, 0x0000000380000000uLL, 0x0000000049249248uLL, 0x0000000100000010uLL}, +{0xFFFFFFFD00000010uLL, 0x00000003FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000001C000000DuLL}, +{0xFFFFFFFD00000010uLL, 0x00000003FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x000000018000000EuLL}, +{0xFFFFFFFD00000010uLL, 0x00000003FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x000000014000000FuLL}, +{0xFFFFFFFD00000010uLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000D00000010uLL}, +{0xFFFFFFFD00000010uLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000CF0000011uLL}, +{0xFFFFFFFD00000010uLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000CE0000012uLL}, +{0xFFFFFFFD00000010uLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000CD0000013uLL}, +{0xFFFFFFFD00000010uLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000C00000020uLL}, +{0xFFFFFFFD00000010uLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x00000000FFFDE0A2uLL}, +{0xFFFFFFFD00000010uLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x0000000347AA9790uLL}, +{0xFFFFFFFD00000010uLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x000000010F83E108uLL}, +{0xFFFFFFFD00000010uLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x0000000100000010uLL}, +{0xFFFFFFFD00000010uLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0EuLL, 0x0000000F2D2D2D3AuLL}, +{0xFFFFFFFD00000010uLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0EuLL, 0x0000000F1E1E1E2CuLL}, +{0xFFFFFFFD00000010uLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0EuLL, 0x0000000F0F0F0F1EuLL}, +{0xFFFFFFFD00000010uLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6C900000010uLL}, +{0xFFFFFFFD00000010uLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6C8FFFFFFEEuLL}, +{0xFFFFFFFD00000010uLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6C8FFFFFFCCuLL}, +{0xFFFFFFFD00000010uLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6C8FFFFFFAAuLL}, +{0xFFFFFFFD00000010uLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6C8FFFFFDF0uLL}, +{0xFFFFFFFD00000010uLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6C8002AD6DCuLL}, +{0xFFFFFFFD00000010uLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6C8087AE168uLL}, +{0xFFFFFFFD00000010uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6B800000032uLL}, +{0xFFFFFFFD00000010uLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6B800000010uLL}, +{0xFFFFFFFD00000010uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6A700000076uLL}, +{0xFFFFFFFD00000010uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6A700000054uLL}, +{0xFFFFFFFD00000010uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6A700000032uLL}, +{0xFFFFFFFD00000010uLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x0133334100000010uLL}, +{0xFFFFFFFD00000010uLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x01333340FFFFFFEDuLL}, +{0xFFFFFFFD00000010uLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x01333340FFFFFFCAuLL}, +{0xFFFFFFFD00000010uLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x01333340FFFFFFA7uLL}, +{0xFFFFFFFD00000010uLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x01333340FFFFFDE0uLL}, +{0xFFFFFFFD00000010uLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x0133333FF8A491E2uLL}, +{0xFFFFFFFD00000010uLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x0133334001333354uLL}, +{0xFFFFFFFD00000010uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x0133332F80000033uLL}, +{0xFFFFFFFD00000010uLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x0133332F80000010uLL}, +{0xFFFFFFFD00000010uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x0133331E00000079uLL}, +{0xFFFFFFFD00000010uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133331E00000056uLL}, +{0xFFFFFFFD00000010uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133331E00000033uLL}, +{0xFFFFFFFD00000010uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE00000010uLL}, +{0xFFFFFFFD00000010uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x7FFFFFFE0000000FuLL}, +{0xFFFFFFFD00000010uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x7FFFFFFE0000000EuLL}, +{0xFFFFFFFD00000010uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x7FFFFFFE0000000DuLL}, +{0xFFFFFFFD00000010uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x7FFFFFFE00000000uLL}, +{0xFFFFFFFD00000010uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFDF879BB16uLL}, +{0xFFFFFFFD00000010uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFDF8B851FCuLL}, +{0xFFFFFFFD00000010uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD80000011uLL}, +{0xFFFFFFFD00000010uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x7FFFFFFD80000010uLL}, +{0xFFFFFFFD00000010uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000013uLL}, +{0xFFFFFFFD00000010uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000012uLL}, +{0xFFFFFFFD00000010uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000011uLL}, +{0xFFFFFFFD00000010uLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFD00000010uLL}, +{0xFFFFFFFD00000010uLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFD0000000FuLL}, +{0xFFFFFFFD00000010uLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFD0000000EuLL}, +{0xFFFFFFFD00000010uLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFD0000000DuLL}, +{0xFFFFFFFD00000010uLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFD00000000uLL}, +{0xFFFFFFFD00000010uLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFCF879BB16uLL}, +{0xFFFFFFFD00000010uLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFCF8B851FCuLL}, +{0xFFFFFFFD00000010uLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFC80000011uLL}, +{0xFFFFFFFD00000010uLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFC80000010uLL}, +{0xFFFFFFFD00000010uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFC00000013uLL}, +{0xFFFFFFFD00000010uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFC00000012uLL}, +{0xFFFFFFFD00000010uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFC00000011uLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x0000000000000010uLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x000000000000000FuLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x000000000000000EuLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0x000000000000000DuLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000010uLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000010uLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000010uLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000010uLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000010uLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000010uLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000010uLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000010uLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000010uLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000010uLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000010uLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000010uLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000010uLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000010uLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000010uLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000010uLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000010uLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000010uLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000010uLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000010uLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000010uLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000010uLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000010uLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000010uLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000010uLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000010uLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000010uLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD00000010uLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000010uLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000010uLL}, +{0xFFFFFFFD00000010uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD00000010uLL}, +{0xFFFFFFFD078644FAuLL, 0x0000000000000001uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL}, +{0xFFFFFFFD078644FAuLL, 0x0000000000000002uLL, 0x7FFFFFFE83C3227DuLL, 0x0000000000000000uLL}, +{0xFFFFFFFD078644FAuLL, 0x0000000000000003uLL, 0x5555555457D76C53uLL, 0x0000000000000001uLL}, +{0xFFFFFFFD078644FAuLL, 0x0000000000000010uLL, 0x0FFFFFFFD078644FuLL, 0x000000000000000AuLL}, +{0xFFFFFFFD078644FAuLL, 0x00000000078644FAuLL, 0x0000002205B17A98uLL, 0x0000000000142C8AuLL}, +{0xFFFFFFFD078644FAuLL, 0x000000000747AE14uLL, 0x000000232A32A513uLL, 0x000000000219757EuLL}, +{0xFFFFFFFD078644FAuLL, 0x000000007FFFFFFFuLL, 0x00000001FFFFFFFEuLL, 0x00000000078644F8uLL}, +{0xFFFFFFFD078644FAuLL, 0x0000000080000000uLL, 0x00000001FFFFFFFAuLL, 0x00000000078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0x00000000FFFFFFFDuLL, 0x0000000100000000uLL, 0x00000000078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0x00000000FFFFFFFEuLL, 0x00000000FFFFFFFFuLL, 0x00000000078644F8uLL}, +{0xFFFFFFFD078644FAuLL, 0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x00000000078644F8uLL}, +{0xFFFFFFFD078644FAuLL, 0x0000000100000000uLL, 0x00000000FFFFFFFDuLL, 0x00000000078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0x0000000100000001uLL, 0x00000000FFFFFFFCuLL, 0x00000000078644FEuLL}, +{0xFFFFFFFD078644FAuLL, 0x0000000100000002uLL, 0x00000000FFFFFFFBuLL, 0x0000000007864504uLL}, +{0xFFFFFFFD078644FAuLL, 0x0000000100000003uLL, 0x00000000FFFFFFFAuLL, 0x000000000786450CuLL}, +{0xFFFFFFFD078644FAuLL, 0x0000000100000010uLL, 0x00000000FFFFFFEDuLL, 0x000000000786462AuLL}, +{0xFFFFFFFD078644FAuLL, 0x00000001078644FAuLL, 0x00000000F8B0BB59uLL, 0x00000000B995AC10uLL}, +{0xFFFFFFFD078644FAuLL, 0x000000010747AE14uLL, 0x00000000F8EBDA57uLL, 0x000000005791142EuLL}, +{0xFFFFFFFD078644FAuLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAA9uLL, 0x000000003230EFA3uLL}, +{0xFFFFFFFD078644FAuLL, 0x0000000180000000uLL, 0x00000000AAAAAAA8uLL, 0x00000001078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0x00000001FFFFFFFDuLL, 0x000000007FFFFFFFuLL, 0x00000000878644F7uLL}, +{0xFFFFFFFD078644FAuLL, 0x00000001FFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x00000000078644F8uLL}, +{0xFFFFFFFD078644FAuLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFEuLL, 0x00000001878644F8uLL}, +{0xFFFFFFFD078644FAuLL, 0x0000000200000000uLL, 0x000000007FFFFFFEuLL, 0x00000001078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0x0000000200000001uLL, 0x000000007FFFFFFEuLL, 0x00000000878644FCuLL}, +{0xFFFFFFFD078644FAuLL, 0x0000000200000002uLL, 0x000000007FFFFFFEuLL, 0x00000000078644FEuLL}, +{0xFFFFFFFD078644FAuLL, 0x0000000200000003uLL, 0x000000007FFFFFFDuLL, 0x0000000187864503uLL}, +{0xFFFFFFFD078644FAuLL, 0x0000000200000010uLL, 0x000000007FFFFFFAuLL, 0x000000010786455AuLL}, +{0xFFFFFFFD078644FAuLL, 0x00000002078644FAuLL, 0x000000007E256848uLL, 0x00000001599B4EAAuLL}, +{0xFFFFFFFD078644FAuLL, 0x000000020747AE14uLL, 0x000000007E349CA5uLL, 0x00000001742EE216uLL}, +{0xFFFFFFFD078644FAuLL, 0x000000027FFFFFFFuLL, 0x0000000066666665uLL, 0x00000000EDECAB5FuLL}, +{0xFFFFFFFD078644FAuLL, 0x0000000280000000uLL, 0x0000000066666665uLL, 0x00000000878644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0x00000002FFFFFFFDuLL, 0x0000000055555554uLL, 0x00000002078644F6uLL}, +{0xFFFFFFFD078644FAuLL, 0x00000002FFFFFFFEuLL, 0x0000000055555554uLL, 0x00000001B230EFA2uLL}, +{0xFFFFFFFD078644FAuLL, 0x00000002FFFFFFFFuLL, 0x0000000055555554uLL, 0x000000015CDB9A4EuLL}, +{0xFFFFFFFD078644FAuLL, 0x0000000300000000uLL, 0x0000000055555554uLL, 0x00000001078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0x0000000300000001uLL, 0x0000000055555554uLL, 0x00000000B230EFA6uLL}, +{0xFFFFFFFD078644FAuLL, 0x0000000300000002uLL, 0x0000000055555554uLL, 0x000000005CDB9A52uLL}, +{0xFFFFFFFD078644FAuLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x00000000078644FEuLL}, +{0xFFFFFFFD078644FAuLL, 0x0000000300000010uLL, 0x0000000055555552uLL, 0x00000001B230EFDAuLL}, +{0xFFFFFFFD078644FAuLL, 0x00000003078644FAuLL, 0x0000000054816147uLL, 0x00000001472C69A4uLL}, +{0xFFFFFFFD078644FAuLL, 0x000000030747AE14uLL, 0x00000000548833C5uLL, 0x000000021B0F5396uLL}, +{0xFFFFFFFD078644FAuLL, 0x000000037FFFFFFFuLL, 0x0000000049249248uLL, 0x0000000150AAD742uLL}, +{0xFFFFFFFD078644FAuLL, 0x0000000380000000uLL, 0x0000000049249248uLL, 0x00000001078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0x00000003FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000001C78644F7uLL}, +{0xFFFFFFFD078644FAuLL, 0x00000003FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x00000001878644F8uLL}, +{0xFFFFFFFD078644FAuLL, 0x00000003FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x00000001478644F9uLL}, +{0xFFFFFFFD078644FAuLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000D078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000CF78644FBuLL}, +{0xFFFFFFFD078644FAuLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000CE78644FCuLL}, +{0xFFFFFFFD078644FAuLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000CD78644FDuLL}, +{0xFFFFFFFD078644FAuLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000C0786450AuLL}, +{0xFFFFFFFD078644FAuLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x000000010784258CuLL}, +{0xFFFFFFFD078644FAuLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x000000034F30DC7AuLL}, +{0xFFFFFFFD078644FAuLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x00000001170A25F2uLL}, +{0xFFFFFFFD078644FAuLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x00000001078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0EuLL, 0x0000000F34B37224uLL}, +{0xFFFFFFFD078644FAuLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0EuLL, 0x0000000F25A46316uLL}, +{0xFFFFFFFD078644FAuLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0EuLL, 0x0000000F16955408uLL}, +{0xFFFFFFFD078644FAuLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6C9078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6C9078644D8uLL}, +{0xFFFFFFFD078644FAuLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6C9078644B6uLL}, +{0xFFFFFFFD078644FAuLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6C907864494uLL}, +{0xFFFFFFFD078644FAuLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6C9078642DAuLL}, +{0xFFFFFFFD078644FAuLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6C807B11BC6uLL}, +{0xFFFFFFFD078644FAuLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6C810012652uLL}, +{0xFFFFFFFD078644FAuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6B80786451CuLL}, +{0xFFFFFFFD078644FAuLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6B8078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6A707864560uLL}, +{0xFFFFFFFD078644FAuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6A70786453EuLL}, +{0xFFFFFFFD078644FAuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6A70786451CuLL}, +{0xFFFFFFFD078644FAuLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x01333341078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x01333341078644D7uLL}, +{0xFFFFFFFD078644FAuLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x01333341078644B4uLL}, +{0xFFFFFFFD078644FAuLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x0133334107864491uLL}, +{0xFFFFFFFD078644FAuLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x01333341078642CAuLL}, +{0xFFFFFFFD078644FAuLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x01333340002AD6CCuLL}, +{0xFFFFFFFD078644FAuLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x0133334008B9783EuLL}, +{0xFFFFFFFD078644FAuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x0133332F8786451DuLL}, +{0xFFFFFFFD078644FAuLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x0133332F878644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x0133331E07864563uLL}, +{0xFFFFFFFD078644FAuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133331E07864540uLL}, +{0xFFFFFFFD078644FAuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133331E0786451DuLL}, +{0xFFFFFFFD078644FAuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x7FFFFFFE078644F9uLL}, +{0xFFFFFFFD078644FAuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x7FFFFFFE078644F8uLL}, +{0xFFFFFFFD078644FAuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x7FFFFFFE078644F7uLL}, +{0xFFFFFFFD078644FAuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x7FFFFFFE078644EAuLL}, +{0xFFFFFFFD078644FAuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000000uLL}, +{0xFFFFFFFD078644FAuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFE003E96E6uLL}, +{0xFFFFFFFD078644FAuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD878644FBuLL}, +{0xFFFFFFFD078644FAuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x7FFFFFFD878644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFD078644FDuLL}, +{0xFFFFFFFD078644FAuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFD078644FCuLL}, +{0xFFFFFFFD078644FAuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD078644FBuLL}, +{0xFFFFFFFD078644FAuLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFD078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFD078644F9uLL}, +{0xFFFFFFFD078644FAuLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFD078644F8uLL}, +{0xFFFFFFFD078644FAuLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFD078644F7uLL}, +{0xFFFFFFFD078644FAuLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFD078644EAuLL}, +{0xFFFFFFFD078644FAuLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000000uLL}, +{0xFFFFFFFD078644FAuLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFD003E96E6uLL}, +{0xFFFFFFFD078644FAuLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFC878644FBuLL}, +{0xFFFFFFFD078644FAuLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFC878644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFC078644FDuLL}, +{0xFFFFFFFD078644FAuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFC078644FCuLL}, +{0xFFFFFFFD078644FAuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFC078644FBuLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x00000000078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x00000000078644F9uLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x00000000078644F8uLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0x00000000078644F7uLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000001uLL, 0x00000000078644EAuLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000001uLL, 0x00000000003E96E6uLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFD078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFD078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFD078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFD078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFD078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFD078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFD078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFD078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFD078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFD078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFD078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFD078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFD078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFD078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFD078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFD078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFD078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFD078644FAuLL}, +{0xFFFFFFFD078644FAuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD078644FAuLL}, +{0xFFFFFFFD0747AE14uLL, 0x0000000000000001uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000000uLL}, +{0xFFFFFFFD0747AE14uLL, 0x0000000000000002uLL, 0x7FFFFFFE83A3D70AuLL, 0x0000000000000000uLL}, +{0xFFFFFFFD0747AE14uLL, 0x0000000000000003uLL, 0x5555555457C28F5CuLL, 0x0000000000000000uLL}, +{0xFFFFFFFD0747AE14uLL, 0x0000000000000010uLL, 0x0FFFFFFFD0747AE1uLL, 0x0000000000000004uLL}, +{0xFFFFFFFD0747AE14uLL, 0x00000000078644FAuLL, 0x0000002205B17A97uLL, 0x00000000075BDA9EuLL}, +{0xFFFFFFFD0747AE14uLL, 0x000000000747AE14uLL, 0x000000232A32A513uLL, 0x0000000001DADE98uLL}, +{0xFFFFFFFD0747AE14uLL, 0x000000007FFFFFFFuLL, 0x00000001FFFFFFFEuLL, 0x000000000747AE12uLL}, +{0xFFFFFFFD0747AE14uLL, 0x0000000080000000uLL, 0x00000001FFFFFFFAuLL, 0x000000000747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0x00000000FFFFFFFDuLL, 0x0000000100000000uLL, 0x000000000747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0x00000000FFFFFFFEuLL, 0x00000000FFFFFFFFuLL, 0x000000000747AE12uLL}, +{0xFFFFFFFD0747AE14uLL, 0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x000000000747AE12uLL}, +{0xFFFFFFFD0747AE14uLL, 0x0000000100000000uLL, 0x00000000FFFFFFFDuLL, 0x000000000747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0x0000000100000001uLL, 0x00000000FFFFFFFCuLL, 0x000000000747AE18uLL}, +{0xFFFFFFFD0747AE14uLL, 0x0000000100000002uLL, 0x00000000FFFFFFFBuLL, 0x000000000747AE1EuLL}, +{0xFFFFFFFD0747AE14uLL, 0x0000000100000003uLL, 0x00000000FFFFFFFAuLL, 0x000000000747AE26uLL}, +{0xFFFFFFFD0747AE14uLL, 0x0000000100000010uLL, 0x00000000FFFFFFEDuLL, 0x000000000747AF44uLL}, +{0xFFFFFFFD0747AE14uLL, 0x00000001078644FAuLL, 0x00000000F8B0BB59uLL, 0x00000000B957152AuLL}, +{0xFFFFFFFD0747AE14uLL, 0x000000010747AE14uLL, 0x00000000F8EBDA57uLL, 0x0000000057527D48uLL}, +{0xFFFFFFFD0747AE14uLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAA9uLL, 0x0000000031F258BDuLL}, +{0xFFFFFFFD0747AE14uLL, 0x0000000180000000uLL, 0x00000000AAAAAAA8uLL, 0x000000010747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0x00000001FFFFFFFDuLL, 0x000000007FFFFFFFuLL, 0x000000008747AE11uLL}, +{0xFFFFFFFD0747AE14uLL, 0x00000001FFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x000000000747AE12uLL}, +{0xFFFFFFFD0747AE14uLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFEuLL, 0x000000018747AE12uLL}, +{0xFFFFFFFD0747AE14uLL, 0x0000000200000000uLL, 0x000000007FFFFFFEuLL, 0x000000010747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0x0000000200000001uLL, 0x000000007FFFFFFEuLL, 0x000000008747AE16uLL}, +{0xFFFFFFFD0747AE14uLL, 0x0000000200000002uLL, 0x000000007FFFFFFEuLL, 0x000000000747AE18uLL}, +{0xFFFFFFFD0747AE14uLL, 0x0000000200000003uLL, 0x000000007FFFFFFDuLL, 0x000000018747AE1DuLL}, +{0xFFFFFFFD0747AE14uLL, 0x0000000200000010uLL, 0x000000007FFFFFFAuLL, 0x000000010747AE74uLL}, +{0xFFFFFFFD0747AE14uLL, 0x00000002078644FAuLL, 0x000000007E256848uLL, 0x00000001595CB7C4uLL}, +{0xFFFFFFFD0747AE14uLL, 0x000000020747AE14uLL, 0x000000007E349CA5uLL, 0x0000000173F04B30uLL}, +{0xFFFFFFFD0747AE14uLL, 0x000000027FFFFFFFuLL, 0x0000000066666665uLL, 0x00000000EDAE1479uLL}, +{0xFFFFFFFD0747AE14uLL, 0x0000000280000000uLL, 0x0000000066666665uLL, 0x000000008747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0x00000002FFFFFFFDuLL, 0x0000000055555554uLL, 0x000000020747AE10uLL}, +{0xFFFFFFFD0747AE14uLL, 0x00000002FFFFFFFEuLL, 0x0000000055555554uLL, 0x00000001B1F258BCuLL}, +{0xFFFFFFFD0747AE14uLL, 0x00000002FFFFFFFFuLL, 0x0000000055555554uLL, 0x000000015C9D0368uLL}, +{0xFFFFFFFD0747AE14uLL, 0x0000000300000000uLL, 0x0000000055555554uLL, 0x000000010747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0x0000000300000001uLL, 0x0000000055555554uLL, 0x00000000B1F258C0uLL}, +{0xFFFFFFFD0747AE14uLL, 0x0000000300000002uLL, 0x0000000055555554uLL, 0x000000005C9D036CuLL}, +{0xFFFFFFFD0747AE14uLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x000000000747AE18uLL}, +{0xFFFFFFFD0747AE14uLL, 0x0000000300000010uLL, 0x0000000055555552uLL, 0x00000001B1F258F4uLL}, +{0xFFFFFFFD0747AE14uLL, 0x00000003078644FAuLL, 0x0000000054816147uLL, 0x0000000146EDD2BEuLL}, +{0xFFFFFFFD0747AE14uLL, 0x000000030747AE14uLL, 0x00000000548833C5uLL, 0x000000021AD0BCB0uLL}, +{0xFFFFFFFD0747AE14uLL, 0x000000037FFFFFFFuLL, 0x0000000049249248uLL, 0x00000001506C405CuLL}, +{0xFFFFFFFD0747AE14uLL, 0x0000000380000000uLL, 0x0000000049249248uLL, 0x000000010747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0x00000003FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000001C747AE11uLL}, +{0xFFFFFFFD0747AE14uLL, 0x00000003FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x000000018747AE12uLL}, +{0xFFFFFFFD0747AE14uLL, 0x00000003FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x000000014747AE13uLL}, +{0xFFFFFFFD0747AE14uLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000D0747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000CF747AE15uLL}, +{0xFFFFFFFD0747AE14uLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000CE747AE16uLL}, +{0xFFFFFFFD0747AE14uLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000CD747AE17uLL}, +{0xFFFFFFFD0747AE14uLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000C0747AE24uLL}, +{0xFFFFFFFD0747AE14uLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x0000000107458EA6uLL}, +{0xFFFFFFFD0747AE14uLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x000000034EF24594uLL}, +{0xFFFFFFFD0747AE14uLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x0000000116CB8F0CuLL}, +{0xFFFFFFFD0747AE14uLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x000000010747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0EuLL, 0x0000000F3474DB3EuLL}, +{0xFFFFFFFD0747AE14uLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0EuLL, 0x0000000F2565CC30uLL}, +{0xFFFFFFFD0747AE14uLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0EuLL, 0x0000000F1656BD22uLL}, +{0xFFFFFFFD0747AE14uLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6C90747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6C90747ADF2uLL}, +{0xFFFFFFFD0747AE14uLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6C90747ADD0uLL}, +{0xFFFFFFFD0747AE14uLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6C90747ADAEuLL}, +{0xFFFFFFFD0747AE14uLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6C90747ABF4uLL}, +{0xFFFFFFFD0747AE14uLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6C8077284E0uLL}, +{0xFFFFFFFD0747AE14uLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6C80FC28F6CuLL}, +{0xFFFFFFFD0747AE14uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6B80747AE36uLL}, +{0xFFFFFFFD0747AE14uLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6B80747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6A70747AE7AuLL}, +{0xFFFFFFFD0747AE14uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6A70747AE58uLL}, +{0xFFFFFFFD0747AE14uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6A70747AE36uLL}, +{0xFFFFFFFD0747AE14uLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x013333410747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x013333410747ADF1uLL}, +{0xFFFFFFFD0747AE14uLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x013333410747ADCEuLL}, +{0xFFFFFFFD0747AE14uLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x013333410747ADABuLL}, +{0xFFFFFFFD0747AE14uLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x013333410747ABE4uLL}, +{0xFFFFFFFD0747AE14uLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x0133333FFFEC3FE6uLL}, +{0xFFFFFFFD0747AE14uLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x01333340087AE158uLL}, +{0xFFFFFFFD0747AE14uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x0133332F8747AE37uLL}, +{0xFFFFFFFD0747AE14uLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x0133332F8747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x0133331E0747AE7DuLL}, +{0xFFFFFFFD0747AE14uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133331E0747AE5AuLL}, +{0xFFFFFFFD0747AE14uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133331E0747AE37uLL}, +{0xFFFFFFFD0747AE14uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE0747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x7FFFFFFE0747AE13uLL}, +{0xFFFFFFFD0747AE14uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x7FFFFFFE0747AE12uLL}, +{0xFFFFFFFD0747AE14uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x7FFFFFFE0747AE11uLL}, +{0xFFFFFFFD0747AE14uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x7FFFFFFE0747AE04uLL}, +{0xFFFFFFFD0747AE14uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFDFFC1691AuLL}, +{0xFFFFFFFD0747AE14uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFE00000000uLL}, +{0xFFFFFFFD0747AE14uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD8747AE15uLL}, +{0xFFFFFFFD0747AE14uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x7FFFFFFD8747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFD0747AE17uLL}, +{0xFFFFFFFD0747AE14uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFD0747AE16uLL}, +{0xFFFFFFFD0747AE14uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD0747AE15uLL}, +{0xFFFFFFFD0747AE14uLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFD0747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFD0747AE13uLL}, +{0xFFFFFFFD0747AE14uLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFD0747AE12uLL}, +{0xFFFFFFFD0747AE14uLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFD0747AE11uLL}, +{0xFFFFFFFD0747AE14uLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFD0747AE04uLL}, +{0xFFFFFFFD0747AE14uLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFCFFC1691AuLL}, +{0xFFFFFFFD0747AE14uLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFD00000000uLL}, +{0xFFFFFFFD0747AE14uLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFC8747AE15uLL}, +{0xFFFFFFFD0747AE14uLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFC8747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFC0747AE17uLL}, +{0xFFFFFFFD0747AE14uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFC0747AE16uLL}, +{0xFFFFFFFD0747AE14uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFC0747AE15uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x000000000747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x000000000747AE13uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x000000000747AE12uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0x000000000747AE11uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000001uLL, 0x000000000747AE04uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFD0747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD0747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD0747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFD0747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFD0747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD0747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD0747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFD0747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFD0747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFD0747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFD0747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFD0747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFD0747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD0747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD0747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFD0747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFD0747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD0747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD0747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFD0747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFD0747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFD0747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFD0747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFD0747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFD0747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD0747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD0747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFD0747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFD0747AE14uLL}, +{0xFFFFFFFD0747AE14uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD0747AE14uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000001uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000000uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000002uLL, 0x7FFFFFFEBFFFFFFFuLL, 0x0000000000000001uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000003uLL, 0x555555547FFFFFFFuLL, 0x0000000000000002uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000010uLL, 0x0FFFFFFFD7FFFFFFuLL, 0x000000000000000FuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x00000000078644FAuLL, 0x0000002205B17AA8uLL, 0x00000000002997EFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x000000000747AE14uLL, 0x000000232A32A523uLL, 0x0000000006184F43uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x00000001FFFFFFFEuLL, 0x000000007FFFFFFDuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0000000080000000uLL, 0x00000001FFFFFFFAuLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x00000000FFFFFFFDuLL, 0x0000000100000000uLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x00000000FFFFFFFFuLL, 0x000000007FFFFFFDuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x000000007FFFFFFDuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0000000100000000uLL, 0x00000000FFFFFFFDuLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0000000100000001uLL, 0x00000000FFFFFFFCuLL, 0x0000000080000003uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0000000100000002uLL, 0x00000000FFFFFFFBuLL, 0x0000000080000009uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0000000100000003uLL, 0x00000000FFFFFFFAuLL, 0x0000000080000011uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0000000100000010uLL, 0x00000000FFFFFFEDuLL, 0x000000008000012FuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x00000001078644FAuLL, 0x00000000F8B0BB5AuLL, 0x000000002A89221BuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x000000010747AE14uLL, 0x00000000F8EBDA57uLL, 0x00000000D00ACF33uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAA9uLL, 0x00000000AAAAAAA8uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0000000180000000uLL, 0x00000000AAAAAAA8uLL, 0x000000017FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x00000001FFFFFFFDuLL, 0x000000007FFFFFFFuLL, 0x00000000FFFFFFFCuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x00000001FFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x000000007FFFFFFDuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFEuLL, 0x00000001FFFFFFFDuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0000000200000000uLL, 0x000000007FFFFFFEuLL, 0x000000017FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0000000200000001uLL, 0x000000007FFFFFFEuLL, 0x0000000100000001uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0000000200000002uLL, 0x000000007FFFFFFEuLL, 0x0000000080000003uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0000000200000003uLL, 0x000000007FFFFFFEuLL, 0x0000000000000005uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0000000200000010uLL, 0x000000007FFFFFFAuLL, 0x000000018000005FuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x00000002078644FAuLL, 0x000000007E256848uLL, 0x00000001D21509AFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x000000020747AE14uLL, 0x000000007E349CA5uLL, 0x00000001ECA89D1BuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x000000027FFFFFFFuLL, 0x0000000066666665uLL, 0x0000000166666664uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0000000280000000uLL, 0x0000000066666665uLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x00000002FFFFFFFDuLL, 0x0000000055555554uLL, 0x000000027FFFFFFBuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x00000002FFFFFFFEuLL, 0x0000000055555554uLL, 0x000000022AAAAAA7uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x00000002FFFFFFFFuLL, 0x0000000055555554uLL, 0x00000001D5555553uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0000000300000000uLL, 0x0000000055555554uLL, 0x000000017FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0000000300000001uLL, 0x0000000055555554uLL, 0x000000012AAAAAABuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0000000300000002uLL, 0x0000000055555554uLL, 0x00000000D5555557uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x0000000080000003uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0000000300000010uLL, 0x0000000055555552uLL, 0x000000022AAAAADFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x00000003078644FAuLL, 0x0000000054816147uLL, 0x00000001BFA624A9uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x000000030747AE14uLL, 0x00000000548833C5uLL, 0x0000000293890E9BuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x000000037FFFFFFFuLL, 0x0000000049249248uLL, 0x00000001C9249247uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0000000380000000uLL, 0x0000000049249248uLL, 0x000000017FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x00000003FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x000000023FFFFFFCuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x00000003FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x00000001FFFFFFFDuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x00000003FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x00000001BFFFFFFEuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000D7FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000D70000000uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000D60000001uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000D50000002uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000C8000000FuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x000000017FFDE091uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x00000003C7AA977FuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x000000018F83E0F7uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x000000017FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0EuLL, 0x0000000FAD2D2D29uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0EuLL, 0x0000000F9E1E1E1BuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0EuLL, 0x0000000F8F0F0F0DuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6C97FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6C97FFFFFDDuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6C97FFFFFBBuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6C97FFFFF99uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6C97FFFFDDFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6C8802AD6CBuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6C8887AE157uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6B880000021uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6B87FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6A780000065uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6A780000043uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6A780000021uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x013333417FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x013333417FFFFFDCuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x013333417FFFFFB9uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x013333417FFFFF96uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x013333417FFFFDCFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x0133334078A491D1uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x0133334081333343uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x0133333000000022uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x0133332FFFFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x0133331E80000068uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133331E80000045uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133331E80000022uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE7FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x7FFFFFFE7FFFFFFEuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x7FFFFFFE7FFFFFFDuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x7FFFFFFE7FFFFFFCuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x7FFFFFFE7FFFFFEFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFE7879BB05uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFE78B851EBuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000000uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFD80000002uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFD80000001uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD80000000uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFD7FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFD7FFFFFFEuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFD7FFFFFFDuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFD7FFFFFFCuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFD7FFFFFEFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFD7879BB05uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFD78B851EBuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000000uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFCFFFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFC80000002uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFC80000001uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFC80000000uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0x000000007FFFFFFCuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000001uLL, 0x000000007FFFFFEFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000001uLL, 0x000000007879BB05uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000001uLL, 0x0000000078B851EBuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD7FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFD7FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFD7FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD7FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD7FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFD7FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFD7FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFD7FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFD7FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFD7FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFD7FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD7FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD7FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFD7FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFD7FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD7FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD7FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFD7FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFD7FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFD7FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFD7FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFD7FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFD7FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD7FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD7FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFD7FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFD7FFFFFFFuLL}, +{0xFFFFFFFD7FFFFFFFuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD7FFFFFFFuLL}, +{0xFFFFFFFD80000000uLL, 0x0000000000000001uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000000uLL}, +{0xFFFFFFFD80000000uLL, 0x0000000000000002uLL, 0x7FFFFFFEC0000000uLL, 0x0000000000000000uLL}, +{0xFFFFFFFD80000000uLL, 0x0000000000000003uLL, 0x5555555480000000uLL, 0x0000000000000000uLL}, +{0xFFFFFFFD80000000uLL, 0x0000000000000010uLL, 0x0FFFFFFFD8000000uLL, 0x0000000000000000uLL}, +{0xFFFFFFFD80000000uLL, 0x00000000078644FAuLL, 0x0000002205B17AA8uLL, 0x00000000002997F0uLL}, +{0xFFFFFFFD80000000uLL, 0x000000000747AE14uLL, 0x000000232A32A523uLL, 0x0000000006184F44uLL}, +{0xFFFFFFFD80000000uLL, 0x000000007FFFFFFFuLL, 0x00000001FFFFFFFEuLL, 0x000000007FFFFFFEuLL}, +{0xFFFFFFFD80000000uLL, 0x0000000080000000uLL, 0x00000001FFFFFFFBuLL, 0x0000000000000000uLL}, +{0xFFFFFFFD80000000uLL, 0x00000000FFFFFFFDuLL, 0x0000000100000000uLL, 0x0000000080000000uLL}, +{0xFFFFFFFD80000000uLL, 0x00000000FFFFFFFEuLL, 0x00000000FFFFFFFFuLL, 0x000000007FFFFFFEuLL}, +{0xFFFFFFFD80000000uLL, 0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x000000007FFFFFFEuLL}, +{0xFFFFFFFD80000000uLL, 0x0000000100000000uLL, 0x00000000FFFFFFFDuLL, 0x0000000080000000uLL}, +{0xFFFFFFFD80000000uLL, 0x0000000100000001uLL, 0x00000000FFFFFFFCuLL, 0x0000000080000004uLL}, +{0xFFFFFFFD80000000uLL, 0x0000000100000002uLL, 0x00000000FFFFFFFBuLL, 0x000000008000000AuLL}, +{0xFFFFFFFD80000000uLL, 0x0000000100000003uLL, 0x00000000FFFFFFFAuLL, 0x0000000080000012uLL}, +{0xFFFFFFFD80000000uLL, 0x0000000100000010uLL, 0x00000000FFFFFFEDuLL, 0x0000000080000130uLL}, +{0xFFFFFFFD80000000uLL, 0x00000001078644FAuLL, 0x00000000F8B0BB5AuLL, 0x000000002A89221CuLL}, +{0xFFFFFFFD80000000uLL, 0x000000010747AE14uLL, 0x00000000F8EBDA57uLL, 0x00000000D00ACF34uLL}, +{0xFFFFFFFD80000000uLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAA9uLL, 0x00000000AAAAAAA9uLL}, +{0xFFFFFFFD80000000uLL, 0x0000000180000000uLL, 0x00000000AAAAAAA9uLL, 0x0000000000000000uLL}, +{0xFFFFFFFD80000000uLL, 0x00000001FFFFFFFDuLL, 0x000000007FFFFFFFuLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFD80000000uLL, 0x00000001FFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x000000007FFFFFFEuLL}, +{0xFFFFFFFD80000000uLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFEuLL, 0x00000001FFFFFFFEuLL}, +{0xFFFFFFFD80000000uLL, 0x0000000200000000uLL, 0x000000007FFFFFFEuLL, 0x0000000180000000uLL}, +{0xFFFFFFFD80000000uLL, 0x0000000200000001uLL, 0x000000007FFFFFFEuLL, 0x0000000100000002uLL}, +{0xFFFFFFFD80000000uLL, 0x0000000200000002uLL, 0x000000007FFFFFFEuLL, 0x0000000080000004uLL}, +{0xFFFFFFFD80000000uLL, 0x0000000200000003uLL, 0x000000007FFFFFFEuLL, 0x0000000000000006uLL}, +{0xFFFFFFFD80000000uLL, 0x0000000200000010uLL, 0x000000007FFFFFFAuLL, 0x0000000180000060uLL}, +{0xFFFFFFFD80000000uLL, 0x00000002078644FAuLL, 0x000000007E256848uLL, 0x00000001D21509B0uLL}, +{0xFFFFFFFD80000000uLL, 0x000000020747AE14uLL, 0x000000007E349CA5uLL, 0x00000001ECA89D1CuLL}, +{0xFFFFFFFD80000000uLL, 0x000000027FFFFFFFuLL, 0x0000000066666665uLL, 0x0000000166666665uLL}, +{0xFFFFFFFD80000000uLL, 0x0000000280000000uLL, 0x0000000066666665uLL, 0x0000000100000000uLL}, +{0xFFFFFFFD80000000uLL, 0x00000002FFFFFFFDuLL, 0x0000000055555554uLL, 0x000000027FFFFFFCuLL}, +{0xFFFFFFFD80000000uLL, 0x00000002FFFFFFFEuLL, 0x0000000055555554uLL, 0x000000022AAAAAA8uLL}, +{0xFFFFFFFD80000000uLL, 0x00000002FFFFFFFFuLL, 0x0000000055555554uLL, 0x00000001D5555554uLL}, +{0xFFFFFFFD80000000uLL, 0x0000000300000000uLL, 0x0000000055555554uLL, 0x0000000180000000uLL}, +{0xFFFFFFFD80000000uLL, 0x0000000300000001uLL, 0x0000000055555554uLL, 0x000000012AAAAAACuLL}, +{0xFFFFFFFD80000000uLL, 0x0000000300000002uLL, 0x0000000055555554uLL, 0x00000000D5555558uLL}, +{0xFFFFFFFD80000000uLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x0000000080000004uLL}, +{0xFFFFFFFD80000000uLL, 0x0000000300000010uLL, 0x0000000055555552uLL, 0x000000022AAAAAE0uLL}, +{0xFFFFFFFD80000000uLL, 0x00000003078644FAuLL, 0x0000000054816147uLL, 0x00000001BFA624AAuLL}, +{0xFFFFFFFD80000000uLL, 0x000000030747AE14uLL, 0x00000000548833C5uLL, 0x0000000293890E9CuLL}, +{0xFFFFFFFD80000000uLL, 0x000000037FFFFFFFuLL, 0x0000000049249248uLL, 0x00000001C9249248uLL}, +{0xFFFFFFFD80000000uLL, 0x0000000380000000uLL, 0x0000000049249248uLL, 0x0000000180000000uLL}, +{0xFFFFFFFD80000000uLL, 0x00000003FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x000000023FFFFFFDuLL}, +{0xFFFFFFFD80000000uLL, 0x00000003FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x00000001FFFFFFFEuLL}, +{0xFFFFFFFD80000000uLL, 0x00000003FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x00000001BFFFFFFFuLL}, +{0xFFFFFFFD80000000uLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000D80000000uLL}, +{0xFFFFFFFD80000000uLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000D70000001uLL}, +{0xFFFFFFFD80000000uLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000D60000002uLL}, +{0xFFFFFFFD80000000uLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000D50000003uLL}, +{0xFFFFFFFD80000000uLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000C80000010uLL}, +{0xFFFFFFFD80000000uLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x000000017FFDE092uLL}, +{0xFFFFFFFD80000000uLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x00000003C7AA9780uLL}, +{0xFFFFFFFD80000000uLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x000000018F83E0F8uLL}, +{0xFFFFFFFD80000000uLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x0000000180000000uLL}, +{0xFFFFFFFD80000000uLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0EuLL, 0x0000000FAD2D2D2AuLL}, +{0xFFFFFFFD80000000uLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0EuLL, 0x0000000F9E1E1E1CuLL}, +{0xFFFFFFFD80000000uLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0EuLL, 0x0000000F8F0F0F0EuLL}, +{0xFFFFFFFD80000000uLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6C980000000uLL}, +{0xFFFFFFFD80000000uLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6C97FFFFFDEuLL}, +{0xFFFFFFFD80000000uLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6C97FFFFFBCuLL}, +{0xFFFFFFFD80000000uLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6C97FFFFF9AuLL}, +{0xFFFFFFFD80000000uLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6C97FFFFDE0uLL}, +{0xFFFFFFFD80000000uLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6C8802AD6CCuLL}, +{0xFFFFFFFD80000000uLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6C8887AE158uLL}, +{0xFFFFFFFD80000000uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6B880000022uLL}, +{0xFFFFFFFD80000000uLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6B880000000uLL}, +{0xFFFFFFFD80000000uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6A780000066uLL}, +{0xFFFFFFFD80000000uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6A780000044uLL}, +{0xFFFFFFFD80000000uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6A780000022uLL}, +{0xFFFFFFFD80000000uLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x0133334180000000uLL}, +{0xFFFFFFFD80000000uLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x013333417FFFFFDDuLL}, +{0xFFFFFFFD80000000uLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x013333417FFFFFBAuLL}, +{0xFFFFFFFD80000000uLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x013333417FFFFF97uLL}, +{0xFFFFFFFD80000000uLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x013333417FFFFDD0uLL}, +{0xFFFFFFFD80000000uLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x0133334078A491D2uLL}, +{0xFFFFFFFD80000000uLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x0133334081333344uLL}, +{0xFFFFFFFD80000000uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x0133333000000023uLL}, +{0xFFFFFFFD80000000uLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x0133333000000000uLL}, +{0xFFFFFFFD80000000uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x0133331E80000069uLL}, +{0xFFFFFFFD80000000uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133331E80000046uLL}, +{0xFFFFFFFD80000000uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133331E80000023uLL}, +{0xFFFFFFFD80000000uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE80000000uLL}, +{0xFFFFFFFD80000000uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x7FFFFFFE7FFFFFFFuLL}, +{0xFFFFFFFD80000000uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x7FFFFFFE7FFFFFFEuLL}, +{0xFFFFFFFD80000000uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x7FFFFFFE7FFFFFFDuLL}, +{0xFFFFFFFD80000000uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x7FFFFFFE7FFFFFF0uLL}, +{0xFFFFFFFD80000000uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFE7879BB06uLL}, +{0xFFFFFFFD80000000uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFE78B851ECuLL}, +{0xFFFFFFFD80000000uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000001uLL}, +{0xFFFFFFFD80000000uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE00000000uLL}, +{0xFFFFFFFD80000000uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFD80000003uLL}, +{0xFFFFFFFD80000000uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFD80000002uLL}, +{0xFFFFFFFD80000000uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD80000001uLL}, +{0xFFFFFFFD80000000uLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFD80000000uLL}, +{0xFFFFFFFD80000000uLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFD7FFFFFFFuLL}, +{0xFFFFFFFD80000000uLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFD7FFFFFFEuLL}, +{0xFFFFFFFD80000000uLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFD7FFFFFFDuLL}, +{0xFFFFFFFD80000000uLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFD7FFFFFF0uLL}, +{0xFFFFFFFD80000000uLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFD7879BB06uLL}, +{0xFFFFFFFD80000000uLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFD78B851ECuLL}, +{0xFFFFFFFD80000000uLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000001uLL}, +{0xFFFFFFFD80000000uLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFD00000000uLL}, +{0xFFFFFFFD80000000uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFC80000003uLL}, +{0xFFFFFFFD80000000uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFC80000002uLL}, +{0xFFFFFFFD80000000uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFC80000001uLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x0000000080000000uLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000001uLL, 0x000000007FFFFFF0uLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000001uLL, 0x000000007879BB06uLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000001uLL, 0x0000000078B851ECuLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFD80000000uLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFD80000000uLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD80000000uLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD80000000uLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFD80000000uLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFD80000000uLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFD80000000uLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFD80000000uLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFD80000000uLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFD80000000uLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD80000000uLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD80000000uLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFD80000000uLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFD80000000uLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD80000000uLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD80000000uLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFD80000000uLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFD80000000uLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFD80000000uLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFD80000000uLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFD80000000uLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFD80000000uLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD80000000uLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFD80000000uLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFD80000000uLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFD80000000uLL}, +{0xFFFFFFFD80000000uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFD80000000uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000001uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000000uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000002uLL, 0x7FFFFFFEFFFFFFFEuLL, 0x0000000000000001uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000003uLL, 0x55555554AAAAAAA9uLL, 0x0000000000000002uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000010uLL, 0x0FFFFFFFDFFFFFFFuLL, 0x000000000000000DuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x00000000078644FAuLL, 0x0000002205B17AB9uLL, 0x00000000003F0353uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x000000000747AE14uLL, 0x000000232A32A535uLL, 0x00000000030E11D9uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x000000007FFFFFFFuLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFCuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0000000080000000uLL, 0x00000001FFFFFFFBuLL, 0x000000007FFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x00000000FFFFFFFDuLL, 0x0000000100000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x00000000FFFFFFFEuLL, 0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFBuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x00000000FFFFFFFBuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0000000100000000uLL, 0x00000000FFFFFFFDuLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0000000100000001uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000000uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0000000100000002uLL, 0x00000000FFFFFFFCuLL, 0x0000000000000005uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0000000100000003uLL, 0x00000000FFFFFFFBuLL, 0x000000000000000CuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0000000100000010uLL, 0x00000000FFFFFFEEuLL, 0x000000000000011DuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x00000001078644FAuLL, 0x00000000F8B0BB5AuLL, 0x00000000AA892219uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x000000010747AE14uLL, 0x00000000F8EBDA58uLL, 0x0000000048C3211DuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAA9uLL, 0x000000012AAAAAA6uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0000000180000000uLL, 0x00000000AAAAAAA9uLL, 0x000000007FFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x00000001FFFFFFFDuLL, 0x000000007FFFFFFFuLL, 0x000000017FFFFFFAuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x00000001FFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x00000000FFFFFFFBuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x000000007FFFFFFCuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0000000200000000uLL, 0x000000007FFFFFFEuLL, 0x00000001FFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0000000200000001uLL, 0x000000007FFFFFFEuLL, 0x000000017FFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0000000200000002uLL, 0x000000007FFFFFFEuLL, 0x0000000100000001uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0000000200000003uLL, 0x000000007FFFFFFEuLL, 0x0000000080000003uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0000000200000010uLL, 0x000000007FFFFFFBuLL, 0x000000000000004DuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x00000002078644FAuLL, 0x000000007E256849uLL, 0x000000004A8EC4B3uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x000000020747AE14uLL, 0x000000007E349CA6uLL, 0x000000006560EF05uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x000000027FFFFFFFuLL, 0x0000000066666665uLL, 0x00000001E6666662uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0000000280000000uLL, 0x0000000066666665uLL, 0x000000017FFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x00000002FFFFFFFDuLL, 0x0000000055555554uLL, 0x00000002FFFFFFF9uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x00000002FFFFFFFEuLL, 0x0000000055555554uLL, 0x00000002AAAAAAA5uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x00000002FFFFFFFFuLL, 0x0000000055555554uLL, 0x0000000255555551uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0000000300000000uLL, 0x0000000055555554uLL, 0x00000001FFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0000000300000001uLL, 0x0000000055555554uLL, 0x00000001AAAAAAA9uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0000000300000002uLL, 0x0000000055555554uLL, 0x0000000155555555uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x0000000100000001uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0000000300000010uLL, 0x0000000055555552uLL, 0x00000002AAAAAADDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x00000003078644FAuLL, 0x0000000054816147uLL, 0x000000023FA624A7uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x000000030747AE14uLL, 0x00000000548833C6uLL, 0x000000000C416085uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x000000037FFFFFFFuLL, 0x0000000049249248uLL, 0x0000000249249245uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0000000380000000uLL, 0x0000000049249248uLL, 0x00000001FFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x00000003FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000002BFFFFFFAuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x00000003FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x000000027FFFFFFBuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x00000003FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x000000023FFFFFFCuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000DFFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000DEFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000DDFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000DD0000000uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000D0000000DuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x00000001FFFDE08FuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x0000000447AA977DuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x000000020F83E0F5uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x00000001FFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0EuLL, 0x000000102D2D2D27uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0EuLL, 0x000000101E1E1E19uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0EuLL, 0x000000100F0F0F0BuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFFDBuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFFB9uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFF97uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFDDDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6C9002AD6C9uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6C9087AE155uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6B90000001FuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6B8FFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6A800000063uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6A800000041uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6A80000001FuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x01333341FFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x01333341FFFFFFDAuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x01333341FFFFFFB7uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x01333341FFFFFF94uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x01333341FFFFFDCDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x01333340F8A491CFuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x0133334101333341uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x0133333080000020uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x013333307FFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x0133331F00000066uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133331F00000043uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133331F00000020uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFCuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFBuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFAuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFEDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFEF879BB03uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFEF8B851E9uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE7FFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE7FFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000000uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFFCuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFFBuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFFAuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFEDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFDF879BB03uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFDF8B851E9uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD7FFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFD7FFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000000uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFCFFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFCFFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFCuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFBuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFAuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFEDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB03uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851E9uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFDuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000001uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000000uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000002uLL, 0x7FFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000003uLL, 0x55555554AAAAAAAAuLL, 0x0000000000000000uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000010uLL, 0x0FFFFFFFDFFFFFFFuLL, 0x000000000000000EuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x00000000078644FAuLL, 0x0000002205B17AB9uLL, 0x00000000003F0354uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x000000000747AE14uLL, 0x000000232A32A535uLL, 0x00000000030E11DAuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0000000080000000uLL, 0x00000001FFFFFFFBuLL, 0x000000007FFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x00000000FFFFFFFDuLL, 0x0000000100000001uLL, 0x0000000000000001uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x00000000FFFFFFFEuLL, 0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFCuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x00000000FFFFFFFCuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0000000100000000uLL, 0x00000000FFFFFFFDuLL, 0x00000000FFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0000000100000001uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000001uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0000000100000002uLL, 0x00000000FFFFFFFCuLL, 0x0000000000000006uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0000000100000003uLL, 0x00000000FFFFFFFBuLL, 0x000000000000000DuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0000000100000010uLL, 0x00000000FFFFFFEEuLL, 0x000000000000011EuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x00000001078644FAuLL, 0x00000000F8B0BB5AuLL, 0x00000000AA89221AuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x000000010747AE14uLL, 0x00000000F8EBDA58uLL, 0x0000000048C3211EuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAA9uLL, 0x000000012AAAAAA7uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0000000180000000uLL, 0x00000000AAAAAAA9uLL, 0x000000007FFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x00000001FFFFFFFDuLL, 0x000000007FFFFFFFuLL, 0x000000017FFFFFFBuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x00000001FFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x00000000FFFFFFFCuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x000000007FFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0000000200000000uLL, 0x000000007FFFFFFEuLL, 0x00000001FFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0000000200000001uLL, 0x000000007FFFFFFEuLL, 0x0000000180000000uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0000000200000002uLL, 0x000000007FFFFFFEuLL, 0x0000000100000002uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0000000200000003uLL, 0x000000007FFFFFFEuLL, 0x0000000080000004uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0000000200000010uLL, 0x000000007FFFFFFBuLL, 0x000000000000004EuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x00000002078644FAuLL, 0x000000007E256849uLL, 0x000000004A8EC4B4uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x000000020747AE14uLL, 0x000000007E349CA6uLL, 0x000000006560EF06uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x000000027FFFFFFFuLL, 0x0000000066666665uLL, 0x00000001E6666663uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0000000280000000uLL, 0x0000000066666665uLL, 0x000000017FFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x00000002FFFFFFFDuLL, 0x0000000055555554uLL, 0x00000002FFFFFFFAuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x00000002FFFFFFFEuLL, 0x0000000055555554uLL, 0x00000002AAAAAAA6uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x00000002FFFFFFFFuLL, 0x0000000055555554uLL, 0x0000000255555552uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0000000300000000uLL, 0x0000000055555554uLL, 0x00000001FFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0000000300000001uLL, 0x0000000055555554uLL, 0x00000001AAAAAAAAuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0000000300000002uLL, 0x0000000055555554uLL, 0x0000000155555556uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x0000000100000002uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0000000300000010uLL, 0x0000000055555552uLL, 0x00000002AAAAAADEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x00000003078644FAuLL, 0x0000000054816147uLL, 0x000000023FA624A8uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x000000030747AE14uLL, 0x00000000548833C6uLL, 0x000000000C416086uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x000000037FFFFFFFuLL, 0x0000000049249248uLL, 0x0000000249249246uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0000000380000000uLL, 0x0000000049249248uLL, 0x00000001FFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x00000003FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000002BFFFFFFBuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x00000003FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x000000027FFFFFFCuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x00000003FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x000000023FFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000DFFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000DEFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000DE0000000uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000DD0000001uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000D0000000EuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x00000001FFFDE090uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x0000000447AA977EuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x000000020F83E0F6uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x00000001FFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0EuLL, 0x000000102D2D2D28uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0EuLL, 0x000000101E1E1E1AuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0EuLL, 0x000000100F0F0F0CuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFFDCuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFFBAuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFF98uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFDDEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6C9002AD6CAuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6C9087AE156uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6B900000020uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6B8FFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6A800000064uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6A800000042uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6A800000020uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x01333341FFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x01333341FFFFFFDBuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x01333341FFFFFFB8uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x01333341FFFFFF95uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x01333341FFFFFDCEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x01333340F8A491D0uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x0133334101333342uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x0133333080000021uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x013333307FFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x0133331F00000067uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133331F00000044uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133331F00000021uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFCuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFBuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFEEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFEF879BB04uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFEF8B851EAuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE7FFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE7FFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000001uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000000uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFFCuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFFBuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFEEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFDF879BB04uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFDF8B851EAuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD7FFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFD7FFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000001uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000000uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFCFFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFCuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFBuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFEEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB04uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EAuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFEuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000001uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000000uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000002uLL, 0x7FFFFFFEFFFFFFFFuLL, 0x0000000000000001uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000003uLL, 0x55555554AAAAAAAAuLL, 0x0000000000000001uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000010uLL, 0x0FFFFFFFDFFFFFFFuLL, 0x000000000000000FuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x00000000078644FAuLL, 0x0000002205B17AB9uLL, 0x00000000003F0355uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x000000000747AE14uLL, 0x000000232A32A535uLL, 0x00000000030E11DBuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0000000080000000uLL, 0x00000001FFFFFFFBuLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x00000000FFFFFFFDuLL, 0x0000000100000001uLL, 0x0000000000000002uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0000000100000000uLL, 0x00000000FFFFFFFDuLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0000000100000001uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000002uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0000000100000002uLL, 0x00000000FFFFFFFCuLL, 0x0000000000000007uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0000000100000003uLL, 0x00000000FFFFFFFBuLL, 0x000000000000000EuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0000000100000010uLL, 0x00000000FFFFFFEEuLL, 0x000000000000011FuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x00000001078644FAuLL, 0x00000000F8B0BB5AuLL, 0x00000000AA89221BuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x000000010747AE14uLL, 0x00000000F8EBDA58uLL, 0x0000000048C3211FuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAA9uLL, 0x000000012AAAAAA8uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0000000180000000uLL, 0x00000000AAAAAAA9uLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x00000001FFFFFFFDuLL, 0x000000007FFFFFFFuLL, 0x000000017FFFFFFCuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x00000001FFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x000000007FFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0000000200000000uLL, 0x000000007FFFFFFEuLL, 0x00000001FFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0000000200000001uLL, 0x000000007FFFFFFEuLL, 0x0000000180000001uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0000000200000002uLL, 0x000000007FFFFFFEuLL, 0x0000000100000003uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0000000200000003uLL, 0x000000007FFFFFFEuLL, 0x0000000080000005uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0000000200000010uLL, 0x000000007FFFFFFBuLL, 0x000000000000004FuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x00000002078644FAuLL, 0x000000007E256849uLL, 0x000000004A8EC4B5uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x000000020747AE14uLL, 0x000000007E349CA6uLL, 0x000000006560EF07uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x000000027FFFFFFFuLL, 0x0000000066666665uLL, 0x00000001E6666664uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0000000280000000uLL, 0x0000000066666665uLL, 0x000000017FFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x00000002FFFFFFFDuLL, 0x0000000055555554uLL, 0x00000002FFFFFFFBuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x00000002FFFFFFFEuLL, 0x0000000055555554uLL, 0x00000002AAAAAAA7uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x00000002FFFFFFFFuLL, 0x0000000055555554uLL, 0x0000000255555553uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0000000300000000uLL, 0x0000000055555554uLL, 0x00000001FFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0000000300000001uLL, 0x0000000055555554uLL, 0x00000001AAAAAAABuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0000000300000002uLL, 0x0000000055555554uLL, 0x0000000155555557uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x0000000100000003uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0000000300000010uLL, 0x0000000055555552uLL, 0x00000002AAAAAADFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x00000003078644FAuLL, 0x0000000054816147uLL, 0x000000023FA624A9uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x000000030747AE14uLL, 0x00000000548833C6uLL, 0x000000000C416087uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x000000037FFFFFFFuLL, 0x0000000049249248uLL, 0x0000000249249247uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0000000380000000uLL, 0x0000000049249248uLL, 0x00000001FFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x00000003FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000002BFFFFFFCuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x00000003FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x000000027FFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x00000003FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x000000023FFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000DFFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000DF0000000uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000DE0000001uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000DD0000002uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000D0000000FuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x00000001FFFDE091uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x0000000447AA977FuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x000000020F83E0F7uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x00000001FFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0EuLL, 0x000000102D2D2D29uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0EuLL, 0x000000101E1E1E1BuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0EuLL, 0x000000100F0F0F0DuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFFDDuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFFBBuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFF99uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFDDFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6C9002AD6CBuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6C9087AE157uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6B900000021uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6B8FFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6A800000065uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6A800000043uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6A800000021uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x01333341FFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x01333341FFFFFFDCuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x01333341FFFFFFB9uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x01333341FFFFFF96uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x01333341FFFFFDCFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x01333340F8A491D1uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x0133334101333343uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x0133333080000022uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x013333307FFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x0133331F00000068uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133331F00000045uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133331F00000022uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFCuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFEFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFEF879BB05uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFEF8B851EBuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE80000000uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE7FFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000002uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000001uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000000uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFFCuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFEFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFDF879BB05uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFDF8B851EBuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD80000000uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFD7FFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000002uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000001uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000000uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFCuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFEFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB05uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EBuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000000uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFDFFFFFFFFuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFE00000000uLL, 0x0000000000000001uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000000uLL}, +{0xFFFFFFFE00000000uLL, 0x0000000000000002uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000000uLL}, +{0xFFFFFFFE00000000uLL, 0x0000000000000003uLL, 0x55555554AAAAAAAAuLL, 0x0000000000000002uLL}, +{0xFFFFFFFE00000000uLL, 0x0000000000000010uLL, 0x0FFFFFFFE0000000uLL, 0x0000000000000000uLL}, +{0xFFFFFFFE00000000uLL, 0x00000000078644FAuLL, 0x0000002205B17AB9uLL, 0x00000000003F0356uLL}, +{0xFFFFFFFE00000000uLL, 0x000000000747AE14uLL, 0x000000232A32A535uLL, 0x00000000030E11DCuLL}, +{0xFFFFFFFE00000000uLL, 0x000000007FFFFFFFuLL, 0x0000000200000000uLL, 0x0000000000000000uLL}, +{0xFFFFFFFE00000000uLL, 0x0000000080000000uLL, 0x00000001FFFFFFFCuLL, 0x0000000000000000uLL}, +{0xFFFFFFFE00000000uLL, 0x00000000FFFFFFFDuLL, 0x0000000100000001uLL, 0x0000000000000003uLL}, +{0xFFFFFFFE00000000uLL, 0x00000000FFFFFFFEuLL, 0x0000000100000000uLL, 0x0000000000000000uLL}, +{0xFFFFFFFE00000000uLL, 0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x00000000FFFFFFFEuLL}, +{0xFFFFFFFE00000000uLL, 0x0000000100000000uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000000uLL}, +{0xFFFFFFFE00000000uLL, 0x0000000100000001uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000003uLL}, +{0xFFFFFFFE00000000uLL, 0x0000000100000002uLL, 0x00000000FFFFFFFCuLL, 0x0000000000000008uLL}, +{0xFFFFFFFE00000000uLL, 0x0000000100000003uLL, 0x00000000FFFFFFFBuLL, 0x000000000000000FuLL}, +{0xFFFFFFFE00000000uLL, 0x0000000100000010uLL, 0x00000000FFFFFFEEuLL, 0x0000000000000120uLL}, +{0xFFFFFFFE00000000uLL, 0x00000001078644FAuLL, 0x00000000F8B0BB5AuLL, 0x00000000AA89221CuLL}, +{0xFFFFFFFE00000000uLL, 0x000000010747AE14uLL, 0x00000000F8EBDA58uLL, 0x0000000048C32120uLL}, +{0xFFFFFFFE00000000uLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAA9uLL, 0x000000012AAAAAA9uLL}, +{0xFFFFFFFE00000000uLL, 0x0000000180000000uLL, 0x00000000AAAAAAA9uLL, 0x0000000080000000uLL}, +{0xFFFFFFFE00000000uLL, 0x00000001FFFFFFFDuLL, 0x000000007FFFFFFFuLL, 0x000000017FFFFFFDuLL}, +{0xFFFFFFFE00000000uLL, 0x00000001FFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x00000000FFFFFFFEuLL}, +{0xFFFFFFFE00000000uLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFE00000000uLL, 0x0000000200000000uLL, 0x000000007FFFFFFFuLL, 0x0000000000000000uLL}, +{0xFFFFFFFE00000000uLL, 0x0000000200000001uLL, 0x000000007FFFFFFEuLL, 0x0000000180000002uLL}, +{0xFFFFFFFE00000000uLL, 0x0000000200000002uLL, 0x000000007FFFFFFEuLL, 0x0000000100000004uLL}, +{0xFFFFFFFE00000000uLL, 0x0000000200000003uLL, 0x000000007FFFFFFEuLL, 0x0000000080000006uLL}, +{0xFFFFFFFE00000000uLL, 0x0000000200000010uLL, 0x000000007FFFFFFBuLL, 0x0000000000000050uLL}, +{0xFFFFFFFE00000000uLL, 0x00000002078644FAuLL, 0x000000007E256849uLL, 0x000000004A8EC4B6uLL}, +{0xFFFFFFFE00000000uLL, 0x000000020747AE14uLL, 0x000000007E349CA6uLL, 0x000000006560EF08uLL}, +{0xFFFFFFFE00000000uLL, 0x000000027FFFFFFFuLL, 0x0000000066666665uLL, 0x00000001E6666665uLL}, +{0xFFFFFFFE00000000uLL, 0x0000000280000000uLL, 0x0000000066666665uLL, 0x0000000180000000uLL}, +{0xFFFFFFFE00000000uLL, 0x00000002FFFFFFFDuLL, 0x0000000055555554uLL, 0x00000002FFFFFFFCuLL}, +{0xFFFFFFFE00000000uLL, 0x00000002FFFFFFFEuLL, 0x0000000055555554uLL, 0x00000002AAAAAAA8uLL}, +{0xFFFFFFFE00000000uLL, 0x00000002FFFFFFFFuLL, 0x0000000055555554uLL, 0x0000000255555554uLL}, +{0xFFFFFFFE00000000uLL, 0x0000000300000000uLL, 0x0000000055555554uLL, 0x0000000200000000uLL}, +{0xFFFFFFFE00000000uLL, 0x0000000300000001uLL, 0x0000000055555554uLL, 0x00000001AAAAAAACuLL}, +{0xFFFFFFFE00000000uLL, 0x0000000300000002uLL, 0x0000000055555554uLL, 0x0000000155555558uLL}, +{0xFFFFFFFE00000000uLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x0000000100000004uLL}, +{0xFFFFFFFE00000000uLL, 0x0000000300000010uLL, 0x0000000055555552uLL, 0x00000002AAAAAAE0uLL}, +{0xFFFFFFFE00000000uLL, 0x00000003078644FAuLL, 0x0000000054816147uLL, 0x000000023FA624AAuLL}, +{0xFFFFFFFE00000000uLL, 0x000000030747AE14uLL, 0x00000000548833C6uLL, 0x000000000C416088uLL}, +{0xFFFFFFFE00000000uLL, 0x000000037FFFFFFFuLL, 0x0000000049249248uLL, 0x0000000249249248uLL}, +{0xFFFFFFFE00000000uLL, 0x0000000380000000uLL, 0x0000000049249248uLL, 0x0000000200000000uLL}, +{0xFFFFFFFE00000000uLL, 0x00000003FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000002BFFFFFFDuLL}, +{0xFFFFFFFE00000000uLL, 0x00000003FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x000000027FFFFFFEuLL}, +{0xFFFFFFFE00000000uLL, 0x00000003FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x000000023FFFFFFFuLL}, +{0xFFFFFFFE00000000uLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000E00000000uLL}, +{0xFFFFFFFE00000000uLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000DF0000001uLL}, +{0xFFFFFFFE00000000uLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000DE0000002uLL}, +{0xFFFFFFFE00000000uLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000DD0000003uLL}, +{0xFFFFFFFE00000000uLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000D00000010uLL}, +{0xFFFFFFFE00000000uLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x00000001FFFDE092uLL}, +{0xFFFFFFFE00000000uLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x0000000447AA9780uLL}, +{0xFFFFFFFE00000000uLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x000000020F83E0F8uLL}, +{0xFFFFFFFE00000000uLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x0000000200000000uLL}, +{0xFFFFFFFE00000000uLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0EuLL, 0x000000102D2D2D2AuLL}, +{0xFFFFFFFE00000000uLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0EuLL, 0x000000101E1E1E1CuLL}, +{0xFFFFFFFE00000000uLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0EuLL, 0x000000100F0F0F0EuLL}, +{0xFFFFFFFE00000000uLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6CA00000000uLL}, +{0xFFFFFFFE00000000uLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFFDEuLL}, +{0xFFFFFFFE00000000uLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFFBCuLL}, +{0xFFFFFFFE00000000uLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFF9AuLL}, +{0xFFFFFFFE00000000uLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFDE0uLL}, +{0xFFFFFFFE00000000uLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6C9002AD6CCuLL}, +{0xFFFFFFFE00000000uLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6C9087AE158uLL}, +{0xFFFFFFFE00000000uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6B900000022uLL}, +{0xFFFFFFFE00000000uLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6B900000000uLL}, +{0xFFFFFFFE00000000uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6A800000066uLL}, +{0xFFFFFFFE00000000uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6A800000044uLL}, +{0xFFFFFFFE00000000uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6A800000022uLL}, +{0xFFFFFFFE00000000uLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x0133334200000000uLL}, +{0xFFFFFFFE00000000uLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x01333341FFFFFFDDuLL}, +{0xFFFFFFFE00000000uLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x01333341FFFFFFBAuLL}, +{0xFFFFFFFE00000000uLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x01333341FFFFFF97uLL}, +{0xFFFFFFFE00000000uLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x01333341FFFFFDD0uLL}, +{0xFFFFFFFE00000000uLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x01333340F8A491D2uLL}, +{0xFFFFFFFE00000000uLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x0133334101333344uLL}, +{0xFFFFFFFE00000000uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x0133333080000023uLL}, +{0xFFFFFFFE00000000uLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x0133333080000000uLL}, +{0xFFFFFFFE00000000uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x0133331F00000069uLL}, +{0xFFFFFFFE00000000uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133331F00000046uLL}, +{0xFFFFFFFE00000000uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133331F00000023uLL}, +{0xFFFFFFFE00000000uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000002uLL, 0x0000000000000000uLL}, +{0xFFFFFFFE00000000uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFFuLL}, +{0xFFFFFFFE00000000uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFEuLL}, +{0xFFFFFFFE00000000uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFDuLL}, +{0xFFFFFFFE00000000uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFF0uLL}, +{0xFFFFFFFE00000000uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFEF879BB06uLL}, +{0xFFFFFFFE00000000uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFEF8B851ECuLL}, +{0xFFFFFFFE00000000uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE80000001uLL}, +{0xFFFFFFFE00000000uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE80000000uLL}, +{0xFFFFFFFE00000000uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000003uLL}, +{0xFFFFFFFE00000000uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000002uLL}, +{0xFFFFFFFE00000000uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000001uLL}, +{0xFFFFFFFE00000000uLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE00000000uLL}, +{0xFFFFFFFE00000000uLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFE00000000uLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFFEuLL}, +{0xFFFFFFFE00000000uLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFFDuLL}, +{0xFFFFFFFE00000000uLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFF0uLL}, +{0xFFFFFFFE00000000uLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFDF879BB06uLL}, +{0xFFFFFFFE00000000uLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFDF8B851ECuLL}, +{0xFFFFFFFE00000000uLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD80000001uLL}, +{0xFFFFFFFE00000000uLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFD80000000uLL}, +{0xFFFFFFFE00000000uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000003uLL}, +{0xFFFFFFFE00000000uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000002uLL}, +{0xFFFFFFFE00000000uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000001uLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFF0uLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB06uLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851ECuLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000001uLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000001uLL, 0x0000000080000000uLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000003uLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000000uLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000000uLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000000uLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000000uLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000000uLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000000uLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000000uLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000000uLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000000uLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000000uLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000000uLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000000uLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000000uLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000000uLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000000uLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000000uLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000000uLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000000uLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000000uLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000000uLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000000uLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000000uLL}, +{0xFFFFFFFE00000000uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000000uLL}, +{0xFFFFFFFE00000001uLL, 0x0000000000000001uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFE00000001uLL, 0x0000000000000002uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000001uLL}, +{0xFFFFFFFE00000001uLL, 0x0000000000000003uLL, 0x55555554AAAAAAABuLL, 0x0000000000000000uLL}, +{0xFFFFFFFE00000001uLL, 0x0000000000000010uLL, 0x0FFFFFFFE0000000uLL, 0x0000000000000001uLL}, +{0xFFFFFFFE00000001uLL, 0x00000000078644FAuLL, 0x0000002205B17AB9uLL, 0x00000000003F0357uLL}, +{0xFFFFFFFE00000001uLL, 0x000000000747AE14uLL, 0x000000232A32A535uLL, 0x00000000030E11DDuLL}, +{0xFFFFFFFE00000001uLL, 0x000000007FFFFFFFuLL, 0x0000000200000000uLL, 0x0000000000000001uLL}, +{0xFFFFFFFE00000001uLL, 0x0000000080000000uLL, 0x00000001FFFFFFFCuLL, 0x0000000000000001uLL}, +{0xFFFFFFFE00000001uLL, 0x00000000FFFFFFFDuLL, 0x0000000100000001uLL, 0x0000000000000004uLL}, +{0xFFFFFFFE00000001uLL, 0x00000000FFFFFFFEuLL, 0x0000000100000000uLL, 0x0000000000000001uLL}, +{0xFFFFFFFE00000001uLL, 0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x0000000000000000uLL}, +{0xFFFFFFFE00000001uLL, 0x0000000100000000uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000001uLL}, +{0xFFFFFFFE00000001uLL, 0x0000000100000001uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000004uLL}, +{0xFFFFFFFE00000001uLL, 0x0000000100000002uLL, 0x00000000FFFFFFFCuLL, 0x0000000000000009uLL}, +{0xFFFFFFFE00000001uLL, 0x0000000100000003uLL, 0x00000000FFFFFFFBuLL, 0x0000000000000010uLL}, +{0xFFFFFFFE00000001uLL, 0x0000000100000010uLL, 0x00000000FFFFFFEEuLL, 0x0000000000000121uLL}, +{0xFFFFFFFE00000001uLL, 0x00000001078644FAuLL, 0x00000000F8B0BB5AuLL, 0x00000000AA89221DuLL}, +{0xFFFFFFFE00000001uLL, 0x000000010747AE14uLL, 0x00000000F8EBDA58uLL, 0x0000000048C32121uLL}, +{0xFFFFFFFE00000001uLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAA9uLL, 0x000000012AAAAAAAuLL}, +{0xFFFFFFFE00000001uLL, 0x0000000180000000uLL, 0x00000000AAAAAAA9uLL, 0x0000000080000001uLL}, +{0xFFFFFFFE00000001uLL, 0x00000001FFFFFFFDuLL, 0x000000007FFFFFFFuLL, 0x000000017FFFFFFEuLL}, +{0xFFFFFFFE00000001uLL, 0x00000001FFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFE00000001uLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x0000000080000000uLL}, +{0xFFFFFFFE00000001uLL, 0x0000000200000000uLL, 0x000000007FFFFFFFuLL, 0x0000000000000001uLL}, +{0xFFFFFFFE00000001uLL, 0x0000000200000001uLL, 0x000000007FFFFFFEuLL, 0x0000000180000003uLL}, +{0xFFFFFFFE00000001uLL, 0x0000000200000002uLL, 0x000000007FFFFFFEuLL, 0x0000000100000005uLL}, +{0xFFFFFFFE00000001uLL, 0x0000000200000003uLL, 0x000000007FFFFFFEuLL, 0x0000000080000007uLL}, +{0xFFFFFFFE00000001uLL, 0x0000000200000010uLL, 0x000000007FFFFFFBuLL, 0x0000000000000051uLL}, +{0xFFFFFFFE00000001uLL, 0x00000002078644FAuLL, 0x000000007E256849uLL, 0x000000004A8EC4B7uLL}, +{0xFFFFFFFE00000001uLL, 0x000000020747AE14uLL, 0x000000007E349CA6uLL, 0x000000006560EF09uLL}, +{0xFFFFFFFE00000001uLL, 0x000000027FFFFFFFuLL, 0x0000000066666665uLL, 0x00000001E6666666uLL}, +{0xFFFFFFFE00000001uLL, 0x0000000280000000uLL, 0x0000000066666665uLL, 0x0000000180000001uLL}, +{0xFFFFFFFE00000001uLL, 0x00000002FFFFFFFDuLL, 0x0000000055555555uLL, 0x0000000000000000uLL}, +{0xFFFFFFFE00000001uLL, 0x00000002FFFFFFFEuLL, 0x0000000055555554uLL, 0x00000002AAAAAAA9uLL}, +{0xFFFFFFFE00000001uLL, 0x00000002FFFFFFFFuLL, 0x0000000055555554uLL, 0x0000000255555555uLL}, +{0xFFFFFFFE00000001uLL, 0x0000000300000000uLL, 0x0000000055555554uLL, 0x0000000200000001uLL}, +{0xFFFFFFFE00000001uLL, 0x0000000300000001uLL, 0x0000000055555554uLL, 0x00000001AAAAAAADuLL}, +{0xFFFFFFFE00000001uLL, 0x0000000300000002uLL, 0x0000000055555554uLL, 0x0000000155555559uLL}, +{0xFFFFFFFE00000001uLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x0000000100000005uLL}, +{0xFFFFFFFE00000001uLL, 0x0000000300000010uLL, 0x0000000055555552uLL, 0x00000002AAAAAAE1uLL}, +{0xFFFFFFFE00000001uLL, 0x00000003078644FAuLL, 0x0000000054816147uLL, 0x000000023FA624ABuLL}, +{0xFFFFFFFE00000001uLL, 0x000000030747AE14uLL, 0x00000000548833C6uLL, 0x000000000C416089uLL}, +{0xFFFFFFFE00000001uLL, 0x000000037FFFFFFFuLL, 0x0000000049249248uLL, 0x0000000249249249uLL}, +{0xFFFFFFFE00000001uLL, 0x0000000380000000uLL, 0x0000000049249248uLL, 0x0000000200000001uLL}, +{0xFFFFFFFE00000001uLL, 0x00000003FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000002BFFFFFFEuLL}, +{0xFFFFFFFE00000001uLL, 0x00000003FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x000000027FFFFFFFuLL}, +{0xFFFFFFFE00000001uLL, 0x00000003FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x0000000240000000uLL}, +{0xFFFFFFFE00000001uLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000E00000001uLL}, +{0xFFFFFFFE00000001uLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000DF0000002uLL}, +{0xFFFFFFFE00000001uLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000DE0000003uLL}, +{0xFFFFFFFE00000001uLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000DD0000004uLL}, +{0xFFFFFFFE00000001uLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000D00000011uLL}, +{0xFFFFFFFE00000001uLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x00000001FFFDE093uLL}, +{0xFFFFFFFE00000001uLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x0000000447AA9781uLL}, +{0xFFFFFFFE00000001uLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x000000020F83E0F9uLL}, +{0xFFFFFFFE00000001uLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x0000000200000001uLL}, +{0xFFFFFFFE00000001uLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0EuLL, 0x000000102D2D2D2BuLL}, +{0xFFFFFFFE00000001uLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0EuLL, 0x000000101E1E1E1DuLL}, +{0xFFFFFFFE00000001uLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0EuLL, 0x000000100F0F0F0FuLL}, +{0xFFFFFFFE00000001uLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6CA00000001uLL}, +{0xFFFFFFFE00000001uLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFFDFuLL}, +{0xFFFFFFFE00000001uLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFFBDuLL}, +{0xFFFFFFFE00000001uLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFF9BuLL}, +{0xFFFFFFFE00000001uLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFDE1uLL}, +{0xFFFFFFFE00000001uLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6C9002AD6CDuLL}, +{0xFFFFFFFE00000001uLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6C9087AE159uLL}, +{0xFFFFFFFE00000001uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6B900000023uLL}, +{0xFFFFFFFE00000001uLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6B900000001uLL}, +{0xFFFFFFFE00000001uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6A800000067uLL}, +{0xFFFFFFFE00000001uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6A800000045uLL}, +{0xFFFFFFFE00000001uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6A800000023uLL}, +{0xFFFFFFFE00000001uLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x0133334200000001uLL}, +{0xFFFFFFFE00000001uLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x01333341FFFFFFDEuLL}, +{0xFFFFFFFE00000001uLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x01333341FFFFFFBBuLL}, +{0xFFFFFFFE00000001uLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x01333341FFFFFF98uLL}, +{0xFFFFFFFE00000001uLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x01333341FFFFFDD1uLL}, +{0xFFFFFFFE00000001uLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x01333340F8A491D3uLL}, +{0xFFFFFFFE00000001uLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x0133334101333345uLL}, +{0xFFFFFFFE00000001uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x0133333080000024uLL}, +{0xFFFFFFFE00000001uLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x0133333080000001uLL}, +{0xFFFFFFFE00000001uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x0133331F0000006AuLL}, +{0xFFFFFFFE00000001uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133331F00000047uLL}, +{0xFFFFFFFE00000001uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133331F00000024uLL}, +{0xFFFFFFFE00000001uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000002uLL, 0x0000000000000001uLL}, +{0xFFFFFFFE00000001uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL, 0x7FFFFFFF00000000uLL}, +{0xFFFFFFFE00000001uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFFuLL}, +{0xFFFFFFFE00000001uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFEuLL}, +{0xFFFFFFFE00000001uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFF1uLL}, +{0xFFFFFFFE00000001uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFEF879BB07uLL}, +{0xFFFFFFFE00000001uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFEF8B851EDuLL}, +{0xFFFFFFFE00000001uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE80000002uLL}, +{0xFFFFFFFE00000001uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE80000001uLL}, +{0xFFFFFFFE00000001uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000004uLL}, +{0xFFFFFFFE00000001uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000003uLL}, +{0xFFFFFFFE00000001uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000002uLL}, +{0xFFFFFFFE00000001uLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE00000001uLL}, +{0xFFFFFFFE00000001uLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFE00000000uLL}, +{0xFFFFFFFE00000001uLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFE00000001uLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFFEuLL}, +{0xFFFFFFFE00000001uLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFF1uLL}, +{0xFFFFFFFE00000001uLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFDF879BB07uLL}, +{0xFFFFFFFE00000001uLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFDF8B851EDuLL}, +{0xFFFFFFFE00000001uLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD80000002uLL}, +{0xFFFFFFFE00000001uLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFD80000001uLL}, +{0xFFFFFFFE00000001uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000004uLL}, +{0xFFFFFFFE00000001uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000003uLL}, +{0xFFFFFFFE00000001uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000002uLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x0000000100000001uLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFF1uLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB07uLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EDuLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000002uLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000001uLL, 0x0000000080000001uLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000004uLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000003uLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000001uLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000001uLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000001uLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000001uLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000001uLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000001uLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000001uLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000001uLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000001uLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000001uLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000001uLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000001uLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000001uLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000001uLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000001uLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000001uLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000001uLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000001uLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000001uLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000001uLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000001uLL}, +{0xFFFFFFFE00000001uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000001uLL}, +{0xFFFFFFFE00000002uLL, 0x0000000000000001uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000000uLL}, +{0xFFFFFFFE00000002uLL, 0x0000000000000002uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFE00000002uLL, 0x0000000000000003uLL, 0x55555554AAAAAAABuLL, 0x0000000000000001uLL}, +{0xFFFFFFFE00000002uLL, 0x0000000000000010uLL, 0x0FFFFFFFE0000000uLL, 0x0000000000000002uLL}, +{0xFFFFFFFE00000002uLL, 0x00000000078644FAuLL, 0x0000002205B17AB9uLL, 0x00000000003F0358uLL}, +{0xFFFFFFFE00000002uLL, 0x000000000747AE14uLL, 0x000000232A32A535uLL, 0x00000000030E11DEuLL}, +{0xFFFFFFFE00000002uLL, 0x000000007FFFFFFFuLL, 0x0000000200000000uLL, 0x0000000000000002uLL}, +{0xFFFFFFFE00000002uLL, 0x0000000080000000uLL, 0x00000001FFFFFFFCuLL, 0x0000000000000002uLL}, +{0xFFFFFFFE00000002uLL, 0x00000000FFFFFFFDuLL, 0x0000000100000001uLL, 0x0000000000000005uLL}, +{0xFFFFFFFE00000002uLL, 0x00000000FFFFFFFEuLL, 0x0000000100000000uLL, 0x0000000000000002uLL}, +{0xFFFFFFFE00000002uLL, 0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x0000000000000001uLL}, +{0xFFFFFFFE00000002uLL, 0x0000000100000000uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000002uLL}, +{0xFFFFFFFE00000002uLL, 0x0000000100000001uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000005uLL}, +{0xFFFFFFFE00000002uLL, 0x0000000100000002uLL, 0x00000000FFFFFFFCuLL, 0x000000000000000AuLL}, +{0xFFFFFFFE00000002uLL, 0x0000000100000003uLL, 0x00000000FFFFFFFBuLL, 0x0000000000000011uLL}, +{0xFFFFFFFE00000002uLL, 0x0000000100000010uLL, 0x00000000FFFFFFEEuLL, 0x0000000000000122uLL}, +{0xFFFFFFFE00000002uLL, 0x00000001078644FAuLL, 0x00000000F8B0BB5AuLL, 0x00000000AA89221EuLL}, +{0xFFFFFFFE00000002uLL, 0x000000010747AE14uLL, 0x00000000F8EBDA58uLL, 0x0000000048C32122uLL}, +{0xFFFFFFFE00000002uLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAA9uLL, 0x000000012AAAAAABuLL}, +{0xFFFFFFFE00000002uLL, 0x0000000180000000uLL, 0x00000000AAAAAAA9uLL, 0x0000000080000002uLL}, +{0xFFFFFFFE00000002uLL, 0x00000001FFFFFFFDuLL, 0x000000007FFFFFFFuLL, 0x000000017FFFFFFFuLL}, +{0xFFFFFFFE00000002uLL, 0x00000001FFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x0000000100000000uLL}, +{0xFFFFFFFE00000002uLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x0000000080000001uLL}, +{0xFFFFFFFE00000002uLL, 0x0000000200000000uLL, 0x000000007FFFFFFFuLL, 0x0000000000000002uLL}, +{0xFFFFFFFE00000002uLL, 0x0000000200000001uLL, 0x000000007FFFFFFEuLL, 0x0000000180000004uLL}, +{0xFFFFFFFE00000002uLL, 0x0000000200000002uLL, 0x000000007FFFFFFEuLL, 0x0000000100000006uLL}, +{0xFFFFFFFE00000002uLL, 0x0000000200000003uLL, 0x000000007FFFFFFEuLL, 0x0000000080000008uLL}, +{0xFFFFFFFE00000002uLL, 0x0000000200000010uLL, 0x000000007FFFFFFBuLL, 0x0000000000000052uLL}, +{0xFFFFFFFE00000002uLL, 0x00000002078644FAuLL, 0x000000007E256849uLL, 0x000000004A8EC4B8uLL}, +{0xFFFFFFFE00000002uLL, 0x000000020747AE14uLL, 0x000000007E349CA6uLL, 0x000000006560EF0AuLL}, +{0xFFFFFFFE00000002uLL, 0x000000027FFFFFFFuLL, 0x0000000066666665uLL, 0x00000001E6666667uLL}, +{0xFFFFFFFE00000002uLL, 0x0000000280000000uLL, 0x0000000066666665uLL, 0x0000000180000002uLL}, +{0xFFFFFFFE00000002uLL, 0x00000002FFFFFFFDuLL, 0x0000000055555555uLL, 0x0000000000000001uLL}, +{0xFFFFFFFE00000002uLL, 0x00000002FFFFFFFEuLL, 0x0000000055555554uLL, 0x00000002AAAAAAAAuLL}, +{0xFFFFFFFE00000002uLL, 0x00000002FFFFFFFFuLL, 0x0000000055555554uLL, 0x0000000255555556uLL}, +{0xFFFFFFFE00000002uLL, 0x0000000300000000uLL, 0x0000000055555554uLL, 0x0000000200000002uLL}, +{0xFFFFFFFE00000002uLL, 0x0000000300000001uLL, 0x0000000055555554uLL, 0x00000001AAAAAAAEuLL}, +{0xFFFFFFFE00000002uLL, 0x0000000300000002uLL, 0x0000000055555554uLL, 0x000000015555555AuLL}, +{0xFFFFFFFE00000002uLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x0000000100000006uLL}, +{0xFFFFFFFE00000002uLL, 0x0000000300000010uLL, 0x0000000055555552uLL, 0x00000002AAAAAAE2uLL}, +{0xFFFFFFFE00000002uLL, 0x00000003078644FAuLL, 0x0000000054816147uLL, 0x000000023FA624ACuLL}, +{0xFFFFFFFE00000002uLL, 0x000000030747AE14uLL, 0x00000000548833C6uLL, 0x000000000C41608AuLL}, +{0xFFFFFFFE00000002uLL, 0x000000037FFFFFFFuLL, 0x0000000049249248uLL, 0x000000024924924AuLL}, +{0xFFFFFFFE00000002uLL, 0x0000000380000000uLL, 0x0000000049249248uLL, 0x0000000200000002uLL}, +{0xFFFFFFFE00000002uLL, 0x00000003FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000002BFFFFFFFuLL}, +{0xFFFFFFFE00000002uLL, 0x00000003FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x0000000280000000uLL}, +{0xFFFFFFFE00000002uLL, 0x00000003FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x0000000240000001uLL}, +{0xFFFFFFFE00000002uLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000E00000002uLL}, +{0xFFFFFFFE00000002uLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000DF0000003uLL}, +{0xFFFFFFFE00000002uLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000DE0000004uLL}, +{0xFFFFFFFE00000002uLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000DD0000005uLL}, +{0xFFFFFFFE00000002uLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000D00000012uLL}, +{0xFFFFFFFE00000002uLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x00000001FFFDE094uLL}, +{0xFFFFFFFE00000002uLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x0000000447AA9782uLL}, +{0xFFFFFFFE00000002uLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x000000020F83E0FAuLL}, +{0xFFFFFFFE00000002uLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x0000000200000002uLL}, +{0xFFFFFFFE00000002uLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0EuLL, 0x000000102D2D2D2CuLL}, +{0xFFFFFFFE00000002uLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0EuLL, 0x000000101E1E1E1EuLL}, +{0xFFFFFFFE00000002uLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0EuLL, 0x000000100F0F0F10uLL}, +{0xFFFFFFFE00000002uLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6CA00000002uLL}, +{0xFFFFFFFE00000002uLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFFE0uLL}, +{0xFFFFFFFE00000002uLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFFBEuLL}, +{0xFFFFFFFE00000002uLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFF9CuLL}, +{0xFFFFFFFE00000002uLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFDE2uLL}, +{0xFFFFFFFE00000002uLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6C9002AD6CEuLL}, +{0xFFFFFFFE00000002uLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6C9087AE15AuLL}, +{0xFFFFFFFE00000002uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6B900000024uLL}, +{0xFFFFFFFE00000002uLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6B900000002uLL}, +{0xFFFFFFFE00000002uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6A800000068uLL}, +{0xFFFFFFFE00000002uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6A800000046uLL}, +{0xFFFFFFFE00000002uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6A800000024uLL}, +{0xFFFFFFFE00000002uLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x0133334200000002uLL}, +{0xFFFFFFFE00000002uLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x01333341FFFFFFDFuLL}, +{0xFFFFFFFE00000002uLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x01333341FFFFFFBCuLL}, +{0xFFFFFFFE00000002uLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x01333341FFFFFF99uLL}, +{0xFFFFFFFE00000002uLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x01333341FFFFFDD2uLL}, +{0xFFFFFFFE00000002uLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x01333340F8A491D4uLL}, +{0xFFFFFFFE00000002uLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x0133334101333346uLL}, +{0xFFFFFFFE00000002uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x0133333080000025uLL}, +{0xFFFFFFFE00000002uLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x0133333080000002uLL}, +{0xFFFFFFFE00000002uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x0133331F0000006BuLL}, +{0xFFFFFFFE00000002uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133331F00000048uLL}, +{0xFFFFFFFE00000002uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133331F00000025uLL}, +{0xFFFFFFFE00000002uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000002uLL, 0x0000000000000002uLL}, +{0xFFFFFFFE00000002uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000002uLL, 0x0000000000000000uLL}, +{0xFFFFFFFE00000002uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x7FFFFFFF00000000uLL}, +{0xFFFFFFFE00000002uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFFuLL}, +{0xFFFFFFFE00000002uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFF2uLL}, +{0xFFFFFFFE00000002uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFEF879BB08uLL}, +{0xFFFFFFFE00000002uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFEF8B851EEuLL}, +{0xFFFFFFFE00000002uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE80000003uLL}, +{0xFFFFFFFE00000002uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE80000002uLL}, +{0xFFFFFFFE00000002uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000005uLL}, +{0xFFFFFFFE00000002uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000004uLL}, +{0xFFFFFFFE00000002uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000003uLL}, +{0xFFFFFFFE00000002uLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE00000002uLL}, +{0xFFFFFFFE00000002uLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFE00000001uLL}, +{0xFFFFFFFE00000002uLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFE00000000uLL}, +{0xFFFFFFFE00000002uLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFE00000002uLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFF2uLL}, +{0xFFFFFFFE00000002uLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFDF879BB08uLL}, +{0xFFFFFFFE00000002uLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFDF8B851EEuLL}, +{0xFFFFFFFE00000002uLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD80000003uLL}, +{0xFFFFFFFE00000002uLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFD80000002uLL}, +{0xFFFFFFFE00000002uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000005uLL}, +{0xFFFFFFFE00000002uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000004uLL}, +{0xFFFFFFFE00000002uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000003uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x0000000100000002uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x0000000100000001uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFF2uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB08uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EEuLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000003uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000001uLL, 0x0000000080000002uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000005uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000004uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000003uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000002uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000002uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000002uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000002uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000002uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000002uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000002uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000002uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000002uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000002uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000002uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000002uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000002uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000002uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000002uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000002uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000002uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000002uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000002uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000002uLL}, +{0xFFFFFFFE00000002uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000002uLL}, +{0xFFFFFFFE00000003uLL, 0x0000000000000001uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000000uLL}, +{0xFFFFFFFE00000003uLL, 0x0000000000000002uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000001uLL}, +{0xFFFFFFFE00000003uLL, 0x0000000000000003uLL, 0x55555554AAAAAAABuLL, 0x0000000000000002uLL}, +{0xFFFFFFFE00000003uLL, 0x0000000000000010uLL, 0x0FFFFFFFE0000000uLL, 0x0000000000000003uLL}, +{0xFFFFFFFE00000003uLL, 0x00000000078644FAuLL, 0x0000002205B17AB9uLL, 0x00000000003F0359uLL}, +{0xFFFFFFFE00000003uLL, 0x000000000747AE14uLL, 0x000000232A32A535uLL, 0x00000000030E11DFuLL}, +{0xFFFFFFFE00000003uLL, 0x000000007FFFFFFFuLL, 0x0000000200000000uLL, 0x0000000000000003uLL}, +{0xFFFFFFFE00000003uLL, 0x0000000080000000uLL, 0x00000001FFFFFFFCuLL, 0x0000000000000003uLL}, +{0xFFFFFFFE00000003uLL, 0x00000000FFFFFFFDuLL, 0x0000000100000001uLL, 0x0000000000000006uLL}, +{0xFFFFFFFE00000003uLL, 0x00000000FFFFFFFEuLL, 0x0000000100000000uLL, 0x0000000000000003uLL}, +{0xFFFFFFFE00000003uLL, 0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x0000000000000002uLL}, +{0xFFFFFFFE00000003uLL, 0x0000000100000000uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000003uLL}, +{0xFFFFFFFE00000003uLL, 0x0000000100000001uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000006uLL}, +{0xFFFFFFFE00000003uLL, 0x0000000100000002uLL, 0x00000000FFFFFFFCuLL, 0x000000000000000BuLL}, +{0xFFFFFFFE00000003uLL, 0x0000000100000003uLL, 0x00000000FFFFFFFBuLL, 0x0000000000000012uLL}, +{0xFFFFFFFE00000003uLL, 0x0000000100000010uLL, 0x00000000FFFFFFEEuLL, 0x0000000000000123uLL}, +{0xFFFFFFFE00000003uLL, 0x00000001078644FAuLL, 0x00000000F8B0BB5AuLL, 0x00000000AA89221FuLL}, +{0xFFFFFFFE00000003uLL, 0x000000010747AE14uLL, 0x00000000F8EBDA58uLL, 0x0000000048C32123uLL}, +{0xFFFFFFFE00000003uLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAA9uLL, 0x000000012AAAAAACuLL}, +{0xFFFFFFFE00000003uLL, 0x0000000180000000uLL, 0x00000000AAAAAAA9uLL, 0x0000000080000003uLL}, +{0xFFFFFFFE00000003uLL, 0x00000001FFFFFFFDuLL, 0x000000007FFFFFFFuLL, 0x0000000180000000uLL}, +{0xFFFFFFFE00000003uLL, 0x00000001FFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x0000000100000001uLL}, +{0xFFFFFFFE00000003uLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x0000000080000002uLL}, +{0xFFFFFFFE00000003uLL, 0x0000000200000000uLL, 0x000000007FFFFFFFuLL, 0x0000000000000003uLL}, +{0xFFFFFFFE00000003uLL, 0x0000000200000001uLL, 0x000000007FFFFFFEuLL, 0x0000000180000005uLL}, +{0xFFFFFFFE00000003uLL, 0x0000000200000002uLL, 0x000000007FFFFFFEuLL, 0x0000000100000007uLL}, +{0xFFFFFFFE00000003uLL, 0x0000000200000003uLL, 0x000000007FFFFFFEuLL, 0x0000000080000009uLL}, +{0xFFFFFFFE00000003uLL, 0x0000000200000010uLL, 0x000000007FFFFFFBuLL, 0x0000000000000053uLL}, +{0xFFFFFFFE00000003uLL, 0x00000002078644FAuLL, 0x000000007E256849uLL, 0x000000004A8EC4B9uLL}, +{0xFFFFFFFE00000003uLL, 0x000000020747AE14uLL, 0x000000007E349CA6uLL, 0x000000006560EF0BuLL}, +{0xFFFFFFFE00000003uLL, 0x000000027FFFFFFFuLL, 0x0000000066666665uLL, 0x00000001E6666668uLL}, +{0xFFFFFFFE00000003uLL, 0x0000000280000000uLL, 0x0000000066666665uLL, 0x0000000180000003uLL}, +{0xFFFFFFFE00000003uLL, 0x00000002FFFFFFFDuLL, 0x0000000055555555uLL, 0x0000000000000002uLL}, +{0xFFFFFFFE00000003uLL, 0x00000002FFFFFFFEuLL, 0x0000000055555554uLL, 0x00000002AAAAAAABuLL}, +{0xFFFFFFFE00000003uLL, 0x00000002FFFFFFFFuLL, 0x0000000055555554uLL, 0x0000000255555557uLL}, +{0xFFFFFFFE00000003uLL, 0x0000000300000000uLL, 0x0000000055555554uLL, 0x0000000200000003uLL}, +{0xFFFFFFFE00000003uLL, 0x0000000300000001uLL, 0x0000000055555554uLL, 0x00000001AAAAAAAFuLL}, +{0xFFFFFFFE00000003uLL, 0x0000000300000002uLL, 0x0000000055555554uLL, 0x000000015555555BuLL}, +{0xFFFFFFFE00000003uLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x0000000100000007uLL}, +{0xFFFFFFFE00000003uLL, 0x0000000300000010uLL, 0x0000000055555552uLL, 0x00000002AAAAAAE3uLL}, +{0xFFFFFFFE00000003uLL, 0x00000003078644FAuLL, 0x0000000054816147uLL, 0x000000023FA624ADuLL}, +{0xFFFFFFFE00000003uLL, 0x000000030747AE14uLL, 0x00000000548833C6uLL, 0x000000000C41608BuLL}, +{0xFFFFFFFE00000003uLL, 0x000000037FFFFFFFuLL, 0x0000000049249248uLL, 0x000000024924924BuLL}, +{0xFFFFFFFE00000003uLL, 0x0000000380000000uLL, 0x0000000049249248uLL, 0x0000000200000003uLL}, +{0xFFFFFFFE00000003uLL, 0x00000003FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000002C0000000uLL}, +{0xFFFFFFFE00000003uLL, 0x00000003FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x0000000280000001uLL}, +{0xFFFFFFFE00000003uLL, 0x00000003FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x0000000240000002uLL}, +{0xFFFFFFFE00000003uLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000E00000003uLL}, +{0xFFFFFFFE00000003uLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000DF0000004uLL}, +{0xFFFFFFFE00000003uLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000DE0000005uLL}, +{0xFFFFFFFE00000003uLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000DD0000006uLL}, +{0xFFFFFFFE00000003uLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000D00000013uLL}, +{0xFFFFFFFE00000003uLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x00000001FFFDE095uLL}, +{0xFFFFFFFE00000003uLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x0000000447AA9783uLL}, +{0xFFFFFFFE00000003uLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x000000020F83E0FBuLL}, +{0xFFFFFFFE00000003uLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x0000000200000003uLL}, +{0xFFFFFFFE00000003uLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0EuLL, 0x000000102D2D2D2DuLL}, +{0xFFFFFFFE00000003uLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0EuLL, 0x000000101E1E1E1FuLL}, +{0xFFFFFFFE00000003uLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0EuLL, 0x000000100F0F0F11uLL}, +{0xFFFFFFFE00000003uLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6CA00000003uLL}, +{0xFFFFFFFE00000003uLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFFE1uLL}, +{0xFFFFFFFE00000003uLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFFBFuLL}, +{0xFFFFFFFE00000003uLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFF9DuLL}, +{0xFFFFFFFE00000003uLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFDE3uLL}, +{0xFFFFFFFE00000003uLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6C9002AD6CFuLL}, +{0xFFFFFFFE00000003uLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6C9087AE15BuLL}, +{0xFFFFFFFE00000003uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6B900000025uLL}, +{0xFFFFFFFE00000003uLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6B900000003uLL}, +{0xFFFFFFFE00000003uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6A800000069uLL}, +{0xFFFFFFFE00000003uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6A800000047uLL}, +{0xFFFFFFFE00000003uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6A800000025uLL}, +{0xFFFFFFFE00000003uLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x0133334200000003uLL}, +{0xFFFFFFFE00000003uLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x01333341FFFFFFE0uLL}, +{0xFFFFFFFE00000003uLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x01333341FFFFFFBDuLL}, +{0xFFFFFFFE00000003uLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x01333341FFFFFF9AuLL}, +{0xFFFFFFFE00000003uLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x01333341FFFFFDD3uLL}, +{0xFFFFFFFE00000003uLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x01333340F8A491D5uLL}, +{0xFFFFFFFE00000003uLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x0133334101333347uLL}, +{0xFFFFFFFE00000003uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x0133333080000026uLL}, +{0xFFFFFFFE00000003uLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x0133333080000003uLL}, +{0xFFFFFFFE00000003uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x0133331F0000006CuLL}, +{0xFFFFFFFE00000003uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133331F00000049uLL}, +{0xFFFFFFFE00000003uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133331F00000026uLL}, +{0xFFFFFFFE00000003uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000002uLL, 0x0000000000000003uLL}, +{0xFFFFFFFE00000003uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000002uLL, 0x0000000000000001uLL}, +{0xFFFFFFFE00000003uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000001uLL, 0x7FFFFFFF00000001uLL}, +{0xFFFFFFFE00000003uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000001uLL, 0x7FFFFFFF00000000uLL}, +{0xFFFFFFFE00000003uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFF3uLL}, +{0xFFFFFFFE00000003uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFEF879BB09uLL}, +{0xFFFFFFFE00000003uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFEF8B851EFuLL}, +{0xFFFFFFFE00000003uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE80000004uLL}, +{0xFFFFFFFE00000003uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE80000003uLL}, +{0xFFFFFFFE00000003uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000006uLL}, +{0xFFFFFFFE00000003uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000005uLL}, +{0xFFFFFFFE00000003uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000004uLL}, +{0xFFFFFFFE00000003uLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE00000003uLL}, +{0xFFFFFFFE00000003uLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFE00000002uLL}, +{0xFFFFFFFE00000003uLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFE00000001uLL}, +{0xFFFFFFFE00000003uLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFE00000000uLL}, +{0xFFFFFFFE00000003uLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFF3uLL}, +{0xFFFFFFFE00000003uLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFDF879BB09uLL}, +{0xFFFFFFFE00000003uLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFDF8B851EFuLL}, +{0xFFFFFFFE00000003uLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD80000004uLL}, +{0xFFFFFFFE00000003uLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFD80000003uLL}, +{0xFFFFFFFE00000003uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000006uLL}, +{0xFFFFFFFE00000003uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000005uLL}, +{0xFFFFFFFE00000003uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000004uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x0000000100000003uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x0000000100000002uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x0000000100000001uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFF3uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB09uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EFuLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000004uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000001uLL, 0x0000000080000003uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000006uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000005uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000004uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000001uLL, 0x0000000000000003uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000003uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000003uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000003uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000003uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000003uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000003uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000003uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000003uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000003uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000003uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000003uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000003uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000003uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000003uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000003uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000003uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000003uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000003uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000003uLL}, +{0xFFFFFFFE00000003uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000003uLL}, +{0xFFFFFFFE00000010uLL, 0x0000000000000001uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000000uLL}, +{0xFFFFFFFE00000010uLL, 0x0000000000000002uLL, 0x7FFFFFFF00000008uLL, 0x0000000000000000uLL}, +{0xFFFFFFFE00000010uLL, 0x0000000000000003uLL, 0x55555554AAAAAAB0uLL, 0x0000000000000000uLL}, +{0xFFFFFFFE00000010uLL, 0x0000000000000010uLL, 0x0FFFFFFFE0000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFE00000010uLL, 0x00000000078644FAuLL, 0x0000002205B17AB9uLL, 0x00000000003F0366uLL}, +{0xFFFFFFFE00000010uLL, 0x000000000747AE14uLL, 0x000000232A32A535uLL, 0x00000000030E11ECuLL}, +{0xFFFFFFFE00000010uLL, 0x000000007FFFFFFFuLL, 0x0000000200000000uLL, 0x0000000000000010uLL}, +{0xFFFFFFFE00000010uLL, 0x0000000080000000uLL, 0x00000001FFFFFFFCuLL, 0x0000000000000010uLL}, +{0xFFFFFFFE00000010uLL, 0x00000000FFFFFFFDuLL, 0x0000000100000001uLL, 0x0000000000000013uLL}, +{0xFFFFFFFE00000010uLL, 0x00000000FFFFFFFEuLL, 0x0000000100000000uLL, 0x0000000000000010uLL}, +{0xFFFFFFFE00000010uLL, 0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x000000000000000FuLL}, +{0xFFFFFFFE00000010uLL, 0x0000000100000000uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000010uLL}, +{0xFFFFFFFE00000010uLL, 0x0000000100000001uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000013uLL}, +{0xFFFFFFFE00000010uLL, 0x0000000100000002uLL, 0x00000000FFFFFFFCuLL, 0x0000000000000018uLL}, +{0xFFFFFFFE00000010uLL, 0x0000000100000003uLL, 0x00000000FFFFFFFBuLL, 0x000000000000001FuLL}, +{0xFFFFFFFE00000010uLL, 0x0000000100000010uLL, 0x00000000FFFFFFEEuLL, 0x0000000000000130uLL}, +{0xFFFFFFFE00000010uLL, 0x00000001078644FAuLL, 0x00000000F8B0BB5AuLL, 0x00000000AA89222CuLL}, +{0xFFFFFFFE00000010uLL, 0x000000010747AE14uLL, 0x00000000F8EBDA58uLL, 0x0000000048C32130uLL}, +{0xFFFFFFFE00000010uLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAA9uLL, 0x000000012AAAAAB9uLL}, +{0xFFFFFFFE00000010uLL, 0x0000000180000000uLL, 0x00000000AAAAAAA9uLL, 0x0000000080000010uLL}, +{0xFFFFFFFE00000010uLL, 0x00000001FFFFFFFDuLL, 0x000000007FFFFFFFuLL, 0x000000018000000DuLL}, +{0xFFFFFFFE00000010uLL, 0x00000001FFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x000000010000000EuLL}, +{0xFFFFFFFE00000010uLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x000000008000000FuLL}, +{0xFFFFFFFE00000010uLL, 0x0000000200000000uLL, 0x000000007FFFFFFFuLL, 0x0000000000000010uLL}, +{0xFFFFFFFE00000010uLL, 0x0000000200000001uLL, 0x000000007FFFFFFEuLL, 0x0000000180000012uLL}, +{0xFFFFFFFE00000010uLL, 0x0000000200000002uLL, 0x000000007FFFFFFEuLL, 0x0000000100000014uLL}, +{0xFFFFFFFE00000010uLL, 0x0000000200000003uLL, 0x000000007FFFFFFEuLL, 0x0000000080000016uLL}, +{0xFFFFFFFE00000010uLL, 0x0000000200000010uLL, 0x000000007FFFFFFBuLL, 0x0000000000000060uLL}, +{0xFFFFFFFE00000010uLL, 0x00000002078644FAuLL, 0x000000007E256849uLL, 0x000000004A8EC4C6uLL}, +{0xFFFFFFFE00000010uLL, 0x000000020747AE14uLL, 0x000000007E349CA6uLL, 0x000000006560EF18uLL}, +{0xFFFFFFFE00000010uLL, 0x000000027FFFFFFFuLL, 0x0000000066666665uLL, 0x00000001E6666675uLL}, +{0xFFFFFFFE00000010uLL, 0x0000000280000000uLL, 0x0000000066666665uLL, 0x0000000180000010uLL}, +{0xFFFFFFFE00000010uLL, 0x00000002FFFFFFFDuLL, 0x0000000055555555uLL, 0x000000000000000FuLL}, +{0xFFFFFFFE00000010uLL, 0x00000002FFFFFFFEuLL, 0x0000000055555554uLL, 0x00000002AAAAAAB8uLL}, +{0xFFFFFFFE00000010uLL, 0x00000002FFFFFFFFuLL, 0x0000000055555554uLL, 0x0000000255555564uLL}, +{0xFFFFFFFE00000010uLL, 0x0000000300000000uLL, 0x0000000055555554uLL, 0x0000000200000010uLL}, +{0xFFFFFFFE00000010uLL, 0x0000000300000001uLL, 0x0000000055555554uLL, 0x00000001AAAAAABCuLL}, +{0xFFFFFFFE00000010uLL, 0x0000000300000002uLL, 0x0000000055555554uLL, 0x0000000155555568uLL}, +{0xFFFFFFFE00000010uLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x0000000100000014uLL}, +{0xFFFFFFFE00000010uLL, 0x0000000300000010uLL, 0x0000000055555552uLL, 0x00000002AAAAAAF0uLL}, +{0xFFFFFFFE00000010uLL, 0x00000003078644FAuLL, 0x0000000054816147uLL, 0x000000023FA624BAuLL}, +{0xFFFFFFFE00000010uLL, 0x000000030747AE14uLL, 0x00000000548833C6uLL, 0x000000000C416098uLL}, +{0xFFFFFFFE00000010uLL, 0x000000037FFFFFFFuLL, 0x0000000049249248uLL, 0x0000000249249258uLL}, +{0xFFFFFFFE00000010uLL, 0x0000000380000000uLL, 0x0000000049249248uLL, 0x0000000200000010uLL}, +{0xFFFFFFFE00000010uLL, 0x00000003FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000002C000000DuLL}, +{0xFFFFFFFE00000010uLL, 0x00000003FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x000000028000000EuLL}, +{0xFFFFFFFE00000010uLL, 0x00000003FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x000000024000000FuLL}, +{0xFFFFFFFE00000010uLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000E00000010uLL}, +{0xFFFFFFFE00000010uLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000DF0000011uLL}, +{0xFFFFFFFE00000010uLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000DE0000012uLL}, +{0xFFFFFFFE00000010uLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000DD0000013uLL}, +{0xFFFFFFFE00000010uLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000D00000020uLL}, +{0xFFFFFFFE00000010uLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x00000001FFFDE0A2uLL}, +{0xFFFFFFFE00000010uLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x0000000447AA9790uLL}, +{0xFFFFFFFE00000010uLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x000000020F83E108uLL}, +{0xFFFFFFFE00000010uLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x0000000200000010uLL}, +{0xFFFFFFFE00000010uLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0EuLL, 0x000000102D2D2D3AuLL}, +{0xFFFFFFFE00000010uLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0EuLL, 0x000000101E1E1E2CuLL}, +{0xFFFFFFFE00000010uLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0EuLL, 0x000000100F0F0F1EuLL}, +{0xFFFFFFFE00000010uLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6CA00000010uLL}, +{0xFFFFFFFE00000010uLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFFEEuLL}, +{0xFFFFFFFE00000010uLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFFCCuLL}, +{0xFFFFFFFE00000010uLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFFAAuLL}, +{0xFFFFFFFE00000010uLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6C9FFFFFDF0uLL}, +{0xFFFFFFFE00000010uLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6C9002AD6DCuLL}, +{0xFFFFFFFE00000010uLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6C9087AE168uLL}, +{0xFFFFFFFE00000010uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6B900000032uLL}, +{0xFFFFFFFE00000010uLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6B900000010uLL}, +{0xFFFFFFFE00000010uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6A800000076uLL}, +{0xFFFFFFFE00000010uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6A800000054uLL}, +{0xFFFFFFFE00000010uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6A800000032uLL}, +{0xFFFFFFFE00000010uLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x0133334200000010uLL}, +{0xFFFFFFFE00000010uLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x01333341FFFFFFEDuLL}, +{0xFFFFFFFE00000010uLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x01333341FFFFFFCAuLL}, +{0xFFFFFFFE00000010uLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x01333341FFFFFFA7uLL}, +{0xFFFFFFFE00000010uLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x01333341FFFFFDE0uLL}, +{0xFFFFFFFE00000010uLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x01333340F8A491E2uLL}, +{0xFFFFFFFE00000010uLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x0133334101333354uLL}, +{0xFFFFFFFE00000010uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x0133333080000033uLL}, +{0xFFFFFFFE00000010uLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x0133333080000010uLL}, +{0xFFFFFFFE00000010uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x0133331F00000079uLL}, +{0xFFFFFFFE00000010uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133331F00000056uLL}, +{0xFFFFFFFE00000010uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133331F00000033uLL}, +{0xFFFFFFFE00000010uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000002uLL, 0x0000000000000010uLL}, +{0xFFFFFFFE00000010uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000002uLL, 0x000000000000000EuLL}, +{0xFFFFFFFE00000010uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000002uLL, 0x000000000000000CuLL}, +{0xFFFFFFFE00000010uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000002uLL, 0x000000000000000AuLL}, +{0xFFFFFFFE00000010uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000001uLL, 0x7FFFFFFF00000000uLL}, +{0xFFFFFFFE00000010uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFEF879BB16uLL}, +{0xFFFFFFFE00000010uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFEF8B851FCuLL}, +{0xFFFFFFFE00000010uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE80000011uLL}, +{0xFFFFFFFE00000010uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE80000010uLL}, +{0xFFFFFFFE00000010uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000013uLL}, +{0xFFFFFFFE00000010uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000012uLL}, +{0xFFFFFFFE00000010uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000011uLL}, +{0xFFFFFFFE00000010uLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE00000010uLL}, +{0xFFFFFFFE00000010uLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFE0000000FuLL}, +{0xFFFFFFFE00000010uLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFE0000000EuLL}, +{0xFFFFFFFE00000010uLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFE0000000DuLL}, +{0xFFFFFFFE00000010uLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFE00000000uLL}, +{0xFFFFFFFE00000010uLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFDF879BB16uLL}, +{0xFFFFFFFE00000010uLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFDF8B851FCuLL}, +{0xFFFFFFFE00000010uLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD80000011uLL}, +{0xFFFFFFFE00000010uLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFD80000010uLL}, +{0xFFFFFFFE00000010uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000013uLL}, +{0xFFFFFFFE00000010uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000012uLL}, +{0xFFFFFFFE00000010uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD00000011uLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x0000000100000010uLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x000000010000000FuLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x000000010000000EuLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0x000000010000000DuLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB16uLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851FCuLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000011uLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000001uLL, 0x0000000080000010uLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000013uLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000012uLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000011uLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000001uLL, 0x0000000000000010uLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000001uLL, 0x000000000000000FuLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000001uLL, 0x000000000000000EuLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000001uLL, 0x000000000000000DuLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000010uLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000010uLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000010uLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000010uLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000010uLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000010uLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000010uLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000010uLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000010uLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000010uLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000010uLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000010uLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000010uLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000010uLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000010uLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFE00000010uLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000010uLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000010uLL}, +{0xFFFFFFFE00000010uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE00000010uLL}, +{0xFFFFFFFE078644FAuLL, 0x0000000000000001uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL}, +{0xFFFFFFFE078644FAuLL, 0x0000000000000002uLL, 0x7FFFFFFF03C3227DuLL, 0x0000000000000000uLL}, +{0xFFFFFFFE078644FAuLL, 0x0000000000000003uLL, 0x55555554AD2CC1A8uLL, 0x0000000000000002uLL}, +{0xFFFFFFFE078644FAuLL, 0x0000000000000010uLL, 0x0FFFFFFFE078644FuLL, 0x000000000000000AuLL}, +{0xFFFFFFFE078644FAuLL, 0x00000000078644FAuLL, 0x0000002205B17ABAuLL, 0x00000000003F0356uLL}, +{0xFFFFFFFE078644FAuLL, 0x000000000747AE14uLL, 0x000000232A32A536uLL, 0x00000000034CA8C2uLL}, +{0xFFFFFFFE078644FAuLL, 0x000000007FFFFFFFuLL, 0x0000000200000000uLL, 0x00000000078644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0x0000000080000000uLL, 0x00000001FFFFFFFCuLL, 0x00000000078644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0x00000000FFFFFFFDuLL, 0x0000000100000001uLL, 0x00000000078644FDuLL}, +{0xFFFFFFFE078644FAuLL, 0x00000000FFFFFFFEuLL, 0x0000000100000000uLL, 0x00000000078644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x00000000078644F9uLL}, +{0xFFFFFFFE078644FAuLL, 0x0000000100000000uLL, 0x00000000FFFFFFFEuLL, 0x00000000078644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0x0000000100000001uLL, 0x00000000FFFFFFFDuLL, 0x00000000078644FDuLL}, +{0xFFFFFFFE078644FAuLL, 0x0000000100000002uLL, 0x00000000FFFFFFFCuLL, 0x0000000007864502uLL}, +{0xFFFFFFFE078644FAuLL, 0x0000000100000003uLL, 0x00000000FFFFFFFBuLL, 0x0000000007864509uLL}, +{0xFFFFFFFE078644FAuLL, 0x0000000100000010uLL, 0x00000000FFFFFFEEuLL, 0x000000000786461AuLL}, +{0xFFFFFFFE078644FAuLL, 0x00000001078644FAuLL, 0x00000000F8B0BB5AuLL, 0x00000000B20F6716uLL}, +{0xFFFFFFFE078644FAuLL, 0x000000010747AE14uLL, 0x00000000F8EBDA58uLL, 0x000000005049661AuLL}, +{0xFFFFFFFE078644FAuLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAA9uLL, 0x000000013230EFA3uLL}, +{0xFFFFFFFE078644FAuLL, 0x0000000180000000uLL, 0x00000000AAAAAAA9uLL, 0x00000000878644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0x00000001FFFFFFFDuLL, 0x000000007FFFFFFFuLL, 0x00000001878644F7uLL}, +{0xFFFFFFFE078644FAuLL, 0x00000001FFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x00000001078644F8uLL}, +{0xFFFFFFFE078644FAuLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x00000000878644F9uLL}, +{0xFFFFFFFE078644FAuLL, 0x0000000200000000uLL, 0x000000007FFFFFFFuLL, 0x00000000078644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0x0000000200000001uLL, 0x000000007FFFFFFEuLL, 0x00000001878644FCuLL}, +{0xFFFFFFFE078644FAuLL, 0x0000000200000002uLL, 0x000000007FFFFFFEuLL, 0x00000001078644FEuLL}, +{0xFFFFFFFE078644FAuLL, 0x0000000200000003uLL, 0x000000007FFFFFFEuLL, 0x0000000087864500uLL}, +{0xFFFFFFFE078644FAuLL, 0x0000000200000010uLL, 0x000000007FFFFFFBuLL, 0x000000000786454AuLL}, +{0xFFFFFFFE078644FAuLL, 0x00000002078644FAuLL, 0x000000007E256849uLL, 0x00000000521509B0uLL}, +{0xFFFFFFFE078644FAuLL, 0x000000020747AE14uLL, 0x000000007E349CA6uLL, 0x000000006CE73402uLL}, +{0xFFFFFFFE078644FAuLL, 0x000000027FFFFFFFuLL, 0x0000000066666665uLL, 0x00000001EDECAB5FuLL}, +{0xFFFFFFFE078644FAuLL, 0x0000000280000000uLL, 0x0000000066666665uLL, 0x00000001878644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0x00000002FFFFFFFDuLL, 0x0000000055555555uLL, 0x00000000078644F9uLL}, +{0xFFFFFFFE078644FAuLL, 0x00000002FFFFFFFEuLL, 0x0000000055555554uLL, 0x00000002B230EFA2uLL}, +{0xFFFFFFFE078644FAuLL, 0x00000002FFFFFFFFuLL, 0x0000000055555554uLL, 0x000000025CDB9A4EuLL}, +{0xFFFFFFFE078644FAuLL, 0x0000000300000000uLL, 0x0000000055555554uLL, 0x00000002078644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0x0000000300000001uLL, 0x0000000055555554uLL, 0x00000001B230EFA6uLL}, +{0xFFFFFFFE078644FAuLL, 0x0000000300000002uLL, 0x0000000055555554uLL, 0x000000015CDB9A52uLL}, +{0xFFFFFFFE078644FAuLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x00000001078644FEuLL}, +{0xFFFFFFFE078644FAuLL, 0x0000000300000010uLL, 0x0000000055555552uLL, 0x00000002B230EFDAuLL}, +{0xFFFFFFFE078644FAuLL, 0x00000003078644FAuLL, 0x0000000054816147uLL, 0x00000002472C69A4uLL}, +{0xFFFFFFFE078644FAuLL, 0x000000030747AE14uLL, 0x00000000548833C6uLL, 0x0000000013C7A582uLL}, +{0xFFFFFFFE078644FAuLL, 0x000000037FFFFFFFuLL, 0x0000000049249248uLL, 0x0000000250AAD742uLL}, +{0xFFFFFFFE078644FAuLL, 0x0000000380000000uLL, 0x0000000049249248uLL, 0x00000002078644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0x00000003FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000002C78644F7uLL}, +{0xFFFFFFFE078644FAuLL, 0x00000003FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x00000002878644F8uLL}, +{0xFFFFFFFE078644FAuLL, 0x00000003FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x00000002478644F9uLL}, +{0xFFFFFFFE078644FAuLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000E078644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000DF78644FBuLL}, +{0xFFFFFFFE078644FAuLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000DE78644FCuLL}, +{0xFFFFFFFE078644FAuLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000DD78644FDuLL}, +{0xFFFFFFFE078644FAuLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000D0786450AuLL}, +{0xFFFFFFFE078644FAuLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x000000020784258CuLL}, +{0xFFFFFFFE078644FAuLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x000000044F30DC7AuLL}, +{0xFFFFFFFE078644FAuLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x00000002170A25F2uLL}, +{0xFFFFFFFE078644FAuLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x00000002078644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0EuLL, 0x0000001034B37224uLL}, +{0xFFFFFFFE078644FAuLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0EuLL, 0x0000001025A46316uLL}, +{0xFFFFFFFE078644FAuLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0EuLL, 0x0000001016955408uLL}, +{0xFFFFFFFE078644FAuLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6CA078644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6CA078644D8uLL}, +{0xFFFFFFFE078644FAuLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6CA078644B6uLL}, +{0xFFFFFFFE078644FAuLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6CA07864494uLL}, +{0xFFFFFFFE078644FAuLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6CA078642DAuLL}, +{0xFFFFFFFE078644FAuLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6C907B11BC6uLL}, +{0xFFFFFFFE078644FAuLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6C910012652uLL}, +{0xFFFFFFFE078644FAuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6B90786451CuLL}, +{0xFFFFFFFE078644FAuLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6B9078644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6A807864560uLL}, +{0xFFFFFFFE078644FAuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6A80786453EuLL}, +{0xFFFFFFFE078644FAuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6A80786451CuLL}, +{0xFFFFFFFE078644FAuLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x01333342078644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x01333342078644D7uLL}, +{0xFFFFFFFE078644FAuLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x01333342078644B4uLL}, +{0xFFFFFFFE078644FAuLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x0133334207864491uLL}, +{0xFFFFFFFE078644FAuLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x01333342078642CAuLL}, +{0xFFFFFFFE078644FAuLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x01333341002AD6CCuLL}, +{0xFFFFFFFE078644FAuLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x0133334108B9783EuLL}, +{0xFFFFFFFE078644FAuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x013333308786451DuLL}, +{0xFFFFFFFE078644FAuLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x01333330878644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x0133331F07864563uLL}, +{0xFFFFFFFE078644FAuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133331F07864540uLL}, +{0xFFFFFFFE078644FAuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133331F0786451DuLL}, +{0xFFFFFFFE078644FAuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000002uLL, 0x00000000078644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000002uLL, 0x00000000078644F8uLL}, +{0xFFFFFFFE078644FAuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000002uLL, 0x00000000078644F6uLL}, +{0xFFFFFFFE078644FAuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000002uLL, 0x00000000078644F4uLL}, +{0xFFFFFFFE078644FAuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000002uLL, 0x00000000078644DAuLL}, +{0xFFFFFFFE078644FAuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFF00000000uLL}, +{0xFFFFFFFE078644FAuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFF003E96E6uLL}, +{0xFFFFFFFE078644FAuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE878644FBuLL}, +{0xFFFFFFFE078644FAuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE878644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFE078644FDuLL}, +{0xFFFFFFFE078644FAuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFE078644FCuLL}, +{0xFFFFFFFE078644FAuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE078644FBuLL}, +{0xFFFFFFFE078644FAuLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE078644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFE078644F9uLL}, +{0xFFFFFFFE078644FAuLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFE078644F8uLL}, +{0xFFFFFFFE078644FAuLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFE078644F7uLL}, +{0xFFFFFFFE078644FAuLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFE078644EAuLL}, +{0xFFFFFFFE078644FAuLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000000uLL}, +{0xFFFFFFFE078644FAuLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFE003E96E6uLL}, +{0xFFFFFFFE078644FAuLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD878644FBuLL}, +{0xFFFFFFFE078644FAuLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFD878644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFD078644FDuLL}, +{0xFFFFFFFE078644FAuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFD078644FCuLL}, +{0xFFFFFFFE078644FAuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD078644FBuLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x00000001078644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x00000001078644F9uLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x00000001078644F8uLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0x00000001078644F7uLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000001uLL, 0x00000001078644EAuLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000001uLL, 0x00000001003E96E6uLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000001uLL, 0x00000000878644FBuLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000001uLL, 0x00000000878644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000001uLL, 0x00000000078644FDuLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000001uLL, 0x00000000078644FCuLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000001uLL, 0x00000000078644FBuLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000001uLL, 0x00000000078644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000001uLL, 0x00000000078644F9uLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000001uLL, 0x00000000078644F8uLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000001uLL, 0x00000000078644F7uLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000001uLL, 0x00000000078644EAuLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000001uLL, 0x00000000003E96E6uLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE078644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFE078644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFE078644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFE078644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE078644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFE078644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFE078644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFE078644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFE078644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFE078644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFE078644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFE078644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE078644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFE078644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFE078644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFE078644FAuLL}, +{0xFFFFFFFE078644FAuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE078644FAuLL}, +{0xFFFFFFFE0747AE14uLL, 0x0000000000000001uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000000uLL}, +{0xFFFFFFFE0747AE14uLL, 0x0000000000000002uLL, 0x7FFFFFFF03A3D70AuLL, 0x0000000000000000uLL}, +{0xFFFFFFFE0747AE14uLL, 0x0000000000000003uLL, 0x55555554AD17E4B1uLL, 0x0000000000000001uLL}, +{0xFFFFFFFE0747AE14uLL, 0x0000000000000010uLL, 0x0FFFFFFFE0747AE1uLL, 0x0000000000000004uLL}, +{0xFFFFFFFE0747AE14uLL, 0x00000000078644FAuLL, 0x0000002205B17ABAuLL, 0x0000000000006C70uLL}, +{0xFFFFFFFE0747AE14uLL, 0x000000000747AE14uLL, 0x000000232A32A536uLL, 0x00000000030E11DCuLL}, +{0xFFFFFFFE0747AE14uLL, 0x000000007FFFFFFFuLL, 0x0000000200000000uLL, 0x000000000747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0x0000000080000000uLL, 0x00000001FFFFFFFCuLL, 0x000000000747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0x00000000FFFFFFFDuLL, 0x0000000100000001uLL, 0x000000000747AE17uLL}, +{0xFFFFFFFE0747AE14uLL, 0x00000000FFFFFFFEuLL, 0x0000000100000000uLL, 0x000000000747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x000000000747AE13uLL}, +{0xFFFFFFFE0747AE14uLL, 0x0000000100000000uLL, 0x00000000FFFFFFFEuLL, 0x000000000747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0x0000000100000001uLL, 0x00000000FFFFFFFDuLL, 0x000000000747AE17uLL}, +{0xFFFFFFFE0747AE14uLL, 0x0000000100000002uLL, 0x00000000FFFFFFFCuLL, 0x000000000747AE1CuLL}, +{0xFFFFFFFE0747AE14uLL, 0x0000000100000003uLL, 0x00000000FFFFFFFBuLL, 0x000000000747AE23uLL}, +{0xFFFFFFFE0747AE14uLL, 0x0000000100000010uLL, 0x00000000FFFFFFEEuLL, 0x000000000747AF34uLL}, +{0xFFFFFFFE0747AE14uLL, 0x00000001078644FAuLL, 0x00000000F8B0BB5AuLL, 0x00000000B1D0D030uLL}, +{0xFFFFFFFE0747AE14uLL, 0x000000010747AE14uLL, 0x00000000F8EBDA58uLL, 0x00000000500ACF34uLL}, +{0xFFFFFFFE0747AE14uLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAA9uLL, 0x0000000131F258BDuLL}, +{0xFFFFFFFE0747AE14uLL, 0x0000000180000000uLL, 0x00000000AAAAAAA9uLL, 0x000000008747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0x00000001FFFFFFFDuLL, 0x000000007FFFFFFFuLL, 0x000000018747AE11uLL}, +{0xFFFFFFFE0747AE14uLL, 0x00000001FFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x000000010747AE12uLL}, +{0xFFFFFFFE0747AE14uLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x000000008747AE13uLL}, +{0xFFFFFFFE0747AE14uLL, 0x0000000200000000uLL, 0x000000007FFFFFFFuLL, 0x000000000747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0x0000000200000001uLL, 0x000000007FFFFFFEuLL, 0x000000018747AE16uLL}, +{0xFFFFFFFE0747AE14uLL, 0x0000000200000002uLL, 0x000000007FFFFFFEuLL, 0x000000010747AE18uLL}, +{0xFFFFFFFE0747AE14uLL, 0x0000000200000003uLL, 0x000000007FFFFFFEuLL, 0x000000008747AE1AuLL}, +{0xFFFFFFFE0747AE14uLL, 0x0000000200000010uLL, 0x000000007FFFFFFBuLL, 0x000000000747AE64uLL}, +{0xFFFFFFFE0747AE14uLL, 0x00000002078644FAuLL, 0x000000007E256849uLL, 0x0000000051D672CAuLL}, +{0xFFFFFFFE0747AE14uLL, 0x000000020747AE14uLL, 0x000000007E349CA6uLL, 0x000000006CA89D1CuLL}, +{0xFFFFFFFE0747AE14uLL, 0x000000027FFFFFFFuLL, 0x0000000066666665uLL, 0x00000001EDAE1479uLL}, +{0xFFFFFFFE0747AE14uLL, 0x0000000280000000uLL, 0x0000000066666665uLL, 0x000000018747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0x00000002FFFFFFFDuLL, 0x0000000055555555uLL, 0x000000000747AE13uLL}, +{0xFFFFFFFE0747AE14uLL, 0x00000002FFFFFFFEuLL, 0x0000000055555554uLL, 0x00000002B1F258BCuLL}, +{0xFFFFFFFE0747AE14uLL, 0x00000002FFFFFFFFuLL, 0x0000000055555554uLL, 0x000000025C9D0368uLL}, +{0xFFFFFFFE0747AE14uLL, 0x0000000300000000uLL, 0x0000000055555554uLL, 0x000000020747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0x0000000300000001uLL, 0x0000000055555554uLL, 0x00000001B1F258C0uLL}, +{0xFFFFFFFE0747AE14uLL, 0x0000000300000002uLL, 0x0000000055555554uLL, 0x000000015C9D036CuLL}, +{0xFFFFFFFE0747AE14uLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x000000010747AE18uLL}, +{0xFFFFFFFE0747AE14uLL, 0x0000000300000010uLL, 0x0000000055555552uLL, 0x00000002B1F258F4uLL}, +{0xFFFFFFFE0747AE14uLL, 0x00000003078644FAuLL, 0x0000000054816147uLL, 0x0000000246EDD2BEuLL}, +{0xFFFFFFFE0747AE14uLL, 0x000000030747AE14uLL, 0x00000000548833C6uLL, 0x0000000013890E9CuLL}, +{0xFFFFFFFE0747AE14uLL, 0x000000037FFFFFFFuLL, 0x0000000049249248uLL, 0x00000002506C405CuLL}, +{0xFFFFFFFE0747AE14uLL, 0x0000000380000000uLL, 0x0000000049249248uLL, 0x000000020747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0x00000003FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000002C747AE11uLL}, +{0xFFFFFFFE0747AE14uLL, 0x00000003FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x000000028747AE12uLL}, +{0xFFFFFFFE0747AE14uLL, 0x00000003FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x000000024747AE13uLL}, +{0xFFFFFFFE0747AE14uLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000E0747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000DF747AE15uLL}, +{0xFFFFFFFE0747AE14uLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000DE747AE16uLL}, +{0xFFFFFFFE0747AE14uLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000DD747AE17uLL}, +{0xFFFFFFFE0747AE14uLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000D0747AE24uLL}, +{0xFFFFFFFE0747AE14uLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x0000000207458EA6uLL}, +{0xFFFFFFFE0747AE14uLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x000000044EF24594uLL}, +{0xFFFFFFFE0747AE14uLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x0000000216CB8F0CuLL}, +{0xFFFFFFFE0747AE14uLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x000000020747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0EuLL, 0x000000103474DB3EuLL}, +{0xFFFFFFFE0747AE14uLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0EuLL, 0x000000102565CC30uLL}, +{0xFFFFFFFE0747AE14uLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0EuLL, 0x000000101656BD22uLL}, +{0xFFFFFFFE0747AE14uLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6CA0747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6CA0747ADF2uLL}, +{0xFFFFFFFE0747AE14uLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6CA0747ADD0uLL}, +{0xFFFFFFFE0747AE14uLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6CA0747ADAEuLL}, +{0xFFFFFFFE0747AE14uLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6CA0747ABF4uLL}, +{0xFFFFFFFE0747AE14uLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6C9077284E0uLL}, +{0xFFFFFFFE0747AE14uLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6C90FC28F6CuLL}, +{0xFFFFFFFE0747AE14uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6B90747AE36uLL}, +{0xFFFFFFFE0747AE14uLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6B90747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6A80747AE7AuLL}, +{0xFFFFFFFE0747AE14uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6A80747AE58uLL}, +{0xFFFFFFFE0747AE14uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6A80747AE36uLL}, +{0xFFFFFFFE0747AE14uLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x013333420747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x013333420747ADF1uLL}, +{0xFFFFFFFE0747AE14uLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x013333420747ADCEuLL}, +{0xFFFFFFFE0747AE14uLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x013333420747ADABuLL}, +{0xFFFFFFFE0747AE14uLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x013333420747ABE4uLL}, +{0xFFFFFFFE0747AE14uLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x01333340FFEC3FE6uLL}, +{0xFFFFFFFE0747AE14uLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x01333341087AE158uLL}, +{0xFFFFFFFE0747AE14uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x013333308747AE37uLL}, +{0xFFFFFFFE0747AE14uLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x013333308747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x0133331F0747AE7DuLL}, +{0xFFFFFFFE0747AE14uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133331F0747AE5AuLL}, +{0xFFFFFFFE0747AE14uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133331F0747AE37uLL}, +{0xFFFFFFFE0747AE14uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000002uLL, 0x000000000747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000002uLL, 0x000000000747AE12uLL}, +{0xFFFFFFFE0747AE14uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000002uLL, 0x000000000747AE10uLL}, +{0xFFFFFFFE0747AE14uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000002uLL, 0x000000000747AE0EuLL}, +{0xFFFFFFFE0747AE14uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000002uLL, 0x000000000747ADF4uLL}, +{0xFFFFFFFE0747AE14uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFEFFC1691AuLL}, +{0xFFFFFFFE0747AE14uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFF00000000uLL}, +{0xFFFFFFFE0747AE14uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE8747AE15uLL}, +{0xFFFFFFFE0747AE14uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE8747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFE0747AE17uLL}, +{0xFFFFFFFE0747AE14uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFE0747AE16uLL}, +{0xFFFFFFFE0747AE14uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE0747AE15uLL}, +{0xFFFFFFFE0747AE14uLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE0747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFE0747AE13uLL}, +{0xFFFFFFFE0747AE14uLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFE0747AE12uLL}, +{0xFFFFFFFE0747AE14uLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFE0747AE11uLL}, +{0xFFFFFFFE0747AE14uLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFE0747AE04uLL}, +{0xFFFFFFFE0747AE14uLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFDFFC1691AuLL}, +{0xFFFFFFFE0747AE14uLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFE00000000uLL}, +{0xFFFFFFFE0747AE14uLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD8747AE15uLL}, +{0xFFFFFFFE0747AE14uLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFD8747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFD0747AE17uLL}, +{0xFFFFFFFE0747AE14uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFD0747AE16uLL}, +{0xFFFFFFFE0747AE14uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD0747AE15uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x000000010747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x000000010747AE13uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x000000010747AE12uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0x000000010747AE11uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000001uLL, 0x000000010747AE04uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000001uLL, 0x00000000FFC1691AuLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000001uLL, 0x000000008747AE15uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000001uLL, 0x000000008747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000001uLL, 0x000000000747AE17uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000001uLL, 0x000000000747AE16uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000001uLL, 0x000000000747AE15uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000001uLL, 0x000000000747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000001uLL, 0x000000000747AE13uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000001uLL, 0x000000000747AE12uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000001uLL, 0x000000000747AE11uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000001uLL, 0x000000000747AE04uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFE0747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE0747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFE0747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFE0747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFE0747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE0747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFE0747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFE0747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFE0747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFE0747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFE0747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFE0747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFE0747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE0747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFE0747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFE0747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFE0747AE14uLL}, +{0xFFFFFFFE0747AE14uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE0747AE14uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000001uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000000uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000002uLL, 0x7FFFFFFF3FFFFFFFuLL, 0x0000000000000001uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000003uLL, 0x55555554D5555555uLL, 0x0000000000000000uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000010uLL, 0x0FFFFFFFE7FFFFFFuLL, 0x000000000000000FuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x00000000078644FAuLL, 0x0000002205B17ACAuLL, 0x0000000000546EBBuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x000000000747AE14uLL, 0x000000232A32A547uLL, 0x000000000003D473uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x0000000200000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0000000080000000uLL, 0x00000001FFFFFFFCuLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x00000000FFFFFFFDuLL, 0x0000000100000001uLL, 0x0000000080000002uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x0000000100000000uLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x000000007FFFFFFEuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0000000100000000uLL, 0x00000000FFFFFFFEuLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0000000100000001uLL, 0x00000000FFFFFFFDuLL, 0x0000000080000002uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0000000100000002uLL, 0x00000000FFFFFFFCuLL, 0x0000000080000007uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0000000100000003uLL, 0x00000000FFFFFFFBuLL, 0x000000008000000EuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0000000100000010uLL, 0x00000000FFFFFFEEuLL, 0x000000008000011FuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x00000001078644FAuLL, 0x00000000F8B0BB5BuLL, 0x000000002302DD21uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x000000010747AE14uLL, 0x00000000F8EBDA58uLL, 0x00000000C8C3211FuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAAAuLL, 0x000000002AAAAAA9uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0000000180000000uLL, 0x00000000AAAAAAA9uLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x00000001FFFFFFFDuLL, 0x000000007FFFFFFFuLL, 0x00000001FFFFFFFCuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x00000001FFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x000000017FFFFFFDuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x00000000FFFFFFFEuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0000000200000000uLL, 0x000000007FFFFFFFuLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0000000200000001uLL, 0x000000007FFFFFFFuLL, 0x0000000000000000uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0000000200000002uLL, 0x000000007FFFFFFEuLL, 0x0000000180000003uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0000000200000003uLL, 0x000000007FFFFFFEuLL, 0x0000000100000005uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0000000200000010uLL, 0x000000007FFFFFFBuLL, 0x000000008000004FuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x00000002078644FAuLL, 0x000000007E256849uLL, 0x00000000CA8EC4B5uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x000000020747AE14uLL, 0x000000007E349CA6uLL, 0x00000000E560EF07uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x000000027FFFFFFFuLL, 0x0000000066666665uLL, 0x0000000266666664uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0000000280000000uLL, 0x0000000066666665uLL, 0x00000001FFFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x00000002FFFFFFFDuLL, 0x0000000055555555uLL, 0x000000007FFFFFFEuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x00000002FFFFFFFEuLL, 0x0000000055555555uLL, 0x000000002AAAAAA9uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x00000002FFFFFFFFuLL, 0x0000000055555554uLL, 0x00000002D5555553uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0000000300000000uLL, 0x0000000055555554uLL, 0x000000027FFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0000000300000001uLL, 0x0000000055555554uLL, 0x000000022AAAAAABuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0000000300000002uLL, 0x0000000055555554uLL, 0x00000001D5555557uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x0000000180000003uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0000000300000010uLL, 0x0000000055555553uLL, 0x000000002AAAAACFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x00000003078644FAuLL, 0x0000000054816147uLL, 0x00000002BFA624A9uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x000000030747AE14uLL, 0x00000000548833C6uLL, 0x000000008C416087uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x000000037FFFFFFFuLL, 0x0000000049249248uLL, 0x00000002C9249247uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0000000380000000uLL, 0x0000000049249248uLL, 0x000000027FFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x00000003FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x000000033FFFFFFCuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x00000003FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x00000002FFFFFFFDuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x00000003FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x00000002BFFFFFFEuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000E7FFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000E70000000uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000E60000001uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000E50000002uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000D8000000FuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x000000027FFDE091uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x00000004C7AA977FuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x000000028F83E0F7uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x000000027FFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0EuLL, 0x00000010AD2D2D29uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0EuLL, 0x000000109E1E1E1BuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0EuLL, 0x000000108F0F0F0DuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6CA7FFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6CA7FFFFFDDuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6CA7FFFFFBBuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6CA7FFFFF99uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6CA7FFFFDDFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6C9802AD6CBuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6C9887AE157uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6B980000021uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6B97FFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6A880000065uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6A880000043uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6A880000021uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x013333427FFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x013333427FFFFFDCuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x013333427FFFFFB9uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x013333427FFFFF96uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x013333427FFFFDCFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x0133334178A491D1uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x0133334181333343uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x0133333100000022uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x01333330FFFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x0133331F80000068uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133331F80000045uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133331F80000022uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000002uLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000002uLL, 0x000000007FFFFFFDuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000002uLL, 0x000000007FFFFFFBuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000002uLL, 0x000000007FFFFFF9uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000002uLL, 0x000000007FFFFFDFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000002uLL, 0x0000000070F3760BuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000002uLL, 0x000000007170A3D7uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFF00000000uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFE80000002uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFE80000001uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE80000000uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE7FFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFE7FFFFFFEuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFE7FFFFFFDuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFE7FFFFFFCuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFE7FFFFFEFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFE7879BB05uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFE78B851EBuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000000uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFD80000002uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFD80000001uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD80000000uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x000000017FFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x000000017FFFFFFEuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x000000017FFFFFFDuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0x000000017FFFFFFCuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000001uLL, 0x000000017FFFFFEFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000001uLL, 0x000000017879BB05uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000001uLL, 0x0000000178B851EBuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000080000002uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000080000001uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000000uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000001uLL, 0x000000007FFFFFFCuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000001uLL, 0x000000007FFFFFEFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000001uLL, 0x000000007879BB05uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000001uLL, 0x0000000078B851EBuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFE7FFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFE7FFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFE7FFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE7FFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFE7FFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFE7FFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFE7FFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFE7FFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFE7FFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFE7FFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFE7FFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE7FFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFE7FFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFE7FFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFE7FFFFFFFuLL}, +{0xFFFFFFFE7FFFFFFFuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE7FFFFFFFuLL}, +{0xFFFFFFFE80000000uLL, 0x0000000000000001uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000000uLL}, +{0xFFFFFFFE80000000uLL, 0x0000000000000002uLL, 0x7FFFFFFF40000000uLL, 0x0000000000000000uLL}, +{0xFFFFFFFE80000000uLL, 0x0000000000000003uLL, 0x55555554D5555555uLL, 0x0000000000000001uLL}, +{0xFFFFFFFE80000000uLL, 0x0000000000000010uLL, 0x0FFFFFFFE8000000uLL, 0x0000000000000000uLL}, +{0xFFFFFFFE80000000uLL, 0x00000000078644FAuLL, 0x0000002205B17ACAuLL, 0x0000000000546EBCuLL}, +{0xFFFFFFFE80000000uLL, 0x000000000747AE14uLL, 0x000000232A32A547uLL, 0x000000000003D474uLL}, +{0xFFFFFFFE80000000uLL, 0x000000007FFFFFFFuLL, 0x0000000200000001uLL, 0x0000000000000001uLL}, +{0xFFFFFFFE80000000uLL, 0x0000000080000000uLL, 0x00000001FFFFFFFDuLL, 0x0000000000000000uLL}, +{0xFFFFFFFE80000000uLL, 0x00000000FFFFFFFDuLL, 0x0000000100000001uLL, 0x0000000080000003uLL}, +{0xFFFFFFFE80000000uLL, 0x00000000FFFFFFFEuLL, 0x0000000100000000uLL, 0x0000000080000000uLL}, +{0xFFFFFFFE80000000uLL, 0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFE80000000uLL, 0x0000000100000000uLL, 0x00000000FFFFFFFEuLL, 0x0000000080000000uLL}, +{0xFFFFFFFE80000000uLL, 0x0000000100000001uLL, 0x00000000FFFFFFFDuLL, 0x0000000080000003uLL}, +{0xFFFFFFFE80000000uLL, 0x0000000100000002uLL, 0x00000000FFFFFFFCuLL, 0x0000000080000008uLL}, +{0xFFFFFFFE80000000uLL, 0x0000000100000003uLL, 0x00000000FFFFFFFBuLL, 0x000000008000000FuLL}, +{0xFFFFFFFE80000000uLL, 0x0000000100000010uLL, 0x00000000FFFFFFEEuLL, 0x0000000080000120uLL}, +{0xFFFFFFFE80000000uLL, 0x00000001078644FAuLL, 0x00000000F8B0BB5BuLL, 0x000000002302DD22uLL}, +{0xFFFFFFFE80000000uLL, 0x000000010747AE14uLL, 0x00000000F8EBDA58uLL, 0x00000000C8C32120uLL}, +{0xFFFFFFFE80000000uLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAAAuLL, 0x000000002AAAAAAAuLL}, +{0xFFFFFFFE80000000uLL, 0x0000000180000000uLL, 0x00000000AAAAAAA9uLL, 0x0000000100000000uLL}, +{0xFFFFFFFE80000000uLL, 0x00000001FFFFFFFDuLL, 0x0000000080000000uLL, 0x0000000000000000uLL}, +{0xFFFFFFFE80000000uLL, 0x00000001FFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x000000017FFFFFFEuLL}, +{0xFFFFFFFE80000000uLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFE80000000uLL, 0x0000000200000000uLL, 0x000000007FFFFFFFuLL, 0x0000000080000000uLL}, +{0xFFFFFFFE80000000uLL, 0x0000000200000001uLL, 0x000000007FFFFFFFuLL, 0x0000000000000001uLL}, +{0xFFFFFFFE80000000uLL, 0x0000000200000002uLL, 0x000000007FFFFFFEuLL, 0x0000000180000004uLL}, +{0xFFFFFFFE80000000uLL, 0x0000000200000003uLL, 0x000000007FFFFFFEuLL, 0x0000000100000006uLL}, +{0xFFFFFFFE80000000uLL, 0x0000000200000010uLL, 0x000000007FFFFFFBuLL, 0x0000000080000050uLL}, +{0xFFFFFFFE80000000uLL, 0x00000002078644FAuLL, 0x000000007E256849uLL, 0x00000000CA8EC4B6uLL}, +{0xFFFFFFFE80000000uLL, 0x000000020747AE14uLL, 0x000000007E349CA6uLL, 0x00000000E560EF08uLL}, +{0xFFFFFFFE80000000uLL, 0x000000027FFFFFFFuLL, 0x0000000066666665uLL, 0x0000000266666665uLL}, +{0xFFFFFFFE80000000uLL, 0x0000000280000000uLL, 0x0000000066666665uLL, 0x0000000200000000uLL}, +{0xFFFFFFFE80000000uLL, 0x00000002FFFFFFFDuLL, 0x0000000055555555uLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFE80000000uLL, 0x00000002FFFFFFFEuLL, 0x0000000055555555uLL, 0x000000002AAAAAAAuLL}, +{0xFFFFFFFE80000000uLL, 0x00000002FFFFFFFFuLL, 0x0000000055555554uLL, 0x00000002D5555554uLL}, +{0xFFFFFFFE80000000uLL, 0x0000000300000000uLL, 0x0000000055555554uLL, 0x0000000280000000uLL}, +{0xFFFFFFFE80000000uLL, 0x0000000300000001uLL, 0x0000000055555554uLL, 0x000000022AAAAAACuLL}, +{0xFFFFFFFE80000000uLL, 0x0000000300000002uLL, 0x0000000055555554uLL, 0x00000001D5555558uLL}, +{0xFFFFFFFE80000000uLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x0000000180000004uLL}, +{0xFFFFFFFE80000000uLL, 0x0000000300000010uLL, 0x0000000055555553uLL, 0x000000002AAAAAD0uLL}, +{0xFFFFFFFE80000000uLL, 0x00000003078644FAuLL, 0x0000000054816147uLL, 0x00000002BFA624AAuLL}, +{0xFFFFFFFE80000000uLL, 0x000000030747AE14uLL, 0x00000000548833C6uLL, 0x000000008C416088uLL}, +{0xFFFFFFFE80000000uLL, 0x000000037FFFFFFFuLL, 0x0000000049249248uLL, 0x00000002C9249248uLL}, +{0xFFFFFFFE80000000uLL, 0x0000000380000000uLL, 0x0000000049249248uLL, 0x0000000280000000uLL}, +{0xFFFFFFFE80000000uLL, 0x00000003FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x000000033FFFFFFDuLL}, +{0xFFFFFFFE80000000uLL, 0x00000003FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x00000002FFFFFFFEuLL}, +{0xFFFFFFFE80000000uLL, 0x00000003FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x00000002BFFFFFFFuLL}, +{0xFFFFFFFE80000000uLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000E80000000uLL}, +{0xFFFFFFFE80000000uLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000E70000001uLL}, +{0xFFFFFFFE80000000uLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000E60000002uLL}, +{0xFFFFFFFE80000000uLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000E50000003uLL}, +{0xFFFFFFFE80000000uLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000D80000010uLL}, +{0xFFFFFFFE80000000uLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x000000027FFDE092uLL}, +{0xFFFFFFFE80000000uLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x00000004C7AA9780uLL}, +{0xFFFFFFFE80000000uLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x000000028F83E0F8uLL}, +{0xFFFFFFFE80000000uLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x0000000280000000uLL}, +{0xFFFFFFFE80000000uLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0EuLL, 0x00000010AD2D2D2AuLL}, +{0xFFFFFFFE80000000uLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0EuLL, 0x000000109E1E1E1CuLL}, +{0xFFFFFFFE80000000uLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0EuLL, 0x000000108F0F0F0EuLL}, +{0xFFFFFFFE80000000uLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6CA80000000uLL}, +{0xFFFFFFFE80000000uLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6CA7FFFFFDEuLL}, +{0xFFFFFFFE80000000uLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6CA7FFFFFBCuLL}, +{0xFFFFFFFE80000000uLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6CA7FFFFF9AuLL}, +{0xFFFFFFFE80000000uLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6CA7FFFFDE0uLL}, +{0xFFFFFFFE80000000uLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6C9802AD6CCuLL}, +{0xFFFFFFFE80000000uLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6C9887AE158uLL}, +{0xFFFFFFFE80000000uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6B980000022uLL}, +{0xFFFFFFFE80000000uLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6B980000000uLL}, +{0xFFFFFFFE80000000uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6A880000066uLL}, +{0xFFFFFFFE80000000uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6A880000044uLL}, +{0xFFFFFFFE80000000uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6A880000022uLL}, +{0xFFFFFFFE80000000uLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x0133334280000000uLL}, +{0xFFFFFFFE80000000uLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x013333427FFFFFDDuLL}, +{0xFFFFFFFE80000000uLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x013333427FFFFFBAuLL}, +{0xFFFFFFFE80000000uLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x013333427FFFFF97uLL}, +{0xFFFFFFFE80000000uLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x013333427FFFFDD0uLL}, +{0xFFFFFFFE80000000uLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x0133334178A491D2uLL}, +{0xFFFFFFFE80000000uLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x0133334181333344uLL}, +{0xFFFFFFFE80000000uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x0133333100000023uLL}, +{0xFFFFFFFE80000000uLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x0133333100000000uLL}, +{0xFFFFFFFE80000000uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x0133331F80000069uLL}, +{0xFFFFFFFE80000000uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133331F80000046uLL}, +{0xFFFFFFFE80000000uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133331F80000023uLL}, +{0xFFFFFFFE80000000uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000002uLL, 0x0000000080000000uLL}, +{0xFFFFFFFE80000000uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000002uLL, 0x000000007FFFFFFEuLL}, +{0xFFFFFFFE80000000uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000002uLL, 0x000000007FFFFFFCuLL}, +{0xFFFFFFFE80000000uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000002uLL, 0x000000007FFFFFFAuLL}, +{0xFFFFFFFE80000000uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000002uLL, 0x000000007FFFFFE0uLL}, +{0xFFFFFFFE80000000uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000002uLL, 0x0000000070F3760CuLL}, +{0xFFFFFFFE80000000uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000002uLL, 0x000000007170A3D8uLL}, +{0xFFFFFFFE80000000uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFF00000001uLL}, +{0xFFFFFFFE80000000uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x7FFFFFFF00000000uLL}, +{0xFFFFFFFE80000000uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFE80000003uLL}, +{0xFFFFFFFE80000000uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFE80000002uLL}, +{0xFFFFFFFE80000000uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE80000001uLL}, +{0xFFFFFFFE80000000uLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE80000000uLL}, +{0xFFFFFFFE80000000uLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFE7FFFFFFFuLL}, +{0xFFFFFFFE80000000uLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFE7FFFFFFEuLL}, +{0xFFFFFFFE80000000uLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFE7FFFFFFDuLL}, +{0xFFFFFFFE80000000uLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFE7FFFFFF0uLL}, +{0xFFFFFFFE80000000uLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFE7879BB06uLL}, +{0xFFFFFFFE80000000uLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFE78B851ECuLL}, +{0xFFFFFFFE80000000uLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000001uLL}, +{0xFFFFFFFE80000000uLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE00000000uLL}, +{0xFFFFFFFE80000000uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFD80000003uLL}, +{0xFFFFFFFE80000000uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFD80000002uLL}, +{0xFFFFFFFE80000000uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFD80000001uLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x0000000180000000uLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x000000017FFFFFFFuLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x000000017FFFFFFEuLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0x000000017FFFFFFDuLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000001uLL, 0x000000017FFFFFF0uLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000001uLL, 0x000000017879BB06uLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000001uLL, 0x0000000178B851ECuLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000100000001uLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000080000003uLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000080000002uLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000001uLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000001uLL, 0x0000000080000000uLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000001uLL, 0x000000007FFFFFF0uLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000001uLL, 0x000000007879BB06uLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000001uLL, 0x0000000078B851ECuLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFE80000000uLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFE80000000uLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE80000000uLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFE80000000uLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFE80000000uLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFE80000000uLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFE80000000uLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFE80000000uLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFE80000000uLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFE80000000uLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE80000000uLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFE80000000uLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFE80000000uLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFE80000000uLL}, +{0xFFFFFFFE80000000uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFE80000000uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000001uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000000uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000002uLL, 0x7FFFFFFF7FFFFFFEuLL, 0x0000000000000001uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000003uLL, 0x55555554FFFFFFFFuLL, 0x0000000000000000uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000010uLL, 0x0FFFFFFFEFFFFFFFuLL, 0x000000000000000DuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x00000000078644FAuLL, 0x0000002205B17ADBuLL, 0x000000000069DA1FuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x000000000747AE14uLL, 0x000000232A32A558uLL, 0x000000000441451DuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x000000007FFFFFFFuLL, 0x0000000200000001uLL, 0x000000007FFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0000000080000000uLL, 0x00000001FFFFFFFDuLL, 0x000000007FFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x00000000FFFFFFFDuLL, 0x0000000100000002uLL, 0x0000000000000003uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x00000000FFFFFFFEuLL, 0x0000000100000000uLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFCuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0000000100000000uLL, 0x00000000FFFFFFFEuLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0000000100000001uLL, 0x00000000FFFFFFFDuLL, 0x0000000100000000uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0000000100000002uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000003uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0000000100000003uLL, 0x00000000FFFFFFFCuLL, 0x0000000000000009uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0000000100000010uLL, 0x00000000FFFFFFEFuLL, 0x000000000000010DuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x00000001078644FAuLL, 0x00000000F8B0BB5BuLL, 0x00000000A302DD1FuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x000000010747AE14uLL, 0x00000000F8EBDA59uLL, 0x00000000417B7309uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAAAuLL, 0x00000000AAAAAAA7uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0000000180000000uLL, 0x00000000AAAAAAA9uLL, 0x000000017FFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x00000001FFFFFFFDuLL, 0x0000000080000000uLL, 0x000000007FFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x00000001FFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x00000001FFFFFFFBuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x000000017FFFFFFCuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0000000200000000uLL, 0x000000007FFFFFFFuLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0000000200000001uLL, 0x000000007FFFFFFFuLL, 0x000000007FFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0000000200000002uLL, 0x000000007FFFFFFEuLL, 0x0000000200000001uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0000000200000003uLL, 0x000000007FFFFFFEuLL, 0x0000000180000003uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0000000200000010uLL, 0x000000007FFFFFFBuLL, 0x000000010000004DuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x00000002078644FAuLL, 0x000000007E256849uLL, 0x000000014A8EC4B3uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x000000020747AE14uLL, 0x000000007E349CA6uLL, 0x000000016560EF05uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x000000027FFFFFFFuLL, 0x0000000066666666uLL, 0x0000000066666663uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0000000280000000uLL, 0x0000000066666665uLL, 0x000000027FFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x00000002FFFFFFFDuLL, 0x0000000055555555uLL, 0x00000000FFFFFFFCuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x00000002FFFFFFFEuLL, 0x0000000055555555uLL, 0x00000000AAAAAAA7uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x00000002FFFFFFFFuLL, 0x0000000055555555uLL, 0x0000000055555552uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0000000300000000uLL, 0x0000000055555554uLL, 0x00000002FFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0000000300000001uLL, 0x0000000055555554uLL, 0x00000002AAAAAAA9uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0000000300000002uLL, 0x0000000055555554uLL, 0x0000000255555555uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x0000000200000001uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0000000300000010uLL, 0x0000000055555553uLL, 0x00000000AAAAAACDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x00000003078644FAuLL, 0x0000000054816148uLL, 0x00000000381FDFADuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x000000030747AE14uLL, 0x00000000548833C6uLL, 0x000000010C416085uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x000000037FFFFFFFuLL, 0x0000000049249248uLL, 0x0000000349249245uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0000000380000000uLL, 0x0000000049249248uLL, 0x00000002FFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x00000003FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000003BFFFFFFAuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x00000003FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x000000037FFFFFFBuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x00000003FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x000000033FFFFFFCuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000EFFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000EEFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000EDFFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000ED0000000uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000E0000000DuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x00000002FFFDE08FuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x0000000547AA977DuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x000000030F83E0F5uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x00000002FFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0FuLL, 0x000000002D2D2D2AuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0FuLL, 0x000000001E1E1E1BuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0FuLL, 0x000000000F0F0F0CuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFFDBuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFFB9uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFF97uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFDDDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6CA002AD6C9uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6CA087AE155uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6BA0000001FuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6B9FFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6A900000063uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6A900000041uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6A90000001FuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x01333342FFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x01333342FFFFFFDAuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x01333342FFFFFFB7uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x01333342FFFFFF94uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x01333342FFFFFDCDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x01333341F8A491CFuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x0133334201333341uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x0133333180000020uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x013333317FFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x0133332000000066uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133332000000043uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133332000000020uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFBuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000002uLL, 0x00000000FFFFFFF9uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000002uLL, 0x00000000FFFFFFF7uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000002uLL, 0x00000000FFFFFFDDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000002uLL, 0x00000000F0F37609uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000002uLL, 0x00000000F170A3D5uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFF7FFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x7FFFFFFF7FFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFF00000000uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFCuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFBuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFAuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFEDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFEF879BB03uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFEF8B851E9uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE7FFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE7FFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000000uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFCuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFBuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFAuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000001uLL, 0x00000001FFFFFFEDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000001uLL, 0x00000001F879BB03uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000001uLL, 0x00000001F8B851E9uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000001uLL, 0x000000017FFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000001uLL, 0x000000017FFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFCuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFBuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFAuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFEDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB03uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851E9uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFDuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000001uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000000uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000002uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000003uLL, 0x55555554FFFFFFFFuLL, 0x0000000000000001uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000010uLL, 0x0FFFFFFFEFFFFFFFuLL, 0x000000000000000EuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x00000000078644FAuLL, 0x0000002205B17ADBuLL, 0x000000000069DA20uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x000000000747AE14uLL, 0x000000232A32A558uLL, 0x000000000441451EuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x0000000200000002uLL, 0x0000000000000000uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0000000080000000uLL, 0x00000001FFFFFFFDuLL, 0x000000007FFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x00000000FFFFFFFDuLL, 0x0000000100000002uLL, 0x0000000000000004uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x00000000FFFFFFFEuLL, 0x0000000100000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0000000100000000uLL, 0x00000000FFFFFFFEuLL, 0x00000000FFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0000000100000001uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000000uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0000000100000002uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000004uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0000000100000003uLL, 0x00000000FFFFFFFCuLL, 0x000000000000000AuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0000000100000010uLL, 0x00000000FFFFFFEFuLL, 0x000000000000010EuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x00000001078644FAuLL, 0x00000000F8B0BB5BuLL, 0x00000000A302DD20uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x000000010747AE14uLL, 0x00000000F8EBDA59uLL, 0x00000000417B730AuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAAAuLL, 0x00000000AAAAAAA8uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0000000180000000uLL, 0x00000000AAAAAAA9uLL, 0x000000017FFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x00000001FFFFFFFDuLL, 0x0000000080000000uLL, 0x000000007FFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x00000001FFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x00000001FFFFFFFCuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x000000017FFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0000000200000000uLL, 0x000000007FFFFFFFuLL, 0x00000000FFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0000000200000001uLL, 0x000000007FFFFFFFuLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0000000200000002uLL, 0x000000007FFFFFFFuLL, 0x0000000000000000uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0000000200000003uLL, 0x000000007FFFFFFEuLL, 0x0000000180000004uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0000000200000010uLL, 0x000000007FFFFFFBuLL, 0x000000010000004EuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x00000002078644FAuLL, 0x000000007E256849uLL, 0x000000014A8EC4B4uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x000000020747AE14uLL, 0x000000007E349CA6uLL, 0x000000016560EF06uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x000000027FFFFFFFuLL, 0x0000000066666666uLL, 0x0000000066666664uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0000000280000000uLL, 0x0000000066666665uLL, 0x000000027FFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x00000002FFFFFFFDuLL, 0x0000000055555555uLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x00000002FFFFFFFEuLL, 0x0000000055555555uLL, 0x00000000AAAAAAA8uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x00000002FFFFFFFFuLL, 0x0000000055555555uLL, 0x0000000055555553uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0000000300000000uLL, 0x0000000055555554uLL, 0x00000002FFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0000000300000001uLL, 0x0000000055555554uLL, 0x00000002AAAAAAAAuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0000000300000002uLL, 0x0000000055555554uLL, 0x0000000255555556uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x0000000200000002uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0000000300000010uLL, 0x0000000055555553uLL, 0x00000000AAAAAACEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x00000003078644FAuLL, 0x0000000054816148uLL, 0x00000000381FDFAEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x000000030747AE14uLL, 0x00000000548833C6uLL, 0x000000010C416086uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x000000037FFFFFFFuLL, 0x0000000049249248uLL, 0x0000000349249246uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0000000380000000uLL, 0x0000000049249248uLL, 0x00000002FFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x00000003FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000003BFFFFFFBuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x00000003FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x000000037FFFFFFCuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x00000003FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x000000033FFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000EFFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000EEFFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000EE0000000uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000ED0000001uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000E0000000EuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x00000002FFFDE090uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x0000000547AA977EuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x000000030F83E0F6uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x00000002FFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0FuLL, 0x000000002D2D2D2BuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0FuLL, 0x000000001E1E1E1CuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0FuLL, 0x000000000F0F0F0DuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFFDCuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFFBAuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFF98uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFDDEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6CA002AD6CAuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6CA087AE156uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6BA00000020uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6B9FFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6A900000064uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6A900000042uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6A900000020uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x01333342FFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x01333342FFFFFFDBuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x01333342FFFFFFB8uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x01333342FFFFFF95uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x01333342FFFFFDCEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x01333341F8A491D0uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x0133334201333342uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x0133333180000021uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x013333317FFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x0133332000000067uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133332000000044uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133332000000021uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFCuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFAuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000002uLL, 0x00000000FFFFFFF8uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000002uLL, 0x00000000FFFFFFDEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000002uLL, 0x00000000F0F3760AuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000002uLL, 0x00000000F170A3D6uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000002uLL, 0x0000000000000000uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x7FFFFFFF7FFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFF00000001uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFF00000000uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFCuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFBuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFEEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFEF879BB04uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFEF8B851EAuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE7FFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE7FFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000001uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000000uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFDFFFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFCuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFBuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000001uLL, 0x00000001FFFFFFEEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000001uLL, 0x00000001F879BB04uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000001uLL, 0x00000001F8B851EAuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000001uLL, 0x000000017FFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000001uLL, 0x000000017FFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000100000001uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFCuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFBuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFEEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB04uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EAuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFEuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000001uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000000uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000002uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000003uLL, 0x55555554FFFFFFFFuLL, 0x0000000000000002uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000010uLL, 0x0FFFFFFFEFFFFFFFuLL, 0x000000000000000FuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x00000000078644FAuLL, 0x0000002205B17ADBuLL, 0x000000000069DA21uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x000000000747AE14uLL, 0x000000232A32A558uLL, 0x000000000441451FuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x0000000200000002uLL, 0x0000000000000001uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0000000080000000uLL, 0x00000001FFFFFFFDuLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x00000000FFFFFFFDuLL, 0x0000000100000002uLL, 0x0000000000000005uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x0000000100000001uLL, 0x0000000000000001uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0000000100000000uLL, 0x00000000FFFFFFFEuLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0000000100000001uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000001uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0000000100000002uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000005uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0000000100000003uLL, 0x00000000FFFFFFFCuLL, 0x000000000000000BuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0000000100000010uLL, 0x00000000FFFFFFEFuLL, 0x000000000000010FuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x00000001078644FAuLL, 0x00000000F8B0BB5BuLL, 0x00000000A302DD21uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x000000010747AE14uLL, 0x00000000F8EBDA59uLL, 0x00000000417B730BuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAAAuLL, 0x00000000AAAAAAA9uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0000000180000000uLL, 0x00000000AAAAAAA9uLL, 0x000000017FFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x00000001FFFFFFFDuLL, 0x0000000080000000uLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x00000001FFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x00000001FFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x000000017FFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0000000200000000uLL, 0x000000007FFFFFFFuLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0000000200000001uLL, 0x000000007FFFFFFFuLL, 0x0000000080000000uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0000000200000002uLL, 0x000000007FFFFFFFuLL, 0x0000000000000001uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0000000200000003uLL, 0x000000007FFFFFFEuLL, 0x0000000180000005uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0000000200000010uLL, 0x000000007FFFFFFBuLL, 0x000000010000004FuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x00000002078644FAuLL, 0x000000007E256849uLL, 0x000000014A8EC4B5uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x000000020747AE14uLL, 0x000000007E349CA6uLL, 0x000000016560EF07uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x000000027FFFFFFFuLL, 0x0000000066666666uLL, 0x0000000066666665uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0000000280000000uLL, 0x0000000066666665uLL, 0x000000027FFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x00000002FFFFFFFDuLL, 0x0000000055555555uLL, 0x00000000FFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x00000002FFFFFFFEuLL, 0x0000000055555555uLL, 0x00000000AAAAAAA9uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x00000002FFFFFFFFuLL, 0x0000000055555555uLL, 0x0000000055555554uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0000000300000000uLL, 0x0000000055555554uLL, 0x00000002FFFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0000000300000001uLL, 0x0000000055555554uLL, 0x00000002AAAAAAABuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0000000300000002uLL, 0x0000000055555554uLL, 0x0000000255555557uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x0000000200000003uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0000000300000010uLL, 0x0000000055555553uLL, 0x00000000AAAAAACFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x00000003078644FAuLL, 0x0000000054816148uLL, 0x00000000381FDFAFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x000000030747AE14uLL, 0x00000000548833C6uLL, 0x000000010C416087uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x000000037FFFFFFFuLL, 0x0000000049249248uLL, 0x0000000349249247uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0000000380000000uLL, 0x0000000049249248uLL, 0x00000002FFFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x00000003FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000003BFFFFFFCuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x00000003FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x000000037FFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x00000003FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x000000033FFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000EFFFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000EF0000000uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000EE0000001uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000ED0000002uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000E0000000FuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x00000002FFFDE091uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x0000000547AA977FuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x000000030F83E0F7uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x00000002FFFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0FuLL, 0x000000002D2D2D2CuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0FuLL, 0x000000001E1E1E1DuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0FuLL, 0x000000000F0F0F0EuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFFDDuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFFBBuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFF99uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFDDFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6CA002AD6CBuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6CA087AE157uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6BA00000021uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6B9FFFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6A900000065uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6A900000043uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6A900000021uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x01333342FFFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x01333342FFFFFFDCuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x01333342FFFFFFB9uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x01333342FFFFFF96uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x01333342FFFFFDCFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x01333341F8A491D1uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x0133334201333343uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x0133333180000022uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x013333317FFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x0133332000000068uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133332000000045uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133332000000022uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFBuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000002uLL, 0x00000000FFFFFFF9uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000002uLL, 0x00000000FFFFFFDFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000002uLL, 0x00000000F0F3760BuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000002uLL, 0x00000000F170A3D7uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000002uLL, 0x0000000000000001uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFF00000002uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFF00000001uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFF00000000uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFCuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFEFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFEF879BB05uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFEF8B851EBuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE80000000uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE7FFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000002uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000001uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000000uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFCuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000001uLL, 0x00000001FFFFFFEFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000001uLL, 0x00000001F879BB05uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000001uLL, 0x00000001F8B851EBuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000180000000uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000001uLL, 0x000000017FFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000100000002uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000100000001uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFCuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFEFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB05uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EBuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000000uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFFuLL}, +{0xFFFFFFFEFFFFFFFFuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFEFFFFFFFFuLL}, +{0xFFFFFFFF00000000uLL, 0x0000000000000001uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000000uLL}, +{0xFFFFFFFF00000000uLL, 0x0000000000000002uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000000uLL}, +{0xFFFFFFFF00000000uLL, 0x0000000000000003uLL, 0x5555555500000000uLL, 0x0000000000000000uLL}, +{0xFFFFFFFF00000000uLL, 0x0000000000000010uLL, 0x0FFFFFFFF0000000uLL, 0x0000000000000000uLL}, +{0xFFFFFFFF00000000uLL, 0x00000000078644FAuLL, 0x0000002205B17ADBuLL, 0x000000000069DA22uLL}, +{0xFFFFFFFF00000000uLL, 0x000000000747AE14uLL, 0x000000232A32A558uLL, 0x0000000004414520uLL}, +{0xFFFFFFFF00000000uLL, 0x000000007FFFFFFFuLL, 0x0000000200000002uLL, 0x0000000000000002uLL}, +{0xFFFFFFFF00000000uLL, 0x0000000080000000uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000000uLL}, +{0xFFFFFFFF00000000uLL, 0x00000000FFFFFFFDuLL, 0x0000000100000002uLL, 0x0000000000000006uLL}, +{0xFFFFFFFF00000000uLL, 0x00000000FFFFFFFEuLL, 0x0000000100000001uLL, 0x0000000000000002uLL}, +{0xFFFFFFFF00000000uLL, 0x00000000FFFFFFFFuLL, 0x0000000100000000uLL, 0x0000000000000000uLL}, +{0xFFFFFFFF00000000uLL, 0x0000000100000000uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000000uLL}, +{0xFFFFFFFF00000000uLL, 0x0000000100000001uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000002uLL}, +{0xFFFFFFFF00000000uLL, 0x0000000100000002uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000006uLL}, +{0xFFFFFFFF00000000uLL, 0x0000000100000003uLL, 0x00000000FFFFFFFCuLL, 0x000000000000000CuLL}, +{0xFFFFFFFF00000000uLL, 0x0000000100000010uLL, 0x00000000FFFFFFEFuLL, 0x0000000000000110uLL}, +{0xFFFFFFFF00000000uLL, 0x00000001078644FAuLL, 0x00000000F8B0BB5BuLL, 0x00000000A302DD22uLL}, +{0xFFFFFFFF00000000uLL, 0x000000010747AE14uLL, 0x00000000F8EBDA59uLL, 0x00000000417B730CuLL}, +{0xFFFFFFFF00000000uLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAAAuLL, 0x00000000AAAAAAAAuLL}, +{0xFFFFFFFF00000000uLL, 0x0000000180000000uLL, 0x00000000AAAAAAAAuLL, 0x0000000000000000uLL}, +{0xFFFFFFFF00000000uLL, 0x00000001FFFFFFFDuLL, 0x0000000080000000uLL, 0x0000000080000000uLL}, +{0xFFFFFFFF00000000uLL, 0x00000001FFFFFFFEuLL, 0x0000000080000000uLL, 0x0000000000000000uLL}, +{0xFFFFFFFF00000000uLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x000000017FFFFFFFuLL}, +{0xFFFFFFFF00000000uLL, 0x0000000200000000uLL, 0x000000007FFFFFFFuLL, 0x0000000100000000uLL}, +{0xFFFFFFFF00000000uLL, 0x0000000200000001uLL, 0x000000007FFFFFFFuLL, 0x0000000080000001uLL}, +{0xFFFFFFFF00000000uLL, 0x0000000200000002uLL, 0x000000007FFFFFFFuLL, 0x0000000000000002uLL}, +{0xFFFFFFFF00000000uLL, 0x0000000200000003uLL, 0x000000007FFFFFFEuLL, 0x0000000180000006uLL}, +{0xFFFFFFFF00000000uLL, 0x0000000200000010uLL, 0x000000007FFFFFFBuLL, 0x0000000100000050uLL}, +{0xFFFFFFFF00000000uLL, 0x00000002078644FAuLL, 0x000000007E256849uLL, 0x000000014A8EC4B6uLL}, +{0xFFFFFFFF00000000uLL, 0x000000020747AE14uLL, 0x000000007E349CA6uLL, 0x000000016560EF08uLL}, +{0xFFFFFFFF00000000uLL, 0x000000027FFFFFFFuLL, 0x0000000066666666uLL, 0x0000000066666666uLL}, +{0xFFFFFFFF00000000uLL, 0x0000000280000000uLL, 0x0000000066666666uLL, 0x0000000000000000uLL}, +{0xFFFFFFFF00000000uLL, 0x00000002FFFFFFFDuLL, 0x0000000055555555uLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFF00000000uLL, 0x00000002FFFFFFFEuLL, 0x0000000055555555uLL, 0x00000000AAAAAAAAuLL}, +{0xFFFFFFFF00000000uLL, 0x00000002FFFFFFFFuLL, 0x0000000055555555uLL, 0x0000000055555555uLL}, +{0xFFFFFFFF00000000uLL, 0x0000000300000000uLL, 0x0000000055555555uLL, 0x0000000000000000uLL}, +{0xFFFFFFFF00000000uLL, 0x0000000300000001uLL, 0x0000000055555554uLL, 0x00000002AAAAAAACuLL}, +{0xFFFFFFFF00000000uLL, 0x0000000300000002uLL, 0x0000000055555554uLL, 0x0000000255555558uLL}, +{0xFFFFFFFF00000000uLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x0000000200000004uLL}, +{0xFFFFFFFF00000000uLL, 0x0000000300000010uLL, 0x0000000055555553uLL, 0x00000000AAAAAAD0uLL}, +{0xFFFFFFFF00000000uLL, 0x00000003078644FAuLL, 0x0000000054816148uLL, 0x00000000381FDFB0uLL}, +{0xFFFFFFFF00000000uLL, 0x000000030747AE14uLL, 0x00000000548833C6uLL, 0x000000010C416088uLL}, +{0xFFFFFFFF00000000uLL, 0x000000037FFFFFFFuLL, 0x0000000049249248uLL, 0x0000000349249248uLL}, +{0xFFFFFFFF00000000uLL, 0x0000000380000000uLL, 0x0000000049249248uLL, 0x0000000300000000uLL}, +{0xFFFFFFFF00000000uLL, 0x00000003FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000003BFFFFFFDuLL}, +{0xFFFFFFFF00000000uLL, 0x00000003FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x000000037FFFFFFEuLL}, +{0xFFFFFFFF00000000uLL, 0x00000003FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x000000033FFFFFFFuLL}, +{0xFFFFFFFF00000000uLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000F00000000uLL}, +{0xFFFFFFFF00000000uLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000EF0000001uLL}, +{0xFFFFFFFF00000000uLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000EE0000002uLL}, +{0xFFFFFFFF00000000uLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000ED0000003uLL}, +{0xFFFFFFFF00000000uLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000E00000010uLL}, +{0xFFFFFFFF00000000uLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x00000002FFFDE092uLL}, +{0xFFFFFFFF00000000uLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x0000000547AA9780uLL}, +{0xFFFFFFFF00000000uLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x000000030F83E0F8uLL}, +{0xFFFFFFFF00000000uLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x0000000300000000uLL}, +{0xFFFFFFFF00000000uLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0FuLL, 0x000000002D2D2D2DuLL}, +{0xFFFFFFFF00000000uLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0FuLL, 0x000000001E1E1E1EuLL}, +{0xFFFFFFFF00000000uLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0FuLL, 0x000000000F0F0F0FuLL}, +{0xFFFFFFFF00000000uLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6CB00000000uLL}, +{0xFFFFFFFF00000000uLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFFDEuLL}, +{0xFFFFFFFF00000000uLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFFBCuLL}, +{0xFFFFFFFF00000000uLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFF9AuLL}, +{0xFFFFFFFF00000000uLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFDE0uLL}, +{0xFFFFFFFF00000000uLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6CA002AD6CCuLL}, +{0xFFFFFFFF00000000uLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6CA087AE158uLL}, +{0xFFFFFFFF00000000uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6BA00000022uLL}, +{0xFFFFFFFF00000000uLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6BA00000000uLL}, +{0xFFFFFFFF00000000uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6A900000066uLL}, +{0xFFFFFFFF00000000uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6A900000044uLL}, +{0xFFFFFFFF00000000uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6A900000022uLL}, +{0xFFFFFFFF00000000uLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x0133334300000000uLL}, +{0xFFFFFFFF00000000uLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x01333342FFFFFFDDuLL}, +{0xFFFFFFFF00000000uLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x01333342FFFFFFBAuLL}, +{0xFFFFFFFF00000000uLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x01333342FFFFFF97uLL}, +{0xFFFFFFFF00000000uLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x01333342FFFFFDD0uLL}, +{0xFFFFFFFF00000000uLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x01333341F8A491D2uLL}, +{0xFFFFFFFF00000000uLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x0133334201333344uLL}, +{0xFFFFFFFF00000000uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x0133333180000023uLL}, +{0xFFFFFFFF00000000uLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x0133333180000000uLL}, +{0xFFFFFFFF00000000uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x0133332000000069uLL}, +{0xFFFFFFFF00000000uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133332000000046uLL}, +{0xFFFFFFFF00000000uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133332000000023uLL}, +{0xFFFFFFFF00000000uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000002uLL, 0x0000000100000000uLL}, +{0xFFFFFFFF00000000uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFEuLL}, +{0xFFFFFFFF00000000uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFCuLL}, +{0xFFFFFFFF00000000uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFAuLL}, +{0xFFFFFFFF00000000uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000002uLL, 0x00000000FFFFFFE0uLL}, +{0xFFFFFFFF00000000uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000002uLL, 0x00000000F0F3760CuLL}, +{0xFFFFFFFF00000000uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000002uLL, 0x00000000F170A3D8uLL}, +{0xFFFFFFFF00000000uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000002uLL, 0x0000000000000002uLL}, +{0xFFFFFFFF00000000uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000002uLL, 0x0000000000000000uLL}, +{0xFFFFFFFF00000000uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFF00000003uLL}, +{0xFFFFFFFF00000000uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFF00000002uLL}, +{0xFFFFFFFF00000000uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFF00000001uLL}, +{0xFFFFFFFF00000000uLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFF00000000uLL}, +{0xFFFFFFFF00000000uLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFFuLL}, +{0xFFFFFFFF00000000uLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFEuLL}, +{0xFFFFFFFF00000000uLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFDuLL}, +{0xFFFFFFFF00000000uLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFF0uLL}, +{0xFFFFFFFF00000000uLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFEF879BB06uLL}, +{0xFFFFFFFF00000000uLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFEF8B851ECuLL}, +{0xFFFFFFFF00000000uLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE80000001uLL}, +{0xFFFFFFFF00000000uLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE80000000uLL}, +{0xFFFFFFFF00000000uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000003uLL}, +{0xFFFFFFFF00000000uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000002uLL}, +{0xFFFFFFFF00000000uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000001uLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x0000000200000000uLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFFuLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFEuLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFDuLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000001uLL, 0x00000001FFFFFFF0uLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000001uLL, 0x00000001F879BB06uLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000001uLL, 0x00000001F8B851ECuLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000180000001uLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000001uLL, 0x0000000180000000uLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000100000003uLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000100000002uLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000100000001uLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFF0uLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB06uLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851ECuLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000001uLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000001uLL, 0x0000000080000000uLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000003uLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL, 0xFFFFFFFF00000000uLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFF00000000uLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFF00000000uLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFF00000000uLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFF00000000uLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFF00000000uLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFF00000000uLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFF00000000uLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFF00000000uLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFF00000000uLL}, +{0xFFFFFFFF00000000uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFF00000000uLL}, +{0xFFFFFFFF00000001uLL, 0x0000000000000001uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFF00000001uLL, 0x0000000000000002uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000001uLL}, +{0xFFFFFFFF00000001uLL, 0x0000000000000003uLL, 0x5555555500000000uLL, 0x0000000000000001uLL}, +{0xFFFFFFFF00000001uLL, 0x0000000000000010uLL, 0x0FFFFFFFF0000000uLL, 0x0000000000000001uLL}, +{0xFFFFFFFF00000001uLL, 0x00000000078644FAuLL, 0x0000002205B17ADBuLL, 0x000000000069DA23uLL}, +{0xFFFFFFFF00000001uLL, 0x000000000747AE14uLL, 0x000000232A32A558uLL, 0x0000000004414521uLL}, +{0xFFFFFFFF00000001uLL, 0x000000007FFFFFFFuLL, 0x0000000200000002uLL, 0x0000000000000003uLL}, +{0xFFFFFFFF00000001uLL, 0x0000000080000000uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000001uLL}, +{0xFFFFFFFF00000001uLL, 0x00000000FFFFFFFDuLL, 0x0000000100000002uLL, 0x0000000000000007uLL}, +{0xFFFFFFFF00000001uLL, 0x00000000FFFFFFFEuLL, 0x0000000100000001uLL, 0x0000000000000003uLL}, +{0xFFFFFFFF00000001uLL, 0x00000000FFFFFFFFuLL, 0x0000000100000000uLL, 0x0000000000000001uLL}, +{0xFFFFFFFF00000001uLL, 0x0000000100000000uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000001uLL}, +{0xFFFFFFFF00000001uLL, 0x0000000100000001uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000003uLL}, +{0xFFFFFFFF00000001uLL, 0x0000000100000002uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000007uLL}, +{0xFFFFFFFF00000001uLL, 0x0000000100000003uLL, 0x00000000FFFFFFFCuLL, 0x000000000000000DuLL}, +{0xFFFFFFFF00000001uLL, 0x0000000100000010uLL, 0x00000000FFFFFFEFuLL, 0x0000000000000111uLL}, +{0xFFFFFFFF00000001uLL, 0x00000001078644FAuLL, 0x00000000F8B0BB5BuLL, 0x00000000A302DD23uLL}, +{0xFFFFFFFF00000001uLL, 0x000000010747AE14uLL, 0x00000000F8EBDA59uLL, 0x00000000417B730DuLL}, +{0xFFFFFFFF00000001uLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAAAuLL, 0x00000000AAAAAAABuLL}, +{0xFFFFFFFF00000001uLL, 0x0000000180000000uLL, 0x00000000AAAAAAAAuLL, 0x0000000000000001uLL}, +{0xFFFFFFFF00000001uLL, 0x00000001FFFFFFFDuLL, 0x0000000080000000uLL, 0x0000000080000001uLL}, +{0xFFFFFFFF00000001uLL, 0x00000001FFFFFFFEuLL, 0x0000000080000000uLL, 0x0000000000000001uLL}, +{0xFFFFFFFF00000001uLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x0000000180000000uLL}, +{0xFFFFFFFF00000001uLL, 0x0000000200000000uLL, 0x000000007FFFFFFFuLL, 0x0000000100000001uLL}, +{0xFFFFFFFF00000001uLL, 0x0000000200000001uLL, 0x000000007FFFFFFFuLL, 0x0000000080000002uLL}, +{0xFFFFFFFF00000001uLL, 0x0000000200000002uLL, 0x000000007FFFFFFFuLL, 0x0000000000000003uLL}, +{0xFFFFFFFF00000001uLL, 0x0000000200000003uLL, 0x000000007FFFFFFEuLL, 0x0000000180000007uLL}, +{0xFFFFFFFF00000001uLL, 0x0000000200000010uLL, 0x000000007FFFFFFBuLL, 0x0000000100000051uLL}, +{0xFFFFFFFF00000001uLL, 0x00000002078644FAuLL, 0x000000007E256849uLL, 0x000000014A8EC4B7uLL}, +{0xFFFFFFFF00000001uLL, 0x000000020747AE14uLL, 0x000000007E349CA6uLL, 0x000000016560EF09uLL}, +{0xFFFFFFFF00000001uLL, 0x000000027FFFFFFFuLL, 0x0000000066666666uLL, 0x0000000066666667uLL}, +{0xFFFFFFFF00000001uLL, 0x0000000280000000uLL, 0x0000000066666666uLL, 0x0000000000000001uLL}, +{0xFFFFFFFF00000001uLL, 0x00000002FFFFFFFDuLL, 0x0000000055555555uLL, 0x0000000100000000uLL}, +{0xFFFFFFFF00000001uLL, 0x00000002FFFFFFFEuLL, 0x0000000055555555uLL, 0x00000000AAAAAAABuLL}, +{0xFFFFFFFF00000001uLL, 0x00000002FFFFFFFFuLL, 0x0000000055555555uLL, 0x0000000055555556uLL}, +{0xFFFFFFFF00000001uLL, 0x0000000300000000uLL, 0x0000000055555555uLL, 0x0000000000000001uLL}, +{0xFFFFFFFF00000001uLL, 0x0000000300000001uLL, 0x0000000055555554uLL, 0x00000002AAAAAAADuLL}, +{0xFFFFFFFF00000001uLL, 0x0000000300000002uLL, 0x0000000055555554uLL, 0x0000000255555559uLL}, +{0xFFFFFFFF00000001uLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x0000000200000005uLL}, +{0xFFFFFFFF00000001uLL, 0x0000000300000010uLL, 0x0000000055555553uLL, 0x00000000AAAAAAD1uLL}, +{0xFFFFFFFF00000001uLL, 0x00000003078644FAuLL, 0x0000000054816148uLL, 0x00000000381FDFB1uLL}, +{0xFFFFFFFF00000001uLL, 0x000000030747AE14uLL, 0x00000000548833C6uLL, 0x000000010C416089uLL}, +{0xFFFFFFFF00000001uLL, 0x000000037FFFFFFFuLL, 0x0000000049249248uLL, 0x0000000349249249uLL}, +{0xFFFFFFFF00000001uLL, 0x0000000380000000uLL, 0x0000000049249248uLL, 0x0000000300000001uLL}, +{0xFFFFFFFF00000001uLL, 0x00000003FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000003BFFFFFFEuLL}, +{0xFFFFFFFF00000001uLL, 0x00000003FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x000000037FFFFFFFuLL}, +{0xFFFFFFFF00000001uLL, 0x00000003FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x0000000340000000uLL}, +{0xFFFFFFFF00000001uLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000F00000001uLL}, +{0xFFFFFFFF00000001uLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000EF0000002uLL}, +{0xFFFFFFFF00000001uLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000EE0000003uLL}, +{0xFFFFFFFF00000001uLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000ED0000004uLL}, +{0xFFFFFFFF00000001uLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000E00000011uLL}, +{0xFFFFFFFF00000001uLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x00000002FFFDE093uLL}, +{0xFFFFFFFF00000001uLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x0000000547AA9781uLL}, +{0xFFFFFFFF00000001uLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x000000030F83E0F9uLL}, +{0xFFFFFFFF00000001uLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x0000000300000001uLL}, +{0xFFFFFFFF00000001uLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0FuLL, 0x000000002D2D2D2EuLL}, +{0xFFFFFFFF00000001uLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0FuLL, 0x000000001E1E1E1FuLL}, +{0xFFFFFFFF00000001uLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0FuLL, 0x000000000F0F0F10uLL}, +{0xFFFFFFFF00000001uLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6CB00000001uLL}, +{0xFFFFFFFF00000001uLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFFDFuLL}, +{0xFFFFFFFF00000001uLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFFBDuLL}, +{0xFFFFFFFF00000001uLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFF9BuLL}, +{0xFFFFFFFF00000001uLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFDE1uLL}, +{0xFFFFFFFF00000001uLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6CA002AD6CDuLL}, +{0xFFFFFFFF00000001uLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6CA087AE159uLL}, +{0xFFFFFFFF00000001uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6BA00000023uLL}, +{0xFFFFFFFF00000001uLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6BA00000001uLL}, +{0xFFFFFFFF00000001uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6A900000067uLL}, +{0xFFFFFFFF00000001uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6A900000045uLL}, +{0xFFFFFFFF00000001uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6A900000023uLL}, +{0xFFFFFFFF00000001uLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x0133334300000001uLL}, +{0xFFFFFFFF00000001uLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x01333342FFFFFFDEuLL}, +{0xFFFFFFFF00000001uLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x01333342FFFFFFBBuLL}, +{0xFFFFFFFF00000001uLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x01333342FFFFFF98uLL}, +{0xFFFFFFFF00000001uLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x01333342FFFFFDD1uLL}, +{0xFFFFFFFF00000001uLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x01333341F8A491D3uLL}, +{0xFFFFFFFF00000001uLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x0133334201333345uLL}, +{0xFFFFFFFF00000001uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x0133333180000024uLL}, +{0xFFFFFFFF00000001uLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x0133333180000001uLL}, +{0xFFFFFFFF00000001uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x013333200000006AuLL}, +{0xFFFFFFFF00000001uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133332000000047uLL}, +{0xFFFFFFFF00000001uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133332000000024uLL}, +{0xFFFFFFFF00000001uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000002uLL, 0x0000000100000001uLL}, +{0xFFFFFFFF00000001uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFF00000001uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFF00000001uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFBuLL}, +{0xFFFFFFFF00000001uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000002uLL, 0x00000000FFFFFFE1uLL}, +{0xFFFFFFFF00000001uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000002uLL, 0x00000000F0F3760DuLL}, +{0xFFFFFFFF00000001uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000002uLL, 0x00000000F170A3D9uLL}, +{0xFFFFFFFF00000001uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000002uLL, 0x0000000000000003uLL}, +{0xFFFFFFFF00000001uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000002uLL, 0x0000000000000001uLL}, +{0xFFFFFFFF00000001uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFF00000004uLL}, +{0xFFFFFFFF00000001uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFF00000003uLL}, +{0xFFFFFFFF00000001uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFF00000002uLL}, +{0xFFFFFFFF00000001uLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFF00000001uLL}, +{0xFFFFFFFF00000001uLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFF00000000uLL}, +{0xFFFFFFFF00000001uLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFFuLL}, +{0xFFFFFFFF00000001uLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFEuLL}, +{0xFFFFFFFF00000001uLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFF1uLL}, +{0xFFFFFFFF00000001uLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFEF879BB07uLL}, +{0xFFFFFFFF00000001uLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFEF8B851EDuLL}, +{0xFFFFFFFF00000001uLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE80000002uLL}, +{0xFFFFFFFF00000001uLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE80000001uLL}, +{0xFFFFFFFF00000001uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000004uLL}, +{0xFFFFFFFF00000001uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000003uLL}, +{0xFFFFFFFF00000001uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000002uLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x0000000200000001uLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x0000000200000000uLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFFuLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFEuLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000001uLL, 0x00000001FFFFFFF1uLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000001uLL, 0x00000001F879BB07uLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000001uLL, 0x00000001F8B851EDuLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000180000002uLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000001uLL, 0x0000000180000001uLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000100000004uLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000100000003uLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000100000002uLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000001uLL, 0x0000000100000001uLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFF1uLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB07uLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EDuLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000002uLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000001uLL, 0x0000000080000001uLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000004uLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000003uLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL, 0xFFFFFFFF00000001uLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFF00000001uLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFF00000001uLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFF00000001uLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFF00000001uLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFF00000001uLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFF00000001uLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFF00000001uLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFF00000001uLL}, +{0xFFFFFFFF00000001uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFF00000001uLL}, +{0xFFFFFFFF00000002uLL, 0x0000000000000001uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000000uLL}, +{0xFFFFFFFF00000002uLL, 0x0000000000000002uLL, 0x7FFFFFFF80000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFF00000002uLL, 0x0000000000000003uLL, 0x5555555500000000uLL, 0x0000000000000002uLL}, +{0xFFFFFFFF00000002uLL, 0x0000000000000010uLL, 0x0FFFFFFFF0000000uLL, 0x0000000000000002uLL}, +{0xFFFFFFFF00000002uLL, 0x00000000078644FAuLL, 0x0000002205B17ADBuLL, 0x000000000069DA24uLL}, +{0xFFFFFFFF00000002uLL, 0x000000000747AE14uLL, 0x000000232A32A558uLL, 0x0000000004414522uLL}, +{0xFFFFFFFF00000002uLL, 0x000000007FFFFFFFuLL, 0x0000000200000002uLL, 0x0000000000000004uLL}, +{0xFFFFFFFF00000002uLL, 0x0000000080000000uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000002uLL}, +{0xFFFFFFFF00000002uLL, 0x00000000FFFFFFFDuLL, 0x0000000100000002uLL, 0x0000000000000008uLL}, +{0xFFFFFFFF00000002uLL, 0x00000000FFFFFFFEuLL, 0x0000000100000001uLL, 0x0000000000000004uLL}, +{0xFFFFFFFF00000002uLL, 0x00000000FFFFFFFFuLL, 0x0000000100000000uLL, 0x0000000000000002uLL}, +{0xFFFFFFFF00000002uLL, 0x0000000100000000uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000002uLL}, +{0xFFFFFFFF00000002uLL, 0x0000000100000001uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000004uLL}, +{0xFFFFFFFF00000002uLL, 0x0000000100000002uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000008uLL}, +{0xFFFFFFFF00000002uLL, 0x0000000100000003uLL, 0x00000000FFFFFFFCuLL, 0x000000000000000EuLL}, +{0xFFFFFFFF00000002uLL, 0x0000000100000010uLL, 0x00000000FFFFFFEFuLL, 0x0000000000000112uLL}, +{0xFFFFFFFF00000002uLL, 0x00000001078644FAuLL, 0x00000000F8B0BB5BuLL, 0x00000000A302DD24uLL}, +{0xFFFFFFFF00000002uLL, 0x000000010747AE14uLL, 0x00000000F8EBDA59uLL, 0x00000000417B730EuLL}, +{0xFFFFFFFF00000002uLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAAAuLL, 0x00000000AAAAAAACuLL}, +{0xFFFFFFFF00000002uLL, 0x0000000180000000uLL, 0x00000000AAAAAAAAuLL, 0x0000000000000002uLL}, +{0xFFFFFFFF00000002uLL, 0x00000001FFFFFFFDuLL, 0x0000000080000000uLL, 0x0000000080000002uLL}, +{0xFFFFFFFF00000002uLL, 0x00000001FFFFFFFEuLL, 0x0000000080000000uLL, 0x0000000000000002uLL}, +{0xFFFFFFFF00000002uLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x0000000180000001uLL}, +{0xFFFFFFFF00000002uLL, 0x0000000200000000uLL, 0x000000007FFFFFFFuLL, 0x0000000100000002uLL}, +{0xFFFFFFFF00000002uLL, 0x0000000200000001uLL, 0x000000007FFFFFFFuLL, 0x0000000080000003uLL}, +{0xFFFFFFFF00000002uLL, 0x0000000200000002uLL, 0x000000007FFFFFFFuLL, 0x0000000000000004uLL}, +{0xFFFFFFFF00000002uLL, 0x0000000200000003uLL, 0x000000007FFFFFFEuLL, 0x0000000180000008uLL}, +{0xFFFFFFFF00000002uLL, 0x0000000200000010uLL, 0x000000007FFFFFFBuLL, 0x0000000100000052uLL}, +{0xFFFFFFFF00000002uLL, 0x00000002078644FAuLL, 0x000000007E256849uLL, 0x000000014A8EC4B8uLL}, +{0xFFFFFFFF00000002uLL, 0x000000020747AE14uLL, 0x000000007E349CA6uLL, 0x000000016560EF0AuLL}, +{0xFFFFFFFF00000002uLL, 0x000000027FFFFFFFuLL, 0x0000000066666666uLL, 0x0000000066666668uLL}, +{0xFFFFFFFF00000002uLL, 0x0000000280000000uLL, 0x0000000066666666uLL, 0x0000000000000002uLL}, +{0xFFFFFFFF00000002uLL, 0x00000002FFFFFFFDuLL, 0x0000000055555555uLL, 0x0000000100000001uLL}, +{0xFFFFFFFF00000002uLL, 0x00000002FFFFFFFEuLL, 0x0000000055555555uLL, 0x00000000AAAAAAACuLL}, +{0xFFFFFFFF00000002uLL, 0x00000002FFFFFFFFuLL, 0x0000000055555555uLL, 0x0000000055555557uLL}, +{0xFFFFFFFF00000002uLL, 0x0000000300000000uLL, 0x0000000055555555uLL, 0x0000000000000002uLL}, +{0xFFFFFFFF00000002uLL, 0x0000000300000001uLL, 0x0000000055555554uLL, 0x00000002AAAAAAAEuLL}, +{0xFFFFFFFF00000002uLL, 0x0000000300000002uLL, 0x0000000055555554uLL, 0x000000025555555AuLL}, +{0xFFFFFFFF00000002uLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x0000000200000006uLL}, +{0xFFFFFFFF00000002uLL, 0x0000000300000010uLL, 0x0000000055555553uLL, 0x00000000AAAAAAD2uLL}, +{0xFFFFFFFF00000002uLL, 0x00000003078644FAuLL, 0x0000000054816148uLL, 0x00000000381FDFB2uLL}, +{0xFFFFFFFF00000002uLL, 0x000000030747AE14uLL, 0x00000000548833C6uLL, 0x000000010C41608AuLL}, +{0xFFFFFFFF00000002uLL, 0x000000037FFFFFFFuLL, 0x0000000049249248uLL, 0x000000034924924AuLL}, +{0xFFFFFFFF00000002uLL, 0x0000000380000000uLL, 0x0000000049249248uLL, 0x0000000300000002uLL}, +{0xFFFFFFFF00000002uLL, 0x00000003FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000003BFFFFFFFuLL}, +{0xFFFFFFFF00000002uLL, 0x00000003FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x0000000380000000uLL}, +{0xFFFFFFFF00000002uLL, 0x00000003FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x0000000340000001uLL}, +{0xFFFFFFFF00000002uLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000F00000002uLL}, +{0xFFFFFFFF00000002uLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000EF0000003uLL}, +{0xFFFFFFFF00000002uLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000EE0000004uLL}, +{0xFFFFFFFF00000002uLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000ED0000005uLL}, +{0xFFFFFFFF00000002uLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000E00000012uLL}, +{0xFFFFFFFF00000002uLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x00000002FFFDE094uLL}, +{0xFFFFFFFF00000002uLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x0000000547AA9782uLL}, +{0xFFFFFFFF00000002uLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x000000030F83E0FAuLL}, +{0xFFFFFFFF00000002uLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x0000000300000002uLL}, +{0xFFFFFFFF00000002uLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0FuLL, 0x000000002D2D2D2FuLL}, +{0xFFFFFFFF00000002uLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0FuLL, 0x000000001E1E1E20uLL}, +{0xFFFFFFFF00000002uLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0FuLL, 0x000000000F0F0F11uLL}, +{0xFFFFFFFF00000002uLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6CB00000002uLL}, +{0xFFFFFFFF00000002uLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFFE0uLL}, +{0xFFFFFFFF00000002uLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFFBEuLL}, +{0xFFFFFFFF00000002uLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFF9CuLL}, +{0xFFFFFFFF00000002uLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFDE2uLL}, +{0xFFFFFFFF00000002uLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6CA002AD6CEuLL}, +{0xFFFFFFFF00000002uLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6CA087AE15AuLL}, +{0xFFFFFFFF00000002uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6BA00000024uLL}, +{0xFFFFFFFF00000002uLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6BA00000002uLL}, +{0xFFFFFFFF00000002uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6A900000068uLL}, +{0xFFFFFFFF00000002uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6A900000046uLL}, +{0xFFFFFFFF00000002uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6A900000024uLL}, +{0xFFFFFFFF00000002uLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x0133334300000002uLL}, +{0xFFFFFFFF00000002uLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x01333342FFFFFFDFuLL}, +{0xFFFFFFFF00000002uLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x01333342FFFFFFBCuLL}, +{0xFFFFFFFF00000002uLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x01333342FFFFFF99uLL}, +{0xFFFFFFFF00000002uLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x01333342FFFFFDD2uLL}, +{0xFFFFFFFF00000002uLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x01333341F8A491D4uLL}, +{0xFFFFFFFF00000002uLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x0133334201333346uLL}, +{0xFFFFFFFF00000002uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x0133333180000025uLL}, +{0xFFFFFFFF00000002uLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x0133333180000002uLL}, +{0xFFFFFFFF00000002uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x013333200000006BuLL}, +{0xFFFFFFFF00000002uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133332000000048uLL}, +{0xFFFFFFFF00000002uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133332000000025uLL}, +{0xFFFFFFFF00000002uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000002uLL, 0x0000000100000002uLL}, +{0xFFFFFFFF00000002uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000002uLL, 0x0000000100000000uLL}, +{0xFFFFFFFF00000002uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFEuLL}, +{0xFFFFFFFF00000002uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFCuLL}, +{0xFFFFFFFF00000002uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000002uLL, 0x00000000FFFFFFE2uLL}, +{0xFFFFFFFF00000002uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000002uLL, 0x00000000F0F3760EuLL}, +{0xFFFFFFFF00000002uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000002uLL, 0x00000000F170A3DAuLL}, +{0xFFFFFFFF00000002uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000002uLL, 0x0000000000000004uLL}, +{0xFFFFFFFF00000002uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000002uLL, 0x0000000000000002uLL}, +{0xFFFFFFFF00000002uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFF00000005uLL}, +{0xFFFFFFFF00000002uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFF00000004uLL}, +{0xFFFFFFFF00000002uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFF00000003uLL}, +{0xFFFFFFFF00000002uLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFF00000002uLL}, +{0xFFFFFFFF00000002uLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFF00000001uLL}, +{0xFFFFFFFF00000002uLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFF00000000uLL}, +{0xFFFFFFFF00000002uLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFFuLL}, +{0xFFFFFFFF00000002uLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFF2uLL}, +{0xFFFFFFFF00000002uLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFEF879BB08uLL}, +{0xFFFFFFFF00000002uLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFEF8B851EEuLL}, +{0xFFFFFFFF00000002uLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE80000003uLL}, +{0xFFFFFFFF00000002uLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE80000002uLL}, +{0xFFFFFFFF00000002uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000005uLL}, +{0xFFFFFFFF00000002uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000004uLL}, +{0xFFFFFFFF00000002uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000003uLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x0000000200000002uLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x0000000200000001uLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x0000000200000000uLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFFuLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000001uLL, 0x00000001FFFFFFF2uLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000001uLL, 0x00000001F879BB08uLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000001uLL, 0x00000001F8B851EEuLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000180000003uLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000001uLL, 0x0000000180000002uLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000100000005uLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000100000004uLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000100000003uLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000001uLL, 0x0000000100000002uLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000001uLL, 0x0000000100000001uLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFF2uLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB08uLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EEuLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000003uLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000001uLL, 0x0000000080000002uLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000005uLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000004uLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000003uLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL, 0xFFFFFFFF00000002uLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFF00000002uLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFF00000002uLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFF00000002uLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFF00000002uLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFF00000002uLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFF00000002uLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFF00000002uLL}, +{0xFFFFFFFF00000002uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFF00000002uLL}, +{0xFFFFFFFF00000003uLL, 0x0000000000000001uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000000uLL}, +{0xFFFFFFFF00000003uLL, 0x0000000000000002uLL, 0x7FFFFFFF80000001uLL, 0x0000000000000001uLL}, +{0xFFFFFFFF00000003uLL, 0x0000000000000003uLL, 0x5555555500000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFF00000003uLL, 0x0000000000000010uLL, 0x0FFFFFFFF0000000uLL, 0x0000000000000003uLL}, +{0xFFFFFFFF00000003uLL, 0x00000000078644FAuLL, 0x0000002205B17ADBuLL, 0x000000000069DA25uLL}, +{0xFFFFFFFF00000003uLL, 0x000000000747AE14uLL, 0x000000232A32A558uLL, 0x0000000004414523uLL}, +{0xFFFFFFFF00000003uLL, 0x000000007FFFFFFFuLL, 0x0000000200000002uLL, 0x0000000000000005uLL}, +{0xFFFFFFFF00000003uLL, 0x0000000080000000uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000003uLL}, +{0xFFFFFFFF00000003uLL, 0x00000000FFFFFFFDuLL, 0x0000000100000002uLL, 0x0000000000000009uLL}, +{0xFFFFFFFF00000003uLL, 0x00000000FFFFFFFEuLL, 0x0000000100000001uLL, 0x0000000000000005uLL}, +{0xFFFFFFFF00000003uLL, 0x00000000FFFFFFFFuLL, 0x0000000100000000uLL, 0x0000000000000003uLL}, +{0xFFFFFFFF00000003uLL, 0x0000000100000000uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000003uLL}, +{0xFFFFFFFF00000003uLL, 0x0000000100000001uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000005uLL}, +{0xFFFFFFFF00000003uLL, 0x0000000100000002uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000009uLL}, +{0xFFFFFFFF00000003uLL, 0x0000000100000003uLL, 0x00000000FFFFFFFCuLL, 0x000000000000000FuLL}, +{0xFFFFFFFF00000003uLL, 0x0000000100000010uLL, 0x00000000FFFFFFEFuLL, 0x0000000000000113uLL}, +{0xFFFFFFFF00000003uLL, 0x00000001078644FAuLL, 0x00000000F8B0BB5BuLL, 0x00000000A302DD25uLL}, +{0xFFFFFFFF00000003uLL, 0x000000010747AE14uLL, 0x00000000F8EBDA59uLL, 0x00000000417B730FuLL}, +{0xFFFFFFFF00000003uLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAAAuLL, 0x00000000AAAAAAADuLL}, +{0xFFFFFFFF00000003uLL, 0x0000000180000000uLL, 0x00000000AAAAAAAAuLL, 0x0000000000000003uLL}, +{0xFFFFFFFF00000003uLL, 0x00000001FFFFFFFDuLL, 0x0000000080000000uLL, 0x0000000080000003uLL}, +{0xFFFFFFFF00000003uLL, 0x00000001FFFFFFFEuLL, 0x0000000080000000uLL, 0x0000000000000003uLL}, +{0xFFFFFFFF00000003uLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x0000000180000002uLL}, +{0xFFFFFFFF00000003uLL, 0x0000000200000000uLL, 0x000000007FFFFFFFuLL, 0x0000000100000003uLL}, +{0xFFFFFFFF00000003uLL, 0x0000000200000001uLL, 0x000000007FFFFFFFuLL, 0x0000000080000004uLL}, +{0xFFFFFFFF00000003uLL, 0x0000000200000002uLL, 0x000000007FFFFFFFuLL, 0x0000000000000005uLL}, +{0xFFFFFFFF00000003uLL, 0x0000000200000003uLL, 0x000000007FFFFFFEuLL, 0x0000000180000009uLL}, +{0xFFFFFFFF00000003uLL, 0x0000000200000010uLL, 0x000000007FFFFFFBuLL, 0x0000000100000053uLL}, +{0xFFFFFFFF00000003uLL, 0x00000002078644FAuLL, 0x000000007E256849uLL, 0x000000014A8EC4B9uLL}, +{0xFFFFFFFF00000003uLL, 0x000000020747AE14uLL, 0x000000007E349CA6uLL, 0x000000016560EF0BuLL}, +{0xFFFFFFFF00000003uLL, 0x000000027FFFFFFFuLL, 0x0000000066666666uLL, 0x0000000066666669uLL}, +{0xFFFFFFFF00000003uLL, 0x0000000280000000uLL, 0x0000000066666666uLL, 0x0000000000000003uLL}, +{0xFFFFFFFF00000003uLL, 0x00000002FFFFFFFDuLL, 0x0000000055555555uLL, 0x0000000100000002uLL}, +{0xFFFFFFFF00000003uLL, 0x00000002FFFFFFFEuLL, 0x0000000055555555uLL, 0x00000000AAAAAAADuLL}, +{0xFFFFFFFF00000003uLL, 0x00000002FFFFFFFFuLL, 0x0000000055555555uLL, 0x0000000055555558uLL}, +{0xFFFFFFFF00000003uLL, 0x0000000300000000uLL, 0x0000000055555555uLL, 0x0000000000000003uLL}, +{0xFFFFFFFF00000003uLL, 0x0000000300000001uLL, 0x0000000055555554uLL, 0x00000002AAAAAAAFuLL}, +{0xFFFFFFFF00000003uLL, 0x0000000300000002uLL, 0x0000000055555554uLL, 0x000000025555555BuLL}, +{0xFFFFFFFF00000003uLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x0000000200000007uLL}, +{0xFFFFFFFF00000003uLL, 0x0000000300000010uLL, 0x0000000055555553uLL, 0x00000000AAAAAAD3uLL}, +{0xFFFFFFFF00000003uLL, 0x00000003078644FAuLL, 0x0000000054816148uLL, 0x00000000381FDFB3uLL}, +{0xFFFFFFFF00000003uLL, 0x000000030747AE14uLL, 0x00000000548833C6uLL, 0x000000010C41608BuLL}, +{0xFFFFFFFF00000003uLL, 0x000000037FFFFFFFuLL, 0x0000000049249248uLL, 0x000000034924924BuLL}, +{0xFFFFFFFF00000003uLL, 0x0000000380000000uLL, 0x0000000049249248uLL, 0x0000000300000003uLL}, +{0xFFFFFFFF00000003uLL, 0x00000003FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000003C0000000uLL}, +{0xFFFFFFFF00000003uLL, 0x00000003FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x0000000380000001uLL}, +{0xFFFFFFFF00000003uLL, 0x00000003FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x0000000340000002uLL}, +{0xFFFFFFFF00000003uLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000F00000003uLL}, +{0xFFFFFFFF00000003uLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000EF0000004uLL}, +{0xFFFFFFFF00000003uLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000EE0000005uLL}, +{0xFFFFFFFF00000003uLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000ED0000006uLL}, +{0xFFFFFFFF00000003uLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000E00000013uLL}, +{0xFFFFFFFF00000003uLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x00000002FFFDE095uLL}, +{0xFFFFFFFF00000003uLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x0000000547AA9783uLL}, +{0xFFFFFFFF00000003uLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x000000030F83E0FBuLL}, +{0xFFFFFFFF00000003uLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x0000000300000003uLL}, +{0xFFFFFFFF00000003uLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0FuLL, 0x000000002D2D2D30uLL}, +{0xFFFFFFFF00000003uLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0FuLL, 0x000000001E1E1E21uLL}, +{0xFFFFFFFF00000003uLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0FuLL, 0x000000000F0F0F12uLL}, +{0xFFFFFFFF00000003uLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6CB00000003uLL}, +{0xFFFFFFFF00000003uLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFFE1uLL}, +{0xFFFFFFFF00000003uLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFFBFuLL}, +{0xFFFFFFFF00000003uLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFF9DuLL}, +{0xFFFFFFFF00000003uLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFDE3uLL}, +{0xFFFFFFFF00000003uLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6CA002AD6CFuLL}, +{0xFFFFFFFF00000003uLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6CA087AE15BuLL}, +{0xFFFFFFFF00000003uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6BA00000025uLL}, +{0xFFFFFFFF00000003uLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6BA00000003uLL}, +{0xFFFFFFFF00000003uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6A900000069uLL}, +{0xFFFFFFFF00000003uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6A900000047uLL}, +{0xFFFFFFFF00000003uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6A900000025uLL}, +{0xFFFFFFFF00000003uLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x0133334300000003uLL}, +{0xFFFFFFFF00000003uLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x01333342FFFFFFE0uLL}, +{0xFFFFFFFF00000003uLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x01333342FFFFFFBDuLL}, +{0xFFFFFFFF00000003uLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x01333342FFFFFF9AuLL}, +{0xFFFFFFFF00000003uLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x01333342FFFFFDD3uLL}, +{0xFFFFFFFF00000003uLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x01333341F8A491D5uLL}, +{0xFFFFFFFF00000003uLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x0133334201333347uLL}, +{0xFFFFFFFF00000003uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x0133333180000026uLL}, +{0xFFFFFFFF00000003uLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x0133333180000003uLL}, +{0xFFFFFFFF00000003uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x013333200000006CuLL}, +{0xFFFFFFFF00000003uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133332000000049uLL}, +{0xFFFFFFFF00000003uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133332000000026uLL}, +{0xFFFFFFFF00000003uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000002uLL, 0x0000000100000003uLL}, +{0xFFFFFFFF00000003uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000002uLL, 0x0000000100000001uLL}, +{0xFFFFFFFF00000003uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFF00000003uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFF00000003uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000002uLL, 0x00000000FFFFFFE3uLL}, +{0xFFFFFFFF00000003uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000002uLL, 0x00000000F0F3760FuLL}, +{0xFFFFFFFF00000003uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000002uLL, 0x00000000F170A3DBuLL}, +{0xFFFFFFFF00000003uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000002uLL, 0x0000000000000005uLL}, +{0xFFFFFFFF00000003uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000002uLL, 0x0000000000000003uLL}, +{0xFFFFFFFF00000003uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFF00000006uLL}, +{0xFFFFFFFF00000003uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFF00000005uLL}, +{0xFFFFFFFF00000003uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFF00000004uLL}, +{0xFFFFFFFF00000003uLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFF00000003uLL}, +{0xFFFFFFFF00000003uLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFF00000002uLL}, +{0xFFFFFFFF00000003uLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFF00000001uLL}, +{0xFFFFFFFF00000003uLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFF00000000uLL}, +{0xFFFFFFFF00000003uLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFF3uLL}, +{0xFFFFFFFF00000003uLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFEF879BB09uLL}, +{0xFFFFFFFF00000003uLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFEF8B851EFuLL}, +{0xFFFFFFFF00000003uLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE80000004uLL}, +{0xFFFFFFFF00000003uLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE80000003uLL}, +{0xFFFFFFFF00000003uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000006uLL}, +{0xFFFFFFFF00000003uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000005uLL}, +{0xFFFFFFFF00000003uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000004uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x0000000200000003uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x0000000200000002uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x0000000200000001uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0x0000000200000000uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000001uLL, 0x00000001FFFFFFF3uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000001uLL, 0x00000001F879BB09uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000001uLL, 0x00000001F8B851EFuLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000180000004uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000001uLL, 0x0000000180000003uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000100000006uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000100000005uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000100000004uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000001uLL, 0x0000000100000003uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000001uLL, 0x0000000100000002uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000001uLL, 0x0000000100000001uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFF3uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB09uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EFuLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000004uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000001uLL, 0x0000000080000003uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000006uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000005uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000004uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000001uLL, 0x0000000000000003uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL, 0xFFFFFFFF00000003uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFF00000003uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFF00000003uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFF00000003uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFF00000003uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFF00000003uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFF00000003uLL}, +{0xFFFFFFFF00000003uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFF00000003uLL}, +{0xFFFFFFFF00000010uLL, 0x0000000000000001uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000000uLL}, +{0xFFFFFFFF00000010uLL, 0x0000000000000002uLL, 0x7FFFFFFF80000008uLL, 0x0000000000000000uLL}, +{0xFFFFFFFF00000010uLL, 0x0000000000000003uLL, 0x5555555500000005uLL, 0x0000000000000001uLL}, +{0xFFFFFFFF00000010uLL, 0x0000000000000010uLL, 0x0FFFFFFFF0000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFF00000010uLL, 0x00000000078644FAuLL, 0x0000002205B17ADBuLL, 0x000000000069DA32uLL}, +{0xFFFFFFFF00000010uLL, 0x000000000747AE14uLL, 0x000000232A32A558uLL, 0x0000000004414530uLL}, +{0xFFFFFFFF00000010uLL, 0x000000007FFFFFFFuLL, 0x0000000200000002uLL, 0x0000000000000012uLL}, +{0xFFFFFFFF00000010uLL, 0x0000000080000000uLL, 0x00000001FFFFFFFEuLL, 0x0000000000000010uLL}, +{0xFFFFFFFF00000010uLL, 0x00000000FFFFFFFDuLL, 0x0000000100000002uLL, 0x0000000000000016uLL}, +{0xFFFFFFFF00000010uLL, 0x00000000FFFFFFFEuLL, 0x0000000100000001uLL, 0x0000000000000012uLL}, +{0xFFFFFFFF00000010uLL, 0x00000000FFFFFFFFuLL, 0x0000000100000000uLL, 0x0000000000000010uLL}, +{0xFFFFFFFF00000010uLL, 0x0000000100000000uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000010uLL}, +{0xFFFFFFFF00000010uLL, 0x0000000100000001uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000012uLL}, +{0xFFFFFFFF00000010uLL, 0x0000000100000002uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000016uLL}, +{0xFFFFFFFF00000010uLL, 0x0000000100000003uLL, 0x00000000FFFFFFFCuLL, 0x000000000000001CuLL}, +{0xFFFFFFFF00000010uLL, 0x0000000100000010uLL, 0x00000000FFFFFFEFuLL, 0x0000000000000120uLL}, +{0xFFFFFFFF00000010uLL, 0x00000001078644FAuLL, 0x00000000F8B0BB5BuLL, 0x00000000A302DD32uLL}, +{0xFFFFFFFF00000010uLL, 0x000000010747AE14uLL, 0x00000000F8EBDA59uLL, 0x00000000417B731CuLL}, +{0xFFFFFFFF00000010uLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAAAuLL, 0x00000000AAAAAABAuLL}, +{0xFFFFFFFF00000010uLL, 0x0000000180000000uLL, 0x00000000AAAAAAAAuLL, 0x0000000000000010uLL}, +{0xFFFFFFFF00000010uLL, 0x00000001FFFFFFFDuLL, 0x0000000080000000uLL, 0x0000000080000010uLL}, +{0xFFFFFFFF00000010uLL, 0x00000001FFFFFFFEuLL, 0x0000000080000000uLL, 0x0000000000000010uLL}, +{0xFFFFFFFF00000010uLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x000000018000000FuLL}, +{0xFFFFFFFF00000010uLL, 0x0000000200000000uLL, 0x000000007FFFFFFFuLL, 0x0000000100000010uLL}, +{0xFFFFFFFF00000010uLL, 0x0000000200000001uLL, 0x000000007FFFFFFFuLL, 0x0000000080000011uLL}, +{0xFFFFFFFF00000010uLL, 0x0000000200000002uLL, 0x000000007FFFFFFFuLL, 0x0000000000000012uLL}, +{0xFFFFFFFF00000010uLL, 0x0000000200000003uLL, 0x000000007FFFFFFEuLL, 0x0000000180000016uLL}, +{0xFFFFFFFF00000010uLL, 0x0000000200000010uLL, 0x000000007FFFFFFBuLL, 0x0000000100000060uLL}, +{0xFFFFFFFF00000010uLL, 0x00000002078644FAuLL, 0x000000007E256849uLL, 0x000000014A8EC4C6uLL}, +{0xFFFFFFFF00000010uLL, 0x000000020747AE14uLL, 0x000000007E349CA6uLL, 0x000000016560EF18uLL}, +{0xFFFFFFFF00000010uLL, 0x000000027FFFFFFFuLL, 0x0000000066666666uLL, 0x0000000066666676uLL}, +{0xFFFFFFFF00000010uLL, 0x0000000280000000uLL, 0x0000000066666666uLL, 0x0000000000000010uLL}, +{0xFFFFFFFF00000010uLL, 0x00000002FFFFFFFDuLL, 0x0000000055555555uLL, 0x000000010000000FuLL}, +{0xFFFFFFFF00000010uLL, 0x00000002FFFFFFFEuLL, 0x0000000055555555uLL, 0x00000000AAAAAABAuLL}, +{0xFFFFFFFF00000010uLL, 0x00000002FFFFFFFFuLL, 0x0000000055555555uLL, 0x0000000055555565uLL}, +{0xFFFFFFFF00000010uLL, 0x0000000300000000uLL, 0x0000000055555555uLL, 0x0000000000000010uLL}, +{0xFFFFFFFF00000010uLL, 0x0000000300000001uLL, 0x0000000055555554uLL, 0x00000002AAAAAABCuLL}, +{0xFFFFFFFF00000010uLL, 0x0000000300000002uLL, 0x0000000055555554uLL, 0x0000000255555568uLL}, +{0xFFFFFFFF00000010uLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x0000000200000014uLL}, +{0xFFFFFFFF00000010uLL, 0x0000000300000010uLL, 0x0000000055555553uLL, 0x00000000AAAAAAE0uLL}, +{0xFFFFFFFF00000010uLL, 0x00000003078644FAuLL, 0x0000000054816148uLL, 0x00000000381FDFC0uLL}, +{0xFFFFFFFF00000010uLL, 0x000000030747AE14uLL, 0x00000000548833C6uLL, 0x000000010C416098uLL}, +{0xFFFFFFFF00000010uLL, 0x000000037FFFFFFFuLL, 0x0000000049249248uLL, 0x0000000349249258uLL}, +{0xFFFFFFFF00000010uLL, 0x0000000380000000uLL, 0x0000000049249248uLL, 0x0000000300000010uLL}, +{0xFFFFFFFF00000010uLL, 0x00000003FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000003C000000DuLL}, +{0xFFFFFFFF00000010uLL, 0x00000003FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x000000038000000EuLL}, +{0xFFFFFFFF00000010uLL, 0x00000003FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x000000034000000FuLL}, +{0xFFFFFFFF00000010uLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000F00000010uLL}, +{0xFFFFFFFF00000010uLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000EF0000011uLL}, +{0xFFFFFFFF00000010uLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000EE0000012uLL}, +{0xFFFFFFFF00000010uLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000ED0000013uLL}, +{0xFFFFFFFF00000010uLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000E00000020uLL}, +{0xFFFFFFFF00000010uLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x00000002FFFDE0A2uLL}, +{0xFFFFFFFF00000010uLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x0000000547AA9790uLL}, +{0xFFFFFFFF00000010uLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x000000030F83E108uLL}, +{0xFFFFFFFF00000010uLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x0000000300000010uLL}, +{0xFFFFFFFF00000010uLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0FuLL, 0x000000002D2D2D3DuLL}, +{0xFFFFFFFF00000010uLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0FuLL, 0x000000001E1E1E2EuLL}, +{0xFFFFFFFF00000010uLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0FuLL, 0x000000000F0F0F1FuLL}, +{0xFFFFFFFF00000010uLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6CB00000010uLL}, +{0xFFFFFFFF00000010uLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFFEEuLL}, +{0xFFFFFFFF00000010uLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFFCCuLL}, +{0xFFFFFFFF00000010uLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFFAAuLL}, +{0xFFFFFFFF00000010uLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6CAFFFFFDF0uLL}, +{0xFFFFFFFF00000010uLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6CA002AD6DCuLL}, +{0xFFFFFFFF00000010uLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6CA087AE168uLL}, +{0xFFFFFFFF00000010uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6BA00000032uLL}, +{0xFFFFFFFF00000010uLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6BA00000010uLL}, +{0xFFFFFFFF00000010uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6A900000076uLL}, +{0xFFFFFFFF00000010uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6A900000054uLL}, +{0xFFFFFFFF00000010uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6A900000032uLL}, +{0xFFFFFFFF00000010uLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x0133334300000010uLL}, +{0xFFFFFFFF00000010uLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x01333342FFFFFFEDuLL}, +{0xFFFFFFFF00000010uLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x01333342FFFFFFCAuLL}, +{0xFFFFFFFF00000010uLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x01333342FFFFFFA7uLL}, +{0xFFFFFFFF00000010uLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x01333342FFFFFDE0uLL}, +{0xFFFFFFFF00000010uLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x01333341F8A491E2uLL}, +{0xFFFFFFFF00000010uLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x0133334201333354uLL}, +{0xFFFFFFFF00000010uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x0133333180000033uLL}, +{0xFFFFFFFF00000010uLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x0133333180000010uLL}, +{0xFFFFFFFF00000010uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x0133332000000079uLL}, +{0xFFFFFFFF00000010uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133332000000056uLL}, +{0xFFFFFFFF00000010uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133332000000033uLL}, +{0xFFFFFFFF00000010uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000002uLL, 0x0000000100000010uLL}, +{0xFFFFFFFF00000010uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000002uLL, 0x000000010000000EuLL}, +{0xFFFFFFFF00000010uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000002uLL, 0x000000010000000CuLL}, +{0xFFFFFFFF00000010uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000002uLL, 0x000000010000000AuLL}, +{0xFFFFFFFF00000010uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000002uLL, 0x00000000FFFFFFF0uLL}, +{0xFFFFFFFF00000010uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000002uLL, 0x00000000F0F3761CuLL}, +{0xFFFFFFFF00000010uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000002uLL, 0x00000000F170A3E8uLL}, +{0xFFFFFFFF00000010uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000002uLL, 0x0000000000000012uLL}, +{0xFFFFFFFF00000010uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000002uLL, 0x0000000000000010uLL}, +{0xFFFFFFFF00000010uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFF00000013uLL}, +{0xFFFFFFFF00000010uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFF00000012uLL}, +{0xFFFFFFFF00000010uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFF00000011uLL}, +{0xFFFFFFFF00000010uLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFF00000010uLL}, +{0xFFFFFFFF00000010uLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFF0000000FuLL}, +{0xFFFFFFFF00000010uLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFF0000000EuLL}, +{0xFFFFFFFF00000010uLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFF0000000DuLL}, +{0xFFFFFFFF00000010uLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFF00000000uLL}, +{0xFFFFFFFF00000010uLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFEF879BB16uLL}, +{0xFFFFFFFF00000010uLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFEF8B851FCuLL}, +{0xFFFFFFFF00000010uLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE80000011uLL}, +{0xFFFFFFFF00000010uLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE80000010uLL}, +{0xFFFFFFFF00000010uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000013uLL}, +{0xFFFFFFFF00000010uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000012uLL}, +{0xFFFFFFFF00000010uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE00000011uLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x0000000200000010uLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x000000020000000FuLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x000000020000000EuLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0x000000020000000DuLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000001uLL, 0x0000000200000000uLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000001uLL, 0x00000001F879BB16uLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000001uLL, 0x00000001F8B851FCuLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000180000011uLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000001uLL, 0x0000000180000010uLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000100000013uLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000100000012uLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000100000011uLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000001uLL, 0x0000000100000010uLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000001uLL, 0x000000010000000FuLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000001uLL, 0x000000010000000EuLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000001uLL, 0x000000010000000DuLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB16uLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851FCuLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000011uLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000001uLL, 0x0000000080000010uLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000013uLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000012uLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000011uLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000001uLL, 0x0000000000000010uLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000001uLL, 0x000000000000000FuLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000001uLL, 0x000000000000000EuLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000001uLL, 0x000000000000000DuLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFF00000010uLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL, 0xFFFFFFFF00000010uLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFF00000010uLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFF00000010uLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFF00000010uLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFF00000010uLL}, +{0xFFFFFFFF00000010uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFF00000010uLL}, +{0xFFFFFFFF078644FAuLL, 0x0000000000000001uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL}, +{0xFFFFFFFF078644FAuLL, 0x0000000000000002uLL, 0x7FFFFFFF83C3227DuLL, 0x0000000000000000uLL}, +{0xFFFFFFFF078644FAuLL, 0x0000000000000003uLL, 0x55555555028216FEuLL, 0x0000000000000000uLL}, +{0xFFFFFFFF078644FAuLL, 0x0000000000000010uLL, 0x0FFFFFFFF078644FuLL, 0x000000000000000AuLL}, +{0xFFFFFFFF078644FAuLL, 0x00000000078644FAuLL, 0x0000002205B17ADCuLL, 0x000000000069DA22uLL}, +{0xFFFFFFFF078644FAuLL, 0x000000000747AE14uLL, 0x000000232A32A559uLL, 0x00000000047FDC06uLL}, +{0xFFFFFFFF078644FAuLL, 0x000000007FFFFFFFuLL, 0x0000000200000002uLL, 0x00000000078644FCuLL}, +{0xFFFFFFFF078644FAuLL, 0x0000000080000000uLL, 0x00000001FFFFFFFEuLL, 0x00000000078644FAuLL}, +{0xFFFFFFFF078644FAuLL, 0x00000000FFFFFFFDuLL, 0x0000000100000002uLL, 0x0000000007864500uLL}, +{0xFFFFFFFF078644FAuLL, 0x00000000FFFFFFFEuLL, 0x0000000100000001uLL, 0x00000000078644FCuLL}, +{0xFFFFFFFF078644FAuLL, 0x00000000FFFFFFFFuLL, 0x0000000100000000uLL, 0x00000000078644FAuLL}, +{0xFFFFFFFF078644FAuLL, 0x0000000100000000uLL, 0x00000000FFFFFFFFuLL, 0x00000000078644FAuLL}, +{0xFFFFFFFF078644FAuLL, 0x0000000100000001uLL, 0x00000000FFFFFFFEuLL, 0x00000000078644FCuLL}, +{0xFFFFFFFF078644FAuLL, 0x0000000100000002uLL, 0x00000000FFFFFFFDuLL, 0x0000000007864500uLL}, +{0xFFFFFFFF078644FAuLL, 0x0000000100000003uLL, 0x00000000FFFFFFFCuLL, 0x0000000007864506uLL}, +{0xFFFFFFFF078644FAuLL, 0x0000000100000010uLL, 0x00000000FFFFFFEFuLL, 0x000000000786460AuLL}, +{0xFFFFFFFF078644FAuLL, 0x00000001078644FAuLL, 0x00000000F8B0BB5BuLL, 0x00000000AA89221CuLL}, +{0xFFFFFFFF078644FAuLL, 0x000000010747AE14uLL, 0x00000000F8EBDA59uLL, 0x000000004901B806uLL}, +{0xFFFFFFFF078644FAuLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAAAuLL, 0x00000000B230EFA4uLL}, +{0xFFFFFFFF078644FAuLL, 0x0000000180000000uLL, 0x00000000AAAAAAAAuLL, 0x00000000078644FAuLL}, +{0xFFFFFFFF078644FAuLL, 0x00000001FFFFFFFDuLL, 0x0000000080000000uLL, 0x00000000878644FAuLL}, +{0xFFFFFFFF078644FAuLL, 0x00000001FFFFFFFEuLL, 0x0000000080000000uLL, 0x00000000078644FAuLL}, +{0xFFFFFFFF078644FAuLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x00000001878644F9uLL}, +{0xFFFFFFFF078644FAuLL, 0x0000000200000000uLL, 0x000000007FFFFFFFuLL, 0x00000001078644FAuLL}, +{0xFFFFFFFF078644FAuLL, 0x0000000200000001uLL, 0x000000007FFFFFFFuLL, 0x00000000878644FBuLL}, +{0xFFFFFFFF078644FAuLL, 0x0000000200000002uLL, 0x000000007FFFFFFFuLL, 0x00000000078644FCuLL}, +{0xFFFFFFFF078644FAuLL, 0x0000000200000003uLL, 0x000000007FFFFFFEuLL, 0x0000000187864500uLL}, +{0xFFFFFFFF078644FAuLL, 0x0000000200000010uLL, 0x000000007FFFFFFBuLL, 0x000000010786454AuLL}, +{0xFFFFFFFF078644FAuLL, 0x00000002078644FAuLL, 0x000000007E256849uLL, 0x00000001521509B0uLL}, +{0xFFFFFFFF078644FAuLL, 0x000000020747AE14uLL, 0x000000007E349CA6uLL, 0x000000016CE73402uLL}, +{0xFFFFFFFF078644FAuLL, 0x000000027FFFFFFFuLL, 0x0000000066666666uLL, 0x000000006DECAB60uLL}, +{0xFFFFFFFF078644FAuLL, 0x0000000280000000uLL, 0x0000000066666666uLL, 0x00000000078644FAuLL}, +{0xFFFFFFFF078644FAuLL, 0x00000002FFFFFFFDuLL, 0x0000000055555555uLL, 0x00000001078644F9uLL}, +{0xFFFFFFFF078644FAuLL, 0x00000002FFFFFFFEuLL, 0x0000000055555555uLL, 0x00000000B230EFA4uLL}, +{0xFFFFFFFF078644FAuLL, 0x00000002FFFFFFFFuLL, 0x0000000055555555uLL, 0x000000005CDB9A4FuLL}, +{0xFFFFFFFF078644FAuLL, 0x0000000300000000uLL, 0x0000000055555555uLL, 0x00000000078644FAuLL}, +{0xFFFFFFFF078644FAuLL, 0x0000000300000001uLL, 0x0000000055555554uLL, 0x00000002B230EFA6uLL}, +{0xFFFFFFFF078644FAuLL, 0x0000000300000002uLL, 0x0000000055555554uLL, 0x000000025CDB9A52uLL}, +{0xFFFFFFFF078644FAuLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x00000002078644FEuLL}, +{0xFFFFFFFF078644FAuLL, 0x0000000300000010uLL, 0x0000000055555553uLL, 0x00000000B230EFCAuLL}, +{0xFFFFFFFF078644FAuLL, 0x00000003078644FAuLL, 0x0000000054816148uLL, 0x000000003FA624AAuLL}, +{0xFFFFFFFF078644FAuLL, 0x000000030747AE14uLL, 0x00000000548833C6uLL, 0x0000000113C7A582uLL}, +{0xFFFFFFFF078644FAuLL, 0x000000037FFFFFFFuLL, 0x0000000049249248uLL, 0x0000000350AAD742uLL}, +{0xFFFFFFFF078644FAuLL, 0x0000000380000000uLL, 0x0000000049249248uLL, 0x00000003078644FAuLL}, +{0xFFFFFFFF078644FAuLL, 0x00000003FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000003C78644F7uLL}, +{0xFFFFFFFF078644FAuLL, 0x00000003FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x00000003878644F8uLL}, +{0xFFFFFFFF078644FAuLL, 0x00000003FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x00000003478644F9uLL}, +{0xFFFFFFFF078644FAuLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000F078644FAuLL}, +{0xFFFFFFFF078644FAuLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000EF78644FBuLL}, +{0xFFFFFFFF078644FAuLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000EE78644FCuLL}, +{0xFFFFFFFF078644FAuLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000ED78644FDuLL}, +{0xFFFFFFFF078644FAuLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000E0786450AuLL}, +{0xFFFFFFFF078644FAuLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x000000030784258CuLL}, +{0xFFFFFFFF078644FAuLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x000000054F30DC7AuLL}, +{0xFFFFFFFF078644FAuLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x00000003170A25F2uLL}, +{0xFFFFFFFF078644FAuLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x00000003078644FAuLL}, +{0xFFFFFFFF078644FAuLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0FuLL, 0x0000000034B37227uLL}, +{0xFFFFFFFF078644FAuLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0FuLL, 0x0000000025A46318uLL}, +{0xFFFFFFFF078644FAuLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0FuLL, 0x0000000016955409uLL}, +{0xFFFFFFFF078644FAuLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6CB078644FAuLL}, +{0xFFFFFFFF078644FAuLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6CB078644D8uLL}, +{0xFFFFFFFF078644FAuLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6CB078644B6uLL}, +{0xFFFFFFFF078644FAuLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6CB07864494uLL}, +{0xFFFFFFFF078644FAuLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6CB078642DAuLL}, +{0xFFFFFFFF078644FAuLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6CA07B11BC6uLL}, +{0xFFFFFFFF078644FAuLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6CA10012652uLL}, +{0xFFFFFFFF078644FAuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6BA0786451CuLL}, +{0xFFFFFFFF078644FAuLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6BA078644FAuLL}, +{0xFFFFFFFF078644FAuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6A907864560uLL}, +{0xFFFFFFFF078644FAuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6A90786453EuLL}, +{0xFFFFFFFF078644FAuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6A90786451CuLL}, +{0xFFFFFFFF078644FAuLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x01333343078644FAuLL}, +{0xFFFFFFFF078644FAuLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x01333343078644D7uLL}, +{0xFFFFFFFF078644FAuLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x01333343078644B4uLL}, +{0xFFFFFFFF078644FAuLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x0133334307864491uLL}, +{0xFFFFFFFF078644FAuLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x01333343078642CAuLL}, +{0xFFFFFFFF078644FAuLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x01333342002AD6CCuLL}, +{0xFFFFFFFF078644FAuLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x0133334208B9783EuLL}, +{0xFFFFFFFF078644FAuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x013333318786451DuLL}, +{0xFFFFFFFF078644FAuLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x01333331878644FAuLL}, +{0xFFFFFFFF078644FAuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x0133332007864563uLL}, +{0xFFFFFFFF078644FAuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133332007864540uLL}, +{0xFFFFFFFF078644FAuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x013333200786451DuLL}, +{0xFFFFFFFF078644FAuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000002uLL, 0x00000001078644FAuLL}, +{0xFFFFFFFF078644FAuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000002uLL, 0x00000001078644F8uLL}, +{0xFFFFFFFF078644FAuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000002uLL, 0x00000001078644F6uLL}, +{0xFFFFFFFF078644FAuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000002uLL, 0x00000001078644F4uLL}, +{0xFFFFFFFF078644FAuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000002uLL, 0x00000001078644DAuLL}, +{0xFFFFFFFF078644FAuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000002uLL, 0x00000000F879BB06uLL}, +{0xFFFFFFFF078644FAuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000002uLL, 0x00000000F8F6E8D2uLL}, +{0xFFFFFFFF078644FAuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000002uLL, 0x00000000078644FCuLL}, +{0xFFFFFFFF078644FAuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000002uLL, 0x00000000078644FAuLL}, +{0xFFFFFFFF078644FAuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFF078644FDuLL}, +{0xFFFFFFFF078644FAuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFF078644FCuLL}, +{0xFFFFFFFF078644FAuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFF078644FBuLL}, +{0xFFFFFFFF078644FAuLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFF078644FAuLL}, +{0xFFFFFFFF078644FAuLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFF078644F9uLL}, +{0xFFFFFFFF078644FAuLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFF078644F8uLL}, +{0xFFFFFFFF078644FAuLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFF078644F7uLL}, +{0xFFFFFFFF078644FAuLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFF078644EAuLL}, +{0xFFFFFFFF078644FAuLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFF00000000uLL}, +{0xFFFFFFFF078644FAuLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFF003E96E6uLL}, +{0xFFFFFFFF078644FAuLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE878644FBuLL}, +{0xFFFFFFFF078644FAuLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE878644FAuLL}, +{0xFFFFFFFF078644FAuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFE078644FDuLL}, +{0xFFFFFFFF078644FAuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFE078644FCuLL}, +{0xFFFFFFFF078644FAuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE078644FBuLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x00000002078644FAuLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x00000002078644F9uLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x00000002078644F8uLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0x00000002078644F7uLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000001uLL, 0x00000002078644EAuLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000001uLL, 0x0000000200000000uLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000001uLL, 0x00000002003E96E6uLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000001uLL, 0x00000001878644FBuLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000001uLL, 0x00000001878644FAuLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000001uLL, 0x00000001078644FDuLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000001uLL, 0x00000001078644FCuLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000001uLL, 0x00000001078644FBuLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000001uLL, 0x00000001078644FAuLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000001uLL, 0x00000001078644F9uLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000001uLL, 0x00000001078644F8uLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000001uLL, 0x00000001078644F7uLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000001uLL, 0x00000001078644EAuLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000001uLL, 0x00000001003E96E6uLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000001uLL, 0x00000000878644FBuLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000001uLL, 0x00000000878644FAuLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000001uLL, 0x00000000078644FDuLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000001uLL, 0x00000000078644FCuLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000001uLL, 0x00000000078644FBuLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000001uLL, 0x00000000078644FAuLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000001uLL, 0x00000000078644F9uLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000001uLL, 0x00000000078644F8uLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000001uLL, 0x00000000078644F7uLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000001uLL, 0x00000000078644EAuLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x00000000003E96E6uLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFF078644FAuLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFF078644FAuLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFF078644FAuLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFF078644FAuLL}, +{0xFFFFFFFF078644FAuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFF078644FAuLL}, +{0xFFFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000000uLL}, +{0xFFFFFFFF0747AE14uLL, 0x0000000000000002uLL, 0x7FFFFFFF83A3D70AuLL, 0x0000000000000000uLL}, +{0xFFFFFFFF0747AE14uLL, 0x0000000000000003uLL, 0x55555555026D3A06uLL, 0x0000000000000002uLL}, +{0xFFFFFFFF0747AE14uLL, 0x0000000000000010uLL, 0x0FFFFFFFF0747AE1uLL, 0x0000000000000004uLL}, +{0xFFFFFFFF0747AE14uLL, 0x00000000078644FAuLL, 0x0000002205B17ADCuLL, 0x00000000002B433CuLL}, +{0xFFFFFFFF0747AE14uLL, 0x000000000747AE14uLL, 0x000000232A32A559uLL, 0x0000000004414520uLL}, +{0xFFFFFFFF0747AE14uLL, 0x000000007FFFFFFFuLL, 0x0000000200000002uLL, 0x000000000747AE16uLL}, +{0xFFFFFFFF0747AE14uLL, 0x0000000080000000uLL, 0x00000001FFFFFFFEuLL, 0x000000000747AE14uLL}, +{0xFFFFFFFF0747AE14uLL, 0x00000000FFFFFFFDuLL, 0x0000000100000002uLL, 0x000000000747AE1AuLL}, +{0xFFFFFFFF0747AE14uLL, 0x00000000FFFFFFFEuLL, 0x0000000100000001uLL, 0x000000000747AE16uLL}, +{0xFFFFFFFF0747AE14uLL, 0x00000000FFFFFFFFuLL, 0x0000000100000000uLL, 0x000000000747AE14uLL}, +{0xFFFFFFFF0747AE14uLL, 0x0000000100000000uLL, 0x00000000FFFFFFFFuLL, 0x000000000747AE14uLL}, +{0xFFFFFFFF0747AE14uLL, 0x0000000100000001uLL, 0x00000000FFFFFFFEuLL, 0x000000000747AE16uLL}, +{0xFFFFFFFF0747AE14uLL, 0x0000000100000002uLL, 0x00000000FFFFFFFDuLL, 0x000000000747AE1AuLL}, +{0xFFFFFFFF0747AE14uLL, 0x0000000100000003uLL, 0x00000000FFFFFFFCuLL, 0x000000000747AE20uLL}, +{0xFFFFFFFF0747AE14uLL, 0x0000000100000010uLL, 0x00000000FFFFFFEFuLL, 0x000000000747AF24uLL}, +{0xFFFFFFFF0747AE14uLL, 0x00000001078644FAuLL, 0x00000000F8B0BB5BuLL, 0x00000000AA4A8B36uLL}, +{0xFFFFFFFF0747AE14uLL, 0x000000010747AE14uLL, 0x00000000F8EBDA59uLL, 0x0000000048C32120uLL}, +{0xFFFFFFFF0747AE14uLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAAAuLL, 0x00000000B1F258BEuLL}, +{0xFFFFFFFF0747AE14uLL, 0x0000000180000000uLL, 0x00000000AAAAAAAAuLL, 0x000000000747AE14uLL}, +{0xFFFFFFFF0747AE14uLL, 0x00000001FFFFFFFDuLL, 0x0000000080000000uLL, 0x000000008747AE14uLL}, +{0xFFFFFFFF0747AE14uLL, 0x00000001FFFFFFFEuLL, 0x0000000080000000uLL, 0x000000000747AE14uLL}, +{0xFFFFFFFF0747AE14uLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x000000018747AE13uLL}, +{0xFFFFFFFF0747AE14uLL, 0x0000000200000000uLL, 0x000000007FFFFFFFuLL, 0x000000010747AE14uLL}, +{0xFFFFFFFF0747AE14uLL, 0x0000000200000001uLL, 0x000000007FFFFFFFuLL, 0x000000008747AE15uLL}, +{0xFFFFFFFF0747AE14uLL, 0x0000000200000002uLL, 0x000000007FFFFFFFuLL, 0x000000000747AE16uLL}, +{0xFFFFFFFF0747AE14uLL, 0x0000000200000003uLL, 0x000000007FFFFFFEuLL, 0x000000018747AE1AuLL}, +{0xFFFFFFFF0747AE14uLL, 0x0000000200000010uLL, 0x000000007FFFFFFBuLL, 0x000000010747AE64uLL}, +{0xFFFFFFFF0747AE14uLL, 0x00000002078644FAuLL, 0x000000007E256849uLL, 0x0000000151D672CAuLL}, +{0xFFFFFFFF0747AE14uLL, 0x000000020747AE14uLL, 0x000000007E349CA6uLL, 0x000000016CA89D1CuLL}, +{0xFFFFFFFF0747AE14uLL, 0x000000027FFFFFFFuLL, 0x0000000066666666uLL, 0x000000006DAE147AuLL}, +{0xFFFFFFFF0747AE14uLL, 0x0000000280000000uLL, 0x0000000066666666uLL, 0x000000000747AE14uLL}, +{0xFFFFFFFF0747AE14uLL, 0x00000002FFFFFFFDuLL, 0x0000000055555555uLL, 0x000000010747AE13uLL}, +{0xFFFFFFFF0747AE14uLL, 0x00000002FFFFFFFEuLL, 0x0000000055555555uLL, 0x00000000B1F258BEuLL}, +{0xFFFFFFFF0747AE14uLL, 0x00000002FFFFFFFFuLL, 0x0000000055555555uLL, 0x000000005C9D0369uLL}, +{0xFFFFFFFF0747AE14uLL, 0x0000000300000000uLL, 0x0000000055555555uLL, 0x000000000747AE14uLL}, +{0xFFFFFFFF0747AE14uLL, 0x0000000300000001uLL, 0x0000000055555554uLL, 0x00000002B1F258C0uLL}, +{0xFFFFFFFF0747AE14uLL, 0x0000000300000002uLL, 0x0000000055555554uLL, 0x000000025C9D036CuLL}, +{0xFFFFFFFF0747AE14uLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x000000020747AE18uLL}, +{0xFFFFFFFF0747AE14uLL, 0x0000000300000010uLL, 0x0000000055555553uLL, 0x00000000B1F258E4uLL}, +{0xFFFFFFFF0747AE14uLL, 0x00000003078644FAuLL, 0x0000000054816148uLL, 0x000000003F678DC4uLL}, +{0xFFFFFFFF0747AE14uLL, 0x000000030747AE14uLL, 0x00000000548833C6uLL, 0x0000000113890E9CuLL}, +{0xFFFFFFFF0747AE14uLL, 0x000000037FFFFFFFuLL, 0x0000000049249248uLL, 0x00000003506C405CuLL}, +{0xFFFFFFFF0747AE14uLL, 0x0000000380000000uLL, 0x0000000049249248uLL, 0x000000030747AE14uLL}, +{0xFFFFFFFF0747AE14uLL, 0x00000003FFFFFFFDuLL, 0x000000003FFFFFFFuLL, 0x00000003C747AE11uLL}, +{0xFFFFFFFF0747AE14uLL, 0x00000003FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x000000038747AE12uLL}, +{0xFFFFFFFF0747AE14uLL, 0x00000003FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x000000034747AE13uLL}, +{0xFFFFFFFF0747AE14uLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000F0747AE14uLL}, +{0xFFFFFFFF0747AE14uLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000EF747AE15uLL}, +{0xFFFFFFFF0747AE14uLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000EE747AE16uLL}, +{0xFFFFFFFF0747AE14uLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000ED747AE17uLL}, +{0xFFFFFFFF0747AE14uLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000E0747AE24uLL}, +{0xFFFFFFFF0747AE14uLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x0000000307458EA6uLL}, +{0xFFFFFFFF0747AE14uLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x000000054EF24594uLL}, +{0xFFFFFFFF0747AE14uLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x0000000316CB8F0CuLL}, +{0xFFFFFFFF0747AE14uLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x000000030747AE14uLL}, +{0xFFFFFFFF0747AE14uLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0FuLL, 0x000000003474DB41uLL}, +{0xFFFFFFFF0747AE14uLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0FuLL, 0x000000002565CC32uLL}, +{0xFFFFFFFF0747AE14uLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0FuLL, 0x000000001656BD23uLL}, +{0xFFFFFFFF0747AE14uLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6CB0747AE14uLL}, +{0xFFFFFFFF0747AE14uLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6CB0747ADF2uLL}, +{0xFFFFFFFF0747AE14uLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6CB0747ADD0uLL}, +{0xFFFFFFFF0747AE14uLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6CB0747ADAEuLL}, +{0xFFFFFFFF0747AE14uLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6CB0747ABF4uLL}, +{0xFFFFFFFF0747AE14uLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6CA077284E0uLL}, +{0xFFFFFFFF0747AE14uLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6CA0FC28F6CuLL}, +{0xFFFFFFFF0747AE14uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6BA0747AE36uLL}, +{0xFFFFFFFF0747AE14uLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6BA0747AE14uLL}, +{0xFFFFFFFF0747AE14uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6A90747AE7AuLL}, +{0xFFFFFFFF0747AE14uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6A90747AE58uLL}, +{0xFFFFFFFF0747AE14uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6A90747AE36uLL}, +{0xFFFFFFFF0747AE14uLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x013333430747AE14uLL}, +{0xFFFFFFFF0747AE14uLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x013333430747ADF1uLL}, +{0xFFFFFFFF0747AE14uLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x013333430747ADCEuLL}, +{0xFFFFFFFF0747AE14uLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x013333430747ADABuLL}, +{0xFFFFFFFF0747AE14uLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x013333430747ABE4uLL}, +{0xFFFFFFFF0747AE14uLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x01333341FFEC3FE6uLL}, +{0xFFFFFFFF0747AE14uLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x01333342087AE158uLL}, +{0xFFFFFFFF0747AE14uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x013333318747AE37uLL}, +{0xFFFFFFFF0747AE14uLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x013333318747AE14uLL}, +{0xFFFFFFFF0747AE14uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x013333200747AE7DuLL}, +{0xFFFFFFFF0747AE14uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x013333200747AE5AuLL}, +{0xFFFFFFFF0747AE14uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x013333200747AE37uLL}, +{0xFFFFFFFF0747AE14uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000002uLL, 0x000000010747AE14uLL}, +{0xFFFFFFFF0747AE14uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000002uLL, 0x000000010747AE12uLL}, +{0xFFFFFFFF0747AE14uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000002uLL, 0x000000010747AE10uLL}, +{0xFFFFFFFF0747AE14uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000002uLL, 0x000000010747AE0EuLL}, +{0xFFFFFFFF0747AE14uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000002uLL, 0x000000010747ADF4uLL}, +{0xFFFFFFFF0747AE14uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000002uLL, 0x00000000F83B2420uLL}, +{0xFFFFFFFF0747AE14uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000002uLL, 0x00000000F8B851ECuLL}, +{0xFFFFFFFF0747AE14uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000002uLL, 0x000000000747AE16uLL}, +{0xFFFFFFFF0747AE14uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000002uLL, 0x000000000747AE14uLL}, +{0xFFFFFFFF0747AE14uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFF0747AE17uLL}, +{0xFFFFFFFF0747AE14uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFF0747AE16uLL}, +{0xFFFFFFFF0747AE14uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFF0747AE15uLL}, +{0xFFFFFFFF0747AE14uLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFF0747AE14uLL}, +{0xFFFFFFFF0747AE14uLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFF0747AE13uLL}, +{0xFFFFFFFF0747AE14uLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFF0747AE12uLL}, +{0xFFFFFFFF0747AE14uLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFF0747AE11uLL}, +{0xFFFFFFFF0747AE14uLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFF0747AE04uLL}, +{0xFFFFFFFF0747AE14uLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFEFFC1691AuLL}, +{0xFFFFFFFF0747AE14uLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFF00000000uLL}, +{0xFFFFFFFF0747AE14uLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE8747AE15uLL}, +{0xFFFFFFFF0747AE14uLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFE8747AE14uLL}, +{0xFFFFFFFF0747AE14uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFE0747AE17uLL}, +{0xFFFFFFFF0747AE14uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFE0747AE16uLL}, +{0xFFFFFFFF0747AE14uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE0747AE15uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x000000020747AE14uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x000000020747AE13uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x000000020747AE12uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0x000000020747AE11uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000001uLL, 0x000000020747AE04uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000001uLL, 0x00000001FFC1691AuLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000001uLL, 0x0000000200000000uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000001uLL, 0x000000018747AE15uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000001uLL, 0x000000018747AE14uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000001uLL, 0x000000010747AE17uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000001uLL, 0x000000010747AE16uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000001uLL, 0x000000010747AE15uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000001uLL, 0x000000010747AE14uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000001uLL, 0x000000010747AE13uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000001uLL, 0x000000010747AE12uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000001uLL, 0x000000010747AE11uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000001uLL, 0x000000010747AE04uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000001uLL, 0x00000000FFC1691AuLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000001uLL, 0x000000008747AE15uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000001uLL, 0x000000008747AE14uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000001uLL, 0x000000000747AE17uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000001uLL, 0x000000000747AE16uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000001uLL, 0x000000000747AE15uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000001uLL, 0x000000000747AE14uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000001uLL, 0x000000000747AE13uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000001uLL, 0x000000000747AE12uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000001uLL, 0x000000000747AE11uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000001uLL, 0x000000000747AE04uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000000uLL, 0xFFFFFFFF0747AE14uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFF0747AE14uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFF0747AE14uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFF0747AE14uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFF0747AE14uLL}, +{0xFFFFFFFF0747AE14uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFF0747AE14uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000000uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000002uLL, 0x7FFFFFFFBFFFFFFFuLL, 0x0000000000000001uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000003uLL, 0x555555552AAAAAAAuLL, 0x0000000000000001uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000010uLL, 0x0FFFFFFFF7FFFFFFuLL, 0x000000000000000FuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x00000000078644FAuLL, 0x0000002205B17AECuLL, 0x00000000007F4587uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x000000000747AE14uLL, 0x000000232A32A56AuLL, 0x00000000013707B7uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x0000000200000003uLL, 0x0000000000000002uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0000000080000000uLL, 0x00000001FFFFFFFEuLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x00000000FFFFFFFDuLL, 0x0000000100000002uLL, 0x0000000080000005uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x0000000100000001uLL, 0x0000000080000001uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x0000000100000000uLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0000000100000000uLL, 0x00000000FFFFFFFFuLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0000000100000001uLL, 0x00000000FFFFFFFEuLL, 0x0000000080000001uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0000000100000002uLL, 0x00000000FFFFFFFDuLL, 0x0000000080000005uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0000000100000003uLL, 0x00000000FFFFFFFCuLL, 0x000000008000000BuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0000000100000010uLL, 0x00000000FFFFFFEFuLL, 0x000000008000010FuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x00000001078644FAuLL, 0x00000000F8B0BB5CuLL, 0x000000001B7C9827uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x000000010747AE14uLL, 0x00000000F8EBDA59uLL, 0x00000000C17B730BuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAAAuLL, 0x000000012AAAAAA9uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0000000180000000uLL, 0x00000000AAAAAAAAuLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x00000001FFFFFFFDuLL, 0x0000000080000000uLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x00000001FFFFFFFEuLL, 0x0000000080000000uLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x00000001FFFFFFFEuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0000000200000000uLL, 0x000000007FFFFFFFuLL, 0x000000017FFFFFFFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0000000200000001uLL, 0x000000007FFFFFFFuLL, 0x0000000100000000uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0000000200000002uLL, 0x000000007FFFFFFFuLL, 0x0000000080000001uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0000000200000003uLL, 0x000000007FFFFFFFuLL, 0x0000000000000002uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0000000200000010uLL, 0x000000007FFFFFFBuLL, 0x000000018000004FuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x00000002078644FAuLL, 0x000000007E256849uLL, 0x00000001CA8EC4B5uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x000000020747AE14uLL, 0x000000007E349CA6uLL, 0x00000001E560EF07uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x000000027FFFFFFFuLL, 0x0000000066666666uLL, 0x00000000E6666665uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0000000280000000uLL, 0x0000000066666666uLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x00000002FFFFFFFDuLL, 0x0000000055555555uLL, 0x000000017FFFFFFEuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x00000002FFFFFFFEuLL, 0x0000000055555555uLL, 0x000000012AAAAAA9uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x00000002FFFFFFFFuLL, 0x0000000055555555uLL, 0x00000000D5555554uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0000000300000000uLL, 0x0000000055555555uLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0000000300000001uLL, 0x0000000055555555uLL, 0x000000002AAAAAAAuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0000000300000002uLL, 0x0000000055555554uLL, 0x00000002D5555557uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x0000000280000003uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0000000300000010uLL, 0x0000000055555553uLL, 0x000000012AAAAACFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x00000003078644FAuLL, 0x0000000054816148uLL, 0x00000000B81FDFAFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x000000030747AE14uLL, 0x00000000548833C6uLL, 0x000000018C416087uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x000000037FFFFFFFuLL, 0x0000000049249249uLL, 0x0000000049249248uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0000000380000000uLL, 0x0000000049249248uLL, 0x000000037FFFFFFFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x00000003FFFFFFFDuLL, 0x0000000040000000uLL, 0x000000003FFFFFFFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x00000003FFFFFFFEuLL, 0x000000003FFFFFFFuLL, 0x00000003FFFFFFFDuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x00000003FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x00000003BFFFFFFEuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000F7FFFFFFFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000F70000000uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000F60000001uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000F50000002uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000E8000000FuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x000000037FFDE091uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x00000005C7AA977FuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x000000038F83E0F7uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x000000037FFFFFFFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0FuLL, 0x00000000AD2D2D2CuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0FuLL, 0x000000009E1E1E1DuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0FuLL, 0x000000008F0F0F0EuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6CB7FFFFFFFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6CB7FFFFFDDuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6CB7FFFFFBBuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6CB7FFFFF99uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6CB7FFFFDDFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6CA802AD6CBuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6CA887AE157uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6BA80000021uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6BA7FFFFFFFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6A980000065uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6A980000043uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6A980000021uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x013333437FFFFFFFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x013333437FFFFFDCuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x013333437FFFFFB9uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x013333437FFFFF96uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x013333437FFFFDCFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x0133334278A491D1uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x0133334281333343uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x0133333200000022uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x01333331FFFFFFFFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x0133332080000068uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133332080000045uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133332080000022uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000002uLL, 0x000000017FFFFFFFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000002uLL, 0x000000017FFFFFFDuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000002uLL, 0x000000017FFFFFFBuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000002uLL, 0x000000017FFFFFF9uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000002uLL, 0x000000017FFFFFDFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000002uLL, 0x0000000170F3760BuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000002uLL, 0x000000017170A3D7uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000002uLL, 0x0000000080000001uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000002uLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFF80000002uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFF80000001uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFF80000000uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFF7FFFFFFEuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFF7FFFFFFDuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFF7FFFFFFCuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFF7FFFFFEFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFF7879BB05uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFF78B851EBuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFF00000000uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFE80000002uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFE80000001uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE80000000uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x000000027FFFFFFFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x000000027FFFFFFEuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x000000027FFFFFFDuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0x000000027FFFFFFCuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000001uLL, 0x000000027FFFFFEFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000001uLL, 0x000000027879BB05uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000001uLL, 0x0000000278B851EBuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000200000000uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000180000002uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000180000001uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000180000000uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000001uLL, 0x000000017FFFFFFFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000001uLL, 0x000000017FFFFFFEuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000001uLL, 0x000000017FFFFFFDuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000001uLL, 0x000000017FFFFFFCuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000001uLL, 0x000000017FFFFFEFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000001uLL, 0x000000017879BB05uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000001uLL, 0x0000000178B851EBuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000080000002uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000080000001uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000000uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000001uLL, 0x000000007FFFFFFCuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000001uLL, 0x000000007FFFFFEFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x000000007879BB05uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x0000000078B851EBuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL, 0xFFFFFFFF7FFFFFFFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFF7FFFFFFFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFF7FFFFFFFuLL}, +{0xFFFFFFFF7FFFFFFFuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFF7FFFFFFFuLL}, +{0xFFFFFFFF80000000uLL, 0x0000000000000001uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000000uLL}, +{0xFFFFFFFF80000000uLL, 0x0000000000000002uLL, 0x7FFFFFFFC0000000uLL, 0x0000000000000000uLL}, +{0xFFFFFFFF80000000uLL, 0x0000000000000003uLL, 0x555555552AAAAAAAuLL, 0x0000000000000002uLL}, +{0xFFFFFFFF80000000uLL, 0x0000000000000010uLL, 0x0FFFFFFFF8000000uLL, 0x0000000000000000uLL}, +{0xFFFFFFFF80000000uLL, 0x00000000078644FAuLL, 0x0000002205B17AECuLL, 0x00000000007F4588uLL}, +{0xFFFFFFFF80000000uLL, 0x000000000747AE14uLL, 0x000000232A32A56AuLL, 0x00000000013707B8uLL}, +{0xFFFFFFFF80000000uLL, 0x000000007FFFFFFFuLL, 0x0000000200000003uLL, 0x0000000000000003uLL}, +{0xFFFFFFFF80000000uLL, 0x0000000080000000uLL, 0x00000001FFFFFFFFuLL, 0x0000000000000000uLL}, +{0xFFFFFFFF80000000uLL, 0x00000000FFFFFFFDuLL, 0x0000000100000002uLL, 0x0000000080000006uLL}, +{0xFFFFFFFF80000000uLL, 0x00000000FFFFFFFEuLL, 0x0000000100000001uLL, 0x0000000080000002uLL}, +{0xFFFFFFFF80000000uLL, 0x00000000FFFFFFFFuLL, 0x0000000100000000uLL, 0x0000000080000000uLL}, +{0xFFFFFFFF80000000uLL, 0x0000000100000000uLL, 0x00000000FFFFFFFFuLL, 0x0000000080000000uLL}, +{0xFFFFFFFF80000000uLL, 0x0000000100000001uLL, 0x00000000FFFFFFFEuLL, 0x0000000080000002uLL}, +{0xFFFFFFFF80000000uLL, 0x0000000100000002uLL, 0x00000000FFFFFFFDuLL, 0x0000000080000006uLL}, +{0xFFFFFFFF80000000uLL, 0x0000000100000003uLL, 0x00000000FFFFFFFCuLL, 0x000000008000000CuLL}, +{0xFFFFFFFF80000000uLL, 0x0000000100000010uLL, 0x00000000FFFFFFEFuLL, 0x0000000080000110uLL}, +{0xFFFFFFFF80000000uLL, 0x00000001078644FAuLL, 0x00000000F8B0BB5CuLL, 0x000000001B7C9828uLL}, +{0xFFFFFFFF80000000uLL, 0x000000010747AE14uLL, 0x00000000F8EBDA59uLL, 0x00000000C17B730CuLL}, +{0xFFFFFFFF80000000uLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAAAuLL, 0x000000012AAAAAAAuLL}, +{0xFFFFFFFF80000000uLL, 0x0000000180000000uLL, 0x00000000AAAAAAAAuLL, 0x0000000080000000uLL}, +{0xFFFFFFFF80000000uLL, 0x00000001FFFFFFFDuLL, 0x0000000080000000uLL, 0x0000000100000000uLL}, +{0xFFFFFFFF80000000uLL, 0x00000001FFFFFFFEuLL, 0x0000000080000000uLL, 0x0000000080000000uLL}, +{0xFFFFFFFF80000000uLL, 0x00000001FFFFFFFFuLL, 0x0000000080000000uLL, 0x0000000000000000uLL}, +{0xFFFFFFFF80000000uLL, 0x0000000200000000uLL, 0x000000007FFFFFFFuLL, 0x0000000180000000uLL}, +{0xFFFFFFFF80000000uLL, 0x0000000200000001uLL, 0x000000007FFFFFFFuLL, 0x0000000100000001uLL}, +{0xFFFFFFFF80000000uLL, 0x0000000200000002uLL, 0x000000007FFFFFFFuLL, 0x0000000080000002uLL}, +{0xFFFFFFFF80000000uLL, 0x0000000200000003uLL, 0x000000007FFFFFFFuLL, 0x0000000000000003uLL}, +{0xFFFFFFFF80000000uLL, 0x0000000200000010uLL, 0x000000007FFFFFFBuLL, 0x0000000180000050uLL}, +{0xFFFFFFFF80000000uLL, 0x00000002078644FAuLL, 0x000000007E256849uLL, 0x00000001CA8EC4B6uLL}, +{0xFFFFFFFF80000000uLL, 0x000000020747AE14uLL, 0x000000007E349CA6uLL, 0x00000001E560EF08uLL}, +{0xFFFFFFFF80000000uLL, 0x000000027FFFFFFFuLL, 0x0000000066666666uLL, 0x00000000E6666666uLL}, +{0xFFFFFFFF80000000uLL, 0x0000000280000000uLL, 0x0000000066666666uLL, 0x0000000080000000uLL}, +{0xFFFFFFFF80000000uLL, 0x00000002FFFFFFFDuLL, 0x0000000055555555uLL, 0x000000017FFFFFFFuLL}, +{0xFFFFFFFF80000000uLL, 0x00000002FFFFFFFEuLL, 0x0000000055555555uLL, 0x000000012AAAAAAAuLL}, +{0xFFFFFFFF80000000uLL, 0x00000002FFFFFFFFuLL, 0x0000000055555555uLL, 0x00000000D5555555uLL}, +{0xFFFFFFFF80000000uLL, 0x0000000300000000uLL, 0x0000000055555555uLL, 0x0000000080000000uLL}, +{0xFFFFFFFF80000000uLL, 0x0000000300000001uLL, 0x0000000055555555uLL, 0x000000002AAAAAABuLL}, +{0xFFFFFFFF80000000uLL, 0x0000000300000002uLL, 0x0000000055555554uLL, 0x00000002D5555558uLL}, +{0xFFFFFFFF80000000uLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x0000000280000004uLL}, +{0xFFFFFFFF80000000uLL, 0x0000000300000010uLL, 0x0000000055555553uLL, 0x000000012AAAAAD0uLL}, +{0xFFFFFFFF80000000uLL, 0x00000003078644FAuLL, 0x0000000054816148uLL, 0x00000000B81FDFB0uLL}, +{0xFFFFFFFF80000000uLL, 0x000000030747AE14uLL, 0x00000000548833C6uLL, 0x000000018C416088uLL}, +{0xFFFFFFFF80000000uLL, 0x000000037FFFFFFFuLL, 0x0000000049249249uLL, 0x0000000049249249uLL}, +{0xFFFFFFFF80000000uLL, 0x0000000380000000uLL, 0x0000000049249249uLL, 0x0000000000000000uLL}, +{0xFFFFFFFF80000000uLL, 0x00000003FFFFFFFDuLL, 0x0000000040000000uLL, 0x0000000040000000uLL}, +{0xFFFFFFFF80000000uLL, 0x00000003FFFFFFFEuLL, 0x0000000040000000uLL, 0x0000000000000000uLL}, +{0xFFFFFFFF80000000uLL, 0x00000003FFFFFFFFuLL, 0x000000003FFFFFFFuLL, 0x00000003BFFFFFFFuLL}, +{0xFFFFFFFF80000000uLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000F80000000uLL}, +{0xFFFFFFFF80000000uLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000F70000001uLL}, +{0xFFFFFFFF80000000uLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000F60000002uLL}, +{0xFFFFFFFF80000000uLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000F50000003uLL}, +{0xFFFFFFFF80000000uLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000E80000010uLL}, +{0xFFFFFFFF80000000uLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x000000037FFDE092uLL}, +{0xFFFFFFFF80000000uLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x00000005C7AA9780uLL}, +{0xFFFFFFFF80000000uLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x000000038F83E0F8uLL}, +{0xFFFFFFFF80000000uLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x0000000380000000uLL}, +{0xFFFFFFFF80000000uLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0FuLL, 0x00000000AD2D2D2DuLL}, +{0xFFFFFFFF80000000uLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0FuLL, 0x000000009E1E1E1EuLL}, +{0xFFFFFFFF80000000uLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0FuLL, 0x000000008F0F0F0FuLL}, +{0xFFFFFFFF80000000uLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6CB80000000uLL}, +{0xFFFFFFFF80000000uLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6CB7FFFFFDEuLL}, +{0xFFFFFFFF80000000uLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6CB7FFFFFBCuLL}, +{0xFFFFFFFF80000000uLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6CB7FFFFF9AuLL}, +{0xFFFFFFFF80000000uLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6CB7FFFFDE0uLL}, +{0xFFFFFFFF80000000uLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6CA802AD6CCuLL}, +{0xFFFFFFFF80000000uLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6CA887AE158uLL}, +{0xFFFFFFFF80000000uLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6BA80000022uLL}, +{0xFFFFFFFF80000000uLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6BA80000000uLL}, +{0xFFFFFFFF80000000uLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6A980000066uLL}, +{0xFFFFFFFF80000000uLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6A980000044uLL}, +{0xFFFFFFFF80000000uLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6A980000022uLL}, +{0xFFFFFFFF80000000uLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x0133334380000000uLL}, +{0xFFFFFFFF80000000uLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x013333437FFFFFDDuLL}, +{0xFFFFFFFF80000000uLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x013333437FFFFFBAuLL}, +{0xFFFFFFFF80000000uLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x013333437FFFFF97uLL}, +{0xFFFFFFFF80000000uLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x013333437FFFFDD0uLL}, +{0xFFFFFFFF80000000uLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x0133334278A491D2uLL}, +{0xFFFFFFFF80000000uLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x0133334281333344uLL}, +{0xFFFFFFFF80000000uLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x0133333200000023uLL}, +{0xFFFFFFFF80000000uLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x0133333200000000uLL}, +{0xFFFFFFFF80000000uLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x0133332080000069uLL}, +{0xFFFFFFFF80000000uLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133332080000046uLL}, +{0xFFFFFFFF80000000uLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133332080000023uLL}, +{0xFFFFFFFF80000000uLL, 0x7FFFFFFF00000000uLL, 0x0000000000000002uLL, 0x0000000180000000uLL}, +{0xFFFFFFFF80000000uLL, 0x7FFFFFFF00000001uLL, 0x0000000000000002uLL, 0x000000017FFFFFFEuLL}, +{0xFFFFFFFF80000000uLL, 0x7FFFFFFF00000002uLL, 0x0000000000000002uLL, 0x000000017FFFFFFCuLL}, +{0xFFFFFFFF80000000uLL, 0x7FFFFFFF00000003uLL, 0x0000000000000002uLL, 0x000000017FFFFFFAuLL}, +{0xFFFFFFFF80000000uLL, 0x7FFFFFFF00000010uLL, 0x0000000000000002uLL, 0x000000017FFFFFE0uLL}, +{0xFFFFFFFF80000000uLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000002uLL, 0x0000000170F3760CuLL}, +{0xFFFFFFFF80000000uLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000002uLL, 0x000000017170A3D8uLL}, +{0xFFFFFFFF80000000uLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000002uLL, 0x0000000080000002uLL}, +{0xFFFFFFFF80000000uLL, 0x7FFFFFFF80000000uLL, 0x0000000000000002uLL, 0x0000000080000000uLL}, +{0xFFFFFFFF80000000uLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFF80000003uLL}, +{0xFFFFFFFF80000000uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFF80000002uLL}, +{0xFFFFFFFF80000000uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFF80000001uLL}, +{0xFFFFFFFF80000000uLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFF80000000uLL}, +{0xFFFFFFFF80000000uLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0xFFFFFFFF80000000uLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFF7FFFFFFEuLL}, +{0xFFFFFFFF80000000uLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFF7FFFFFFDuLL}, +{0xFFFFFFFF80000000uLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFF7FFFFFF0uLL}, +{0xFFFFFFFF80000000uLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFF7879BB06uLL}, +{0xFFFFFFFF80000000uLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFF78B851ECuLL}, +{0xFFFFFFFF80000000uLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFF00000001uLL}, +{0xFFFFFFFF80000000uLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFF00000000uLL}, +{0xFFFFFFFF80000000uLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFE80000003uLL}, +{0xFFFFFFFF80000000uLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFE80000002uLL}, +{0xFFFFFFFF80000000uLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFE80000001uLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x0000000280000000uLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x000000027FFFFFFFuLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x000000027FFFFFFEuLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0x000000027FFFFFFDuLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFD00000010uLL, 0x0000000000000001uLL, 0x000000027FFFFFF0uLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000001uLL, 0x000000027879BB06uLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000001uLL, 0x0000000278B851ECuLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000200000001uLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFD80000000uLL, 0x0000000000000001uLL, 0x0000000200000000uLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000180000003uLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000180000002uLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000180000001uLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFE00000000uLL, 0x0000000000000001uLL, 0x0000000180000000uLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFE00000001uLL, 0x0000000000000001uLL, 0x000000017FFFFFFFuLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFE00000002uLL, 0x0000000000000001uLL, 0x000000017FFFFFFEuLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFE00000003uLL, 0x0000000000000001uLL, 0x000000017FFFFFFDuLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFE00000010uLL, 0x0000000000000001uLL, 0x000000017FFFFFF0uLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000001uLL, 0x000000017879BB06uLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000001uLL, 0x0000000178B851ECuLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000100000001uLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFE80000000uLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000080000003uLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000080000002uLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000001uLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFF00000000uLL, 0x0000000000000001uLL, 0x0000000080000000uLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFF00000001uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFF00000002uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFF00000003uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFF00000010uLL, 0x0000000000000001uLL, 0x000000007FFFFFF0uLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x000000007879BB06uLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x0000000078B851ECuLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFF80000000uLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL, 0xFFFFFFFF80000000uLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFF80000000uLL}, +{0xFFFFFFFF80000000uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFF80000000uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000000uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000002uLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000003uLL, 0x5555555555555554uLL, 0x0000000000000001uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000010uLL, 0x0FFFFFFFFFFFFFFFuLL, 0x000000000000000DuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x00000000078644FAuLL, 0x0000002205B17AFDuLL, 0x000000000094B0EBuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x000000000747AE14uLL, 0x000000232A32A57BuLL, 0x0000000005747861uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x000000007FFFFFFFuLL, 0x0000000200000004uLL, 0x0000000000000001uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0000000080000000uLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x00000000FFFFFFFDuLL, 0x0000000100000003uLL, 0x0000000000000006uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x00000000FFFFFFFEuLL, 0x0000000100000002uLL, 0x0000000000000001uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x00000000FFFFFFFFuLL, 0x0000000100000000uLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0000000100000000uLL, 0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0000000100000001uLL, 0x00000000FFFFFFFEuLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0000000100000002uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000001uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0000000100000003uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000006uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0000000100000010uLL, 0x00000000FFFFFFF0uLL, 0x00000000000000FDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x00000001078644FAuLL, 0x00000000F8B0BB5CuLL, 0x000000009B7C9825uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x000000010747AE14uLL, 0x00000000F8EBDA5AuLL, 0x000000003A33C4F5uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAABuLL, 0x000000002AAAAAA8uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0000000180000000uLL, 0x00000000AAAAAAAAuLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x00000001FFFFFFFDuLL, 0x0000000080000000uLL, 0x000000017FFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x00000001FFFFFFFEuLL, 0x0000000080000000uLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x00000001FFFFFFFFuLL, 0x0000000080000000uLL, 0x000000007FFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0000000200000000uLL, 0x000000007FFFFFFFuLL, 0x00000001FFFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0000000200000001uLL, 0x000000007FFFFFFFuLL, 0x000000017FFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0000000200000002uLL, 0x000000007FFFFFFFuLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0000000200000003uLL, 0x000000007FFFFFFFuLL, 0x0000000080000000uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0000000200000010uLL, 0x000000007FFFFFFCuLL, 0x000000000000003DuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x00000002078644FAuLL, 0x000000007E25684AuLL, 0x0000000043087FB9uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x000000020747AE14uLL, 0x000000007E349CA7uLL, 0x000000005E1940F1uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x000000027FFFFFFFuLL, 0x0000000066666666uLL, 0x0000000166666663uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0000000280000000uLL, 0x0000000066666666uLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x00000002FFFFFFFDuLL, 0x0000000055555555uLL, 0x00000001FFFFFFFCuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x00000002FFFFFFFEuLL, 0x0000000055555555uLL, 0x00000001AAAAAAA7uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x00000002FFFFFFFFuLL, 0x0000000055555555uLL, 0x0000000155555552uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0000000300000000uLL, 0x0000000055555555uLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0000000300000001uLL, 0x0000000055555555uLL, 0x00000000AAAAAAA8uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0000000300000002uLL, 0x0000000055555555uLL, 0x0000000055555553uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x0000000300000001uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0000000300000010uLL, 0x0000000055555553uLL, 0x00000001AAAAAACDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x00000003078644FAuLL, 0x0000000054816148uLL, 0x00000001381FDFADuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x000000030747AE14uLL, 0x00000000548833C6uLL, 0x000000020C416085uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x000000037FFFFFFFuLL, 0x0000000049249249uLL, 0x00000000C9249246uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0000000380000000uLL, 0x0000000049249249uLL, 0x000000007FFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x00000003FFFFFFFDuLL, 0x0000000040000000uLL, 0x00000000BFFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x00000003FFFFFFFEuLL, 0x0000000040000000uLL, 0x000000007FFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x00000003FFFFFFFFuLL, 0x0000000040000000uLL, 0x000000003FFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000FFFFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000FEFFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000FDFFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000FD0000000uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000F0000000DuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x00000003FFFDE08FuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x0000000647AA977DuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x000000040F83E0F5uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x00000003FFFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0FuLL, 0x000000012D2D2D2AuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0FuLL, 0x000000011E1E1E1BuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0FuLL, 0x000000010F0F0F0CuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6CBFFFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6CBFFFFFFDBuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6CBFFFFFFB9uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6CBFFFFFF97uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6CBFFFFFDDDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6CB002AD6C9uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6CB087AE155uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6BB0000001FuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6BAFFFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6AA00000063uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6AA00000041uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6AA0000001FuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x01333343FFFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x01333343FFFFFFDAuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x01333343FFFFFFB7uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x01333343FFFFFF94uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x01333343FFFFFDCDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x01333342F8A491CFuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x0133334301333341uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x0133333280000020uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x013333327FFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x0133332100000066uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133332100000043uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133332100000020uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000002uLL, 0x00000001FFFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000002uLL, 0x00000001FFFFFFFBuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000002uLL, 0x00000001FFFFFFF9uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000002uLL, 0x00000001FFFFFFF7uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000002uLL, 0x00000001FFFFFFDDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000002uLL, 0x00000001F0F37609uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000002uLL, 0x00000001F170A3D5uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000002uLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000002uLL, 0x0000000000000003uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000002uLL, 0x0000000000000001uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFFFFFFFFFCuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFFFFFFFFFBuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFFFFFFFFFAuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFFFFFFFFEDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFFF879BB03uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFFF8B851E9uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFF7FFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFF7FFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFF00000000uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x00000002FFFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x00000002FFFFFFFCuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x00000002FFFFFFFBuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0x00000002FFFFFFFAuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000001uLL, 0x00000002FFFFFFEDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000001uLL, 0x00000002F879BB03uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000001uLL, 0x00000002F8B851E9uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000001uLL, 0x000000027FFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000001uLL, 0x000000027FFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000200000000uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000001uLL, 0x00000001FFFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000001uLL, 0x00000001FFFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFCuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFBuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFAuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000001uLL, 0x00000001FFFFFFEDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000001uLL, 0x00000001F879BB03uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000001uLL, 0x00000001F8B851E9uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000001uLL, 0x000000017FFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000001uLL, 0x000000017FFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFCuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFBuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFAuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFEDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB03uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851E9uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL, 0xFFFFFFFFFFFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFDuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFFFFFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000000uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000002uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000003uLL, 0x5555555555555554uLL, 0x0000000000000002uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000010uLL, 0x0FFFFFFFFFFFFFFFuLL, 0x000000000000000EuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x00000000078644FAuLL, 0x0000002205B17AFDuLL, 0x000000000094B0ECuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x000000000747AE14uLL, 0x000000232A32A57BuLL, 0x0000000005747862uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x000000007FFFFFFFuLL, 0x0000000200000004uLL, 0x0000000000000002uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0000000080000000uLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x00000000FFFFFFFDuLL, 0x0000000100000003uLL, 0x0000000000000007uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x00000000FFFFFFFEuLL, 0x0000000100000002uLL, 0x0000000000000002uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x00000000FFFFFFFFuLL, 0x0000000100000000uLL, 0x00000000FFFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0000000100000000uLL, 0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0000000100000001uLL, 0x00000000FFFFFFFEuLL, 0x0000000100000000uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0000000100000002uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000002uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0000000100000003uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000007uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0000000100000010uLL, 0x00000000FFFFFFF0uLL, 0x00000000000000FEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x00000001078644FAuLL, 0x00000000F8B0BB5CuLL, 0x000000009B7C9826uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x000000010747AE14uLL, 0x00000000F8EBDA5AuLL, 0x000000003A33C4F6uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAABuLL, 0x000000002AAAAAA9uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0000000180000000uLL, 0x00000000AAAAAAAAuLL, 0x00000000FFFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x00000001FFFFFFFDuLL, 0x0000000080000000uLL, 0x000000017FFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x00000001FFFFFFFEuLL, 0x0000000080000000uLL, 0x00000000FFFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x00000001FFFFFFFFuLL, 0x0000000080000000uLL, 0x000000007FFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0000000200000000uLL, 0x000000007FFFFFFFuLL, 0x00000001FFFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0000000200000001uLL, 0x000000007FFFFFFFuLL, 0x000000017FFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0000000200000002uLL, 0x000000007FFFFFFFuLL, 0x0000000100000000uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0000000200000003uLL, 0x000000007FFFFFFFuLL, 0x0000000080000001uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0000000200000010uLL, 0x000000007FFFFFFCuLL, 0x000000000000003EuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x00000002078644FAuLL, 0x000000007E25684AuLL, 0x0000000043087FBAuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x000000020747AE14uLL, 0x000000007E349CA7uLL, 0x000000005E1940F2uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x000000027FFFFFFFuLL, 0x0000000066666666uLL, 0x0000000166666664uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0000000280000000uLL, 0x0000000066666666uLL, 0x00000000FFFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x00000002FFFFFFFDuLL, 0x0000000055555555uLL, 0x00000001FFFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x00000002FFFFFFFEuLL, 0x0000000055555555uLL, 0x00000001AAAAAAA8uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x00000002FFFFFFFFuLL, 0x0000000055555555uLL, 0x0000000155555553uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0000000300000000uLL, 0x0000000055555555uLL, 0x00000000FFFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0000000300000001uLL, 0x0000000055555555uLL, 0x00000000AAAAAAA9uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0000000300000002uLL, 0x0000000055555555uLL, 0x0000000055555554uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0000000300000003uLL, 0x0000000055555554uLL, 0x0000000300000002uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0000000300000010uLL, 0x0000000055555553uLL, 0x00000001AAAAAACEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x00000003078644FAuLL, 0x0000000054816148uLL, 0x00000001381FDFAEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x000000030747AE14uLL, 0x00000000548833C6uLL, 0x000000020C416086uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x000000037FFFFFFFuLL, 0x0000000049249249uLL, 0x00000000C9249247uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0000000380000000uLL, 0x0000000049249249uLL, 0x000000007FFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x00000003FFFFFFFDuLL, 0x0000000040000000uLL, 0x00000000BFFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x00000003FFFFFFFEuLL, 0x0000000040000000uLL, 0x000000007FFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x00000003FFFFFFFFuLL, 0x0000000040000000uLL, 0x000000003FFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000FFFFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000FEFFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000FE0000000uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000FD0000001uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000F0000000EuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x00000003FFFDE090uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x0000000647AA977EuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x000000040F83E0F6uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x00000003FFFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0FuLL, 0x000000012D2D2D2BuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0FuLL, 0x000000011E1E1E1CuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0FuLL, 0x000000010F0F0F0DuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6CBFFFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6CBFFFFFFDCuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6CBFFFFFFBAuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6CBFFFFFF98uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6CBFFFFFDDEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6CB002AD6CAuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6CB087AE156uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6BB00000020uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6BAFFFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6AA00000064uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6AA00000042uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6AA00000020uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x01333343FFFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x01333343FFFFFFDBuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x01333343FFFFFFB8uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x01333343FFFFFF95uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x01333343FFFFFDCEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x01333342F8A491D0uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x0133334301333342uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x0133333280000021uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x013333327FFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x0133332100000067uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133332100000044uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133332100000021uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000002uLL, 0x00000001FFFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000002uLL, 0x00000001FFFFFFFCuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000002uLL, 0x00000001FFFFFFFAuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000002uLL, 0x00000001FFFFFFF8uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000002uLL, 0x00000001FFFFFFDEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000002uLL, 0x00000001F0F3760AuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000002uLL, 0x00000001F170A3D6uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000002uLL, 0x0000000100000000uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000002uLL, 0x0000000000000004uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000002uLL, 0x0000000000000002uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000002uLL, 0x0000000000000000uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFFFFFFFFFCuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFFFFFFFFFBuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFFFFFFFFEEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFFF879BB04uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFFF8B851EAuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFF7FFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFF00000001uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFF00000000uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFEFFFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x00000002FFFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x00000002FFFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x00000002FFFFFFFCuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0x00000002FFFFFFFBuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000001uLL, 0x00000002FFFFFFEEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000001uLL, 0x00000002F879BB04uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000001uLL, 0x00000002F8B851EAuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000001uLL, 0x000000027FFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000001uLL, 0x000000027FFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000200000001uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000200000000uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000001uLL, 0x00000001FFFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFCuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFBuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000001uLL, 0x00000001FFFFFFEEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000001uLL, 0x00000001F879BB04uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000001uLL, 0x00000001F8B851EAuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000001uLL, 0x000000017FFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000001uLL, 0x000000017FFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000100000001uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFCuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFBuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFEEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB04uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EAuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFFFFFFFFFEuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL, 0xFFFFFFFFFFFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000000uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000002uLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000003uLL, 0x5555555555555555uLL, 0x0000000000000000uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000010uLL, 0x0FFFFFFFFFFFFFFFuLL, 0x000000000000000FuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x00000000078644FAuLL, 0x0000002205B17AFDuLL, 0x000000000094B0EDuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x000000000747AE14uLL, 0x000000232A32A57BuLL, 0x0000000005747863uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x000000007FFFFFFFuLL, 0x0000000200000004uLL, 0x0000000000000003uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0000000080000000uLL, 0x00000001FFFFFFFFuLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x00000000FFFFFFFDuLL, 0x0000000100000003uLL, 0x0000000000000008uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x00000000FFFFFFFEuLL, 0x0000000100000002uLL, 0x0000000000000003uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x00000000FFFFFFFFuLL, 0x0000000100000001uLL, 0x0000000000000000uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0000000100000000uLL, 0x00000000FFFFFFFFuLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0000000100000001uLL, 0x00000000FFFFFFFFuLL, 0x0000000000000000uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0000000100000002uLL, 0x00000000FFFFFFFEuLL, 0x0000000000000003uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0000000100000003uLL, 0x00000000FFFFFFFDuLL, 0x0000000000000008uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0000000100000010uLL, 0x00000000FFFFFFF0uLL, 0x00000000000000FFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x00000001078644FAuLL, 0x00000000F8B0BB5CuLL, 0x000000009B7C9827uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x000000010747AE14uLL, 0x00000000F8EBDA5AuLL, 0x000000003A33C4F7uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x000000017FFFFFFFuLL, 0x00000000AAAAAAABuLL, 0x000000002AAAAAAAuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0000000180000000uLL, 0x00000000AAAAAAAAuLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x00000001FFFFFFFDuLL, 0x0000000080000000uLL, 0x000000017FFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x00000001FFFFFFFEuLL, 0x0000000080000000uLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x00000001FFFFFFFFuLL, 0x0000000080000000uLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0000000200000000uLL, 0x000000007FFFFFFFuLL, 0x00000001FFFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0000000200000001uLL, 0x000000007FFFFFFFuLL, 0x0000000180000000uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0000000200000002uLL, 0x000000007FFFFFFFuLL, 0x0000000100000001uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0000000200000003uLL, 0x000000007FFFFFFFuLL, 0x0000000080000002uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0000000200000010uLL, 0x000000007FFFFFFCuLL, 0x000000000000003FuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x00000002078644FAuLL, 0x000000007E25684AuLL, 0x0000000043087FBBuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x000000020747AE14uLL, 0x000000007E349CA7uLL, 0x000000005E1940F3uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x000000027FFFFFFFuLL, 0x0000000066666666uLL, 0x0000000166666665uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0000000280000000uLL, 0x0000000066666666uLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x00000002FFFFFFFDuLL, 0x0000000055555555uLL, 0x00000001FFFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x00000002FFFFFFFEuLL, 0x0000000055555555uLL, 0x00000001AAAAAAA9uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x00000002FFFFFFFFuLL, 0x0000000055555555uLL, 0x0000000155555554uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0000000300000000uLL, 0x0000000055555555uLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0000000300000001uLL, 0x0000000055555555uLL, 0x00000000AAAAAAAAuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0000000300000002uLL, 0x0000000055555555uLL, 0x0000000055555555uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0000000300000003uLL, 0x0000000055555555uLL, 0x0000000000000000uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0000000300000010uLL, 0x0000000055555553uLL, 0x00000001AAAAAACFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x00000003078644FAuLL, 0x0000000054816148uLL, 0x00000001381FDFAFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x000000030747AE14uLL, 0x00000000548833C6uLL, 0x000000020C416087uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x000000037FFFFFFFuLL, 0x0000000049249249uLL, 0x00000000C9249248uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0000000380000000uLL, 0x0000000049249249uLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x00000003FFFFFFFDuLL, 0x0000000040000000uLL, 0x00000000BFFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x00000003FFFFFFFEuLL, 0x0000000040000000uLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x00000003FFFFFFFFuLL, 0x0000000040000000uLL, 0x000000003FFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0000001000000000uLL, 0x000000000FFFFFFFuLL, 0x0000000FFFFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0000001000000001uLL, 0x000000000FFFFFFFuLL, 0x0000000FF0000000uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0000001000000002uLL, 0x000000000FFFFFFFuLL, 0x0000000FE0000001uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0000001000000003uLL, 0x000000000FFFFFFFuLL, 0x0000000FD0000002uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0000001000000010uLL, 0x000000000FFFFFFFuLL, 0x0000000F0000000FuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x00000010078644FAuLL, 0x000000000FF87D43uLL, 0x00000003FFFDE091uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x000000100747AE14uLL, 0x000000000FF8BBA0uLL, 0x0000000647AA977FuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x000000107FFFFFFFuLL, 0x000000000F83E0F8uLL, 0x000000040F83E0F7uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0000001080000000uLL, 0x000000000F83E0F8uLL, 0x00000003FFFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x00000010FFFFFFFDuLL, 0x000000000F0F0F0FuLL, 0x000000012D2D2D2CuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x00000010FFFFFFFEuLL, 0x000000000F0F0F0FuLL, 0x000000011E1E1E1DuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x00000010FFFFFFFFuLL, 0x000000000F0F0F0FuLL, 0x000000010F0F0F0EuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x078644FA00000000uLL, 0x0000000000000022uLL, 0x002AD6CBFFFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x078644FA00000001uLL, 0x0000000000000022uLL, 0x002AD6CBFFFFFFDDuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x078644FA00000002uLL, 0x0000000000000022uLL, 0x002AD6CBFFFFFFBBuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x078644FA00000003uLL, 0x0000000000000022uLL, 0x002AD6CBFFFFFF99uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x078644FA00000010uLL, 0x0000000000000022uLL, 0x002AD6CBFFFFFDDFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x078644FA078644FAuLL, 0x0000000000000022uLL, 0x002AD6CB002AD6CBuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x078644FA0747AE14uLL, 0x0000000000000022uLL, 0x002AD6CB087AE157uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x078644FA7FFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6BB00000021uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x078644FA80000000uLL, 0x0000000000000022uLL, 0x002AD6BAFFFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x078644FAFFFFFFFDuLL, 0x0000000000000022uLL, 0x002AD6AA00000065uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x078644FAFFFFFFFEuLL, 0x0000000000000022uLL, 0x002AD6AA00000043uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x078644FAFFFFFFFFuLL, 0x0000000000000022uLL, 0x002AD6AA00000021uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0747AE1400000000uLL, 0x0000000000000023uLL, 0x01333343FFFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0747AE1400000001uLL, 0x0000000000000023uLL, 0x01333343FFFFFFDCuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0747AE1400000002uLL, 0x0000000000000023uLL, 0x01333343FFFFFFB9uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0747AE1400000003uLL, 0x0000000000000023uLL, 0x01333343FFFFFF96uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0747AE1400000010uLL, 0x0000000000000023uLL, 0x01333343FFFFFDCFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0747AE14078644FAuLL, 0x0000000000000023uLL, 0x01333342F8A491D1uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0747AE140747AE14uLL, 0x0000000000000023uLL, 0x0133334301333343uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0747AE147FFFFFFFuLL, 0x0000000000000023uLL, 0x0133333280000022uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0747AE1480000000uLL, 0x0000000000000023uLL, 0x013333327FFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0747AE14FFFFFFFDuLL, 0x0000000000000023uLL, 0x0133332100000068uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0747AE14FFFFFFFEuLL, 0x0000000000000023uLL, 0x0133332100000045uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x0747AE14FFFFFFFFuLL, 0x0000000000000023uLL, 0x0133332100000022uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x7FFFFFFF00000000uLL, 0x0000000000000002uLL, 0x00000001FFFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x7FFFFFFF00000001uLL, 0x0000000000000002uLL, 0x00000001FFFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x7FFFFFFF00000002uLL, 0x0000000000000002uLL, 0x00000001FFFFFFFBuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x7FFFFFFF00000003uLL, 0x0000000000000002uLL, 0x00000001FFFFFFF9uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x7FFFFFFF00000010uLL, 0x0000000000000002uLL, 0x00000001FFFFFFDFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x7FFFFFFF078644FAuLL, 0x0000000000000002uLL, 0x00000001F0F3760BuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x7FFFFFFF0747AE14uLL, 0x0000000000000002uLL, 0x00000001F170A3D7uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x7FFFFFFF7FFFFFFFuLL, 0x0000000000000002uLL, 0x0000000100000001uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x7FFFFFFF80000000uLL, 0x0000000000000002uLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x7FFFFFFFFFFFFFFDuLL, 0x0000000000000002uLL, 0x0000000000000005uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x7FFFFFFFFFFFFFFEuLL, 0x0000000000000002uLL, 0x0000000000000003uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x7FFFFFFFFFFFFFFFuLL, 0x0000000000000002uLL, 0x0000000000000001uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x8000000000000000uLL, 0x0000000000000001uLL, 0x7FFFFFFFFFFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x8000000000000001uLL, 0x0000000000000001uLL, 0x7FFFFFFFFFFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x8000000000000002uLL, 0x0000000000000001uLL, 0x7FFFFFFFFFFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x8000000000000003uLL, 0x0000000000000001uLL, 0x7FFFFFFFFFFFFFFCuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x8000000000000010uLL, 0x0000000000000001uLL, 0x7FFFFFFFFFFFFFEFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x80000000078644FAuLL, 0x0000000000000001uLL, 0x7FFFFFFFF879BB05uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x800000000747AE14uLL, 0x0000000000000001uLL, 0x7FFFFFFFF8B851EBuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x800000007FFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFF80000000uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x8000000080000000uLL, 0x0000000000000001uLL, 0x7FFFFFFF7FFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x80000000FFFFFFFDuLL, 0x0000000000000001uLL, 0x7FFFFFFF00000002uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x80000000FFFFFFFEuLL, 0x0000000000000001uLL, 0x7FFFFFFF00000001uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0x80000000FFFFFFFFuLL, 0x0000000000000001uLL, 0x7FFFFFFF00000000uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFD00000000uLL, 0x0000000000000001uLL, 0x00000002FFFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFD00000001uLL, 0x0000000000000001uLL, 0x00000002FFFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFD00000002uLL, 0x0000000000000001uLL, 0x00000002FFFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFD00000003uLL, 0x0000000000000001uLL, 0x00000002FFFFFFFCuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFD00000010uLL, 0x0000000000000001uLL, 0x00000002FFFFFFEFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFD078644FAuLL, 0x0000000000000001uLL, 0x00000002F879BB05uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFD0747AE14uLL, 0x0000000000000001uLL, 0x00000002F8B851EBuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFD7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000280000000uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFD80000000uLL, 0x0000000000000001uLL, 0x000000027FFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFDFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000200000002uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFDFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000200000001uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFDFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000200000000uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFE00000000uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFE00000001uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFE00000002uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFE00000003uLL, 0x0000000000000001uLL, 0x00000001FFFFFFFCuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFE00000010uLL, 0x0000000000000001uLL, 0x00000001FFFFFFEFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFE078644FAuLL, 0x0000000000000001uLL, 0x00000001F879BB05uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFE0747AE14uLL, 0x0000000000000001uLL, 0x00000001F8B851EBuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFE7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000180000000uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFE80000000uLL, 0x0000000000000001uLL, 0x000000017FFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFEFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000100000002uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFEFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000100000001uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFEFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000100000000uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFF00000000uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFF00000001uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFEuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFF00000002uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFDuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFF00000003uLL, 0x0000000000000001uLL, 0x00000000FFFFFFFCuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFF00000010uLL, 0x0000000000000001uLL, 0x00000000FFFFFFEFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFF078644FAuLL, 0x0000000000000001uLL, 0x00000000F879BB05uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFF0747AE14uLL, 0x0000000000000001uLL, 0x00000000F8B851EBuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFF7FFFFFFFuLL, 0x0000000000000001uLL, 0x0000000080000000uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFF80000000uLL, 0x0000000000000001uLL, 0x000000007FFFFFFFuLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFFFFFFFFFDuLL, 0x0000000000000001uLL, 0x0000000000000002uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFFFFFFFFFEuLL, 0x0000000000000001uLL, 0x0000000000000001uLL}, +{0xFFFFFFFFFFFFFFFFuLL, 0xFFFFFFFFFFFFFFFFuLL, 0x0000000000000001uLL, 0x0000000000000000uLL} +}; +#endif + +int main() +{ +#if __arm__ + const unsigned N = sizeof(tests) / sizeof(tests[0]); + unsigned i; + for (i = 0; i < N; ++i) + if (test_aeabi_uldivmod(tests[i][0], tests[i][1], tests[i][2], tests[i][3])) + return 1; +#else + printf("skipped\n"); +#endif + + return 0; +} diff --git a/test/builtins/Unit/arm/call_apsr.S b/test/builtins/Unit/arm/call_apsr.S index b5e154cff31f..2656f8de667b 100644 --- a/test/builtins/Unit/arm/call_apsr.S +++ b/test/builtins/Unit/arm/call_apsr.S @@ -22,11 +22,11 @@ // } DEFINE_COMPILERRT_PRIVATE_FUNCTION(call_apsr_d) - push {lr} - ldr ip, [sp, #4] - blx ip + push {r7, lr} + ldr r7, [sp, #8] + blx r7 mrs r0, apsr - pop {pc} + pop {r7, pc} END_COMPILERRT_FUNCTION(call_apsr_d) // __attribute__((pcs("aapcs"))) diff --git a/test/builtins/Unit/ashldi3_test.c b/test/builtins/Unit/ashldi3_test.c index 398fb69beb78..f0984e06dcf0 100644 --- a/test/builtins/Unit/ashldi3_test.c +++ b/test/builtins/Unit/ashldi3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- ashldi3_test.c - Test __ashldi3 -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/ashlti3_test.c b/test/builtins/Unit/ashlti3_test.c index 595e353065a9..06186614ffc3 100644 --- a/test/builtins/Unit/ashlti3_test.c +++ b/test/builtins/Unit/ashlti3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- ashlti3_test.c - Test __ashlti3 -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/ashrdi3_test.c b/test/builtins/Unit/ashrdi3_test.c index ee6409c870be..a987c953089e 100644 --- a/test/builtins/Unit/ashrdi3_test.c +++ b/test/builtins/Unit/ashrdi3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- ashrdi3_test.c - Test __ashrdi3 -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/ashrti3_test.c b/test/builtins/Unit/ashrti3_test.c index 201582d4eac4..1f086535273f 100644 --- a/test/builtins/Unit/ashrti3_test.c +++ b/test/builtins/Unit/ashrti3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- ashrti3_test.c - Test __ashrti3 -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/bswapdi2_test.c b/test/builtins/Unit/bswapdi2_test.c index 2d830cf5e41e..6881c8092cbb 100644 --- a/test/builtins/Unit/bswapdi2_test.c +++ b/test/builtins/Unit/bswapdi2_test.c @@ -1,3 +1,5 @@ +// UNSUPPORTED: armv6m-target-arch +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- bswapdi2_test.c - Test __bswapdi2 ---------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/bswapsi2_test.c b/test/builtins/Unit/bswapsi2_test.c index 4488a888e1eb..c32cbb442199 100644 --- a/test/builtins/Unit/bswapsi2_test.c +++ b/test/builtins/Unit/bswapsi2_test.c @@ -1,3 +1,5 @@ +// UNSUPPORTED: armv6m-target-arch +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- bswapsi2_test.c - Test __bswapsi2 ---------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/clear_cache_test.c b/test/builtins/Unit/clear_cache_test.c index 0ef704fcde88..58960ce3ca38 100644 --- a/test/builtins/Unit/clear_cache_test.c +++ b/test/builtins/Unit/clear_cache_test.c @@ -1,3 +1,6 @@ +// REQUIRES: native-run +// UNSUPPORTED: arm, aarch64 +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- clear_cache_test.c - Test clear_cache -----------------------------===// // // The LLVM Compiler Infrastructure @@ -13,12 +16,6 @@ #include <stdint.h> #if defined(_WIN32) #include <windows.h> -void __clear_cache(void* start, void* end) -{ - if (!FlushInstructionCache(GetCurrentProcess(), start, end-start)) - exit(1); -} - static uintptr_t get_page_size() { SYSTEM_INFO si; GetSystemInfo(&si); @@ -27,27 +24,20 @@ static uintptr_t get_page_size() { #else #include <unistd.h> #include <sys/mman.h> -extern void __clear_cache(void* start, void* end); static uintptr_t get_page_size() { return sysconf(_SC_PAGE_SIZE); } #endif - +extern void __clear_cache(void* start, void* end); typedef int (*pfunc)(void); -int func1() -{ - return 1; -} - -int func2() -{ - return 2; -} +// Make these static to avoid ILT jumps for incremental linking on Windows. +static int func1() { return 1; } +static int func2() { return 2; } void *__attribute__((noinline)) memcpy_f(void *dst, const void *src, size_t n) { diff --git a/test/builtins/Unit/clzdi2_test.c b/test/builtins/Unit/clzdi2_test.c index 41e120932dfd..a8c0e1b35037 100644 --- a/test/builtins/Unit/clzdi2_test.c +++ b/test/builtins/Unit/clzdi2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- clzdi2_test.c - Test __clzdi2 -------------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/clzsi2_test.c b/test/builtins/Unit/clzsi2_test.c index 80b300feea86..f86e8885e06c 100644 --- a/test/builtins/Unit/clzsi2_test.c +++ b/test/builtins/Unit/clzsi2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- clzsi2_test.c - Test __clzsi2 -------------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/clzti2_test.c b/test/builtins/Unit/clzti2_test.c index 3a2c6fabb82e..157838b6bddc 100644 --- a/test/builtins/Unit/clzti2_test.c +++ b/test/builtins/Unit/clzti2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- clzti2_test.c - Test __clzti2 -------------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/cmpdi2_test.c b/test/builtins/Unit/cmpdi2_test.c index 33a12a042400..1420dc773fce 100644 --- a/test/builtins/Unit/cmpdi2_test.c +++ b/test/builtins/Unit/cmpdi2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- cmpdi2_test.c - Test __cmpdi2 -------------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/cmpti2_test.c b/test/builtins/Unit/cmpti2_test.c index d951923b2da3..a2215f3c15cb 100644 --- a/test/builtins/Unit/cmpti2_test.c +++ b/test/builtins/Unit/cmpti2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- cmpti2_test.c - Test __cmpti2 -------------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/comparedf2_test.c b/test/builtins/Unit/comparedf2_test.c index 662372290290..844690197de5 100644 --- a/test/builtins/Unit/comparedf2_test.c +++ b/test/builtins/Unit/comparedf2_test.c @@ -1,3 +1,5 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t + //===-- cmpdf2_test.c - Test __cmpdf2 -------------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/comparesf2_test.c b/test/builtins/Unit/comparesf2_test.c index 026e90053bcf..1b5902f376d1 100644 --- a/test/builtins/Unit/comparesf2_test.c +++ b/test/builtins/Unit/comparesf2_test.c @@ -1,3 +1,5 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t + //===-- cmpsf2_test.c - Test __cmpsf2 -------------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/cpu_model_test.c b/test/builtins/Unit/cpu_model_test.c index 6a170372d970..6b47d143f074 100644 --- a/test/builtins/Unit/cpu_model_test.c +++ b/test/builtins/Unit/cpu_model_test.c @@ -1,4 +1,8 @@ -//===-- cpu_model_test.c - Test __builtin_cpu_supports -------------------------------===// +// FIXME: XFAIL the test because it is expected to return non-zero value. +// XFAIL: * +// REQUIRES: x86-target-arch +// RUN: %clang_builtins %s %librt -o %t && %run %t +//===-- cpu_model_test.c - Test __builtin_cpu_supports --------------------===// // // The LLVM Compiler Infrastructure // @@ -11,11 +15,16 @@ // //===----------------------------------------------------------------------===// -// REQUIRES: x86-target-arch +#include <stdio.h> int main (void) { +#if defined(i386) || defined(__x86_64__) if(__builtin_cpu_supports("avx2")) return 4; else return 3; +#else + printf("skipped\n"); + return 0; +#endif } diff --git a/test/builtins/Unit/ctzdi2_test.c b/test/builtins/Unit/ctzdi2_test.c index bde66b1e5450..0515e2072635 100644 --- a/test/builtins/Unit/ctzdi2_test.c +++ b/test/builtins/Unit/ctzdi2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- ctzdi2_test.c - Test __ctzdi2 -------------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/ctzsi2_test.c b/test/builtins/Unit/ctzsi2_test.c index cbc101fca04d..bf8982bf03f0 100644 --- a/test/builtins/Unit/ctzsi2_test.c +++ b/test/builtins/Unit/ctzsi2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- ctzsi2_test.c - Test __ctzsi2 -------------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/ctzti2_test.c b/test/builtins/Unit/ctzti2_test.c index 0ca1920bd74b..bef79b6f8694 100644 --- a/test/builtins/Unit/ctzti2_test.c +++ b/test/builtins/Unit/ctzti2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- ctzti2_test.c - Test __ctzti2 -------------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/divdc3_test.c b/test/builtins/Unit/divdc3_test.c index 80b9e86e1e2d..042fd23f0f24 100644 --- a/test/builtins/Unit/divdc3_test.c +++ b/test/builtins/Unit/divdc3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- divdc3_test.c - Test __divdc3 -------------------------------------===// // // The LLVM Compiler Infrastructure @@ -16,6 +17,8 @@ #include <complex.h> #include <stdio.h> +// REQUIRES: c99-complex + // Returns: the quotient of (a + ib) / (c + id) COMPILER_RT_ABI double _Complex diff --git a/test/builtins/Unit/divdf3vfp_test.c b/test/builtins/Unit/divdf3vfp_test.c index 6f0808abc931..4f18409a2835 100644 --- a/test/builtins/Unit/divdf3vfp_test.c +++ b/test/builtins/Unit/divdf3vfp_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- divdf3vfp_test.c - Test __divdf3vfp -------------------------------===// // // The LLVM Compiler Infrastructure @@ -17,7 +18,7 @@ #include <math.h> -#if __arm__ +#if __arm__ && __VFP_FP__ extern COMPILER_RT_ABI double __divdf3vfp(double a, double b); int test__divdf3vfp(double a, double b) @@ -33,7 +34,7 @@ int test__divdf3vfp(double a, double b) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__divdf3vfp(1.0, 1.0)) return 1; if (test__divdf3vfp(12345.678, 1.23)) diff --git a/test/builtins/Unit/divdi3_test.c b/test/builtins/Unit/divdi3_test.c index 1d459803e1ee..4c8c922260a2 100644 --- a/test/builtins/Unit/divdi3_test.c +++ b/test/builtins/Unit/divdi3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- divdi3_test.c - Test __divdi3 -------------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/divmodsi4_test.c b/test/builtins/Unit/divmodsi4_test.c index 6fb1c985ab5c..e766aaee1126 100644 --- a/test/builtins/Unit/divmodsi4_test.c +++ b/test/builtins/Unit/divmodsi4_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- divmodsi4_test.c - Test __divmodsi4 -------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/divsc3_test.c b/test/builtins/Unit/divsc3_test.c index 2d7c6593796f..daa221825e7c 100644 --- a/test/builtins/Unit/divsc3_test.c +++ b/test/builtins/Unit/divsc3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -lm -o %t && %run %t //===-- divsc3_test.c - Test __divsc3 -------------------------------------===// // // The LLVM Compiler Infrastructure @@ -16,6 +17,8 @@ #include <complex.h> #include <stdio.h> +// REQUIRES: c99-complex + // Returns: the quotient of (a + ib) / (c + id) COMPILER_RT_ABI float _Complex diff --git a/test/builtins/Unit/divsf3vfp_test.c b/test/builtins/Unit/divsf3vfp_test.c index f742441991f8..75b7eba7a024 100644 --- a/test/builtins/Unit/divsf3vfp_test.c +++ b/test/builtins/Unit/divsf3vfp_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- divsf3vfp_test.c - Test __divsf3vfp -------------------------------===// // // The LLVM Compiler Infrastructure @@ -19,7 +20,7 @@ extern COMPILER_RT_ABI float __divsf3vfp(float a, float b); -#if __arm__ +#if __arm__ && __VFP_FP__ int test__divsf3vfp(float a, float b) { float actual = __divsf3vfp(a, b); @@ -33,7 +34,7 @@ int test__divsf3vfp(float a, float b) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__divsf3vfp(1.0, 1.0)) return 1; if (test__divsf3vfp(12345.678, 1.23)) diff --git a/test/builtins/Unit/divsi3_test.c b/test/builtins/Unit/divsi3_test.c index c523367455a9..4c5d0fba5efa 100644 --- a/test/builtins/Unit/divsi3_test.c +++ b/test/builtins/Unit/divsi3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- divsi3_test.c - Test __divsi3 -------------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/divtc3_test.c b/test/builtins/Unit/divtc3_test.c index a1f0613441da..7474330f6eb1 100644 --- a/test/builtins/Unit/divtc3_test.c +++ b/test/builtins/Unit/divtc3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -lm -o %t && %run %t //===-- divtc3_test.c - Test __divtc3 -------------------------------------===// // // The LLVM Compiler Infrastructure @@ -17,6 +18,8 @@ #include <math.h> #include <complex.h> +// REQUIRES: c99-complex + // Returns: the quotient of (a + ib) / (c + id) COMPILER_RT_ABI long double _Complex diff --git a/test/builtins/Unit/divtf3_test.c b/test/builtins/Unit/divtf3_test.c index e0def45ffd58..12cb94a26ed5 100644 --- a/test/builtins/Unit/divtf3_test.c +++ b/test/builtins/Unit/divtf3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===--------------- divtf3_test.c - Test __divtf3 ------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/divti3_test.c b/test/builtins/Unit/divti3_test.c index 3a94dab8c7a6..9a6bf178b96c 100644 --- a/test/builtins/Unit/divti3_test.c +++ b/test/builtins/Unit/divti3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- divti3_test.c - Test __divti3 -------------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/divxc3_test.c b/test/builtins/Unit/divxc3_test.c index 509b4b18e978..d0cdb0169ebf 100644 --- a/test/builtins/Unit/divxc3_test.c +++ b/test/builtins/Unit/divxc3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -lm -o %t && %run %t //===-- divxc3_test.c - Test __divxc3 -------------------------------------===// // // The LLVM Compiler Infrastructure @@ -18,6 +19,8 @@ #include <complex.h> #include <stdio.h> +// REQUIRES: c99-complex + // Returns: the quotient of (a + ib) / (c + id) COMPILER_RT_ABI long double _Complex diff --git a/test/builtins/Unit/enable_execute_stack_test.c b/test/builtins/Unit/enable_execute_stack_test.c index 38a142afb24d..72fc042e6dc2 100644 --- a/test/builtins/Unit/enable_execute_stack_test.c +++ b/test/builtins/Unit/enable_execute_stack_test.c @@ -1,3 +1,5 @@ +// REQUIRES: native-run +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- enable_execute_stack_test.c - Test __enable_execute_stack ----------===// // // The LLVM Compiler Infrastructure @@ -11,39 +13,14 @@ #include <stdio.h> #include <string.h> #include <stdint.h> -#if defined(_WIN32) -#include <windows.h> -void __clear_cache(void* start, void* end) -{ - if (!FlushInstructionCache(GetCurrentProcess(), start, end-start)) - exit(1); -} -void __enable_execute_stack(void *addr) -{ - MEMORY_BASIC_INFORMATION b; - - if (!VirtualQuery(addr, &b, sizeof(b))) - exit(1); - if (!VirtualProtect(b.BaseAddress, b.RegionSize, PAGE_EXECUTE_READWRITE, &b.Protect)) - exit(1); -} -#else -#include <sys/mman.h> extern void __clear_cache(void* start, void* end); extern void __enable_execute_stack(void* addr); -#endif typedef int (*pfunc)(void); -int func1() -{ - return 1; -} - -int func2() -{ - return 2; -} +// Make these static to avoid ILT jumps for incremental linking on Windows. +static int func1() { return 1; } +static int func2() { return 2; } void *__attribute__((noinline)) memcpy_f(void *dst, const void *src, size_t n) { @@ -67,6 +44,7 @@ int main() // verify you can copy and execute a function pfunc f1 = (pfunc)memcpy_f(execution_buffer, func1, 128); __clear_cache(execution_buffer, &execution_buffer[128]); + printf("f1: %p\n", f1); if ((*f1)() != 1) return 1; diff --git a/test/builtins/Unit/eqdf2vfp_test.c b/test/builtins/Unit/eqdf2vfp_test.c index 585bd08e9789..69dd37b8f91a 100644 --- a/test/builtins/Unit/eqdf2vfp_test.c +++ b/test/builtins/Unit/eqdf2vfp_test.c @@ -1,3 +1,5 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t + //===-- eqdf2vfp_test.c - Test __eqdf2vfp ---------------------------------===// // // The LLVM Compiler Infrastructure @@ -19,7 +21,7 @@ extern int __eqdf2vfp(double a, double b); -#if __arm__ +#if __arm__ && __VFP_FP__ int test__eqdf2vfp(double a, double b) { int actual = __eqdf2vfp(a, b); @@ -33,7 +35,7 @@ int test__eqdf2vfp(double a, double b) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__eqdf2vfp(0.0, 0.0)) return 1; if (test__eqdf2vfp(1.0, 1.0)) diff --git a/test/builtins/Unit/eqsf2vfp_test.c b/test/builtins/Unit/eqsf2vfp_test.c index b0eed9402a37..9c8dc1659ffa 100644 --- a/test/builtins/Unit/eqsf2vfp_test.c +++ b/test/builtins/Unit/eqsf2vfp_test.c @@ -1,3 +1,5 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t + //===-- eqsf2vfp_test.c - Test __eqsf2vfp ---------------------------------===// // // The LLVM Compiler Infrastructure @@ -19,7 +21,7 @@ extern int __eqsf2vfp(float a, float b); -#if __arm__ +#if __arm__ && __VFP_FP__ int test__eqsf2vfp(float a, float b) { int actual = __eqsf2vfp(a, b); @@ -33,7 +35,7 @@ int test__eqsf2vfp(float a, float b) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__eqsf2vfp(0.0, 0.0)) return 1; if (test__eqsf2vfp(1.0, 1.0)) diff --git a/test/builtins/Unit/eqtf2_test.c b/test/builtins/Unit/eqtf2_test.c index 038583503ab2..91b35cff2822 100644 --- a/test/builtins/Unit/eqtf2_test.c +++ b/test/builtins/Unit/eqtf2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===------------ eqtf2_test.c - Test __eqtf2------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/extebdsfdf2vfp_test.c b/test/builtins/Unit/extebdsfdf2vfp_test.c index 53c72828f741..c350d933d480 100644 --- a/test/builtins/Unit/extebdsfdf2vfp_test.c +++ b/test/builtins/Unit/extebdsfdf2vfp_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- extendsfdf2vfp_test.c - Test __extendsfdf2vfp ---------------------===// // // The LLVM Compiler Infrastructure @@ -19,7 +20,7 @@ extern COMPILER_RT_ABI double __extendsfdf2vfp(float a); -#if __arm__ +#if __arm__ && __VFP_FP__ int test__extendsfdf2vfp(float a) { double actual = __extendsfdf2vfp(a); @@ -33,7 +34,7 @@ int test__extendsfdf2vfp(float a) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__extendsfdf2vfp(0.0)) return 1; if (test__extendsfdf2vfp(1.0)) diff --git a/test/builtins/Unit/extenddftf2_test.c b/test/builtins/Unit/extenddftf2_test.c index 2cfb32b2604a..7254141a2749 100644 --- a/test/builtins/Unit/extenddftf2_test.c +++ b/test/builtins/Unit/extenddftf2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===--------------- extenddftf2_test.c - Test __extenddftf2 --------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/extendhfsf2_test.c b/test/builtins/Unit/extendhfsf2_test.c index 5dd994cae1c6..d423e7b4e50f 100644 --- a/test/builtins/Unit/extendhfsf2_test.c +++ b/test/builtins/Unit/extendhfsf2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===--------------- extendhfsf2_test.c - Test __extendhfsf2 --------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/extendsftf2_test.c b/test/builtins/Unit/extendsftf2_test.c index 7dff5b6be3d9..4fad9060f0df 100644 --- a/test/builtins/Unit/extendsftf2_test.c +++ b/test/builtins/Unit/extendsftf2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===--------------- extendsftf2_test.c - Test __extendsftf2 --------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/ffsdi2_test.c b/test/builtins/Unit/ffsdi2_test.c index a27d154fd351..80c0c08cb523 100644 --- a/test/builtins/Unit/ffsdi2_test.c +++ b/test/builtins/Unit/ffsdi2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- ffsdi2_test.c - Test __ffsdi2 -------------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/ffssi2_test.c b/test/builtins/Unit/ffssi2_test.c new file mode 100644 index 000000000000..5d96b9636c75 --- /dev/null +++ b/test/builtins/Unit/ffssi2_test.c @@ -0,0 +1,57 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t +//===-- ffssi2_test.c - Test __ffssi2 -------------------------------------===// +// +// The LLVM Compiler Infrastructure +// +// This file is dual licensed under the MIT and the University of Illinois Open +// Source Licenses. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file tests __ffssi2 for the compiler_rt library. +// +//===----------------------------------------------------------------------===// + +#include "int_lib.h" +#include <stdio.h> + +// Returns: the index of the least significant 1-bit in a, or +// the value zero if a is zero. The least significant bit is index one. + +COMPILER_RT_ABI si_int __ffssi2(si_int a); + +int test__ffssi2(si_int a, si_int expected) +{ + si_int x = __ffssi2(a); + if (x != expected) + printf("error in __ffssi2(0x%X) = %d, expected %d\n", a, x, expected); + return x != expected; +} + +int main() +{ + if (test__ffssi2(0x00000000, 0)) + return 1; + if (test__ffssi2(0x00000001, 1)) + return 1; + if (test__ffssi2(0x00000002, 2)) + return 1; + if (test__ffssi2(0x00000003, 1)) + return 1; + if (test__ffssi2(0x00000004, 3)) + return 1; + if (test__ffssi2(0x00000005, 1)) + return 1; + if (test__ffssi2(0x0000000A, 2)) + return 1; + if (test__ffssi2(0x10000000, 29)) + return 1; + if (test__ffssi2(0x20000000, 30)) + return 1; + if (test__ffssi2(0x60000000, 30)) + return 1; + if (test__ffssi2(0x80000000u, 32)) + return 1; + + return 0; +} diff --git a/test/builtins/Unit/ffsti2_test.c b/test/builtins/Unit/ffsti2_test.c index 396269d51369..3b312c43099f 100644 --- a/test/builtins/Unit/ffsti2_test.c +++ b/test/builtins/Unit/ffsti2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- ffsti2_test.c - Test __ffsti2 -------------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/fixdfdi_test.c b/test/builtins/Unit/fixdfdi_test.c index 4a7cfa31c7f0..d2ba7b19feef 100644 --- a/test/builtins/Unit/fixdfdi_test.c +++ b/test/builtins/Unit/fixdfdi_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- fixdfdi_test.c - Test __fixdfdi -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/fixdfsivfp_test.c b/test/builtins/Unit/fixdfsivfp_test.c index c6102e274ee5..33b4d24081ec 100644 --- a/test/builtins/Unit/fixdfsivfp_test.c +++ b/test/builtins/Unit/fixdfsivfp_test.c @@ -1,3 +1,5 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t + //===-- fixdfsivfp_test.c - Test __fixdfsivfp -----------------------------===// // // The LLVM Compiler Infrastructure @@ -18,7 +20,7 @@ extern int __fixdfsivfp(double a); -#if __arm__ +#if __arm__ && __VFP_FP__ int test__fixdfsivfp(double a) { int actual = __fixdfsivfp(a); @@ -32,7 +34,7 @@ int test__fixdfsivfp(double a) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__fixdfsivfp(0.0)) return 1; if (test__fixdfsivfp(1.0)) diff --git a/test/builtins/Unit/fixdfti_test.c b/test/builtins/Unit/fixdfti_test.c index b5da456fc6b3..0abe187ae953 100644 --- a/test/builtins/Unit/fixdfti_test.c +++ b/test/builtins/Unit/fixdfti_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- fixdfti_test.c - Test __fixdfti -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/fixsfdi_test.c b/test/builtins/Unit/fixsfdi_test.c index f37ecef047aa..468299f9b11f 100644 --- a/test/builtins/Unit/fixsfdi_test.c +++ b/test/builtins/Unit/fixsfdi_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- fixsfdi_test.c - Test __fixsfdi -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/fixsfsivfp_test.c b/test/builtins/Unit/fixsfsivfp_test.c index 9abf5e856476..ee33a1dc9f5d 100644 --- a/test/builtins/Unit/fixsfsivfp_test.c +++ b/test/builtins/Unit/fixsfsivfp_test.c @@ -1,3 +1,5 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t + //===-- fixsfsivfp_test.c - Test __fixsfsivfp -----------------------------===// // // The LLVM Compiler Infrastructure @@ -18,7 +20,7 @@ extern int __fixsfsivfp(float a); -#if __arm__ +#if __arm__ && __VFP_FP__ int test__fixsfsivfp(float a) { int actual = __fixsfsivfp(a); @@ -32,7 +34,7 @@ int test__fixsfsivfp(float a) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__fixsfsivfp(0.0)) return 1; if (test__fixsfsivfp(1.0)) diff --git a/test/builtins/Unit/fixsfti_test.c b/test/builtins/Unit/fixsfti_test.c index 38748aabc91b..ec4e8ddb031a 100644 --- a/test/builtins/Unit/fixsfti_test.c +++ b/test/builtins/Unit/fixsfti_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- fixsfti_test.c - Test __fixsfti -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/fixtfdi_test.c b/test/builtins/Unit/fixtfdi_test.c index cc25becb2f7c..3cd1ebf78b8f 100644 --- a/test/builtins/Unit/fixtfdi_test.c +++ b/test/builtins/Unit/fixtfdi_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===--------------- fixtfdi_test.c - Test __fixtfdi ----------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/fixtfsi_test.c b/test/builtins/Unit/fixtfsi_test.c index 1da516bd07e6..59e43520ab13 100644 --- a/test/builtins/Unit/fixtfsi_test.c +++ b/test/builtins/Unit/fixtfsi_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===--------------- fixtfsi_test.c - Test __fixtfsi ----------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/fixtfti_test.c b/test/builtins/Unit/fixtfti_test.c index 52184ca624e1..4d3b56c78548 100644 --- a/test/builtins/Unit/fixtfti_test.c +++ b/test/builtins/Unit/fixtfti_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===--------------- fixtfti_test.c - Test __fixtfti ----------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/fixunsdfdi_test.c b/test/builtins/Unit/fixunsdfdi_test.c index 3998482876f3..ab09bd0f392c 100644 --- a/test/builtins/Unit/fixunsdfdi_test.c +++ b/test/builtins/Unit/fixunsdfdi_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- fixunsdfdi_test.c - Test __fixunsdfdi -----------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/fixunsdfsi_test.c b/test/builtins/Unit/fixunsdfsi_test.c index 8d3d6304f473..7fbd9ee115c9 100644 --- a/test/builtins/Unit/fixunsdfsi_test.c +++ b/test/builtins/Unit/fixunsdfsi_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- fixunsdfsi_test.c - Test __fixunsdfsi -----------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/fixunsdfsivfp_test.c b/test/builtins/Unit/fixunsdfsivfp_test.c index ebd0be274f62..b707992472fa 100644 --- a/test/builtins/Unit/fixunsdfsivfp_test.c +++ b/test/builtins/Unit/fixunsdfsivfp_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- fixunsdfsivfp_test.c - Test __fixunsdfsivfp -----------------------===// // // The LLVM Compiler Infrastructure @@ -19,7 +20,7 @@ extern COMPILER_RT_ABI unsigned int __fixunsdfsivfp(double a); -#if __arm__ +#if __arm__ && __VFP_FP__ int test__fixunsdfsivfp(double a) { unsigned int actual = __fixunsdfsivfp(a); @@ -33,7 +34,7 @@ int test__fixunsdfsivfp(double a) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__fixunsdfsivfp(0.0)) return 1; if (test__fixunsdfsivfp(1.0)) diff --git a/test/builtins/Unit/fixunsdfti_test.c b/test/builtins/Unit/fixunsdfti_test.c index 0298fb9e9447..249d8f886d0b 100644 --- a/test/builtins/Unit/fixunsdfti_test.c +++ b/test/builtins/Unit/fixunsdfti_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- fixunsdfti_test.c - Test __fixunsdfti -----------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/fixunssfdi_test.c b/test/builtins/Unit/fixunssfdi_test.c index 812457a002de..2d693eb9c85a 100644 --- a/test/builtins/Unit/fixunssfdi_test.c +++ b/test/builtins/Unit/fixunssfdi_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- fixunssfdi_test.c - Test __fixunssfdi -----------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/fixunssfsi_test.c b/test/builtins/Unit/fixunssfsi_test.c index 17293e438528..3974b5329be4 100644 --- a/test/builtins/Unit/fixunssfsi_test.c +++ b/test/builtins/Unit/fixunssfsi_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- fixunssfsi_test.c - Test __fixunssfsi -----------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/fixunssfsivfp_test.c b/test/builtins/Unit/fixunssfsivfp_test.c index c8e45f408b63..c1d8ed77f385 100644 --- a/test/builtins/Unit/fixunssfsivfp_test.c +++ b/test/builtins/Unit/fixunssfsivfp_test.c @@ -1,3 +1,5 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t + //===-- fixunssfsivfp_test.c - Test __fixunssfsivfp -----------------------===// // // The LLVM Compiler Infrastructure @@ -18,7 +20,7 @@ extern unsigned int __fixunssfsivfp(float a); -#if __arm__ +#if __arm__ && __VFP_FP__ int test__fixunssfsivfp(float a) { unsigned int actual = __fixunssfsivfp(a); @@ -32,7 +34,7 @@ int test__fixunssfsivfp(float a) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__fixunssfsivfp(0.0)) return 1; if (test__fixunssfsivfp(1.0)) diff --git a/test/builtins/Unit/fixunssfti_test.c b/test/builtins/Unit/fixunssfti_test.c index 979d661910f0..fd2d108f25b9 100644 --- a/test/builtins/Unit/fixunssfti_test.c +++ b/test/builtins/Unit/fixunssfti_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- fixunssfti_test.c - Test __fixunssfti -----------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/fixunstfdi_test.c b/test/builtins/Unit/fixunstfdi_test.c index 817c59b2d5d4..67fcc2fde857 100644 --- a/test/builtins/Unit/fixunstfdi_test.c +++ b/test/builtins/Unit/fixunstfdi_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- fixunstfdi_test.c - Test __fixunstfdi -----------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/fixunstfsi_test.c b/test/builtins/Unit/fixunstfsi_test.c index 13ed77952248..edf5422a8a7c 100644 --- a/test/builtins/Unit/fixunstfsi_test.c +++ b/test/builtins/Unit/fixunstfsi_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===--------------- fixunstfsi_test.c - Test __fixunstfsi ----------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/fixunstfti_test.c b/test/builtins/Unit/fixunstfti_test.c index 60a0982b6266..019b72049dd9 100644 --- a/test/builtins/Unit/fixunstfti_test.c +++ b/test/builtins/Unit/fixunstfti_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- fixunstfti_test.c - Test __fixunstfti -----------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/fixunsxfdi_test.c b/test/builtins/Unit/fixunsxfdi_test.c index 6f42079695f2..c5c27d359408 100644 --- a/test/builtins/Unit/fixunsxfdi_test.c +++ b/test/builtins/Unit/fixunsxfdi_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- fixunsxfdi_test.c - Test __fixunsxfdi -----------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/fixunsxfsi_test.c b/test/builtins/Unit/fixunsxfsi_test.c index 0d78dcb53c0f..e0bed7ec8f46 100644 --- a/test/builtins/Unit/fixunsxfsi_test.c +++ b/test/builtins/Unit/fixunsxfsi_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- fixunsxfsi_test.c - Test __fixunsxfsi -----------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/fixunsxfti_test.c b/test/builtins/Unit/fixunsxfti_test.c index 94b5aebe4d16..28a7e9783c53 100644 --- a/test/builtins/Unit/fixunsxfti_test.c +++ b/test/builtins/Unit/fixunsxfti_test.c @@ -1,3 +1,7 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t +// XFAIL: aarch64 +// test fails for aarch64 (see pr32260) + //===-- fixunsxfti_test.c - Test __fixunsxfti -----------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/fixxfdi_test.c b/test/builtins/Unit/fixxfdi_test.c index 0a90a56e6101..40ad2b04f23b 100644 --- a/test/builtins/Unit/fixxfdi_test.c +++ b/test/builtins/Unit/fixxfdi_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- fixxfdi_test.c - Test __fixxfdi -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/fixxfti_test.c b/test/builtins/Unit/fixxfti_test.c index b8573cc14173..c6d42c6e1310 100644 --- a/test/builtins/Unit/fixxfti_test.c +++ b/test/builtins/Unit/fixxfti_test.c @@ -1,3 +1,7 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t +// XFAIL: aarch64 +// test fails for aarch64 (see pr32260) + //===-- fixxfti_test.c - Test __fixxfti -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/floatdidf_test.c b/test/builtins/Unit/floatdidf_test.c index 9bf2be97c7a4..77429173d61e 100644 --- a/test/builtins/Unit/floatdidf_test.c +++ b/test/builtins/Unit/floatdidf_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- floatdidf.c - Test __floatdidf ------------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/floatdisf_test.c b/test/builtins/Unit/floatdisf_test.c index a55c6a9617e9..8299bb171d71 100644 --- a/test/builtins/Unit/floatdisf_test.c +++ b/test/builtins/Unit/floatdisf_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- floatdisf_test.c - Test __floatdisf -------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/floatditf_test.c b/test/builtins/Unit/floatditf_test.c index 8cf8a0859e68..bdfb7f948331 100644 --- a/test/builtins/Unit/floatditf_test.c +++ b/test/builtins/Unit/floatditf_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- floatditf_test.c - Test __floatditf -------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/floatdixf_test.c b/test/builtins/Unit/floatdixf_test.c index f6ab5a4665c1..0a4ca3a574b9 100644 --- a/test/builtins/Unit/floatdixf_test.c +++ b/test/builtins/Unit/floatdixf_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- floatdixf_test.c - Test __floatdixf -------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/floatsidfvfp_test.c b/test/builtins/Unit/floatsidfvfp_test.c index e5ea3a4d4dc9..8a3c7fb4ec07 100644 --- a/test/builtins/Unit/floatsidfvfp_test.c +++ b/test/builtins/Unit/floatsidfvfp_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- floatsidfvfp_test.c - Test __floatsidfvfp -------------------------===// // // The LLVM Compiler Infrastructure @@ -19,7 +20,7 @@ extern COMPILER_RT_ABI double __floatsidfvfp(int a); -#if __arm__ +#if __arm__ && __VFP_FP__ int test__floatsidfvfp(int a) { double actual = __floatsidfvfp(a); @@ -33,7 +34,7 @@ int test__floatsidfvfp(int a) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__floatsidfvfp(0)) return 1; if (test__floatsidfvfp(1)) diff --git a/test/builtins/Unit/floatsisfvfp_test.c b/test/builtins/Unit/floatsisfvfp_test.c index ab21e2e7ff4d..7c044b2f3f4c 100644 --- a/test/builtins/Unit/floatsisfvfp_test.c +++ b/test/builtins/Unit/floatsisfvfp_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- floatsisfvfp_test.c - Test __floatsisfvfp -------------------------===// // // The LLVM Compiler Infrastructure @@ -19,7 +20,7 @@ extern COMPILER_RT_ABI float __floatsisfvfp(int a); -#if __arm__ +#if __arm__ && __VFP_FP__ int test__floatsisfvfp(int a) { float actual = __floatsisfvfp(a); @@ -33,7 +34,7 @@ int test__floatsisfvfp(int a) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__floatsisfvfp(0)) return 1; if (test__floatsisfvfp(1)) diff --git a/test/builtins/Unit/floatsitf_test.c b/test/builtins/Unit/floatsitf_test.c index 6f98721b0a54..f8d700b3bd25 100644 --- a/test/builtins/Unit/floatsitf_test.c +++ b/test/builtins/Unit/floatsitf_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===--------------- floatsitf_test.c - Test __floatsitf ------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/floattidf_test.c b/test/builtins/Unit/floattidf_test.c index 3af382ac001a..9da8c5dc68cb 100644 --- a/test/builtins/Unit/floattidf_test.c +++ b/test/builtins/Unit/floattidf_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- floattidf.c - Test __floattidf ------------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/floattisf_test.c b/test/builtins/Unit/floattisf_test.c index 0f5dc544da68..9d7282cdea21 100644 --- a/test/builtins/Unit/floattisf_test.c +++ b/test/builtins/Unit/floattisf_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- floattisf_test.c - Test __floattisf -------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/floattitf_test.c b/test/builtins/Unit/floattitf_test.c index 928b2e8811e0..5aeb76057b4a 100644 --- a/test/builtins/Unit/floattitf_test.c +++ b/test/builtins/Unit/floattitf_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- floattitf.c - Test __floattitf ------------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/floattixf_test.c b/test/builtins/Unit/floattixf_test.c index d281debdcf55..00644fae19c0 100644 --- a/test/builtins/Unit/floattixf_test.c +++ b/test/builtins/Unit/floattixf_test.c @@ -1,3 +1,7 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t +// XFAIL: aarch64 +// test fails for aarch64 (see pr32260) + //===-- floattixf.c - Test __floattixf ------------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/floatundidf_test.c b/test/builtins/Unit/floatundidf_test.c index 97fb1e5ec098..d5d74195c2a5 100644 --- a/test/builtins/Unit/floatundidf_test.c +++ b/test/builtins/Unit/floatundidf_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- floatundidf_test.c - Test __floatundidf ---------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/floatundisf_test.c b/test/builtins/Unit/floatundisf_test.c index 40b6bcc459af..898d8863f2fb 100644 --- a/test/builtins/Unit/floatundisf_test.c +++ b/test/builtins/Unit/floatundisf_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- floatundisf_test.c - Test __floatundisf ---------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/floatunditf_test.c b/test/builtins/Unit/floatunditf_test.c index b66a174a3f47..342dc278fb16 100644 --- a/test/builtins/Unit/floatunditf_test.c +++ b/test/builtins/Unit/floatunditf_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- floatunditf_test.c - Test __floatunditf ---------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/floatundixf_test.c b/test/builtins/Unit/floatundixf_test.c index 690dce19957a..47b431697d15 100644 --- a/test/builtins/Unit/floatundixf_test.c +++ b/test/builtins/Unit/floatundixf_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- floatundixf_test.c - Test __floatundixf ---------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/floatunsitf_test.c b/test/builtins/Unit/floatunsitf_test.c index c3d3fe949c4e..966a4fd7b74a 100644 --- a/test/builtins/Unit/floatunsitf_test.c +++ b/test/builtins/Unit/floatunsitf_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===--------------- floatunsitf_test.c - Test __floatunsitf --------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/floatunssidfvfp_test.c b/test/builtins/Unit/floatunssidfvfp_test.c index 75e4bbd6c21f..733755719e78 100644 --- a/test/builtins/Unit/floatunssidfvfp_test.c +++ b/test/builtins/Unit/floatunssidfvfp_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- floatunssidfvfp_test.c - Test __floatunssidfvfp -------------------===// // // The LLVM Compiler Infrastructure @@ -19,7 +20,7 @@ extern COMPILER_RT_ABI double __floatunssidfvfp(unsigned int a); -#if __arm__ +#if __arm__ && __VFP_FP__ int test__floatunssidfvfp(unsigned int a) { double actual = __floatunssidfvfp(a); @@ -33,7 +34,7 @@ int test__floatunssidfvfp(unsigned int a) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__floatunssidfvfp(0)) return 1; if (test__floatunssidfvfp(1)) diff --git a/test/builtins/Unit/floatunssisfvfp_test.c b/test/builtins/Unit/floatunssisfvfp_test.c index 47f837cc89a8..9d7fb654fd05 100644 --- a/test/builtins/Unit/floatunssisfvfp_test.c +++ b/test/builtins/Unit/floatunssisfvfp_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- floatunssisfvfp_test.c - Test __floatunssisfvfp -------------------===// // // The LLVM Compiler Infrastructure @@ -18,7 +19,7 @@ extern COMPILER_RT_ABI float __floatunssisfvfp(unsigned int a); -#if __arm__ +#if __arm__ && __VFP_FP__ int test__floatunssisfvfp(unsigned int a) { float actual = __floatunssisfvfp(a); @@ -32,7 +33,7 @@ int test__floatunssisfvfp(unsigned int a) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__floatunssisfvfp(0)) return 1; if (test__floatunssisfvfp(1)) diff --git a/test/builtins/Unit/floatuntidf_test.c b/test/builtins/Unit/floatuntidf_test.c index 9855ff79703e..1bf19ba141b9 100644 --- a/test/builtins/Unit/floatuntidf_test.c +++ b/test/builtins/Unit/floatuntidf_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- floatuntidf.c - Test __floatuntidf --------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/floatuntisf_test.c b/test/builtins/Unit/floatuntisf_test.c index 9b5ff790a64f..c7c11ba48c52 100644 --- a/test/builtins/Unit/floatuntisf_test.c +++ b/test/builtins/Unit/floatuntisf_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- floatuntisf.c - Test __floatuntisf --------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/floatuntitf_test.c b/test/builtins/Unit/floatuntitf_test.c index 495adcfa901f..e81c30e32147 100644 --- a/test/builtins/Unit/floatuntitf_test.c +++ b/test/builtins/Unit/floatuntitf_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- floatuntitf.c - Test __floatuntitf --------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/floatuntixf_test.c b/test/builtins/Unit/floatuntixf_test.c index c58b55d3e4c1..70ad5f36f3f7 100644 --- a/test/builtins/Unit/floatuntixf_test.c +++ b/test/builtins/Unit/floatuntixf_test.c @@ -1,3 +1,7 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t +// XFAIL: aarch64 +// test fails for aarch64 (see pr32260) + //===-- floatuntixf.c - Test __floatuntixf --------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/gcc_personality_test.c b/test/builtins/Unit/gcc_personality_test.c index f9598c697eb6..b3345dd7325d 100644 --- a/test/builtins/Unit/gcc_personality_test.c +++ b/test/builtins/Unit/gcc_personality_test.c @@ -1,3 +1,6 @@ +// FIXME: XFAIL as currently it cannot be built by lit properly. +// XFAIL: * +// RUN: %clangxx_builtins %s %librt -o %t && %run %t /* ===-- gcc_personality_test.c - Tests __gcc_personality_v0 -------------=== * * The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/gedf2vfp_test.c b/test/builtins/Unit/gedf2vfp_test.c index e280ce0780a5..ad72083b40ee 100644 --- a/test/builtins/Unit/gedf2vfp_test.c +++ b/test/builtins/Unit/gedf2vfp_test.c @@ -1,3 +1,5 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t + //===-- gedf2vfp_test.c - Test __gedf2vfp ---------------------------------===// // // The LLVM Compiler Infrastructure @@ -19,7 +21,7 @@ extern int __gedf2vfp(double a, double b); -#if __arm__ +#if __arm__ && __VFP_FP__ int test__gedf2vfp(double a, double b) { int actual = __gedf2vfp(a, b); @@ -33,7 +35,7 @@ int test__gedf2vfp(double a, double b) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__gedf2vfp(0.0, 0.0)) return 1; if (test__gedf2vfp(1.0, 0.0)) diff --git a/test/builtins/Unit/gesf2vfp_test.c b/test/builtins/Unit/gesf2vfp_test.c index aa53eb739979..8a855e12fe95 100644 --- a/test/builtins/Unit/gesf2vfp_test.c +++ b/test/builtins/Unit/gesf2vfp_test.c @@ -1,3 +1,5 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t + //===-- gesf2vfp_test.c - Test __gesf2vfp ---------------------------------===// // // The LLVM Compiler Infrastructure @@ -19,7 +21,7 @@ extern int __gesf2vfp(float a, float b); -#if __arm__ +#if __arm__ && __VFP_FP__ int test__gesf2vfp(float a, float b) { int actual = __gesf2vfp(a, b); @@ -33,7 +35,7 @@ int test__gesf2vfp(float a, float b) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__gesf2vfp(0.0, 0.0)) return 1; if (test__gesf2vfp(1.1, 1.0)) diff --git a/test/builtins/Unit/getf2_test.c b/test/builtins/Unit/getf2_test.c index 9796b8ab845d..115b630b4197 100644 --- a/test/builtins/Unit/getf2_test.c +++ b/test/builtins/Unit/getf2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===------------ getf2_test.c - Test __getf2------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/gtdf2vfp_test.c b/test/builtins/Unit/gtdf2vfp_test.c index fd54e0b4e59f..e6eb545dbb10 100644 --- a/test/builtins/Unit/gtdf2vfp_test.c +++ b/test/builtins/Unit/gtdf2vfp_test.c @@ -1,3 +1,5 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t + //===-- gtdf2vfp_test.c - Test __gtdf2vfp ---------------------------------===// // // The LLVM Compiler Infrastructure @@ -19,7 +21,7 @@ extern int __gtdf2vfp(double a, double b); -#if __arm__ +#if __arm__ && __VFP_FP__ int test__gtdf2vfp(double a, double b) { int actual = __gtdf2vfp(a, b); @@ -33,7 +35,7 @@ int test__gtdf2vfp(double a, double b) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__gtdf2vfp(0.0, 0.0)) return 1; if (test__gtdf2vfp(1.0, 0.0)) diff --git a/test/builtins/Unit/gtsf2vfp_test.c b/test/builtins/Unit/gtsf2vfp_test.c index 2f4ad99a63d6..e0442c6cdc76 100644 --- a/test/builtins/Unit/gtsf2vfp_test.c +++ b/test/builtins/Unit/gtsf2vfp_test.c @@ -1,3 +1,5 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t + //===-- gtsf2vfp_test.c - Test __gtsf2vfp ---------------------------------===// // // The LLVM Compiler Infrastructure @@ -19,7 +21,7 @@ extern int __gtsf2vfp(float a, float b); -#if __arm__ +#if __arm__ && __VFP_FP__ int test__gtsf2vfp(float a, float b) { int actual = __gtsf2vfp(a, b); @@ -33,7 +35,7 @@ int test__gtsf2vfp(float a, float b) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__gtsf2vfp(0.0, 0.0)) return 1; if (test__gtsf2vfp(1.0, 0.0)) diff --git a/test/builtins/Unit/gttf2_test.c b/test/builtins/Unit/gttf2_test.c index 6508d4b978c9..81d68cbf123a 100644 --- a/test/builtins/Unit/gttf2_test.c +++ b/test/builtins/Unit/gttf2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===------------ gttf2_test.c - Test __gttf2------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/ledf2vfp_test.c b/test/builtins/Unit/ledf2vfp_test.c index 5683590778c0..f0cd56eab5d6 100644 --- a/test/builtins/Unit/ledf2vfp_test.c +++ b/test/builtins/Unit/ledf2vfp_test.c @@ -1,3 +1,5 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t + //===-- ledf2vfp_test.c - Test __ledf2vfp ---------------------------------===// // // The LLVM Compiler Infrastructure @@ -19,7 +21,7 @@ extern int __ledf2vfp(double a, double b); -#if __arm__ +#if __arm__ && __VFP_FP__ int test__ledf2vfp(double a, double b) { int actual = __ledf2vfp(a, b); @@ -33,7 +35,7 @@ int test__ledf2vfp(double a, double b) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__ledf2vfp(0.0, 0.0)) return 1; if (test__ledf2vfp(1.0, 1.0)) diff --git a/test/builtins/Unit/lesf2vfp_test.c b/test/builtins/Unit/lesf2vfp_test.c index b5c20f61e8ad..02ae182e69be 100644 --- a/test/builtins/Unit/lesf2vfp_test.c +++ b/test/builtins/Unit/lesf2vfp_test.c @@ -1,3 +1,5 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t + //===-- lesf2vfp_test.c - Test __lesf2vfp ---------------------------------===// // // The LLVM Compiler Infrastructure @@ -19,7 +21,7 @@ extern int __lesf2vfp(float a, float b); -#if __arm__ +#if __arm__ && __VFP_FP__ int test__lesf2vfp(float a, float b) { int actual = __lesf2vfp(a, b); @@ -33,7 +35,7 @@ int test__lesf2vfp(float a, float b) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__lesf2vfp(0.0, 0.0)) return 1; if (test__lesf2vfp(1.0, 1.0)) diff --git a/test/builtins/Unit/letf2_test.c b/test/builtins/Unit/letf2_test.c index 1842e3c55620..bb8452567ae4 100644 --- a/test/builtins/Unit/letf2_test.c +++ b/test/builtins/Unit/letf2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===------------ letf2_test.c - Test __letf2------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/lit.cfg b/test/builtins/Unit/lit.cfg new file mode 100644 index 000000000000..9e3a0d6f7eb5 --- /dev/null +++ b/test/builtins/Unit/lit.cfg @@ -0,0 +1,88 @@ +# -*- Python -*- + +import os +import platform + +import lit.formats + +def get_required_attr(config, attr_name): + attr_value = getattr(config, attr_name, None) + if attr_value == None: + lit_config.fatal( + "No attribute %r in test configuration! You may need to run " + "tests from your build directory or add this attribute " + "to lit.site.cfg " % attr_name) + return attr_value + +# Setup config name. +config.name = 'Builtins' + config.name_suffix + +# Platform-specific default Builtins_OPTIONS for lit tests. +default_builtins_opts = '' + +# Setup source root. +config.test_source_root = os.path.dirname(__file__) + +# Path to the static library +is_msvc = get_required_attr(config, "builtins_is_msvc") +if is_msvc: + base_lib = os.path.join(config.compiler_rt_libdir, "clang_rt.builtins-%s.lib " + % config.target_arch) + config.substitutions.append( ("%librt ", base_lib) ) +else: + base_lib = os.path.join(config.compiler_rt_libdir, "libclang_rt.builtins-%s.a" + % config.target_arch) + config.substitutions.append( ("%librt ", base_lib + ' -lc -lm ') ) + +builtins_source_dir = os.path.join( + get_required_attr(config, "compiler_rt_src_root"), "lib", "builtins") +builtins_lit_source_dir = get_required_attr(config, "builtins_lit_source_dir") + +extra_link_flags = ["-nodefaultlibs"] + +target_cflags = [get_required_attr(config, "target_cflags")] +target_cflags += ['-fno-builtin', '-I', builtins_source_dir] +target_cflags += extra_link_flags +target_cxxflags = config.cxx_mode_flags + target_cflags +clang_builtins_static_cflags = ([""] + + config.debug_info_flags + target_cflags) +clang_builtins_static_cxxflags = config.cxx_mode_flags + \ + clang_builtins_static_cflags + +clang_builtins_cflags = clang_builtins_static_cflags +clang_builtins_cxxflags = clang_builtins_static_cxxflags + +if not is_msvc: + config.available_features.add('c99-complex') + +config.available_features.add('not-android') +clang_wrapper = "" + +def build_invocation(compile_flags): + return " " + " ".join([clang_wrapper, config.clang] + compile_flags) + " " + + +target_arch = config.target_arch +if (target_arch == "arm"): + target_arch = "armv7" + +config.substitutions.append( ("%clang ", build_invocation(target_cflags)) ) +config.substitutions.append( ("%clangxx ", build_invocation(target_cxxflags)) ) +config.substitutions.append( ("%clang_builtins ", \ + build_invocation(clang_builtins_cflags))) +config.substitutions.append( ("%clangxx_builtins ", \ + build_invocation(clang_builtins_cxxflags))) + +# FIXME: move the call_apsr.s into call_apsr.h as inline-asm. +# some ARM tests needs call_apsr.s +call_apsr_source = os.path.join(builtins_lit_source_dir, 'arm', 'call_apsr.S') +march_flag = '-march=' + target_arch +call_apsr_flags = ['-c', march_flag, call_apsr_source] +config.substitutions.append( ("%arm_call_apsr ", \ + build_invocation(call_apsr_flags)) ) + +# Default test suffixes. +config.suffixes = ['.c', '.cc', '.cpp'] + +if not config.emulator: + config.available_features.add('native-run') diff --git a/test/builtins/Unit/lit.site.cfg.in b/test/builtins/Unit/lit.site.cfg.in new file mode 100644 index 000000000000..4241bdc9cebc --- /dev/null +++ b/test/builtins/Unit/lit.site.cfg.in @@ -0,0 +1,12 @@ +@LIT_SITE_CFG_IN_HEADER@ + +config.name_suffix = "@BUILTINS_TEST_CONFIG_SUFFIX@" +config.builtins_lit_source_dir = "@BUILTINS_LIT_SOURCE_DIR@/Unit" +config.target_cflags = "@BUILTINS_TEST_TARGET_CFLAGS@" +config.target_arch = "@BUILTINS_TEST_TARGET_ARCH@" +config.builtins_is_msvc = @MSVC_PYBOOL@ +# Load common config for all compiler-rt lit tests. +lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured") + +# Load tool-specific config that would do the real work. +lit_config.load_config(config, "@BUILTINS_LIT_SOURCE_DIR@/Unit/lit.cfg") diff --git a/test/builtins/Unit/lshrdi3_test.c b/test/builtins/Unit/lshrdi3_test.c index d48ae4dd79fa..c5faa98ee6cd 100644 --- a/test/builtins/Unit/lshrdi3_test.c +++ b/test/builtins/Unit/lshrdi3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- lshrdi3_test.c - Test __lshrdi3 -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/lshrti3_test.c b/test/builtins/Unit/lshrti3_test.c index f5a0dd616cb5..91356c8bfe5b 100644 --- a/test/builtins/Unit/lshrti3_test.c +++ b/test/builtins/Unit/lshrti3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- lshrti3_test.c - Test __lshrti3 -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/ltdf2vfp_test.c b/test/builtins/Unit/ltdf2vfp_test.c index 7319397c5e4d..1edb319d4c6f 100644 --- a/test/builtins/Unit/ltdf2vfp_test.c +++ b/test/builtins/Unit/ltdf2vfp_test.c @@ -1,3 +1,5 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t + //===-- ltdf2vfp_test.c - Test __ltdf2vfp ---------------------------------===// // // The LLVM Compiler Infrastructure @@ -19,7 +21,7 @@ extern int __ltdf2vfp(double a, double b); -#if __arm__ +#if __arm__ && __VFP_FP__ int test__ltdf2vfp(double a, double b) { int actual = __ltdf2vfp(a, b); @@ -33,7 +35,7 @@ int test__ltdf2vfp(double a, double b) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__ltdf2vfp(0.0, 0.0)) return 1; if (test__ltdf2vfp(1.0, 1.0)) diff --git a/test/builtins/Unit/ltsf2vfp_test.c b/test/builtins/Unit/ltsf2vfp_test.c index 2d920c959326..2fc0c11270bd 100644 --- a/test/builtins/Unit/ltsf2vfp_test.c +++ b/test/builtins/Unit/ltsf2vfp_test.c @@ -1,3 +1,5 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t + //===-- ltsf2vfp_test.c - Test __ltsf2vfp ---------------------------------===// // // The LLVM Compiler Infrastructure @@ -19,7 +21,7 @@ extern int __ltsf2vfp(float a, float b); -#if __arm__ +#if __arm__ && __VFP_FP__ int test__ltsf2vfp(float a, float b) { int actual = __ltsf2vfp(a, b); @@ -33,7 +35,7 @@ int test__ltsf2vfp(float a, float b) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__ltsf2vfp(0.0, 0.0)) return 1; if (test__ltsf2vfp(-1.0, 1.0)) diff --git a/test/builtins/Unit/lttf2_test.c b/test/builtins/Unit/lttf2_test.c index e8f9dc17c6f7..cfe1906d2a52 100644 --- a/test/builtins/Unit/lttf2_test.c +++ b/test/builtins/Unit/lttf2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===------------ lttf2_test.c - Test __lttf2------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/moddi3_test.c b/test/builtins/Unit/moddi3_test.c index 62e8f227b34b..8325ad75b2f0 100644 --- a/test/builtins/Unit/moddi3_test.c +++ b/test/builtins/Unit/moddi3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- moddi3_test.c - Test __moddi3 -------------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/modsi3_test.c b/test/builtins/Unit/modsi3_test.c index 8c9f58832b9c..8075f516041b 100644 --- a/test/builtins/Unit/modsi3_test.c +++ b/test/builtins/Unit/modsi3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t /* ===-- modsi3_test.c - Test __modsi3 -------------------------------------=== * * The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/modti3_test.c b/test/builtins/Unit/modti3_test.c index 99413aaa2f6a..53fbf5bbad06 100644 --- a/test/builtins/Unit/modti3_test.c +++ b/test/builtins/Unit/modti3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- modti3_test.c - Test __modti3 -------------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/muldc3_test.c b/test/builtins/Unit/muldc3_test.c index 6902ef3222a9..5a856bc2c831 100644 --- a/test/builtins/Unit/muldc3_test.c +++ b/test/builtins/Unit/muldc3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -lm -o %t && %run %t //===-- muldc3_test.c - Test __muldc3 -------------------------------------===// // // The LLVM Compiler Infrastructure @@ -16,6 +17,8 @@ #include <complex.h> #include <stdio.h> +// REQUIRES: c99-complex + // Returns: the product of a + ib and c + id COMPILER_RT_ABI double _Complex diff --git a/test/builtins/Unit/muldf3vfp_test.c b/test/builtins/Unit/muldf3vfp_test.c index 766972d7d1d7..36a22625c6a5 100644 --- a/test/builtins/Unit/muldf3vfp_test.c +++ b/test/builtins/Unit/muldf3vfp_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- muldf3vfp_test.c - Test __muldf3vfp -------------------------------===// // // The LLVM Compiler Infrastructure @@ -17,7 +18,7 @@ #include <math.h> -#if __arm__ +#if __arm__ && __VFP_FP__ extern COMPILER_RT_ABI double __muldf3vfp(double a, double b); int test__muldf3vfp(double a, double b) @@ -33,7 +34,7 @@ int test__muldf3vfp(double a, double b) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__muldf3vfp(0.5, 10.0)) return 1; if (test__muldf3vfp(-0.5, -2.0)) diff --git a/test/builtins/Unit/muldi3_test.c b/test/builtins/Unit/muldi3_test.c index 651dd0177347..d09e74d1ae0d 100644 --- a/test/builtins/Unit/muldi3_test.c +++ b/test/builtins/Unit/muldi3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- muldi3_test.c - Test __muldi3 -------------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/mulodi4_test.c b/test/builtins/Unit/mulodi4_test.c index 4546609fb8ec..f03b8fecfcc6 100644 --- a/test/builtins/Unit/mulodi4_test.c +++ b/test/builtins/Unit/mulodi4_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- mulodi4_test.c - Test __mulodi4 -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/mulosi4_test.c b/test/builtins/Unit/mulosi4_test.c index 6a27d69bd6b7..12913f1d7168 100644 --- a/test/builtins/Unit/mulosi4_test.c +++ b/test/builtins/Unit/mulosi4_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- mulosi4_test.c - Test __mulosi4 -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/muloti4_test.c b/test/builtins/Unit/muloti4_test.c index d00e7bb6b68b..e7c78cf16853 100644 --- a/test/builtins/Unit/muloti4_test.c +++ b/test/builtins/Unit/muloti4_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- muloti4_test.c - Test __muloti4 -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/mulsc3_test.c b/test/builtins/Unit/mulsc3_test.c index eeb537ac135d..46309c3e4c4d 100644 --- a/test/builtins/Unit/mulsc3_test.c +++ b/test/builtins/Unit/mulsc3_test.c @@ -1,3 +1,6 @@ +// RUN: %clang_builtins %s %librt -lm -o %t && %run %t +// UNSUPPORTED: armhf-target-arch +// see pr 32475. //===-- mulsc3_test.c - Test __mulsc3 -------------------------------------===// // // The LLVM Compiler Infrastructure @@ -16,6 +19,8 @@ #include <complex.h> #include <stdio.h> +// REQUIRES: c99-complex + // Returns: the product of a + ib and c + id COMPILER_RT_ABI float _Complex diff --git a/test/builtins/Unit/mulsf3vfp_test.c b/test/builtins/Unit/mulsf3vfp_test.c index 5b0f6c14384d..8ee05510b07f 100644 --- a/test/builtins/Unit/mulsf3vfp_test.c +++ b/test/builtins/Unit/mulsf3vfp_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- mulsf3vfp_test.c - Test __mulsf3vfp -------------------------------===// // // The LLVM Compiler Infrastructure @@ -19,7 +20,7 @@ extern COMPILER_RT_ABI float __mulsf3vfp(float a, float b); -#if __arm__ +#if __arm__ && __VFP_FP__ int test__mulsf3vfp(float a, float b) { float actual = __mulsf3vfp(a, b); @@ -33,7 +34,7 @@ int test__mulsf3vfp(float a, float b) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__mulsf3vfp(0.5, 10.0)) return 1; if (test__mulsf3vfp(-0.5, -2.0)) diff --git a/test/builtins/Unit/multc3_test.c b/test/builtins/Unit/multc3_test.c index f6cf4ca875be..5ef84670e454 100644 --- a/test/builtins/Unit/multc3_test.c +++ b/test/builtins/Unit/multc3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- multc3_test.c - Test __multc3 -------------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/multf3_test.c b/test/builtins/Unit/multf3_test.c index 42147550c702..2bce70793f8d 100644 --- a/test/builtins/Unit/multf3_test.c +++ b/test/builtins/Unit/multf3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===--------------- multf3_test.c - Test __multf3 ------------------------===// // // The LLVM Compiler Infrastructure @@ -15,6 +16,7 @@ #if __LDBL_MANT_DIG__ == 113 +#include "int_lib.h" #include "fp_test.h" // Returns: a * b diff --git a/test/builtins/Unit/multi3_test.c b/test/builtins/Unit/multi3_test.c index 04b1b8aa851e..8227f2426860 100644 --- a/test/builtins/Unit/multi3_test.c +++ b/test/builtins/Unit/multi3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- multi3_test.c - Test __multi3 -------------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/mulvdi3_test.c b/test/builtins/Unit/mulvdi3_test.c index 7f16c4c4f612..0e10bbef18eb 100644 --- a/test/builtins/Unit/mulvdi3_test.c +++ b/test/builtins/Unit/mulvdi3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- mulvdi3_test.c - Test __mulvdi3 -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/mulvsi3_test.c b/test/builtins/Unit/mulvsi3_test.c index 64df4fe24daf..f62a5aa42afa 100644 --- a/test/builtins/Unit/mulvsi3_test.c +++ b/test/builtins/Unit/mulvsi3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- mulvsi3_test.c - Test __mulvsi3 -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/mulvti3_test.c b/test/builtins/Unit/mulvti3_test.c index bf2f7316ba19..36e96ad60f11 100644 --- a/test/builtins/Unit/mulvti3_test.c +++ b/test/builtins/Unit/mulvti3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- mulvti3_test.c - Test __mulvti3 -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/mulxc3_test.c b/test/builtins/Unit/mulxc3_test.c index e77e94fa9cf9..3260b7521dec 100644 --- a/test/builtins/Unit/mulxc3_test.c +++ b/test/builtins/Unit/mulxc3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -lm -o %t && %run %t //===-- mulxc3_test.c - Test __mulxc3 -------------------------------------===// // // The LLVM Compiler Infrastructure @@ -18,6 +19,8 @@ #include <complex.h> #include <stdio.h> +// REQUIRES: c99-complex + // Returns: the product of a + ib and c + id COMPILER_RT_ABI long double _Complex diff --git a/test/builtins/Unit/nedf2vfp_test.c b/test/builtins/Unit/nedf2vfp_test.c index 2c4404399633..536917af3d3b 100644 --- a/test/builtins/Unit/nedf2vfp_test.c +++ b/test/builtins/Unit/nedf2vfp_test.c @@ -1,3 +1,5 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t + //===-- nedf2vfp_test.c - Test __nedf2vfp ---------------------------------===// // // The LLVM Compiler Infrastructure @@ -19,7 +21,7 @@ extern int __nedf2vfp(double a, double b); -#if __arm__ +#if __arm__ && __VFP_FP__ int test__nedf2vfp(double a, double b) { int actual = __nedf2vfp(a, b); @@ -33,7 +35,7 @@ int test__nedf2vfp(double a, double b) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__nedf2vfp(0.0, 0.0)) return 1; if (test__nedf2vfp(1.0, 1.0)) diff --git a/test/builtins/Unit/negdf2vfp_test.c b/test/builtins/Unit/negdf2vfp_test.c index f673b92cfc87..776dca618538 100644 --- a/test/builtins/Unit/negdf2vfp_test.c +++ b/test/builtins/Unit/negdf2vfp_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- negdf2vfp_test.c - Test __negdf2vfp -------------------------------===// // // The LLVM Compiler Infrastructure @@ -17,7 +18,7 @@ #include <math.h> -#if __arm__ +#if __arm__ && __VFP_FP__ extern COMPILER_RT_ABI double __negdf2vfp(double a); int test__negdf2vfp(double a) @@ -33,7 +34,7 @@ int test__negdf2vfp(double a) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__negdf2vfp(1.0)) return 1; if (test__negdf2vfp(HUGE_VALF)) diff --git a/test/builtins/Unit/negdi2_test.c b/test/builtins/Unit/negdi2_test.c index beccd71ee796..c85e91581cee 100644 --- a/test/builtins/Unit/negdi2_test.c +++ b/test/builtins/Unit/negdi2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- negdi2_test.c - Test __negdi2 -------------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/negsf2vfp_test.c b/test/builtins/Unit/negsf2vfp_test.c index 9e47d89094ce..e15e43c80398 100644 --- a/test/builtins/Unit/negsf2vfp_test.c +++ b/test/builtins/Unit/negsf2vfp_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- negsf2vfp_test.c - Test __negsf2vfp -------------------------------===// // // The LLVM Compiler Infrastructure @@ -19,7 +20,7 @@ extern COMPILER_RT_ABI float __negsf2vfp(float a); -#if __arm__ +#if __arm__ && __VFP_FP__ int test__negsf2vfp(float a) { float actual = __negsf2vfp(a); @@ -33,7 +34,7 @@ int test__negsf2vfp(float a) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__negsf2vfp(1.0)) return 1; if (test__negsf2vfp(HUGE_VALF)) diff --git a/test/builtins/Unit/negti2_test.c b/test/builtins/Unit/negti2_test.c index b07597868ced..bb7379cae2b1 100644 --- a/test/builtins/Unit/negti2_test.c +++ b/test/builtins/Unit/negti2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- negti2_test.c - Test __negti2 -------------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/negvdi2_test.c b/test/builtins/Unit/negvdi2_test.c index 5c202e55cfb7..4e17c30895b7 100644 --- a/test/builtins/Unit/negvdi2_test.c +++ b/test/builtins/Unit/negvdi2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- negvdi2_test.c - Test __negvdi2 -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/negvsi2_test.c b/test/builtins/Unit/negvsi2_test.c index 6330803d5fcf..3deb4235bf29 100644 --- a/test/builtins/Unit/negvsi2_test.c +++ b/test/builtins/Unit/negvsi2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- negvsi2_test.c - Test __negvsi2 -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/negvti2_test.c b/test/builtins/Unit/negvti2_test.c index 005f8a8acadf..980f44869327 100644 --- a/test/builtins/Unit/negvti2_test.c +++ b/test/builtins/Unit/negvti2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- negvti2_test.c - Test __negvti2 -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/nesf2vfp_test.c b/test/builtins/Unit/nesf2vfp_test.c index c085bf8b41fa..bb0149087758 100644 --- a/test/builtins/Unit/nesf2vfp_test.c +++ b/test/builtins/Unit/nesf2vfp_test.c @@ -1,3 +1,5 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t + //===-- nesf2vfp_test.c - Test __nesf2vfp ---------------------------------===// // // The LLVM Compiler Infrastructure @@ -19,7 +21,7 @@ extern int __nesf2vfp(float a, float b); -#if __arm__ +#if __arm__ && __VFP_FP__ int test__nesf2vfp(float a, float b) { int actual = __nesf2vfp(a, b); @@ -33,7 +35,7 @@ int test__nesf2vfp(float a, float b) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__nesf2vfp(0.0, 0.0)) return 1; if (test__nesf2vfp(1.0, 1.0)) diff --git a/test/builtins/Unit/netf2_test.c b/test/builtins/Unit/netf2_test.c index bbd953ab59e2..c0b839d647ec 100644 --- a/test/builtins/Unit/netf2_test.c +++ b/test/builtins/Unit/netf2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===------------ netf2_test.c - Test __netf2------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/paritydi2_test.c b/test/builtins/Unit/paritydi2_test.c index 98220bd8cb61..cc56eda57ee4 100644 --- a/test/builtins/Unit/paritydi2_test.c +++ b/test/builtins/Unit/paritydi2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- paritydi2_test.c - Test __paritydi2 -------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/paritysi2_test.c b/test/builtins/Unit/paritysi2_test.c index 175aeb2c9c00..42d687f1706d 100644 --- a/test/builtins/Unit/paritysi2_test.c +++ b/test/builtins/Unit/paritysi2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- paritysi2_test.c - Test __paritysi2 -------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/parityti2_test.c b/test/builtins/Unit/parityti2_test.c index cc1e999f29eb..bcd26d0af846 100644 --- a/test/builtins/Unit/parityti2_test.c +++ b/test/builtins/Unit/parityti2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- parityti2_test.c - Test __parityti2 -------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/popcountdi2_test.c b/test/builtins/Unit/popcountdi2_test.c index bfd4977b416c..1d52fb8dbd52 100644 --- a/test/builtins/Unit/popcountdi2_test.c +++ b/test/builtins/Unit/popcountdi2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- popcountdi2_test.c - Test __popcountdi2 ----------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/popcountsi2_test.c b/test/builtins/Unit/popcountsi2_test.c index 10b757d814e4..5eb88ac62623 100644 --- a/test/builtins/Unit/popcountsi2_test.c +++ b/test/builtins/Unit/popcountsi2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- popcountsi2_test.c - Test __popcountsi2 ---------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/popcountti2_test.c b/test/builtins/Unit/popcountti2_test.c index 3a3c3cb4fa2c..ef8b2c3836bc 100644 --- a/test/builtins/Unit/popcountti2_test.c +++ b/test/builtins/Unit/popcountti2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- popcountti2_test.c - Test __popcountti2 ----------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/powidf2_test.c b/test/builtins/Unit/powidf2_test.c index c499d9abaeb2..210e3c3c7582 100644 --- a/test/builtins/Unit/powidf2_test.c +++ b/test/builtins/Unit/powidf2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- powidf2_test.cpp - Test __powidf2 ---------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/powisf2_test.c b/test/builtins/Unit/powisf2_test.c index 1186ef4af5b0..add4be43faf3 100644 --- a/test/builtins/Unit/powisf2_test.c +++ b/test/builtins/Unit/powisf2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- powisf2_test.cpp - Test __powisf2 ---------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/powitf2_test.c b/test/builtins/Unit/powitf2_test.c index 13c890a0dcaf..9d11b76cb0d6 100644 --- a/test/builtins/Unit/powitf2_test.c +++ b/test/builtins/Unit/powitf2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- powitf2_test.cpp - Test __powitf2 ---------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/powixf2_test.c b/test/builtins/Unit/powixf2_test.c index a28f1f9696f7..bf5a812fa1c5 100644 --- a/test/builtins/Unit/powixf2_test.c +++ b/test/builtins/Unit/powixf2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- powixf2_test.cpp - Test __powixf2 ---------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/ppc/fixtfdi_test.c b/test/builtins/Unit/ppc/fixtfdi_test.c index b4865fb8e6e9..ea6c40563777 100644 --- a/test/builtins/Unit/ppc/fixtfdi_test.c +++ b/test/builtins/Unit/ppc/fixtfdi_test.c @@ -1,3 +1,5 @@ +// REQUIRES: powerpc-registered-target +// RUN: %clang_builtins %s -o %t && %run %t #include <stdio.h> #include <limits.h> #include <stdint.h> diff --git a/test/builtins/Unit/ppc/floatditf_test.c b/test/builtins/Unit/ppc/floatditf_test.c index 71ecf7c4b5dd..5c08ade4bdf8 100644 --- a/test/builtins/Unit/ppc/floatditf_test.c +++ b/test/builtins/Unit/ppc/floatditf_test.c @@ -1,3 +1,5 @@ +// REQUIRES: powerpc-registered-target +// RUN: %clang_builtins %s -o %t && %run %t #include <stdint.h> #include <stdio.h> diff --git a/test/builtins/Unit/ppc/floatunditf_test.c b/test/builtins/Unit/ppc/floatunditf_test.c index 4d1ce088476b..3e50128578e3 100644 --- a/test/builtins/Unit/ppc/floatunditf_test.c +++ b/test/builtins/Unit/ppc/floatunditf_test.c @@ -1,3 +1,5 @@ +// REQUIRES: powerpc-registered-target +// RUN: %clang_builtins %s -o %t && %run %t #include <stdint.h> #include <stdio.h> diff --git a/test/builtins/Unit/ppc/qadd_test.c b/test/builtins/Unit/ppc/qadd_test.c index 6d4ca93c2698..327fd21e8aa7 100644 --- a/test/builtins/Unit/ppc/qadd_test.c +++ b/test/builtins/Unit/ppc/qadd_test.c @@ -1,3 +1,5 @@ +// REQUIRES: powerpc-registered-target +// RUN: %clang_builtins %s -o %t && %run %t #include <stdio.h> #include "DD.h" diff --git a/test/builtins/Unit/ppc/qdiv_test.c b/test/builtins/Unit/ppc/qdiv_test.c index 8e4e75a50ad6..7530e428fa72 100644 --- a/test/builtins/Unit/ppc/qdiv_test.c +++ b/test/builtins/Unit/ppc/qdiv_test.c @@ -1,3 +1,5 @@ +// REQUIRES: powerpc-registered-target +// RUN: %clang_builtins %s -o %t && %run %t #include <stdio.h> #include "DD.h" diff --git a/test/builtins/Unit/ppc/qmul_test.c b/test/builtins/Unit/ppc/qmul_test.c index fc5b46d3366a..dbe3536f3098 100644 --- a/test/builtins/Unit/ppc/qmul_test.c +++ b/test/builtins/Unit/ppc/qmul_test.c @@ -1,3 +1,5 @@ +// REQUIRES: powerpc-registered-target +// RUN: %clang_builtins %s -o %t && %run %t #include <stdio.h> #include "DD.h" diff --git a/test/builtins/Unit/ppc/qsub_test.c b/test/builtins/Unit/ppc/qsub_test.c index 43bc7f4a854a..e21224096f5c 100644 --- a/test/builtins/Unit/ppc/qsub_test.c +++ b/test/builtins/Unit/ppc/qsub_test.c @@ -1,3 +1,5 @@ +// REQUIRES: powerpc-registered-target +// RUN: %clang_builtins %s -o %t && %run %t #include <stdio.h> #include "DD.h" diff --git a/test/builtins/Unit/subdf3vfp_test.c b/test/builtins/Unit/subdf3vfp_test.c index 6e8d5a1aaa5a..75bfe4542a05 100644 --- a/test/builtins/Unit/subdf3vfp_test.c +++ b/test/builtins/Unit/subdf3vfp_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- subdf3vfp_test.c - Test __subdf3vfp -------------------------------===// // // The LLVM Compiler Infrastructure @@ -17,7 +18,7 @@ #include <math.h> -#if __arm__ +#if __arm__ && __VFP_FP__ extern COMPILER_RT_ABI double __subdf3vfp(double a, double b); int test__subdf3vfp(double a, double b) @@ -33,7 +34,7 @@ int test__subdf3vfp(double a, double b) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__subdf3vfp(1.0, 1.0)) return 1; if (test__subdf3vfp(1234.567, 765.4321)) diff --git a/test/builtins/Unit/subsf3vfp_test.c b/test/builtins/Unit/subsf3vfp_test.c index fe60058de6f7..fb3839f233ea 100644 --- a/test/builtins/Unit/subsf3vfp_test.c +++ b/test/builtins/Unit/subsf3vfp_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- subsf3vfp_test.c - Test __subsf3vfp -------------------------------===// // // The LLVM Compiler Infrastructure @@ -19,7 +20,7 @@ extern COMPILER_RT_ABI float __subsf3vfp(float a, float b); -#if __arm__ +#if __arm__ && __VFP_FP__ int test__subsf3vfp(float a, float b) { float actual = __subsf3vfp(a, b); @@ -33,7 +34,7 @@ int test__subsf3vfp(float a, float b) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__subsf3vfp(1.0, 1.0)) return 1; if (test__subsf3vfp(1234.567, 765.4321)) diff --git a/test/builtins/Unit/subtf3_test.c b/test/builtins/Unit/subtf3_test.c index ad115a40ca39..771242ba4a50 100644 --- a/test/builtins/Unit/subtf3_test.c +++ b/test/builtins/Unit/subtf3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===--------------- subtf3_test.c - Test __subtf3 ------------------------===// // // The LLVM Compiler Infrastructure @@ -15,6 +16,7 @@ #if __LDBL_MANT_DIG__ == 113 +#include "int_lib.h" #include "fp_test.h" // Returns: a - b diff --git a/test/builtins/Unit/subvdi3_test.c b/test/builtins/Unit/subvdi3_test.c index 96e825cafb1f..7606e27d168e 100644 --- a/test/builtins/Unit/subvdi3_test.c +++ b/test/builtins/Unit/subvdi3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- subvdi3_test.c - Test __subvdi3 -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/subvsi3_test.c b/test/builtins/Unit/subvsi3_test.c index 03ef5045d257..f52a12b60564 100644 --- a/test/builtins/Unit/subvsi3_test.c +++ b/test/builtins/Unit/subvsi3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- subvsi3_test.c - Test __subvsi3 -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/subvti3_test.c b/test/builtins/Unit/subvti3_test.c index 40eb5186917a..66806ba0bb71 100644 --- a/test/builtins/Unit/subvti3_test.c +++ b/test/builtins/Unit/subvti3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- subvti3_test.c - Test __subvti3 -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/trampoline_setup_test.c b/test/builtins/Unit/trampoline_setup_test.c index dc30fb6df60a..b8c3eae2da11 100644 --- a/test/builtins/Unit/trampoline_setup_test.c +++ b/test/builtins/Unit/trampoline_setup_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -fnested-functions -o %t && %run %t /* ===-- trampoline_setup_test.c - Test __trampoline_setup -----------------=== * * The LLVM Compiler Infrastructure @@ -12,7 +13,6 @@ #include <stdio.h> #include <string.h> #include <stdint.h> -#include <sys/mman.h> /* * Tests nested functions diff --git a/test/builtins/Unit/truncdfhf2_test.c b/test/builtins/Unit/truncdfhf2_test.c index 6627a001eab8..b172811a13f1 100644 --- a/test/builtins/Unit/truncdfhf2_test.c +++ b/test/builtins/Unit/truncdfhf2_test.c @@ -1,3 +1,5 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t + //===--------------- truncdfhf2_test.c - Test __truncdfhf2 ----------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/truncdfsf2_test.c b/test/builtins/Unit/truncdfsf2_test.c index a208a3a56bed..04bebf4c6cd5 100644 --- a/test/builtins/Unit/truncdfsf2_test.c +++ b/test/builtins/Unit/truncdfsf2_test.c @@ -1,3 +1,5 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t + //===--------------- truncdfsf2_test.c - Test __truncdfsf2 ----------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/truncdfsf2vfp_test.c b/test/builtins/Unit/truncdfsf2vfp_test.c index eaeda658259e..f034dd2da26c 100644 --- a/test/builtins/Unit/truncdfsf2vfp_test.c +++ b/test/builtins/Unit/truncdfsf2vfp_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- truncdfsf2vfp_test.c - Test __truncdfsf2vfp -----------------------===// // // The LLVM Compiler Infrastructure @@ -19,7 +20,7 @@ extern COMPILER_RT_ABI float __truncdfsf2vfp(double a); -#if __arm__ +#if __arm__ && __VFP_FP__ int test__truncdfsf2vfp(double a) { float actual = __truncdfsf2vfp(a); @@ -33,7 +34,7 @@ int test__truncdfsf2vfp(double a) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__truncdfsf2vfp(0.0)) return 1; if (test__truncdfsf2vfp(1.0)) diff --git a/test/builtins/Unit/truncsfhf2_test.c b/test/builtins/Unit/truncsfhf2_test.c index 5bc3c8e22d59..2240c14a5d5b 100644 --- a/test/builtins/Unit/truncsfhf2_test.c +++ b/test/builtins/Unit/truncsfhf2_test.c @@ -1,3 +1,5 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t + //===--------------- truncsfhf2_test.c - Test __truncsfhf2 ----------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/trunctfdf2_test.c b/test/builtins/Unit/trunctfdf2_test.c index 0366a8ce99f2..1d8c2bf05d4d 100644 --- a/test/builtins/Unit/trunctfdf2_test.c +++ b/test/builtins/Unit/trunctfdf2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-------------- trunctfdf2_test.c - Test __trunctfdf2 -----------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/trunctfsf2_test.c b/test/builtins/Unit/trunctfsf2_test.c index a6b922ce122d..177508319a43 100644 --- a/test/builtins/Unit/trunctfsf2_test.c +++ b/test/builtins/Unit/trunctfsf2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===--------------- trunctfsf2_test.c - Test __trunctfsf2 ----------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/ucmpdi2_test.c b/test/builtins/Unit/ucmpdi2_test.c index 65ae4fce0e79..ee815454a256 100644 --- a/test/builtins/Unit/ucmpdi2_test.c +++ b/test/builtins/Unit/ucmpdi2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- ucmpdi2_test.c - Test __ucmpdi2 -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/ucmpti2_test.c b/test/builtins/Unit/ucmpti2_test.c index 826cd6439dd3..17a857fb59ea 100644 --- a/test/builtins/Unit/ucmpti2_test.c +++ b/test/builtins/Unit/ucmpti2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- ucmpti2_test.c - Test __ucmpti2 -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/udivdi3_test.c b/test/builtins/Unit/udivdi3_test.c index 48c99e30973a..5858bc7f925b 100644 --- a/test/builtins/Unit/udivdi3_test.c +++ b/test/builtins/Unit/udivdi3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- udivdi3_test.c - Test __udivdi3 -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/udivmoddi4_test.c b/test/builtins/Unit/udivmoddi4_test.c index 79af1eeff613..a5024bae01ca 100644 --- a/test/builtins/Unit/udivmoddi4_test.c +++ b/test/builtins/Unit/udivmoddi4_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- udivmoddi4_test.c - Test __udivmoddi4 -----------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/udivmodsi4_test.c b/test/builtins/Unit/udivmodsi4_test.c index 4c14e297d567..320018cba5c0 100644 --- a/test/builtins/Unit/udivmodsi4_test.c +++ b/test/builtins/Unit/udivmodsi4_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- udivmodsi4_test.c - Test __udivmodsi4 -----------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/udivmodti4_test.c b/test/builtins/Unit/udivmodti4_test.c index c4246613d2e6..b07ce8c24200 100644 --- a/test/builtins/Unit/udivmodti4_test.c +++ b/test/builtins/Unit/udivmodti4_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- udivmodti4_test.c - Test __udivmodti4 -----------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/udivsi3_test.c b/test/builtins/Unit/udivsi3_test.c index 49053865bf49..7adf30a151cb 100644 --- a/test/builtins/Unit/udivsi3_test.c +++ b/test/builtins/Unit/udivsi3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- udivsi3_test.c - Test __udivsi3 -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/udivti3_test.c b/test/builtins/Unit/udivti3_test.c index f24ff03b2424..81cedadff243 100644 --- a/test/builtins/Unit/udivti3_test.c +++ b/test/builtins/Unit/udivti3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- udivti3_test.c - Test __udivti3 -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/umoddi3_test.c b/test/builtins/Unit/umoddi3_test.c index b46fb4022817..b1382b621a5e 100644 --- a/test/builtins/Unit/umoddi3_test.c +++ b/test/builtins/Unit/umoddi3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- umoddi3_test.c - Test __umoddi3 -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/umodsi3_test.c b/test/builtins/Unit/umodsi3_test.c index 3655da1395f7..c43053874897 100644 --- a/test/builtins/Unit/umodsi3_test.c +++ b/test/builtins/Unit/umodsi3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- umodsi3_test.c - Test __umodsi3 -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/umodti3_test.c b/test/builtins/Unit/umodti3_test.c index 21e82a4a21e0..5bce0258ae38 100644 --- a/test/builtins/Unit/umodti3_test.c +++ b/test/builtins/Unit/umodti3_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===-- umodti3_test.c - Test __umodti3 -----------------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/Unit/unorddf2vfp_test.c b/test/builtins/Unit/unorddf2vfp_test.c index d49d567896ae..21938d044aee 100644 --- a/test/builtins/Unit/unorddf2vfp_test.c +++ b/test/builtins/Unit/unorddf2vfp_test.c @@ -1,3 +1,5 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t + //===-- unorddf2vfp_test.c - Test __unorddf2vfp ---------------------------===// // // The LLVM Compiler Infrastructure @@ -19,7 +21,7 @@ extern int __unorddf2vfp(double a, double b); -#if __arm__ +#if __arm__ && __VFP_FP__ int test__unorddf2vfp(double a, double b) { int actual = __unorddf2vfp(a, b); @@ -33,7 +35,7 @@ int test__unorddf2vfp(double a, double b) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__unorddf2vfp(0.0, NAN)) return 1; if (test__unorddf2vfp(NAN, 1.0)) diff --git a/test/builtins/Unit/unordsf2vfp_test.c b/test/builtins/Unit/unordsf2vfp_test.c index 3cadc81c708b..712665294cc0 100644 --- a/test/builtins/Unit/unordsf2vfp_test.c +++ b/test/builtins/Unit/unordsf2vfp_test.c @@ -1,3 +1,5 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t + //===-- unordsf2vfp_test.c - Test __unordsf2vfp ---------------------------===// // // The LLVM Compiler Infrastructure @@ -19,7 +21,7 @@ extern int __unordsf2vfp(float a, float b); -#if __arm__ +#if __arm__ && __VFP_FP__ int test__unordsf2vfp(float a, float b) { int actual = __unordsf2vfp(a, b); @@ -33,7 +35,7 @@ int test__unordsf2vfp(float a, float b) int main() { -#if __arm__ +#if __arm__ && __VFP_FP__ if (test__unordsf2vfp(0.0, NAN)) return 1; if (test__unordsf2vfp(NAN, 1.0)) diff --git a/test/builtins/Unit/unordtf2_test.c b/test/builtins/Unit/unordtf2_test.c index 114cd8cb38a7..22907ce7670b 100644 --- a/test/builtins/Unit/unordtf2_test.c +++ b/test/builtins/Unit/unordtf2_test.c @@ -1,3 +1,4 @@ +// RUN: %clang_builtins %s %librt -o %t && %run %t //===------------ unordtf2_test.c - Test __unordtf2------------------------===// // // The LLVM Compiler Infrastructure diff --git a/test/builtins/lit.cfg b/test/builtins/lit.cfg new file mode 100644 index 000000000000..0044df7ba723 --- /dev/null +++ b/test/builtins/lit.cfg @@ -0,0 +1,20 @@ +# -*- Python -*- + +import os + +# Setup config name. +config.name = 'Builtins' + +# Setup source root. +config.test_source_root = os.path.dirname(__file__) + +# Test suffixes. +config.suffixes = ['.c', '.cc', '.cpp', '.m', '.mm'] + +# Define %clang and %clangxx substitutions to use in test RUN lines. +config.substitutions.append( ("%clang ", " " + config.clang + " ") ) + +if config.host_os == 'Darwin': + config.substitutions.append( ("%macos_version_major", str(config.darwin_osx_version[0])) ) + config.substitutions.append( ("%macos_version_minor", str(config.darwin_osx_version[1])) ) + config.substitutions.append( ("%macos_version_subminor", str(config.darwin_osx_version[2])) ) diff --git a/test/builtins/lit.site.cfg.in b/test/builtins/lit.site.cfg.in new file mode 100644 index 000000000000..c7fe82f949df --- /dev/null +++ b/test/builtins/lit.site.cfg.in @@ -0,0 +1,7 @@ +@LIT_SITE_CFG_IN_HEADER@ + +# Load common config for all compiler-rt lit tests. +lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured") + +# Load tool-specific config that would do the real work. +lit_config.load_config(config, "@BUILTINS_LIT_SOURCE_DIR@/lit.cfg") diff --git a/test/cfi/CMakeLists.txt b/test/cfi/CMakeLists.txt index bd51eacb6675..c3123a8204eb 100644 --- a/test/cfi/CMakeLists.txt +++ b/test/cfi/CMakeLists.txt @@ -34,7 +34,7 @@ if(NOT COMPILER_RT_STANDALONE_BUILD) LTO ) endif() - if(WIN32 AND COMPILER_RT_HAS_LLD_SOURCES) + if(WIN32 AND COMPILER_RT_HAS_LLD) list(APPEND CFI_TEST_DEPS lld ) diff --git a/test/cfi/bad-split.cpp b/test/cfi/bad-split.cpp new file mode 100644 index 000000000000..53504bd2710b --- /dev/null +++ b/test/cfi/bad-split.cpp @@ -0,0 +1,21 @@ +// GlobalSplit used to lose type metadata for classes with virtual bases but no virtual methods. +// RUN: %clangxx_cfi -o %t1 %s && %t1 + +// UNSUPPORTED: win32 + +struct Z { +}; + +struct ZZ : public virtual Z { +}; + +struct A : public ZZ { +}; + +struct B : public A { +}; + +int main() { + A* a = new B(); + B *b = (B*)a; +} diff --git a/test/esan/TestCases/workingset-samples.cpp b/test/esan/TestCases/workingset-samples.cpp index cf198d2f39ef..7db2110b924f 100644 --- a/test/esan/TestCases/workingset-samples.cpp +++ b/test/esan/TestCases/workingset-samples.cpp @@ -8,7 +8,6 @@ #include <sys/mman.h> const int size = 0x1 << 25; // 523288 cache lines -const int iters = 6; int main(int argc, char **argv) { char *buf = (char *)mmap(0, size, PROT_READ | PROT_WRITE, diff --git a/test/lit.common.cfg b/test/lit.common.cfg index b8759923488a..d59d7d668115 100644 --- a/test/lit.common.cfg +++ b/test/lit.common.cfg @@ -11,8 +11,19 @@ import subprocess import lit.formats import lit.util -# Setup test format. Use bash on Unix and the lit shell on Windows. -execute_external = (not sys.platform in ['win32']) + +# Choose between lit's internal shell pipeline runner and a real shell. If +# LIT_USE_INTERNAL_SHELL is in the environment, we use that as an override. +use_lit_shell = os.environ.get("LIT_USE_INTERNAL_SHELL") +if use_lit_shell: + # 0 is external, "" is default, and everything else is internal. + execute_external = (use_lit_shell == "0") +else: + # Otherwise we default to internal on Windows and external elsewhere, as + # bash on Windows is usually very slow. + execute_external = (not sys.platform in ['win32']) + +# Setup test format. config.test_format = lit.formats.ShTest(execute_external) if execute_external: config.available_features.add('shell') @@ -126,9 +137,11 @@ if config.can_symbolize: lit.util.usePlatformSdkOnDarwin(config, lit_config) if config.host_os == 'Darwin': + osx_version = (10, 0, 0) try: osx_version = subprocess.check_output(["sw_vers", "-productVersion"]) osx_version = tuple(int(x) for x in osx_version.split('.')) + if len(osx_version) == 2: osx_version = (osx_version[0], osx_version[1], 0) if osx_version >= (10, 11): config.available_features.add('osx-autointerception') config.available_features.add('osx-ld64-live_support') @@ -141,6 +154,8 @@ if config.host_os == 'Darwin': except: pass + config.darwin_osx_version = osx_version + # Detect x86_64h try: output = subprocess.check_output(["sysctl", "hw.cpusubtype"]) @@ -191,7 +206,8 @@ elif config.host_os == 'Linux' and is_linux_lto_supported(): elif config.host_os == 'Windows' and is_windows_lto_supported(): config.lto_supported = True config.lto_launch = [] - config.lto_flags = ["-fuse-ld=lld"] + # FIXME: Remove -nopdb when PDB writing is ready. + config.lto_flags = ["-fuse-ld=lld -Wl,-nopdb"] else: config.lto_supported = False @@ -216,3 +232,9 @@ llvm_config_cmd.wait() # retries. We don't do this on otther platforms because it's slower. if platform.system() == 'Windows': config.test_retry_attempts = 2 + +# Only run up to 3 64-bit sanitized processes simultaneously on Darwin. +# Using more scales badly and hogs the system due to inefficient handling +# of large mmap'd regions (terabytes) by the kernel. +if platform.system() == 'Darwin': + lit_config.parallelism_groups["darwin-64bit-sanitizer"] = 3 diff --git a/test/lit.common.configured.in b/test/lit.common.configured.in index 862d06bf2947..387f4d4a743b 100644 --- a/test/lit.common.configured.in +++ b/test/lit.common.configured.in @@ -26,7 +26,7 @@ set_default("compiler_rt_debug", @COMPILER_RT_DEBUG_PYBOOL@) set_default("compiler_rt_libdir", "@COMPILER_RT_LIBRARY_OUTPUT_DIR@") set_default("emulator", "@COMPILER_RT_EMULATOR@") set_default("sanitizer_can_use_cxxabi", @SANITIZER_CAN_USE_CXXABI_PYBOOL@) -set_default("has_lld", @COMPILER_RT_HAS_LLD_SOURCES_PYBOOL@) +set_default("has_lld", @COMPILER_RT_HAS_LLD_PYBOOL@) set_default("can_symbolize", @CAN_SYMBOLIZE@) config.available_features.add('target-is-%s' % config.target_arch) diff --git a/test/lsan/TestCases/cleanup_in_tsd_destructor.c b/test/lsan/TestCases/Linux/cleanup_in_tsd_destructor.c index 6da759563451..6da759563451 100644 --- a/test/lsan/TestCases/cleanup_in_tsd_destructor.c +++ b/test/lsan/TestCases/Linux/cleanup_in_tsd_destructor.c diff --git a/test/lsan/TestCases/disabler_in_tsd_destructor.c b/test/lsan/TestCases/Linux/disabler_in_tsd_destructor.c index 4a3a7ac14c3b..4a3a7ac14c3b 100644 --- a/test/lsan/TestCases/disabler_in_tsd_destructor.c +++ b/test/lsan/TestCases/Linux/disabler_in_tsd_destructor.c diff --git a/test/lsan/TestCases/fork.cc b/test/lsan/TestCases/Linux/fork.cc index 9e72fe871cf1..9e72fe871cf1 100644 --- a/test/lsan/TestCases/fork.cc +++ b/test/lsan/TestCases/Linux/fork.cc diff --git a/test/lsan/TestCases/fork_threaded.cc b/test/lsan/TestCases/Linux/fork_threaded.cc index 62702b4dfe47..62702b4dfe47 100644 --- a/test/lsan/TestCases/fork_threaded.cc +++ b/test/lsan/TestCases/Linux/fork_threaded.cc diff --git a/test/lsan/TestCases/guard-page.c b/test/lsan/TestCases/Linux/guard-page.c index 25d63e2720c3..25d63e2720c3 100644 --- a/test/lsan/TestCases/guard-page.c +++ b/test/lsan/TestCases/Linux/guard-page.c diff --git a/test/lsan/TestCases/Linux/lit.local.cfg b/test/lsan/TestCases/Linux/lit.local.cfg new file mode 100644 index 000000000000..57271b8078a4 --- /dev/null +++ b/test/lsan/TestCases/Linux/lit.local.cfg @@ -0,0 +1,9 @@ +def getRoot(config): + if not config.parent: + return config + return getRoot(config.parent) + +root = getRoot(config) + +if root.host_os not in ['Linux']: + config.unsupported = True diff --git a/test/lsan/TestCases/use_tls_dynamic.cc b/test/lsan/TestCases/Linux/use_tls_dynamic.cc index 927c5c4f768e..6af82d59e099 100644 --- a/test/lsan/TestCases/use_tls_dynamic.cc +++ b/test/lsan/TestCases/Linux/use_tls_dynamic.cc @@ -1,10 +1,11 @@ // Test that dynamically allocated TLS space is included in the root set. -// RUN: LSAN_BASE="report_objects=1:use_stacks=0:use_registers=0:use_ld_allocations=0" +// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_stacks=0:use_registers=0:use_ld_allocations=0" // RUN: %clangxx %s -DBUILD_DSO -fPIC -shared -o %t-so.so // RUN: %clangxx_lsan %s -o %t // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_tls=0" not %run %t 2>&1 | FileCheck %s // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_tls=1" %run %t 2>&1 // RUN: LSAN_OPTIONS="" %run %t 2>&1 +// UNSUPPORTED: i386-linux,i686-linux,arm #ifndef BUILD_DSO #include <assert.h> diff --git a/test/lsan/TestCases/use_tls_pthread_specific_dynamic.cc b/test/lsan/TestCases/Linux/use_tls_pthread_specific_dynamic.cc index 9ab4e1cdbc0e..f075d035a3e3 100644 --- a/test/lsan/TestCases/use_tls_pthread_specific_dynamic.cc +++ b/test/lsan/TestCases/Linux/use_tls_pthread_specific_dynamic.cc @@ -1,5 +1,5 @@ // Test that dynamically allocated thread-specific storage is included in the root set. -// RUN: LSAN_BASE="report_objects=1:use_stacks=0:use_registers=0" +// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_stacks=0:use_registers=0" // RUN: %clangxx_lsan %s -o %t // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_tls=0" not %run %t 2>&1 | FileCheck %s // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_tls=1" %run %t 2>&1 diff --git a/test/lsan/TestCases/use_tls_pthread_specific_static.cc b/test/lsan/TestCases/Linux/use_tls_pthread_specific_static.cc index be0bcf628754..d97abab41f09 100644 --- a/test/lsan/TestCases/use_tls_pthread_specific_static.cc +++ b/test/lsan/TestCases/Linux/use_tls_pthread_specific_static.cc @@ -1,5 +1,5 @@ // Test that statically allocated thread-specific storage is included in the root set. -// RUN: LSAN_BASE="report_objects=1:use_stacks=0:use_registers=0" +// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_stacks=0:use_registers=0" // RUN: %clangxx_lsan %s -o %t // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_tls=0" not %run %t 2>&1 | FileCheck %s // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_tls=1" %run %t 2>&1 diff --git a/test/lsan/TestCases/use_tls_static.cc b/test/lsan/TestCases/Linux/use_tls_static.cc index 5ffaf166bcd5..be34a3abf301 100644 --- a/test/lsan/TestCases/use_tls_static.cc +++ b/test/lsan/TestCases/Linux/use_tls_static.cc @@ -1,5 +1,5 @@ // Test that statically allocated TLS space is included in the root set. -// RUN: LSAN_BASE="report_objects=1:use_stacks=0:use_registers=0" +// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_stacks=0:use_registers=0" // RUN: %clangxx_lsan %s -o %t // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_tls=0" not %run %t 2>&1 | FileCheck %s // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_tls=1" %run %t 2>&1 diff --git a/test/lsan/TestCases/disabler.cc b/test/lsan/TestCases/disabler.cc index 12e5ffe4d44a..95e58f457cc4 100644 --- a/test/lsan/TestCases/disabler.cc +++ b/test/lsan/TestCases/disabler.cc @@ -1,5 +1,5 @@ // Test for ScopedDisabler. -// RUN: LSAN_BASE="report_objects=1:use_registers=0:use_stacks=0:use_globals=0:use_tls=0" +// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_registers=0:use_stacks=0:use_globals=0:use_tls=0" // RUN: %clangxx_lsan %s -o %t // RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t 2>&1 | FileCheck %s diff --git a/test/lsan/TestCases/do_leak_check_override.cc b/test/lsan/TestCases/do_leak_check_override.cc index bedb0cad6908..3d191f861d02 100644 --- a/test/lsan/TestCases/do_leak_check_override.cc +++ b/test/lsan/TestCases/do_leak_check_override.cc @@ -1,7 +1,7 @@ // Test for __lsan_do_leak_check(). We test it by making the leak check run // before global destructors, which also tests compatibility with HeapChecker's // "normal" mode (LSan runs in "strict" mode by default). -// RUN: LSAN_BASE="use_stacks=0:use_registers=0" +// RUN: LSAN_BASE="detect_leaks=1:use_stacks=0:use_registers=0" // RUN: %clangxx_lsan %s -o %t // RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t 2>&1 | FileCheck --check-prefix=CHECK-strict %s // RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t foo 2>&1 | FileCheck --check-prefix=CHECK-normal %s diff --git a/test/lsan/TestCases/high_allocator_contention.cc b/test/lsan/TestCases/high_allocator_contention.cc index f423fd48c79c..322e61bde8d9 100644 --- a/test/lsan/TestCases/high_allocator_contention.cc +++ b/test/lsan/TestCases/high_allocator_contention.cc @@ -1,6 +1,6 @@ // A benchmark that executes malloc/free pairs in parallel. // Usage: ./a.out number_of_threads total_number_of_allocations -// RUN: LSAN_BASE="use_ld_allocations=0" +// RUN: LSAN_BASE="detect_leaks=1:use_ld_allocations=0" // RUN: %clangxx_lsan %s -o %t // RUN: LSAN_OPTIONS=$LSAN_BASE %run %t 5 1000000 2>&1 #include <assert.h> diff --git a/test/lsan/TestCases/large_allocation_leak.cc b/test/lsan/TestCases/large_allocation_leak.cc index 9d5698c9f8a6..c3da932a41a4 100644 --- a/test/lsan/TestCases/large_allocation_leak.cc +++ b/test/lsan/TestCases/large_allocation_leak.cc @@ -1,8 +1,12 @@ // Test that LargeMmapAllocator's chunks aren't reachable via some internal data structure. -// RUN: LSAN_BASE="report_objects=1:use_stacks=0:use_registers=0" +// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_stacks=0:use_registers=0" // RUN: %clangxx_lsan %s -o %t // RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t 2>&1 | FileCheck %s +// For 32 bit LSan it's pretty likely that large chunks are "reachable" from some +// internal data structures (e.g. Glibc global data). +// UNSUPPORTED: x86, arm + #include <stdio.h> #include <stdlib.h> #include "sanitizer_common/print_address.h" diff --git a/test/lsan/TestCases/leak_check_at_exit.cc b/test/lsan/TestCases/leak_check_at_exit.cc index 6f1cd22cf68d..5659b396894e 100644 --- a/test/lsan/TestCases/leak_check_at_exit.cc +++ b/test/lsan/TestCases/leak_check_at_exit.cc @@ -1,5 +1,5 @@ // Test for the leak_check_at_exit flag. -// RUN: LSAN_BASE="use_stacks=0:use_registers=0" +// RUN: LSAN_BASE="detect_leaks=1:use_stacks=0:use_registers=0" // RUN: %clangxx_lsan %s -o %t // RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t foo 2>&1 | FileCheck %s --check-prefix=CHECK-do // RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-do diff --git a/test/lsan/TestCases/link_turned_off.cc b/test/lsan/TestCases/link_turned_off.cc index 2482f6197d92..a425a6c2da3e 100644 --- a/test/lsan/TestCases/link_turned_off.cc +++ b/test/lsan/TestCases/link_turned_off.cc @@ -1,5 +1,5 @@ // Test for disabling LSan at link-time. -// RUN: LSAN_BASE="use_stacks=0:use_registers=0" +// RUN: LSAN_BASE="detect_leaks=1:use_stacks=0:use_registers=0" // RUN: %clangxx_lsan %s -o %t // RUN: LSAN_OPTIONS=$LSAN_BASE %run %t // RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t foo 2>&1 | FileCheck %s diff --git a/test/lsan/TestCases/pointer_to_self.cc b/test/lsan/TestCases/pointer_to_self.cc index 40c122811f18..ea1208dcfa78 100644 --- a/test/lsan/TestCases/pointer_to_self.cc +++ b/test/lsan/TestCases/pointer_to_self.cc @@ -1,6 +1,6 @@ // Regression test: pointers to self should not confuse LSan into thinking the // object is indirectly leaked. Only external pointers count. -// RUN: LSAN_BASE="report_objects=1:use_registers=0" +// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_registers=0" // RUN: %clangxx_lsan %s -o %t // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_stacks=0" not %run %t 2>&1 | FileCheck %s diff --git a/test/lsan/TestCases/print_suppressions.cc b/test/lsan/TestCases/print_suppressions.cc index b292c0a7c3cf..1a252e442720 100644 --- a/test/lsan/TestCases/print_suppressions.cc +++ b/test/lsan/TestCases/print_suppressions.cc @@ -1,6 +1,6 @@ // Print matched suppressions only if print_suppressions=1 AND at least one is // matched. Default is print_suppressions=true. -// RUN: LSAN_BASE="use_registers=0:use_stacks=0" +// RUN: LSAN_BASE="detect_leaks=1:use_registers=0:use_stacks=0" // RUN: %clangxx_lsan %s -o %t // RUN: LSAN_OPTIONS=$LSAN_BASE:print_suppressions=0 %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-dont-print // RUN: LSAN_OPTIONS=$LSAN_BASE %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-dont-print diff --git a/test/lsan/TestCases/recoverable_leak_check.cc b/test/lsan/TestCases/recoverable_leak_check.cc index 0fe377f65af1..04686a561d76 100644 --- a/test/lsan/TestCases/recoverable_leak_check.cc +++ b/test/lsan/TestCases/recoverable_leak_check.cc @@ -1,5 +1,5 @@ // Test for on-demand leak checking. -// RUN: LSAN_BASE="use_stacks=0:use_registers=0" +// RUN: LSAN_BASE="detect_leaks=1:use_stacks=0:use_registers=0" // RUN: %clangxx_lsan %s -o %t // RUN: LSAN_OPTIONS=$LSAN_BASE %run %t foo 2>&1 | FileCheck %s // RUN: LSAN_OPTIONS=$LSAN_BASE %run %t 2>&1 | FileCheck %s diff --git a/test/lsan/TestCases/register_root_region.cc b/test/lsan/TestCases/register_root_region.cc index 6fc84c2fb50f..a63b0cc62cd0 100644 --- a/test/lsan/TestCases/register_root_region.cc +++ b/test/lsan/TestCases/register_root_region.cc @@ -1,5 +1,5 @@ // Test for __lsan_(un)register_root_region(). -// RUN: LSAN_BASE="use_stacks=0:use_registers=0" +// RUN: LSAN_BASE="detect_leaks=1:use_stacks=0:use_registers=0" // RUN: %clangxx_lsan %s -o %t // RUN: LSAN_OPTIONS=$LSAN_BASE %run %t // RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t foo 2>&1 | FileCheck %s diff --git a/test/lsan/TestCases/stale_stack_leak.cc b/test/lsan/TestCases/stale_stack_leak.cc index 770096b08888..8f7ab9c1c0fa 100644 --- a/test/lsan/TestCases/stale_stack_leak.cc +++ b/test/lsan/TestCases/stale_stack_leak.cc @@ -1,8 +1,11 @@ // Test that out-of-scope local variables are ignored by LSan. -// RUN: LSAN_BASE="report_objects=1:use_registers=0:use_stacks=1" +// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_registers=0:use_stacks=1" // RUN: %clangxx_lsan %s -o %t // RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t 2>&1 | FileCheck %s // RUN: LSAN_OPTIONS=$LSAN_BASE":exitcode=0" %run %t 2>&1 | FileCheck --check-prefix=CHECK-sanity %s +// +// x86 passes parameters through stack that may lead to false negatives +// UNSUPPORTED: x86 #include <stdio.h> #include <stdlib.h> diff --git a/test/lsan/TestCases/suppressions_default.cc b/test/lsan/TestCases/suppressions_default.cc index b4c0de016cd1..6c0364e62c74 100644 --- a/test/lsan/TestCases/suppressions_default.cc +++ b/test/lsan/TestCases/suppressions_default.cc @@ -1,4 +1,4 @@ -// RUN: LSAN_BASE="use_registers=0:use_stacks=0" +// RUN: LSAN_BASE="detect_leaks=1:use_registers=0:use_stacks=0" // RUN: %clangxx_lsan %s -o %t // RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t 2>&1 | FileCheck %s diff --git a/test/lsan/TestCases/suppressions_file.cc b/test/lsan/TestCases/suppressions_file.cc index 805091cba4c4..1d8a06474d64 100644 --- a/test/lsan/TestCases/suppressions_file.cc +++ b/test/lsan/TestCases/suppressions_file.cc @@ -1,4 +1,4 @@ -// RUN: LSAN_BASE="use_registers=0:use_stacks=0" +// RUN: LSAN_BASE="detect_leaks=1:use_registers=0:use_stacks=0" // RUN: %clangxx_lsan %s -o %t // RUN: rm -f %t.supp diff --git a/test/lsan/TestCases/swapcontext.cc b/test/lsan/TestCases/swapcontext.cc index f7e95ed2ca5c..f990526cf668 100644 --- a/test/lsan/TestCases/swapcontext.cc +++ b/test/lsan/TestCases/swapcontext.cc @@ -2,8 +2,10 @@ // memory. Make sure we don't report these leaks. // RUN: %clangxx_lsan %s -o %t -// RUN: %run %t 2>&1 -// RUN: not %run %t foo 2>&1 | FileCheck %s +// RUN: LSAN_BASE="detect_leaks=1" +// RUN: LSAN_OPTIONS=$LSAN_BASE %run %t 2>&1 +// RUN: LSAN_OPTIONS=$LSAN_BASE not %run %t foo 2>&1 | FileCheck %s +// UNSUPPORTED: arm #include <stdio.h> #if defined(__APPLE__) @@ -23,7 +25,7 @@ void Child() { } int main(int argc, char *argv[]) { - char stack_memory[kStackSize + 1]; + char stack_memory[kStackSize + 1] __attribute__((aligned(16))); char *heap_memory = new char[kStackSize + 1]; char *child_stack = (argc > 1) ? stack_memory : heap_memory; diff --git a/test/lsan/TestCases/use_after_return.cc b/test/lsan/TestCases/use_after_return.cc index ed9cc785f0f5..413775276b19 100644 --- a/test/lsan/TestCases/use_after_return.cc +++ b/test/lsan/TestCases/use_after_return.cc @@ -1,6 +1,6 @@ // Test that fake stack (introduced by ASan's use-after-return mode) is included // in the root set. -// RUN: LSAN_BASE="report_objects=1:use_registers=0" +// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_registers=0" // RUN: %clangxx_lsan %s -O2 -o %t // RUN: ASAN_OPTIONS=$ASAN_OPTIONS:detect_stack_use_after_return=1 LSAN_OPTIONS=$LSAN_BASE:"use_stacks=0" not %run %t 2>&1 | FileCheck %s // RUN: ASAN_OPTIONS=$ASAN_OPTIONS:detect_stack_use_after_return=1 LSAN_OPTIONS=$LSAN_BASE:"use_stacks=1" %run %t 2>&1 diff --git a/test/lsan/TestCases/use_globals_initialized.cc b/test/lsan/TestCases/use_globals_initialized.cc index 45c12dc4e120..996052d6e832 100644 --- a/test/lsan/TestCases/use_globals_initialized.cc +++ b/test/lsan/TestCases/use_globals_initialized.cc @@ -1,5 +1,5 @@ // Test that initialized globals are included in the root set. -// RUN: LSAN_BASE="report_objects=1:use_stacks=0:use_registers=0" +// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_stacks=0:use_registers=0" // RUN: %clangxx_lsan %s -o %t // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_globals=0" not %run %t 2>&1 | FileCheck %s // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_globals=1" %run %t 2>&1 diff --git a/test/lsan/TestCases/use_globals_uninitialized.cc b/test/lsan/TestCases/use_globals_uninitialized.cc index c198fcc7cbbb..25ccacc7eff8 100644 --- a/test/lsan/TestCases/use_globals_uninitialized.cc +++ b/test/lsan/TestCases/use_globals_uninitialized.cc @@ -1,5 +1,5 @@ // Test that uninitialized globals are included in the root set. -// RUN: LSAN_BASE="report_objects=1:use_stacks=0:use_registers=0" +// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_stacks=0:use_registers=0" // RUN: %clangxx_lsan %s -o %t // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_globals=0" not %run %t 2>&1 | FileCheck %s // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_globals=1" %run %t 2>&1 diff --git a/test/lsan/TestCases/use_poisoned_asan.cc b/test/lsan/TestCases/use_poisoned_asan.cc index 5acceeb8ce0a..d9ef16a4e1dd 100644 --- a/test/lsan/TestCases/use_poisoned_asan.cc +++ b/test/lsan/TestCases/use_poisoned_asan.cc @@ -1,6 +1,6 @@ // ASan-poisoned memory should be ignored if use_poisoned is false. // REQUIRES: asan -// RUN: LSAN_BASE="report_objects=1:use_stacks=0:use_registers=0" +// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_stacks=0:use_registers=0" // RUN: %clangxx_lsan %s -o %t // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_poisoned=0" not %run %t 2>&1 | FileCheck %s // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_poisoned=1" %run %t 2>&1 diff --git a/test/lsan/TestCases/use_registers.cc b/test/lsan/TestCases/use_registers.cc index 7647679f4796..2fe13318efcb 100644 --- a/test/lsan/TestCases/use_registers.cc +++ b/test/lsan/TestCases/use_registers.cc @@ -1,5 +1,5 @@ // Test that registers of running threads are included in the root set. -// RUN: LSAN_BASE="report_objects=1:use_stacks=0" +// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_stacks=0" // RUN: %clangxx_lsan -pthread %s -o %t // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_registers=0" not %run %t 2>&1 | FileCheck %s // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_registers=1" %run %t 2>&1 @@ -33,6 +33,11 @@ void *registers_thread_func(void *arg) { : : "r" (p) ); +#elif defined(__arm__) + asm ( "mov r5, %0" + : + : "r" (p) + ); #else #error "Test is not supported on this architecture." #endif diff --git a/test/lsan/TestCases/use_stacks.cc b/test/lsan/TestCases/use_stacks.cc index c32af6841260..95a01003b0c0 100644 --- a/test/lsan/TestCases/use_stacks.cc +++ b/test/lsan/TestCases/use_stacks.cc @@ -1,5 +1,5 @@ // Test that stack of main thread is included in the root set. -// RUN: LSAN_BASE="report_objects=1:use_registers=0" +// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_registers=0" // RUN: %clangxx_lsan %s -o %t // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_stacks=0" not %run %t 2>&1 | FileCheck %s // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_stacks=1" %run %t 2>&1 diff --git a/test/lsan/TestCases/use_stacks_threaded.cc b/test/lsan/TestCases/use_stacks_threaded.cc index ac1fb466fa03..310171feb03b 100644 --- a/test/lsan/TestCases/use_stacks_threaded.cc +++ b/test/lsan/TestCases/use_stacks_threaded.cc @@ -1,5 +1,5 @@ // Test that stacks of non-main threads are included in the root set. -// RUN: LSAN_BASE="report_objects=1:use_registers=0" +// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_registers=0" // RUN: %clangxx_lsan -pthread %s -o %t // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_stacks=0" not %run %t 2>&1 | FileCheck %s // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_stacks=1" %run %t 2>&1 diff --git a/test/lsan/TestCases/use_unaligned.cc b/test/lsan/TestCases/use_unaligned.cc index 86c3ed5200a3..1179c15b73bc 100644 --- a/test/lsan/TestCases/use_unaligned.cc +++ b/test/lsan/TestCases/use_unaligned.cc @@ -1,5 +1,5 @@ // Test that unaligned pointers are detected correctly. -// RUN: LSAN_BASE="report_objects=1:use_stacks=0:use_registers=0" +// RUN: LSAN_BASE="detect_leaks=1:report_objects=1:use_stacks=0:use_registers=0" // RUN: %clangxx_lsan %s -o %t // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_unaligned=0" not %run %t 2>&1 | FileCheck %s // RUN: LSAN_OPTIONS=$LSAN_BASE:"use_unaligned=1" %run %t 2>&1 diff --git a/test/lsan/lit.common.cfg b/test/lsan/lit.common.cfg index 8580eec33d28..b90c7ef4860f 100644 --- a/test/lsan/lit.common.cfg +++ b/test/lsan/lit.common.cfg @@ -3,6 +3,7 @@ # Common configuration for running leak detection tests under LSan/ASan. import os +import re import lit.util @@ -51,8 +52,12 @@ config.substitutions.append( ("%clangxx ", build_invocation(clang_cxxflags)) ) config.substitutions.append( ("%clang_lsan ", build_invocation(clang_lsan_cflags)) ) config.substitutions.append( ("%clangxx_lsan ", build_invocation(clang_lsan_cxxflags)) ) -# LeakSanitizer tests are currently supported on x86-64 Linux and mips64 Linux only. -if config.host_os not in ['Linux'] or config.host_arch not in ['x86_64', 'mips64']: +# LeakSanitizer tests are currently supported on x86-64 Linux, arm Linux and mips64 Linux only. +if config.host_os not in ['Linux'] or config.host_arch not in ['x86_64', 'mips64', 'arm', 'armhf', 'armv7l']: + config.unsupported = True + +# Don't support Thumb due to broken fast unwinder +if re.search('mthumb', config.target_cflags) is not None: config.unsupported = True config.suffixes = ['.c', '.cc', '.cpp'] diff --git a/test/msan/Linux/sendmsg.cc b/test/msan/Linux/sendmsg.cc index 6a8ef83c118b..4fc6c88cc5dd 100644 --- a/test/msan/Linux/sendmsg.cc +++ b/test/msan/Linux/sendmsg.cc @@ -33,17 +33,31 @@ int main() { char buf[kBufSize] = {0}; pthread_t client_thread; struct sockaddr_in serveraddr; - - sockfd = socket(AF_INET, SOCK_DGRAM, 0); + struct sockaddr_in6 serveraddr6; memset(&serveraddr, 0, sizeof(serveraddr)); serveraddr.sin_family = AF_INET; serveraddr.sin_addr.s_addr = htonl(INADDR_ANY); serveraddr.sin_port = 0; - - bind(sockfd, (struct sockaddr *)&serveraddr, sizeof(serveraddr)); + struct sockaddr *addr = (struct sockaddr *)&serveraddr; socklen_t addrlen = sizeof(serveraddr); - getsockname(sockfd, (struct sockaddr *)&serveraddr, &addrlen); + + sockfd = socket(addr->sa_family, SOCK_DGRAM, 0); + if (sockfd <= 0) { + // Try to fall-back to IPv6 + memset(&serveraddr6, 0, sizeof(serveraddr6)); + serveraddr6.sin6_family = AF_INET6; + serveraddr6.sin6_addr = in6addr_any; + serveraddr6.sin6_port = 0; + addr = (struct sockaddr *)&serveraddr6; + addrlen = sizeof(serveraddr6); + + sockfd = socket(addr->sa_family, SOCK_DGRAM, 0); + } + assert(sockfd > 0); + + bind(sockfd, addr, addrlen); + getsockname(sockfd, addr, &addrlen); #if defined(POISON) __msan_poison(buf + 7, 1); @@ -52,7 +66,7 @@ int main() { #if defined(SENDMSG) struct iovec iov[2] = {{buf, 5}, {buf + 5, 5}}; struct msghdr msg; - msg.msg_name = &serveraddr; + msg.msg_name = addr; msg.msg_namelen = addrlen; msg.msg_iov = iov; msg.msg_iovlen = 2; @@ -62,14 +76,13 @@ int main() { #endif #if defined(SEND) - ret = connect(sockfd, (struct sockaddr *)&serveraddr, addrlen); + ret = connect(sockfd, addr, addrlen); assert(ret == 0); ret = send(sockfd, buf, kBufSize, 0); // SEND: Uninitialized bytes in __interceptor_send at offset 7 inside [{{.*}}, 10) assert(ret > 0); #elif defined(SENDTO) - ret = - sendto(sockfd, buf, kBufSize, 0, (struct sockaddr *)&serveraddr, addrlen); + ret = sendto(sockfd, buf, kBufSize, 0, addr, addrlen); // SENDTO: Uninitialized bytes in __interceptor_sendto at offset 7 inside [{{.*}}, 10) assert(ret > 0); #elif defined(SENDMSG) diff --git a/test/msan/alloca.cc b/test/msan/alloca.cc new file mode 100644 index 000000000000..3472361e4b01 --- /dev/null +++ b/test/msan/alloca.cc @@ -0,0 +1,25 @@ +// RUN: %clangxx_msan -O0 -g %s -o %t && %run %t +// RUN: %clangxx_msan -O3 -g %s -o %t && %run %t + +#include <assert.h> +#include <stdlib.h> +#include <string.h> +#include <stdio.h> +#include <sanitizer/msan_interface.h> + +int main(void) { + char *p = (char *)alloca(16); + assert(0 == __msan_test_shadow(p, 16)); + assert(0 == __msan_test_shadow(p + 15, 1)); + + memset(p, 0, 16); + assert(-1 == __msan_test_shadow(p, 16)); + + volatile int x = 0; + char * volatile q = (char *)alloca(42 * x); + assert(-1 == __msan_test_shadow(p, 16)); + + int r[x]; + int *volatile r2 = r; + assert(-1 == __msan_test_shadow(p, 16)); +} diff --git a/test/msan/fread_fwrite.cc b/test/msan/fread_fwrite.cc new file mode 100644 index 000000000000..3d500342a1eb --- /dev/null +++ b/test/msan/fread_fwrite.cc @@ -0,0 +1,34 @@ +// RUN: %clangxx_msan -g %s -o %t +// RUN: not %t 2>&1 | FileCheck %s +// RUN: %t 1 + +#include <stdio.h> +#include <stdlib.h> + +int test_fread() { + FILE *f = fopen("/dev/zero", "r"); + char c; + unsigned read = fread(&c, sizeof(c), 1, f); + fclose(f); + if (c == '1') // No error + return 1; + return 0; +} + +int test_fwrite() { + FILE *f = fopen("/dev/null", "w"); + char c; + if (fwrite(&c, sizeof(c), 1, f) != sizeof(c)) // BOOM + return 1; + return fclose(f); +} + +int main(int argc, char *argv[]) { + if (argc > 1) + test_fread(); + else + test_fwrite(); + return 0; +} + +// CHECK: Uninitialized bytes in __interceptor_fwrite at offset 0 inside diff --git a/test/msan/getloadavg.cc b/test/msan/getloadavg.cc new file mode 100644 index 000000000000..7facd580daf0 --- /dev/null +++ b/test/msan/getloadavg.cc @@ -0,0 +1,16 @@ +// RUN: %clangxx_msan -O0 -g %s -o %t && %run %t + +#define _BSD_SOURCE +#include <assert.h> +#include <stdlib.h> + +#include <sanitizer/msan_interface.h> + +int main(void) { + double x[4]; + int ret = getloadavg(x, 3); + assert(ret > 0); + assert(ret <= 3); + assert(__msan_test_shadow(x, sizeof(double) * ret) == -1); + assert(__msan_test_shadow(&x[ret], sizeof(double)) == 0); +} diff --git a/test/msan/ioctl.cc b/test/msan/ioctl.cc index e21ef636c604..66ac6e95b665 100644 --- a/test/msan/ioctl.cc +++ b/test/msan/ioctl.cc @@ -8,7 +8,7 @@ #include <unistd.h> int main(int argc, char **argv) { - int fd = socket(AF_INET, SOCK_DGRAM, 0); + int fd = socket(AF_UNIX, SOCK_DGRAM, 0); unsigned int z; int res = ioctl(fd, FIOGETOWN, &z); diff --git a/test/msan/ioctl_custom.cc b/test/msan/ioctl_custom.cc index 6df22d75e95e..eaab63384582 100644 --- a/test/msan/ioctl_custom.cc +++ b/test/msan/ioctl_custom.cc @@ -14,7 +14,7 @@ #include <unistd.h> int main(int argc, char **argv) { - int fd = socket(AF_INET, SOCK_STREAM, 0); + int fd = socket(AF_UNIX, SOCK_STREAM, 0); struct ifreq ifreqs[20]; struct ifconf ifc; diff --git a/test/msan/wcsncpy.cc b/test/msan/wcsncpy.cc new file mode 100644 index 000000000000..f582c37b7aab --- /dev/null +++ b/test/msan/wcsncpy.cc @@ -0,0 +1,38 @@ +// RUN: %clangxx_msan -fsanitize-memory-track-origins -O0 %s -o %t && not %run %t >%t.out 2>&1 +// RUN: FileCheck %s < %t.out && FileCheck %s < %t.out + +#include <assert.h> +#include <wchar.h> + +#include <sanitizer/msan_interface.h> + +int main() { + const wchar_t *s = L"abc"; + assert(wcslen(s) == 3); + + wchar_t s2[5]; + assert(wcsncpy(s2, s, 3) == s2); + assert(__msan_test_shadow(&s2, 5 * sizeof(wchar_t)) == 3 * sizeof(wchar_t)); + assert(wcsncpy(s2, s, 5) == s2); + assert(__msan_test_shadow(&s2, 5 * sizeof(wchar_t)) == -1); + + wchar_t s3[5]; + assert(wcsncpy(s3, s, 2) == s3); + assert(__msan_test_shadow(&s3, 5 * sizeof(wchar_t)) == 2 * sizeof(wchar_t)); + + __msan_allocated_memory(&s2[1], sizeof(wchar_t)); + wchar_t s4[5]; + assert(wcsncpy(s4, s2, 3) == s4); + __msan_check_mem_is_initialized(&s4, sizeof(s4)); +} +// CHECK: Uninitialized bytes in __msan_check_mem_is_initialized +// CHECK: WARNING: MemorySanitizer: use-of-uninitialized-value +// CHECK: in main {{.*}}wcsncpy.cc:26 + +// CHECK: Uninitialized value was stored to memory at +// CHECK: in {{[^\s]*}}wcsncpy +// CHECK: in main {{.*}}wcsncpy.cc:25 + +// CHECK: Memory was marked as uninitialized +// CHECK: in __msan_allocated_memory +// CHECK: in main {{.*}}wcsncpy.cc:23 diff --git a/test/profile/Linux/instrprof-dir.c b/test/profile/Linux/instrprof-dir.c new file mode 100644 index 000000000000..9d9af6daf513 --- /dev/null +++ b/test/profile/Linux/instrprof-dir.c @@ -0,0 +1,13 @@ +// RUN: %clang_pgogen -o %t %s +// RUN: env LLVM_PROFILE_FILE="%t.d/%m.profraw" +// RUN: rm -fr %t.d +// RUN: %run %t %t.d + +#include <errno.h> +#include <unistd.h> + +int main(int argc, char **argv) { + if (access(argv[1], F_OK) == 0) + return 1; // %t.d should not exist yet. + return !(errno == ENOENT); +} diff --git a/test/sanitizer_common/TestCases/Linux/deepbind.cc b/test/sanitizer_common/TestCases/Linux/deepbind.cc new file mode 100644 index 000000000000..fc810ad039f4 --- /dev/null +++ b/test/sanitizer_common/TestCases/Linux/deepbind.cc @@ -0,0 +1,12 @@ +// RUN: %clangxx %s -o %t && %run not %t 1 2>&1 | FileCheck %s +// UNSUPPORTED: lsan, android + +#include <dlfcn.h> +#include <stdio.h> +#include <string> + +int main (int argc, char *argv[]) { + // CHECK: You are trying to dlopen a <arbitrary path> shared library with RTLD_DEEPBIND flag + void *lib = dlopen("<arbitrary path>", RTLD_NOW | RTLD_DEEPBIND); + return 0; +} diff --git a/test/sanitizer_common/TestCases/Linux/iconv_test.c b/test/sanitizer_common/TestCases/Linux/iconv_test.c new file mode 100644 index 000000000000..08da34d89a3c --- /dev/null +++ b/test/sanitizer_common/TestCases/Linux/iconv_test.c @@ -0,0 +1,28 @@ +// RUN: %clang %s -o %t && %run %t +// Verify that even if iconv returned -1 +// we still treat the initialized part of outbuf as properly initialized. +#include <iconv.h> +#include <assert.h> +#include <stdio.h> + +int main() { + iconv_t cd = iconv_open("UTF-8", "no"); + assert(cd != (iconv_t)-1); + char in[11] = {0x7e, 0x7e, 0x5f, 0x53, 0x55, 0x3e, + 0x99, 0x3c, 0x7e, 0x7e, 0x7e}; + fprintf(stderr, "cd: %p\n", (void*)cd); + char out[100]; + char *inbuf = &in[0]; + size_t inbytesleft = 11; + char *outbuf = &out[0]; + size_t outbytesleft = 100; + int ret = iconv(cd, &inbuf, &inbytesleft, &outbuf, &outbytesleft); + assert(ret == -1); + assert(outbuf - &out[0] == 10); + for (int i = 0; i < 10; i++) { + if (out[i] == 0x77) return 1; + fprintf(stderr, "OUT%d 0x%x -- OK\n", i, (unsigned char)out[i]); + } + iconv_close(cd); +} + diff --git a/test/sanitizer_common/TestCases/Linux/sem_init_glibc.cc b/test/sanitizer_common/TestCases/Linux/sem_init_glibc.cc index ff1ddc432d4e..92557b7592cb 100644 --- a/test/sanitizer_common/TestCases/Linux/sem_init_glibc.cc +++ b/test/sanitizer_common/TestCases/Linux/sem_init_glibc.cc @@ -1,7 +1,7 @@ // RUN: %clangxx -O0 -g %s -lutil -o %t && %run %t // This test depends on the glibc layout of struct sem_t and checks that we // don't leave sem_t::private uninitialized. -// UNSUPPORTED: android +// UNSUPPORTED: android, lsan-x86 #include <features.h> #include <assert.h> #include <semaphore.h> diff --git a/test/sanitizer_common/TestCases/Linux/sysconf_interceptor_bypass_test.cc b/test/sanitizer_common/TestCases/Linux/sysconf_interceptor_bypass_test.cc new file mode 100644 index 000000000000..eb4deace060c --- /dev/null +++ b/test/sanitizer_common/TestCases/Linux/sysconf_interceptor_bypass_test.cc @@ -0,0 +1,25 @@ +// RUN: %clangxx -O2 %s -o %t && %run %t 2>&1 | FileCheck %s + +#include <stdio.h> + +// getauxval() used instead of sysconf() in GetPageSize() is defined starting +// glbc version 2.16. +#if defined(__GLIBC_PREREQ) && __GLIBC_PREREQ(2, 16) +extern "C" long sysconf(int name) { + fprintf(stderr, "sysconf wrapper called\n"); + return 0; +} +#endif // defined(__GLIBC_PREREQ) && __GLIBC_PREREQ(2, 16) + +int main() { + // All we need to check is that the sysconf() interceptor defined above was + // not called. Should it get called, it will crash right there, any + // instrumented code executed before sanitizer init is finished will crash + // accessing non-initialized sanitizer internals. Even if it will not crash + // in some configuration, it should never be called anyway. + fprintf(stderr, "Passed\n"); + // CHECK-NOT: sysconf wrapper called + // CHECK: Passed + // CHECK-NOT: sysconf wrapper called + return 0; +} diff --git a/test/sanitizer_common/TestCases/Linux/fpe.cc b/test/sanitizer_common/TestCases/Posix/fpe.cc index 9a6f808a5cd7..9a6f808a5cd7 100644 --- a/test/sanitizer_common/TestCases/Linux/fpe.cc +++ b/test/sanitizer_common/TestCases/Posix/fpe.cc diff --git a/test/sanitizer_common/TestCases/Posix/sanitizer_set_death_callback_test.cc b/test/sanitizer_common/TestCases/Posix/sanitizer_set_death_callback_test.cc index fdb68c0cdea5..12a56c73e049 100644 --- a/test/sanitizer_common/TestCases/Posix/sanitizer_set_death_callback_test.cc +++ b/test/sanitizer_common/TestCases/Posix/sanitizer_set_death_callback_test.cc @@ -2,6 +2,13 @@ // REQUIRES: stable-runtime +// For standalone LSan on x86 we have a problem: compiler spills the address +// of allocated at line 42 memory thus memory block allocated in Leak() function +// ends up to be classified as reachable despite the fact we zero out 'sink' at +// the last line of main function. The problem doesn't reproduce with ASan because +// quarantine prohibits memory block reuse for different allocations. +// XFAIL: lsan-x86 + #include <sanitizer/common_interface_defs.h> #include <stdio.h> diff --git a/test/sanitizer_common/TestCases/Linux/weak_hook_test.cc b/test/sanitizer_common/TestCases/Posix/weak_hook_test.cc index d5667649bb9c..d5667649bb9c 100644 --- a/test/sanitizer_common/TestCases/Linux/weak_hook_test.cc +++ b/test/sanitizer_common/TestCases/Posix/weak_hook_test.cc diff --git a/test/sanitizer_common/TestCases/corelimit.cc b/test/sanitizer_common/TestCases/corelimit.cc index 8f54940d04cc..0a86e5b7b7fe 100644 --- a/test/sanitizer_common/TestCases/corelimit.cc +++ b/test/sanitizer_common/TestCases/corelimit.cc @@ -1,5 +1,5 @@ // RUN: %clangxx -O0 %s -o %t && %run %t -// XFAIL: lsan +// UNSUPPORTED: lsan #include <assert.h> #include <sys/time.h> diff --git a/test/sanitizer_common/TestCases/sanitizer_coverage_trace_pc_guard-dso.cc b/test/sanitizer_common/TestCases/sanitizer_coverage_trace_pc_guard-dso.cc index cf16ec383312..68459b19a159 100644 --- a/test/sanitizer_common/TestCases/sanitizer_coverage_trace_pc_guard-dso.cc +++ b/test/sanitizer_common/TestCases/sanitizer_coverage_trace_pc_guard-dso.cc @@ -1,7 +1,7 @@ // Tests trace pc guard coverage collection. // // REQUIRES: has_sancovcc,stable-runtime -// XFAIL: tsan,darwin,powerpc64,s390x +// XFAIL: tsan,darwin,powerpc64,s390x,mips // // RUN: DIR=%t_workdir // RUN: CLANG_ARGS="-O0 -fsanitize-coverage=trace-pc-guard" diff --git a/test/sanitizer_common/TestCases/sanitizer_coverage_trace_pc_guard-init.cc b/test/sanitizer_common/TestCases/sanitizer_coverage_trace_pc_guard-init.cc new file mode 100644 index 000000000000..b92a513b6d65 --- /dev/null +++ b/test/sanitizer_common/TestCases/sanitizer_coverage_trace_pc_guard-init.cc @@ -0,0 +1,73 @@ +// Tests trace pc guard coverage collection. +// +// REQUIRES: has_sancovcc,stable-runtime,x86_64-linux +// XFAIL: tsan +// +// RUN: DIR=%t_workdir +// RUN: CLANG_ARGS="-O0 -fsanitize-coverage=trace-pc-guard" +// RUN: rm -rf $DIR +// RUN: mkdir -p $DIR +// RUN: cd $DIR +// RUN: %clangxx -DSHARED1 $CLANG_ARGS -shared %s -o %t_1.so -fPIC +// RUN: %clangxx -DSTATIC1 $CLANG_ARGS %s -c -o %t_2.o +// RUN: %clangxx -DMAIN $CLANG_ARGS %s -o %t %t_1.so %t_2.o +// RUN: %env_tool_opts=coverage=1 %t 2>&1 | FileCheck %s +// RUN: rm -rf $DIR + +#include <stdio.h> +#include <stdint.h> +#include <stdlib.h> + +extern "C" { + int bar(); + int baz(); +} + +#ifdef MAIN + +extern "C" void __sanitizer_cov_trace_pc_guard_init(uint32_t *start, uint32_t *stop) { + fprintf(stderr, "__sanitizer_cov_trace_pc_guard_init\n"); +} + +extern "C" void __sanitizer_cov_trace_pc_guard(uint32_t *guard) { } + + +int foo() { + fprintf(stderr, "foo\n"); + return 1; +} + +int main() { + fprintf(stderr, "main\n"); + foo(); + bar(); + baz(); +} + +#endif // MAIN + +extern "C" { + +#ifdef SHARED1 +int bar() { + fprintf(stderr, "bar\n"); + return 1; +} +#endif + +#ifdef STATIC1 +int baz() { + fprintf(stderr, "baz\n"); + return 1; +} +#endif + +} // extern "C" + +// Init is called once per DSO. +// CHECK: __sanitizer_cov_trace_pc_guard_init +// CHECK-NEXT: __sanitizer_cov_trace_pc_guard_init +// CHECK-NEXT: main +// CHECK-NEXT: foo +// CHECK-NEXT: bar +// CHECK-NEXT: baz diff --git a/test/sanitizer_common/TestCases/sanitizer_coverage_trace_pc_guard.cc b/test/sanitizer_common/TestCases/sanitizer_coverage_trace_pc_guard.cc index 1b787f143d46..9dcbe6fa0387 100644 --- a/test/sanitizer_common/TestCases/sanitizer_coverage_trace_pc_guard.cc +++ b/test/sanitizer_common/TestCases/sanitizer_coverage_trace_pc_guard.cc @@ -1,7 +1,8 @@ // Tests trace pc guard coverage collection. // // REQUIRES: has_sancovcc,stable-runtime -// XFAIL: tsan,darwin,powerpc64,s390x +// UNSUPPORTED: i386-darwin +// XFAIL: tsan,powerpc64,s390x,mips // // RUN: DIR=%t_workdir // RUN: rm -rf $DIR @@ -35,7 +36,7 @@ int main() { // CHECK-NEXT: foo // CHECK-NEXT: SanitizerCoverage: ./sanitizer_coverage_trace_pc_guard.{{.*}}.sancov 2 PCs written // -// CHECK-SANCOV: sanitizer_coverage_trace_pc_guard.cc:22 foo -// CHECK-SANCOV-NEXT: sanitizer_coverage_trace_pc_guard.cc:27 main +// CHECK-SANCOV: sanitizer_coverage_trace_pc_guard.cc:23 foo +// CHECK-SANCOV-NEXT: sanitizer_coverage_trace_pc_guard.cc:28 main // // CHECK-NOCOV-NOT: SanitizerCoverage diff --git a/test/sanitizer_common/TestCases/symbolize_pc.cc b/test/sanitizer_common/TestCases/symbolize_pc.cc index 0cc81e1f7dcf..68a6733f4464 100644 --- a/test/sanitizer_common/TestCases/symbolize_pc.cc +++ b/test/sanitizer_common/TestCases/symbolize_pc.cc @@ -1,6 +1,5 @@ // RUN: %clangxx -O0 %s -o %t // RUN: %env_tool_opts=strip_path_prefix=/TestCases/ %run %t 2>&1 | FileCheck %s -// UNSUPPORTED: i386-darwin // // Tests __sanitizer_symbolize_pc. #include <stdio.h> diff --git a/test/sanitizer_common/TestCases/symbolize_stack.cc b/test/sanitizer_common/TestCases/symbolize_stack.cc new file mode 100644 index 000000000000..e50cdb0632b3 --- /dev/null +++ b/test/sanitizer_common/TestCases/symbolize_stack.cc @@ -0,0 +1,28 @@ +// RUN: %clangxx -O0 %s -o %t && %run %t 2>&1 | FileCheck %s + +// Test that symbolizer does not crash on frame with large function name. + +#include <sanitizer/common_interface_defs.h> +#include <vector> + +template <int N> struct A { + template <class T> void RecursiveTemplateFunction(const T &t); +}; + +template <int N> +template <class T> +__attribute__((noinline)) void A<N>::RecursiveTemplateFunction(const T &) { + std::vector<T> t; + return A<N - 1>().RecursiveTemplateFunction(t); +} + +template <> +template <class T> +__attribute__((noinline)) void A<0>::RecursiveTemplateFunction(const T &) { + __sanitizer_print_stack_trace(); +} + +int main() { + // CHECK: {{vector<.*vector<.*vector<.*vector<.*vector<}} + A<10>().RecursiveTemplateFunction(0); +} diff --git a/test/sanitizer_common/lit.common.cfg b/test/sanitizer_common/lit.common.cfg index b32fb1ba9685..2926edb127aa 100644 --- a/test/sanitizer_common/lit.common.cfg +++ b/test/sanitizer_common/lit.common.cfg @@ -26,6 +26,9 @@ config.available_features.add(config.tool_name) if config.target_arch not in ['arm', 'armhf', 'aarch64']: config.available_features.add('stable-runtime') +if config.host_os == 'Linux' and config.target_arch == 'i386' and config.tool_name == "lsan": + config.available_features.add("lsan-x86") + if config.host_os == 'Darwin': # On Darwin, we default to `abort_on_error=1`, which would make tests run # much slower. Let's override this and run lit tests with 'abort_on_error=0'. diff --git a/test/sanitizer_common/print_address.h b/test/sanitizer_common/print_address.h index 018db61800d3..db2e8341a9d2 100644 --- a/test/sanitizer_common/print_address.h +++ b/test/sanitizer_common/print_address.h @@ -11,6 +11,8 @@ void print_address(const char *str, int n, ...) { // On FreeBSD, the %p conversion specifier works as 0x%x and thus does not // match to the format used in the diagnotic message. fprintf(stderr, "0x%012lx ", (unsigned long) p); +#elif defined(__i386__) || defined(__arm__) + fprintf(stderr, "0x%08lx ", (unsigned long) p); #elif defined(__mips64) fprintf(stderr, "0x%010lx ", (unsigned long) p); #endif diff --git a/test/scudo/alignment.cpp b/test/scudo/alignment.cpp index a6eca87a8224..125ad8cbe76f 100644 --- a/test/scudo/alignment.cpp +++ b/test/scudo/alignment.cpp @@ -14,8 +14,7 @@ int main(int argc, char **argv) assert(argc == 2); if (!strcmp(argv[1], "pointers")) { void *p = malloc(1U << 16); - if (!p) - return 1; + assert(p); free(reinterpret_cast<void *>(reinterpret_cast<uintptr_t>(p) | 1)); } return 0; diff --git a/test/scudo/double-free.cpp b/test/scudo/double-free.cpp index 75919f0c459c..ddc520505ed1 100644 --- a/test/scudo/double-free.cpp +++ b/test/scudo/double-free.cpp @@ -16,30 +16,26 @@ int main(int argc, char **argv) assert(argc == 2); if (!strcmp(argv[1], "malloc")) { void *p = malloc(sizeof(int)); - if (!p) - return 1; + assert(p); free(p); free(p); } if (!strcmp(argv[1], "new")) { int *p = new int; - if (!p) - return 1; + assert(p); delete p; delete p; } if (!strcmp(argv[1], "newarray")) { int *p = new int[8]; - if (!p) - return 1; + assert(p); delete[] p; delete[] p; } if (!strcmp(argv[1], "memalign")) { void *p = nullptr; posix_memalign(&p, 0x100, sizeof(int)); - if (!p) - return 1; + assert(p); free(p); free(p); } diff --git a/test/scudo/interface.cpp b/test/scudo/interface.cpp index f9353066efa3..e9575adf3100 100644 --- a/test/scudo/interface.cpp +++ b/test/scudo/interface.cpp @@ -1,9 +1,13 @@ -// RUN: %clang_scudo %s -o %t -// RUN: %run %t 2>&1 +// RUN: %clang_scudo %s -lstdc++ -o %t +// RUN: %run %t ownership 2>&1 +// RUN: %run %t ownership-and-size 2>&1 +// RUN: %run %t heap-size 2>&1 // Tests that the sanitizer interface functions behave appropriately. #include <stdlib.h> +#include <assert.h> +#include <string.h> #include <vector> @@ -11,18 +15,33 @@ int main(int argc, char **argv) { - void *p; - std::vector<ssize_t> sizes{1, 8, 16, 32, 1024, 32768, - 1 << 16, 1 << 17, 1 << 20, 1 << 24}; - for (size_t size : sizes) { - p = malloc(size); - if (!p) - return 1; - if (!__sanitizer_get_ownership(p)) - return 1; - if (__sanitizer_get_allocated_size(p) < size) - return 1; - free(p); + assert(argc == 2); + + if (!strcmp(argv[1], "ownership")) { + // Ensures that __sanitizer_get_ownership can be called before any other + // allocator function, and that it behaves properly on a pointer not owned + // by us. + assert(!__sanitizer_get_ownership(argv)); + } + if (!strcmp(argv[1], "ownership-and-size")) { + // Tests that __sanitizer_get_ownership and __sanitizer_get_allocated_size + // behave properly on chunks allocated by the Primary and Secondary. + void *p; + std::vector<ssize_t> sizes{1, 8, 16, 32, 1024, 32768, + 1 << 16, 1 << 17, 1 << 20, 1 << 24}; + for (size_t size : sizes) { + p = malloc(size); + assert(p); + assert(__sanitizer_get_ownership(p)); + assert(__sanitizer_get_allocated_size(p) >= size); + free(p); + } } + if (!strcmp(argv[1], "heap-size")) { + // Ensures that __sanitizer_get_heap_size can be called before any other + // allocator function. + assert(__sanitizer_get_heap_size() >= 0); + } + return 0; } diff --git a/test/scudo/lit.cfg b/test/scudo/lit.cfg index 4eff2ce2191d..adf16f57bbbd 100644 --- a/test/scudo/lit.cfg +++ b/test/scudo/lit.cfg @@ -19,14 +19,14 @@ config.suffixes = ['.c', '.cc', '.cpp'] # C flags. c_flags = ([config.target_cflags] + ["-std=c++11", - "-lstdc++", - "-lrt", - "-latomic", - "-ldl", "-pthread", "-fPIE", "-pie", - "-O0"]) + "-O0", + "-UNDEBUG", + "-ldl", + "-lrt", + "-Wl,--gc-sections"]) def build_invocation(compile_flags): return " " + " ".join([config.clang] + compile_flags) + " " diff --git a/test/scudo/malloc.cpp b/test/scudo/malloc.cpp index cafc744a20c2..50e52590f565 100644 --- a/test/scudo/malloc.cpp +++ b/test/scudo/malloc.cpp @@ -1,10 +1,11 @@ -// RUN: %clang_scudo %s -o %t +// RUN: %clang_scudo %s -lstdc++ -o %t // RUN: %run %t 2>&1 // Tests that a regular workflow of allocation, memory fill and free works as // intended. Tests various sizes serviced by the primary and secondary // allocators. +#include <assert.h> #include <stdlib.h> #include <string.h> @@ -18,8 +19,7 @@ int main(int argc, char **argv) std::vector<int> offsets{1, 0, -1, -7, -8, -15, -16, -31, -32}; p = malloc(0); - if (!p) - return 1; + assert(p); free(p); for (ssize_t size : sizes) { for (int offset: offsets) { @@ -27,8 +27,7 @@ int main(int argc, char **argv) if (actual_size <= 0) continue; p = malloc(actual_size); - if (!p) - return 1; + assert(p); memset(p, 0xff, actual_size); free(p); } diff --git a/test/scudo/memalign.cpp b/test/scudo/memalign.cpp index b407ec574349..c263da75e616 100644 --- a/test/scudo/memalign.cpp +++ b/test/scudo/memalign.cpp @@ -29,12 +29,10 @@ int main(int argc, char **argv) if (!strcmp(argv[1], "valid")) { posix_memalign(&p, alignment, size); - if (!p) - return 1; + assert(p); free(p); p = aligned_alloc(alignment, size); - if (!p) - return 1; + assert(p); free(p); // Tests various combinations of alignment and sizes for (int i = (sizeof(void *) == 4) ? 3 : 4; i < 19; i++) { @@ -43,8 +41,7 @@ int main(int argc, char **argv) size = 0x800 * j; for (int k = 0; k < 3; k++) { p = memalign(alignment, size - (2 * sizeof(void *) * k)); - if (!p) - return 1; + assert(p); free(p); } } @@ -54,8 +51,7 @@ int main(int argc, char **argv) for (int i = 19; i <= 24; i++) { for (int k = 0; k < 3; k++) { p = memalign(alignment, 0x1000 - (2 * sizeof(void *) * k)); - if (!p) - return 1; + assert(p); free(p); } } diff --git a/test/scudo/mismatch.cpp b/test/scudo/mismatch.cpp index 54cdafc86ee6..15dce83ce18a 100644 --- a/test/scudo/mismatch.cpp +++ b/test/scudo/mismatch.cpp @@ -10,29 +10,26 @@ // caught when the related option is set. #include <assert.h> +#include <malloc.h> #include <stdlib.h> #include <string.h> -#include <malloc.h> int main(int argc, char **argv) { assert(argc == 2); if (!strcmp(argv[1], "mallocdel")) { int *p = (int *)malloc(16); - if (!p) - return 1; + assert(p); delete p; } if (!strcmp(argv[1], "newfree")) { int *p = new int; - if (!p) - return 1; + assert(p); free((void *)p); } if (!strcmp(argv[1], "memaligndel")) { int *p = (int *)memalign(16, 16); - if (!p) - return 1; + assert(p); delete p; } return 0; diff --git a/test/scudo/options.cpp b/test/scudo/options.cpp index bccf7c8fbd2b..f4afe7d79bfc 100644 --- a/test/scudo/options.cpp +++ b/test/scudo/options.cpp @@ -6,8 +6,9 @@ // Tests that the options can be passed using getScudoDefaultOptions, and that // the environment ones take precedence over them. -#include <stdlib.h> +#include <assert.h> #include <malloc.h> +#include <stdlib.h> extern "C" const char* __scudo_default_options() { return "DeallocationTypeMismatch=0"; // Defaults to true in scudo_flags.inc. @@ -16,8 +17,7 @@ extern "C" const char* __scudo_default_options() { int main(int argc, char **argv) { int *p = (int *)malloc(16); - if (!p) - return 1; + assert(p); delete p; return 0; } diff --git a/test/scudo/overflow.cpp b/test/scudo/overflow.cpp index c93a544ea0a0..d12824578524 100644 --- a/test/scudo/overflow.cpp +++ b/test/scudo/overflow.cpp @@ -10,20 +10,20 @@ int main(int argc, char **argv) { - assert(argc == 2); ssize_t offset = sizeof(void *) == 8 ? 8 : 0; + + assert(argc == 2); + if (!strcmp(argv[1], "malloc")) { // Simulate a header corruption of an allocated chunk (1-bit) void *p = malloc(1U << 4); - if (!p) - return 1; + assert(p); ((char *)p)[-(offset + 1)] ^= 1; free(p); } if (!strcmp(argv[1], "quarantine")) { void *p = malloc(1U << 4); - if (!p) - return 1; + assert(p); free(p); // Simulate a header corruption of a quarantined chunk ((char *)p)[-(offset + 2)] ^= 1; diff --git a/test/scudo/preinit.cpp b/test/scudo/preinit.cpp index 34f61c9ddfbb..b8c01a401dd7 100644 --- a/test/scudo/preinit.cpp +++ b/test/scudo/preinit.cpp @@ -4,6 +4,7 @@ // Verifies that calling malloc in a preinit_array function succeeds, and that // the resulting pointer can be freed at program termination. +#include <assert.h> #include <stdlib.h> #include <string.h> @@ -23,8 +24,7 @@ void __fini(void) { int main(int argc, char **argv) { void *p = malloc(1); - if (!p) - return 1; + assert(p); free(p); return 0; @@ -34,4 +34,3 @@ __attribute__((section(".preinit_array"), used)) void (*__local_preinit)(void) = __init; __attribute__((section(".fini_array"), used)) void (*__local_fini)(void) = __fini; - diff --git a/test/scudo/quarantine.cpp b/test/scudo/quarantine.cpp index 4ce0197acdec..39ce1bd91d31 100644 --- a/test/scudo/quarantine.cpp +++ b/test/scudo/quarantine.cpp @@ -1,43 +1,57 @@ // RUN: %clang_scudo %s -o %t -// RUN: SCUDO_OPTIONS=QuarantineSizeMb=1 %run %t 2>&1 +// RUN: SCUDO_OPTIONS="QuarantineSizeMb=0:ThreadLocalQuarantineSizeKb=0" %run %t zeroquarantine 2>&1 +// RUN: SCUDO_OPTIONS=QuarantineSizeMb=1 %run %t smallquarantine 2>&1 // Tests that the quarantine prevents a chunk from being reused right away. // Also tests that a chunk will eventually become available again for // allocation when the recycling criteria has been met. +#include <assert.h> #include <malloc.h> #include <stdlib.h> #include <string.h> +#include <sanitizer/allocator_interface.h> + int main(int argc, char **argv) { void *p, *old_p; - size_t size = 1U << 16; - - // The delayed freelist will prevent a chunk from being available right away - p = malloc(size); - if (!p) - return 1; - old_p = p; - free(p); - p = malloc(size); - if (!p) - return 1; - if (old_p == p) - return 1; - free(p); - - // Eventually the chunk should become available again - bool found = false; - for (int i = 0; i < 0x100 && found == false; i++) { + size_t allocated_bytes, size = 1U << 16; + + assert(argc == 2); + + if (!strcmp(argv[1], "zeroquarantine")) { + // Verifies that a chunk is deallocated right away when the local and + // global quarantine sizes are 0. + allocated_bytes = __sanitizer_get_current_allocated_bytes(); p = malloc(size); - if (!p) - return 1; - found = (p == old_p); + assert(p); + assert(__sanitizer_get_current_allocated_bytes() > allocated_bytes); free(p); + assert(__sanitizer_get_current_allocated_bytes() == allocated_bytes); + } + if (!strcmp(argv[1], "smallquarantine")) { + // The delayed freelist will prevent a chunk from being available right + // away. + p = malloc(size); + assert(p); + old_p = p; + free(p); + p = malloc(size); + assert(p); + assert(old_p != p); + free(p); + + // Eventually the chunk should become available again. + bool found = false; + for (int i = 0; i < 0x100 && found == false; i++) { + p = malloc(size); + assert(p); + found = (p == old_p); + free(p); + } + assert(found == true); } - if (found == false) - return 1; return 0; } diff --git a/test/scudo/random_shuffle.cpp b/test/scudo/random_shuffle.cpp index fce522d9481c..41e67ded67e9 100644 --- a/test/scudo/random_shuffle.cpp +++ b/test/scudo/random_shuffle.cpp @@ -7,7 +7,7 @@ // RUN: %run %t 10000 > %T/random_shuffle_tmp_dir/out2 // RUN: not diff %T/random_shuffle_tmp_dir/out? // RUN: rm -rf %T/random_shuffle_tmp_dir -// UNSUPPORTED: i386-linux,i686-linux,arm-linux,armhf-linux +// UNSUPPORTED: i386-linux,i686-linux,arm-linux,armhf-linux,aarch64-linux // Tests that the allocator shuffles the chunks before returning to the user. diff --git a/test/scudo/realloc.cpp b/test/scudo/realloc.cpp index cc44595001f4..da377205f10f 100644 --- a/test/scudo/realloc.cpp +++ b/test/scudo/realloc.cpp @@ -1,4 +1,4 @@ -// RUN: %clang_scudo %s -o %t +// RUN: %clang_scudo %s -lstdc++ -o %t // RUN: %run %t pointers 2>&1 // RUN: %run %t contents 2>&1 // RUN: not %run %t memalign 2>&1 | FileCheck %s @@ -23,48 +23,41 @@ int main(int argc, char **argv) std::vector<size_t> sizes{1, 16, 1024, 32768, 1 << 16, 1 << 17, 1 << 20}; assert(argc == 2); + for (size_t size : sizes) { if (!strcmp(argv[1], "pointers")) { old_p = p = realloc(nullptr, size); - if (!p) - return 1; + assert(p); size = malloc_usable_size(p); // Our realloc implementation will return the same pointer if the size // requested is lower than or equal to the usable size of the associated // chunk. p = realloc(p, size - 1); - if (p != old_p) - return 1; + assert(p == old_p); p = realloc(p, size); - if (p != old_p) - return 1; + assert(p == old_p); // And a new one if the size is greater. p = realloc(p, size + 1); - if (p == old_p) - return 1; + assert(p != old_p); // A size of 0 will free the chunk and return nullptr. p = realloc(p, 0); - if (p) - return 1; + assert(!p); old_p = nullptr; } if (!strcmp(argv[1], "contents")) { p = realloc(nullptr, size); - if (!p) - return 1; + assert(p); for (int i = 0; i < size; i++) reinterpret_cast<char *>(p)[i] = 'A'; p = realloc(p, size + 1); // The contents of the reallocated chunk must match the original one. for (int i = 0; i < size; i++) - if (reinterpret_cast<char *>(p)[i] != 'A') - return 1; + assert(reinterpret_cast<char *>(p)[i] == 'A'); } if (!strcmp(argv[1], "memalign")) { // A chunk coming from memalign cannot be reallocated. p = memalign(16, size); - if (!p) - return 1; + assert(p); p = realloc(p, size); free(p); } diff --git a/test/scudo/secondary.cpp b/test/scudo/secondary.cpp index 7a634a81eb03..dc14f8ca846e 100644 --- a/test/scudo/secondary.cpp +++ b/test/scudo/secondary.cpp @@ -5,12 +5,12 @@ // Test that we hit a guard page when writing past the end of a chunk // allocated by the Secondary allocator, or writing too far in front of it. +#include <assert.h> #include <malloc.h> +#include <signal.h> #include <stdlib.h> #include <string.h> #include <unistd.h> -#include <signal.h> -#include <assert.h> void handler(int signo, siginfo_t *info, void *uctx) { if (info->si_code == SEGV_ACCERR) { @@ -33,8 +33,7 @@ int main(int argc, char **argv) a.sa_flags = SA_SIGINFO; char *p = (char *)malloc(size); - if (!p) - return 1; + assert(p); memset(p, 'A', size); // This should not trigger anything. // Set up the SIGSEGV handler now, as the rest should trigger an AV. sigaction(SIGSEGV, &a, nullptr); diff --git a/test/scudo/sized-delete.cpp b/test/scudo/sized-delete.cpp index 5b1bf5fd4cbe..e467f556520e 100644 --- a/test/scudo/sized-delete.cpp +++ b/test/scudo/sized-delete.cpp @@ -10,11 +10,12 @@ // option is passed and the sizes do not match between allocation and // deallocation functions. -#include <new> #include <assert.h> #include <stdlib.h> #include <string.h> +#include <new> + int main(int argc, char **argv) { assert(argc == 2); diff --git a/test/scudo/sizes.cpp b/test/scudo/sizes.cpp index 7190cb64f337..981b859a8757 100644 --- a/test/scudo/sizes.cpp +++ b/test/scudo/sizes.cpp @@ -23,35 +23,28 @@ int main(int argc, char **argv) // Currently the maximum size the allocator can allocate is 1ULL<<40 bytes. size_t size = std::numeric_limits<size_t>::max(); void *p = malloc(size); - if (p) - return 1; + assert(!p); size = (1ULL << 40) - 16; p = malloc(size); - if (p) - return 1; + assert(!p); } if (!strcmp(argv[1], "calloc")) { // Trigger an overflow in calloc. size_t size = std::numeric_limits<size_t>::max(); void *p = calloc((size / 0x1000) + 1, 0x1000); - if (p) - return 1; + assert(!p); } if (!strcmp(argv[1], "usable")) { // Playing with the actual usable size of a chunk. void *p = malloc(1007); - if (!p) - return 1; + assert(p); size_t size = malloc_usable_size(p); - if (size < 1007) - return 1; + assert(size >= 1007); memset(p, 'A', size); p = realloc(p, 2014); - if (!p) - return 1; + assert(p); size = malloc_usable_size(p); - if (size < 2014) - return 1; + assert(size >= 2014); memset(p, 'B', size); free(p); } diff --git a/test/scudo/threads.cpp b/test/scudo/threads.cpp new file mode 100644 index 000000000000..d9f4a86c1acf --- /dev/null +++ b/test/scudo/threads.cpp @@ -0,0 +1,65 @@ +// RUN: %clang_scudo %s -o %t +// RUN: SCUDO_OPTIONS="QuarantineSizeMb=0:ThreadLocalQuarantineSizeKb=0" %run %t 5 1000000 2>&1 +// RUN: SCUDO_OPTIONS="QuarantineSizeMb=1:ThreadLocalQuarantineSizeKb=64" %run %t 5 1000000 2>&1 + +// Tests parallel allocations and deallocations of memory chunks from a number +// of concurrent threads, with and without quarantine. +// This test passes if everything executes properly without crashing. + +#include <assert.h> +#include <pthread.h> +#include <stdlib.h> +#include <stdio.h> + +#include <sanitizer/allocator_interface.h> + +int num_threads; +int total_num_alloc; +const int kMaxNumThreads = 500; +pthread_t tid[kMaxNumThreads]; + +pthread_cond_t cond = PTHREAD_COND_INITIALIZER; +pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; +bool go = false; + +void *thread_fun(void *arg) { + pthread_mutex_lock(&mutex); + while (!go) pthread_cond_wait(&cond, &mutex); + pthread_mutex_unlock(&mutex); + for (int i = 0; i < total_num_alloc / num_threads; i++) { + void *p = malloc(10); + __asm__ __volatile__("" : : "r"(p) : "memory"); + free(p); + } + return 0; +} + +int main(int argc, char** argv) { + assert(argc == 3); + num_threads = atoi(argv[1]); + assert(num_threads > 0); + assert(num_threads <= kMaxNumThreads); + total_num_alloc = atoi(argv[2]); + assert(total_num_alloc > 0); + + printf("%d threads, %d allocations in each\n", num_threads, + total_num_alloc / num_threads); + fprintf(stderr, "Heap size before: %zd\n", __sanitizer_get_heap_size()); + fprintf(stderr, "Allocated bytes before: %zd\n", + __sanitizer_get_current_allocated_bytes()); + + for (int i = 0; i < num_threads; i++) + pthread_create(&tid[i], 0, thread_fun, 0); + pthread_mutex_lock(&mutex); + go = true; + pthread_cond_broadcast(&cond); + pthread_mutex_unlock(&mutex); + for (int i = 0; i < num_threads; i++) + pthread_join(tid[i], 0); + + fprintf(stderr, "Heap size after: %zd\n", __sanitizer_get_heap_size()); + fprintf(stderr, "Allocated bytes after: %zd\n", + __sanitizer_get_current_allocated_bytes()); + + return 0; +} diff --git a/test/tsan/Darwin/debug_external.cc b/test/tsan/Darwin/debug_external.cc new file mode 100644 index 000000000000..217690fc5dd0 --- /dev/null +++ b/test/tsan/Darwin/debug_external.cc @@ -0,0 +1,66 @@ +// RUN: %clangxx_tsan -O1 %s -o %t +// RUN: %deflake %run %t 2>&1 | FileCheck %s + +#include <pthread.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include "../test.h" + +extern "C" { +void __tsan_on_report(void *report); +int __tsan_get_report_loc(void *report, unsigned long idx, const char **type, + void **addr, void **start, + unsigned long *size, int *tid, int *fd, + int *suppressable, void **trace, + unsigned long trace_size); +int __tsan_get_report_loc_object_type(void *report, unsigned long idx, + const char **object_type); +void *__tsan_external_register_tag(const char *object_type); +void __tsan_external_assign_tag(void *addr, void *tag); +} + +void *Thread(void *arg) { + barrier_wait(&barrier); + *((long *)arg) = 42; + return NULL; +} + +int main() { + barrier_init(&barrier, 2); + void *tag = __tsan_external_register_tag("MyObject"); + long *obj = (long *)malloc(sizeof(long)); + fprintf(stderr, "obj = %p\n", obj); + // CHECK: obj = [[ADDR:0x[0-9a-f]+]] + __tsan_external_assign_tag(obj, tag); + + pthread_t t; + pthread_create(&t, 0, Thread, obj); + *obj = 41; + barrier_wait(&barrier); + pthread_join(t, 0); + fprintf(stderr, "Done.\n"); + return 0; +} + +void __tsan_on_report(void *report) { + const char *type; + void *addr; + void *start; + unsigned long size; + int tid, fd, suppressable; + void *trace[16] = {0}; + __tsan_get_report_loc(report, 0, &type, &addr, &start, &size, &tid, &fd, + &suppressable, trace, 16); + fprintf(stderr, "type = %s, start = %p, size = %ld\n", type, start, size); + // CHECK: type = heap, start = [[ADDR]], size = 8 + + const char *object_type; + __tsan_get_report_loc_object_type(report, 0, &object_type); + fprintf(stderr, "object_type = %s\n", object_type); + // CHECK: object_type = MyObject +} + +// CHECK: Done. +// CHECK: ThreadSanitizer: reported 1 warnings diff --git a/test/tsan/Darwin/dispatch_main.mm b/test/tsan/Darwin/dispatch_main.mm index 75887547c606..f4c1e44bc6b1 100644 --- a/test/tsan/Darwin/dispatch_main.mm +++ b/test/tsan/Darwin/dispatch_main.mm @@ -2,7 +2,7 @@ // quits the main thread. // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/dispatch_once_deadlock.mm b/test/tsan/Darwin/dispatch_once_deadlock.mm index e88cdc0d0da5..e109f64a8dcb 100644 --- a/test/tsan/Darwin/dispatch_once_deadlock.mm +++ b/test/tsan/Darwin/dispatch_once_deadlock.mm @@ -1,7 +1,7 @@ // Check that calling dispatch_once from a report callback works. // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 not %run %t 2>&1 | FileCheck %s +// RUN: not %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> #import <pthread.h> diff --git a/test/tsan/Darwin/external.cc b/test/tsan/Darwin/external.cc new file mode 100644 index 000000000000..2605480d7b82 --- /dev/null +++ b/test/tsan/Darwin/external.cc @@ -0,0 +1,163 @@ +// RUN: %clangxx_tsan %s -shared -DSHARED_LIB \ +// RUN: -o %t-lib-instrumented.dylib \ +// RUN: -install_name @rpath/`basename %t-lib-instrumented.dylib` + +// RUN: %clangxx_tsan %s -shared -DSHARED_LIB -fno-sanitize=thread \ +// RUN: -o %t-lib-noninstrumented.dylib \ +// RUN: -install_name @rpath/`basename %t-lib-noninstrumented.dylib` + +// RUN: %clangxx_tsan %s -shared -DSHARED_LIB -fno-sanitize=thread -DUSE_TSAN_CALLBACKS \ +// RUN: -o %t-lib-noninstrumented-callbacks.dylib \ +// RUN: -install_name @rpath/`basename %t-lib-noninstrumented-callbacks.dylib` + +// RUN: %clangxx_tsan %s %t-lib-instrumented.dylib -o %t-lib-instrumented +// RUN: %clangxx_tsan %s %t-lib-noninstrumented.dylib -o %t-lib-noninstrumented +// RUN: %clangxx_tsan %s %t-lib-noninstrumented-callbacks.dylib -o %t-lib-noninstrumented-callbacks + +// RUN: %deflake %run %t-lib-instrumented 2>&1 \ +// RUN: | FileCheck %s --check-prefix=CHECK --check-prefix=TEST1 +// RUN: %run %t-lib-noninstrumented 2>&1 \ +// RUN: | FileCheck %s --check-prefix=CHECK --check-prefix=TEST2 +// RUN: %deflake %run %t-lib-noninstrumented-callbacks 2>&1 \ +// RUN: | FileCheck %s --check-prefix=CHECK --check-prefix=TEST3 + +#include <thread> + +#include <dlfcn.h> +#include <pthread.h> +#include <stdio.h> +#include <stdlib.h> + +struct MyObject; +typedef MyObject *MyObjectRef; +extern "C" { + void InitializeLibrary(); + MyObject *ObjectCreate(); + long ObjectRead(MyObject *); + void ObjectWrite(MyObject *, long); + void ObjectWriteAnother(MyObject *, long); +} + +#if defined(SHARED_LIB) + +struct MyObject { + long _val; + long _another; +}; + +#if defined(USE_TSAN_CALLBACKS) +static void *tag; +void *(*callback_register_tag)(const char *object_type); +void *(*callback_assign_tag)(void *addr, void *tag); +void (*callback_read)(void *addr, void *caller_pc, void *tag); +void (*callback_write)(void *addr, void *caller_pc, void *tag); +#endif + +void InitializeLibrary() { +#if defined(USE_TSAN_CALLBACKS) + callback_register_tag = (decltype(callback_register_tag))dlsym(RTLD_DEFAULT, "__tsan_external_register_tag"); + callback_assign_tag = (decltype(callback_assign_tag))dlsym(RTLD_DEFAULT, "__tsan_external_assign_tag"); + callback_read = (decltype(callback_read))dlsym(RTLD_DEFAULT, "__tsan_external_read"); + callback_write = (decltype(callback_write))dlsym(RTLD_DEFAULT, "__tsan_external_write"); + tag = callback_register_tag("MyLibrary::MyObject"); +#endif +} + +MyObject *ObjectCreate() { + MyObject *ref = (MyObject *)malloc(sizeof(MyObject)); +#if defined(USE_TSAN_CALLBACKS) + callback_assign_tag(ref, tag); +#endif + return ref; +} + +long ObjectRead(MyObject *ref) { +#if defined(USE_TSAN_CALLBACKS) + callback_read(ref, __builtin_return_address(0), tag); +#endif + return ref->_val; +} + +void ObjectWrite(MyObject *ref, long val) { +#if defined(USE_TSAN_CALLBACKS) + callback_write(ref, __builtin_return_address(0), tag); +#endif + ref->_val = val; +} + +void ObjectWriteAnother(MyObject *ref, long val) { +#if defined(USE_TSAN_CALLBACKS) + callback_write(ref, __builtin_return_address(0), tag); +#endif + ref->_another = val; +} + +#else // defined(SHARED_LIB) + +int main(int argc, char *argv[]) { + InitializeLibrary(); + + { + MyObjectRef ref = ObjectCreate(); + std::thread t1([ref]{ ObjectRead(ref); }); + std::thread t2([ref]{ ObjectRead(ref); }); + t1.join(); + t2.join(); + } + + // CHECK-NOT: WARNING: ThreadSanitizer + + fprintf(stderr, "RR test done\n"); + // CHECK: RR test done + + { + MyObjectRef ref = ObjectCreate(); + std::thread t1([ref]{ ObjectRead(ref); }); + std::thread t2([ref]{ ObjectWrite(ref, 66); }); + t1.join(); + t2.join(); + } + + // TEST1: WARNING: ThreadSanitizer: data race + // TEST1: {{Write|Read}} of size 8 at + // TEST1: Previous {{write|read}} of size 8 at + // TEST1: Location is heap block of size 16 at + + // TEST2-NOT: WARNING: ThreadSanitizer + + // TEST3: WARNING: ThreadSanitizer: race on a library object + // TEST3: {{Mutating|read-only}} access of object MyLibrary::MyObject at + // TEST3: {{ObjectWrite|ObjectRead}} + // TEST3: Previous {{mutating|read-only}} access of object MyLibrary::MyObject at + // TEST3: {{ObjectWrite|ObjectRead}} + // TEST3: Location is MyLibrary::MyObject object of size 16 at + // TEST3: {{ObjectCreate}} + + fprintf(stderr, "RW test done\n"); + // CHECK: RW test done + + { + MyObjectRef ref = ObjectCreate(); + std::thread t1([ref]{ ObjectWrite(ref, 76); }); + std::thread t2([ref]{ ObjectWriteAnother(ref, 77); }); + t1.join(); + t2.join(); + } + + // TEST1-NOT: WARNING: ThreadSanitizer: data race + + // TEST2-NOT: WARNING: ThreadSanitizer + + // TEST3: WARNING: ThreadSanitizer: race on a library object + // TEST3: Mutating access of object MyLibrary::MyObject at + // TEST3: {{ObjectWrite|ObjectWriteAnother}} + // TEST3: Previous mutating access of object MyLibrary::MyObject at + // TEST3: {{ObjectWrite|ObjectWriteAnother}} + // TEST3: Location is MyLibrary::MyObject object of size 16 at + // TEST3: {{ObjectCreate}} + + fprintf(stderr, "WW test done\n"); + // CHECK: WW test done +} + +#endif // defined(SHARED_LIB) diff --git a/test/tsan/Darwin/gcd-after-null.mm b/test/tsan/Darwin/gcd-after-null.mm new file mode 100644 index 000000000000..7c9913c0fb17 --- /dev/null +++ b/test/tsan/Darwin/gcd-after-null.mm @@ -0,0 +1,23 @@ +// Regression test to make sure we don't crash when dispatch_after is called with a NULL queue. + +// RUN: %clang_tsan %s -o %t -framework Foundation +// RUN: %run %t 2>&1 | FileCheck %s + +#import <Foundation/Foundation.h> + +int main(int argc, const char *argv[]) { + fprintf(stderr, "start\n"); + + dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(10 * NSEC_PER_MSEC)), NULL, ^{ + dispatch_async(dispatch_get_main_queue(), ^{ + CFRunLoopStop(CFRunLoopGetMain()); + }); + }); + CFRunLoopRun(); + + fprintf(stderr, "done\n"); + return 0; +} + +// CHECK: start +// CHECK: done diff --git a/test/tsan/Darwin/gcd-after.mm b/test/tsan/Darwin/gcd-after.mm index 49b6bc6f71e9..4d66c508554a 100644 --- a/test/tsan/Darwin/gcd-after.mm +++ b/test/tsan/Darwin/gcd-after.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/gcd-apply-race.mm b/test/tsan/Darwin/gcd-apply-race.mm index 028be1ac5b1c..a7bf663a9fe2 100644 --- a/test/tsan/Darwin/gcd-apply-race.mm +++ b/test/tsan/Darwin/gcd-apply-race.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %deflake %run %t 2>&1 | FileCheck %s +// RUN: %deflake %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/gcd-apply.mm b/test/tsan/Darwin/gcd-apply.mm index a7dc3740dc7b..d9d256203aeb 100644 --- a/test/tsan/Darwin/gcd-apply.mm +++ b/test/tsan/Darwin/gcd-apply.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/gcd-async-norace.mm b/test/tsan/Darwin/gcd-async-norace.mm index c7e28b4ce791..83f8c0d6fb58 100644 --- a/test/tsan/Darwin/gcd-async-norace.mm +++ b/test/tsan/Darwin/gcd-async-norace.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/gcd-async-race.mm b/test/tsan/Darwin/gcd-async-race.mm index 1002a56b0a16..cb8fb4bf5eca 100644 --- a/test/tsan/Darwin/gcd-async-race.mm +++ b/test/tsan/Darwin/gcd-async-race.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %deflake %run %t 2>&1 | FileCheck %s +// RUN: %deflake %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/gcd-barrier-race.mm b/test/tsan/Darwin/gcd-barrier-race.mm index c42eaebded2b..c11e147ff7cd 100644 --- a/test/tsan/Darwin/gcd-barrier-race.mm +++ b/test/tsan/Darwin/gcd-barrier-race.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %deflake %run %t 2>&1 | FileCheck %s +// RUN: %deflake %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/gcd-barrier.mm b/test/tsan/Darwin/gcd-barrier.mm index 6f58cae7d8f5..9d4dcb215027 100644 --- a/test/tsan/Darwin/gcd-barrier.mm +++ b/test/tsan/Darwin/gcd-barrier.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/gcd-blocks.mm b/test/tsan/Darwin/gcd-blocks.mm index e0082605f24e..1aac7e1f2ef6 100644 --- a/test/tsan/Darwin/gcd-blocks.mm +++ b/test/tsan/Darwin/gcd-blocks.mm @@ -1,5 +1,5 @@ // RUN: %clangxx_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/gcd-data.mm b/test/tsan/Darwin/gcd-data.mm index a5154dc3598d..d451cf5e8efa 100644 --- a/test/tsan/Darwin/gcd-data.mm +++ b/test/tsan/Darwin/gcd-data.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/gcd-fd.mm b/test/tsan/Darwin/gcd-fd.mm index 75da9cd4252d..838cf20ca98b 100644 --- a/test/tsan/Darwin/gcd-fd.mm +++ b/test/tsan/Darwin/gcd-fd.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/gcd-groups-destructor.mm b/test/tsan/Darwin/gcd-groups-destructor.mm index 19c2c9bd147f..05c65c04b665 100644 --- a/test/tsan/Darwin/gcd-groups-destructor.mm +++ b/test/tsan/Darwin/gcd-groups-destructor.mm @@ -1,5 +1,5 @@ // RUN: %clangxx_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/gcd-groups-leave.mm b/test/tsan/Darwin/gcd-groups-leave.mm index 6ecf85f5ff0d..49fd8e2101c8 100644 --- a/test/tsan/Darwin/gcd-groups-leave.mm +++ b/test/tsan/Darwin/gcd-groups-leave.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/gcd-groups-norace.mm b/test/tsan/Darwin/gcd-groups-norace.mm index 64ec386ca40f..e8501692fe80 100644 --- a/test/tsan/Darwin/gcd-groups-norace.mm +++ b/test/tsan/Darwin/gcd-groups-norace.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/gcd-groups-stress.mm b/test/tsan/Darwin/gcd-groups-stress.mm index 457d9afd9c93..cfe4deb0a518 100644 --- a/test/tsan/Darwin/gcd-groups-stress.mm +++ b/test/tsan/Darwin/gcd-groups-stress.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/gcd-io-barrier-race.mm b/test/tsan/Darwin/gcd-io-barrier-race.mm index fffc19bd16de..137c3b26700c 100644 --- a/test/tsan/Darwin/gcd-io-barrier-race.mm +++ b/test/tsan/Darwin/gcd-io-barrier-race.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %deflake %run %t 2>&1 | FileCheck %s +// RUN: %deflake %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/gcd-io-barrier.mm b/test/tsan/Darwin/gcd-io-barrier.mm index fe30138f6036..af92b03c1c70 100644 --- a/test/tsan/Darwin/gcd-io-barrier.mm +++ b/test/tsan/Darwin/gcd-io-barrier.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/gcd-io-cleanup.mm b/test/tsan/Darwin/gcd-io-cleanup.mm index b15fa0dc2532..570e37dd04cd 100644 --- a/test/tsan/Darwin/gcd-io-cleanup.mm +++ b/test/tsan/Darwin/gcd-io-cleanup.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/gcd-io-race.mm b/test/tsan/Darwin/gcd-io-race.mm index 0bec28fdb758..99000fca1587 100644 --- a/test/tsan/Darwin/gcd-io-race.mm +++ b/test/tsan/Darwin/gcd-io-race.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %deflake %run %t 2>&1 | FileCheck %s +// RUN: %deflake %run %t 2>&1 | FileCheck %s // REQUIRES: disabled diff --git a/test/tsan/Darwin/gcd-io.mm b/test/tsan/Darwin/gcd-io.mm index 4a1726dac8c7..70ded40417d7 100644 --- a/test/tsan/Darwin/gcd-io.mm +++ b/test/tsan/Darwin/gcd-io.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/gcd-once.mm b/test/tsan/Darwin/gcd-once.mm index 3e4a5335607c..70e588aaf711 100644 --- a/test/tsan/Darwin/gcd-once.mm +++ b/test/tsan/Darwin/gcd-once.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/gcd-semaphore-norace.mm b/test/tsan/Darwin/gcd-semaphore-norace.mm index 20bc5724d165..fd5d14655182 100644 --- a/test/tsan/Darwin/gcd-semaphore-norace.mm +++ b/test/tsan/Darwin/gcd-semaphore-norace.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/gcd-serial-queue-norace.mm b/test/tsan/Darwin/gcd-serial-queue-norace.mm index 95efbb764c53..8754b618df2a 100644 --- a/test/tsan/Darwin/gcd-serial-queue-norace.mm +++ b/test/tsan/Darwin/gcd-serial-queue-norace.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/gcd-source-cancel.mm b/test/tsan/Darwin/gcd-source-cancel.mm index 86e1b28a61c4..8aa6f106932f 100644 --- a/test/tsan/Darwin/gcd-source-cancel.mm +++ b/test/tsan/Darwin/gcd-source-cancel.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/gcd-source-cancel2.mm b/test/tsan/Darwin/gcd-source-cancel2.mm index 956fe87298bb..92b31d7d0dab 100644 --- a/test/tsan/Darwin/gcd-source-cancel2.mm +++ b/test/tsan/Darwin/gcd-source-cancel2.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/gcd-source-event.mm b/test/tsan/Darwin/gcd-source-event.mm index e50cb568de1e..e707b6551000 100644 --- a/test/tsan/Darwin/gcd-source-event.mm +++ b/test/tsan/Darwin/gcd-source-event.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/gcd-source-event2.mm b/test/tsan/Darwin/gcd-source-event2.mm index c45d481a0028..b10e4741a3f6 100644 --- a/test/tsan/Darwin/gcd-source-event2.mm +++ b/test/tsan/Darwin/gcd-source-event2.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/gcd-source-registration.mm b/test/tsan/Darwin/gcd-source-registration.mm index db22613eddae..d6d339f94dbb 100644 --- a/test/tsan/Darwin/gcd-source-registration.mm +++ b/test/tsan/Darwin/gcd-source-registration.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/gcd-source-registration2.mm b/test/tsan/Darwin/gcd-source-registration2.mm index 4431bc9d6898..63657873cae3 100644 --- a/test/tsan/Darwin/gcd-source-registration2.mm +++ b/test/tsan/Darwin/gcd-source-registration2.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/gcd-source-serial.mm b/test/tsan/Darwin/gcd-source-serial.mm index c0989fcc732a..992203074c15 100644 --- a/test/tsan/Darwin/gcd-source-serial.mm +++ b/test/tsan/Darwin/gcd-source-serial.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/gcd-suspend.mm b/test/tsan/Darwin/gcd-suspend.mm index 3e8818a2d56e..561e7c0b79c8 100644 --- a/test/tsan/Darwin/gcd-suspend.mm +++ b/test/tsan/Darwin/gcd-suspend.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/gcd-sync-norace.mm b/test/tsan/Darwin/gcd-sync-norace.mm index c683524f73b6..18bf97320793 100644 --- a/test/tsan/Darwin/gcd-sync-norace.mm +++ b/test/tsan/Darwin/gcd-sync-norace.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/gcd-sync-race.mm b/test/tsan/Darwin/gcd-sync-race.mm index 650faa4e082c..b7f3266dc09b 100644 --- a/test/tsan/Darwin/gcd-sync-race.mm +++ b/test/tsan/Darwin/gcd-sync-race.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %deflake %run %t 2>&1 | FileCheck %s +// RUN: %deflake %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/gcd-target-queue-norace.mm b/test/tsan/Darwin/gcd-target-queue-norace.mm index 36cb1b9298de..fbfa65806bdb 100644 --- a/test/tsan/Darwin/gcd-target-queue-norace.mm +++ b/test/tsan/Darwin/gcd-target-queue-norace.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/ignore-noninstrumented.mm b/test/tsan/Darwin/ignore-noninstrumented.mm index 5e4453102a9c..528e07b9a721 100644 --- a/test/tsan/Darwin/ignore-noninstrumented.mm +++ b/test/tsan/Darwin/ignore-noninstrumented.mm @@ -3,7 +3,7 @@ // RUN: %clang_tsan %s -o %t -framework Foundation // Check that without the flag, there are false positives. -// RUN: %deflake %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-RACE +// RUN: %env_tsan_opts=ignore_noninstrumented_modules=0 %deflake %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-RACE // With ignore_noninstrumented_modules=1, no races are reported. // RUN: %env_tsan_opts=ignore_noninstrumented_modules=1 %run %t 2>&1 | FileCheck %s diff --git a/test/tsan/Darwin/ignored-interceptors.mm b/test/tsan/Darwin/ignored-interceptors.mm index d51314281844..1105132a3cb6 100644 --- a/test/tsan/Darwin/ignored-interceptors.mm +++ b/test/tsan/Darwin/ignored-interceptors.mm @@ -6,13 +6,13 @@ // RUN: %clang_tsan %s -o %t -framework Foundation // Check that without the flag, there are false positives. -// RUN: %deflake %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-RACE +// RUN: %env_tsan_opts=ignore_noninstrumented_modules=0 %deflake %run %t 2>&1 | FileCheck %s --check-prefix=CHECK-RACE // With ignore_interceptors_accesses=1, no races are reported. -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %env_tsan_opts=ignore_noninstrumented_modules=0:ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s // With ignore_interceptors_accesses=1, races in user's code are still reported. -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %deflake %run %t race 2>&1 | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-RACE +// RUN: %env_tsan_opts=ignore_noninstrumented_modules=0:ignore_interceptors_accesses=1 %deflake %run %t race 2>&1 | FileCheck %s --check-prefix=CHECK --check-prefix=CHECK-RACE #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/libcxx-call-once.mm b/test/tsan/Darwin/libcxx-call-once.mm index 5388e495c9c2..ba4615fa3ab9 100644 --- a/test/tsan/Darwin/libcxx-call-once.mm +++ b/test/tsan/Darwin/libcxx-call-once.mm @@ -1,5 +1,5 @@ // RUN: %clangxx_tsan %s -o %t -framework Foundation -std=c++11 -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/libcxx-future.mm b/test/tsan/Darwin/libcxx-future.mm index 902f267ecb89..720c2e089b47 100644 --- a/test/tsan/Darwin/libcxx-future.mm +++ b/test/tsan/Darwin/libcxx-future.mm @@ -1,5 +1,5 @@ // RUN: %clangxx_tsan %s -o %t -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #include <iostream> #include <future> diff --git a/test/tsan/Darwin/libcxx-shared-ptr-recursive.mm b/test/tsan/Darwin/libcxx-shared-ptr-recursive.mm index eea02dc561e1..a9a3a96f2ada 100644 --- a/test/tsan/Darwin/libcxx-shared-ptr-recursive.mm +++ b/test/tsan/Darwin/libcxx-shared-ptr-recursive.mm @@ -1,5 +1,5 @@ // RUN: %clangxx_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/libcxx-shared-ptr-stress.mm b/test/tsan/Darwin/libcxx-shared-ptr-stress.mm index 7c36729f010f..e5cd7edc6bb7 100644 --- a/test/tsan/Darwin/libcxx-shared-ptr-stress.mm +++ b/test/tsan/Darwin/libcxx-shared-ptr-stress.mm @@ -1,5 +1,5 @@ // RUN: %clangxx_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/libcxx-shared-ptr.mm b/test/tsan/Darwin/libcxx-shared-ptr.mm index 6187c438fec0..057ff22874c9 100644 --- a/test/tsan/Darwin/libcxx-shared-ptr.mm +++ b/test/tsan/Darwin/libcxx-shared-ptr.mm @@ -1,5 +1,5 @@ // RUN: %clangxx_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/lit.local.cfg b/test/tsan/Darwin/lit.local.cfg index a85dfcd24c08..e74e82dbf474 100644 --- a/test/tsan/Darwin/lit.local.cfg +++ b/test/tsan/Darwin/lit.local.cfg @@ -7,3 +7,5 @@ root = getRoot(config) if root.host_os not in ['Darwin']: config.unsupported = True + +config.environment['TSAN_OPTIONS'] += ':ignore_noninstrumented_modules=1' diff --git a/test/tsan/Darwin/main_tid.mm b/test/tsan/Darwin/main_tid.mm new file mode 100644 index 000000000000..af658e4b96e5 --- /dev/null +++ b/test/tsan/Darwin/main_tid.mm @@ -0,0 +1,46 @@ +// RUN: %clang_tsan %s -o %t -framework Foundation +// RUN: %deflake %run %t 2>&1 | FileCheck %s + +#import <pthread.h> +#import <stdio.h> +#import <stdlib.h> + +extern "C" { +void __tsan_on_report(void *report); +int __tsan_get_report_thread(void *report, unsigned long idx, int *tid, + unsigned long *os_id, int *running, + const char **name, int *parent_tid, void **trace, + unsigned long trace_size); +} + +void __tsan_on_report(void *report) { + fprintf(stderr, "__tsan_on_report(%p)\n", report); + + int tid; + unsigned long os_id; + int running; + const char *name; + int parent_tid; + void *trace[16] = {0}; + __tsan_get_report_thread(report, 0, &tid, &os_id, &running, &name, &parent_tid, trace, 16); + fprintf(stderr, "tid = %d, os_id = %lu\n", tid, os_id); +} + +int main() { + fprintf(stderr, "Hello world.\n"); + + uint64_t threadid; + pthread_threadid_np(NULL, &threadid); + fprintf(stderr, "pthread_threadid_np = %llu\n", threadid); + + pthread_mutex_t m; + pthread_mutex_init(&m, NULL); + pthread_mutex_unlock(&m); + fprintf(stderr, "Done.\n"); +} + +// CHECK: Hello world. +// CHECK: pthread_threadid_np = [[ADDR:[0-9]+]] +// CHECK: WARNING: ThreadSanitizer +// CHECK: tid = 0, os_id = [[ADDR]] +// CHECK: Done. diff --git a/test/tsan/Darwin/norace-objcxx-run-time.mm b/test/tsan/Darwin/norace-objcxx-run-time.mm index 0cf729e7f2d8..1de431a076c7 100644 --- a/test/tsan/Darwin/norace-objcxx-run-time.mm +++ b/test/tsan/Darwin/norace-objcxx-run-time.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -lc++ -fobjc-arc -lobjc -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s // Check that we do not report races between: // - Object retain and initialize diff --git a/test/tsan/Darwin/objc-double-property.mm b/test/tsan/Darwin/objc-double-property.mm index 51b10f21c9ca..c99151d28048 100644 --- a/test/tsan/Darwin/objc-double-property.mm +++ b/test/tsan/Darwin/objc-double-property.mm @@ -1,7 +1,7 @@ -// RUN: %clangxx_tsan -O0 %s -o %t -framework Foundation && %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s -// RUN: %clangxx_tsan -O1 %s -o %t -framework Foundation && %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s -// RUN: %clangxx_tsan -O2 %s -o %t -framework Foundation && %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s -// RUN: %clangxx_tsan -O3 %s -o %t -framework Foundation && %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %clangxx_tsan -O0 %s -o %t -framework Foundation && %run %t 2>&1 | FileCheck %s +// RUN: %clangxx_tsan -O1 %s -o %t -framework Foundation && %run %t 2>&1 | FileCheck %s +// RUN: %clangxx_tsan -O2 %s -o %t -framework Foundation && %run %t 2>&1 | FileCheck %s +// RUN: %clangxx_tsan -O3 %s -o %t -framework Foundation && %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/objc-simple.mm b/test/tsan/Darwin/objc-simple.mm index a8fc35592962..b62d0eb8702d 100644 --- a/test/tsan/Darwin/objc-simple.mm +++ b/test/tsan/Darwin/objc-simple.mm @@ -1,7 +1,7 @@ // Test that a simple Obj-C program runs and exits without any warnings. // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> diff --git a/test/tsan/Darwin/workerthreads.mm b/test/tsan/Darwin/workerthreads.mm new file mode 100644 index 000000000000..18369fd62dd3 --- /dev/null +++ b/test/tsan/Darwin/workerthreads.mm @@ -0,0 +1,43 @@ +// RUN: %clang_tsan %s -o %t -framework Foundation +// RUN: %deflake %run %t 2>&1 | FileCheck %s + +#import <Foundation/Foundation.h> + +#import "../test.h" + +long global; + +int main() { + fprintf(stderr, "Hello world.\n"); + print_address("addr=", 1, &global); + barrier_init(&barrier, 2); + + global = 42; + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + global = 43; + barrier_wait(&barrier); + }); + + dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ + barrier_wait(&barrier); + global = 44; + + dispatch_sync(dispatch_get_main_queue(), ^{ + CFRunLoopStop(CFRunLoopGetCurrent()); + }); + }); + + CFRunLoopRun(); + fprintf(stderr, "Done.\n"); +} + +// CHECK: Hello world. +// CHECK: WARNING: ThreadSanitizer: data race +// CHECK: Write of size 8 +// CHECK: Previous write of size 8 +// CHECK: Location is global +// CHECK: Thread {{.*}} is a GCD worker thread +// CHECK-NOT: failed to restore the stack +// CHECK: Thread {{.*}} is a GCD worker thread +// CHECK-NOT: failed to restore the stack +// CHECK: Done. diff --git a/test/tsan/Darwin/xpc-cancel.mm b/test/tsan/Darwin/xpc-cancel.mm new file mode 100644 index 000000000000..5e326b7e4973 --- /dev/null +++ b/test/tsan/Darwin/xpc-cancel.mm @@ -0,0 +1,37 @@ +// RUN: %clang_tsan %s -o %t -framework Foundation +// RUN: %run %t 2>&1 | FileCheck %s + +#import <Foundation/Foundation.h> +#import <xpc/xpc.h> + +long global; + +int main(int argc, const char *argv[]) { + fprintf(stderr, "Hello world.\n"); + + dispatch_queue_t server_q = dispatch_queue_create("server.queue", DISPATCH_QUEUE_CONCURRENT); + xpc_connection_t server_conn = xpc_connection_create(NULL, server_q); + + xpc_connection_set_event_handler(server_conn, ^(xpc_object_t client) { + if (client == XPC_ERROR_CONNECTION_INTERRUPTED || client == XPC_ERROR_CONNECTION_INVALID) { + global = 43; + + dispatch_async(dispatch_get_main_queue(), ^{ + CFRunLoopStop(CFRunLoopGetCurrent()); + }); + } + }); + xpc_connection_resume(server_conn); + + global = 42; + + xpc_connection_cancel(server_conn); + + CFRunLoopRun(); + + fprintf(stderr, "Done.\n"); +} + +// CHECK: Hello world. +// CHECK-NOT: WARNING: ThreadSanitizer +// CHECK: Done. diff --git a/test/tsan/Darwin/xpc-race.mm b/test/tsan/Darwin/xpc-race.mm index 9141da42e3a0..eaef4e06c1f6 100644 --- a/test/tsan/Darwin/xpc-race.mm +++ b/test/tsan/Darwin/xpc-race.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %deflake %run %t 2>&1 | FileCheck %s +// RUN: %deflake %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> #import <xpc/xpc.h> diff --git a/test/tsan/Darwin/xpc.mm b/test/tsan/Darwin/xpc.mm index a939b02ef21a..2d6de269b59f 100644 --- a/test/tsan/Darwin/xpc.mm +++ b/test/tsan/Darwin/xpc.mm @@ -1,5 +1,5 @@ // RUN: %clang_tsan %s -o %t -framework Foundation -// RUN: %env_tsan_opts=ignore_interceptors_accesses=1 %run %t 2>&1 | FileCheck %s +// RUN: %run %t 2>&1 | FileCheck %s #import <Foundation/Foundation.h> #import <xpc/xpc.h> diff --git a/test/tsan/Linux/pie_no_aslr.cc b/test/tsan/Linux/pie_no_aslr.cc new file mode 100644 index 000000000000..b99342da06bb --- /dev/null +++ b/test/tsan/Linux/pie_no_aslr.cc @@ -0,0 +1,6 @@ +// RUN: %clang_tsan %s -pie -fPIE -o %t && %run setarch x86_64 -R %t +// REQUIRES: x86_64-target-arch + +int main() { + return 0; +} diff --git a/test/tsan/Linux/user_malloc.cc b/test/tsan/Linux/user_malloc.cc index 9c3ce681d748..6d51a9dd7d9b 100644 --- a/test/tsan/Linux/user_malloc.cc +++ b/test/tsan/Linux/user_malloc.cc @@ -1,4 +1,5 @@ // RUN: %clangxx_tsan -O1 %s -o %t && %run %t 2>&1 | FileCheck %s +// UNSUPPORTED: powerpc64le #include <stdio.h> // Defined by tsan. diff --git a/test/tsan/Unit/lit.site.cfg.in b/test/tsan/Unit/lit.site.cfg.in index 23894a839856..40cf096478f5 100644 --- a/test/tsan/Unit/lit.site.cfg.in +++ b/test/tsan/Unit/lit.site.cfg.in @@ -11,3 +11,13 @@ config.name = 'ThreadSanitizer-Unit' # FIXME: De-hardcode this path. config.test_exec_root = "@COMPILER_RT_BINARY_DIR@/lib/tsan/tests" config.test_source_root = config.test_exec_root + +if config.host_os == 'Darwin': + config.parallelism_group = config.darwin_sanitizer_parallelism_group_func + + # On Darwin, we default to ignore_noninstrumented_modules=1, which also + # suppresses some races the tests are supposed to find. See tsan/lit.cfg. + if 'TSAN_OPTIONS' in config.environment: + config.environment['TSAN_OPTIONS'] += ':ignore_noninstrumented_modules=0' + else: + config.environment['TSAN_OPTIONS'] = 'ignore_noninstrumented_modules=0' diff --git a/test/tsan/atomic_hle.cc b/test/tsan/atomic_hle.cc new file mode 100644 index 000000000000..345e363c2bc0 --- /dev/null +++ b/test/tsan/atomic_hle.cc @@ -0,0 +1,25 @@ +// RUN: %clangxx_tsan -O1 %s -o %t && %run %t 2>&1 | FileCheck %s +#include "test.h" +#include <sanitizer/tsan_interface_atomic.h> + +#ifndef __ATOMIC_HLE_ACQUIRE +#define __ATOMIC_HLE_ACQUIRE (1 << 16) +#endif +#ifndef __ATOMIC_HLE_RELEASE +#define __ATOMIC_HLE_RELEASE (1 << 17) +#endif + +int main() { + volatile int x = 0; + //__atomic_fetch_add(&x, 1, __ATOMIC_ACQUIRE | __ATOMIC_HLE_ACQUIRE); + //__atomic_store_n(&x, 0, __ATOMIC_RELEASE | __ATOMIC_HLE_RELEASE); + __tsan_atomic32_fetch_add(&x, 1, + (__tsan_memory_order)(__ATOMIC_ACQUIRE | __ATOMIC_HLE_ACQUIRE)); + __tsan_atomic32_store(&x, 0, + (__tsan_memory_order)(__ATOMIC_RELEASE | __ATOMIC_HLE_RELEASE)); + fprintf(stderr, "DONE\n"); + return 0; +} + +// CHECK: DONE + diff --git a/test/tsan/custom_mutex.h b/test/tsan/custom_mutex.h new file mode 100644 index 000000000000..675ad59b322c --- /dev/null +++ b/test/tsan/custom_mutex.h @@ -0,0 +1,91 @@ +#include "test.h" +#include <atomic> +#include <vector> +#include <sanitizer/tsan_interface.h> + +// A very primitive mutex annotated with tsan annotations. +class Mutex { + public: + Mutex(bool prof = true) + : prof_(prof) + , locked_(false) + , seq_(0) { + __tsan_mutex_create(this, 0); + } + + ~Mutex() { + __tsan_mutex_destroy(this, 0); + } + + void Lock() { + __tsan_mutex_pre_lock(this, 0); + LockImpl(); + __tsan_mutex_post_lock(this, 0, 0); + } + + bool TryLock() { + __tsan_mutex_pre_lock(this, __tsan_mutex_try_lock); + bool ok = TryLockImpl(); + __tsan_mutex_post_lock(this, __tsan_mutex_try_lock | + (ok ? 0 : __tsan_mutex_try_lock_failed), 0); + return ok; + } + + void Unlock() { + __tsan_mutex_pre_unlock(this, 0); + UnlockImpl(); + __tsan_mutex_post_unlock(this, 0); + } + + void Wait() { + for (int seq = seq_; seq == seq_;) { + Unlock(); + usleep(100); + Lock(); + } + } + + void Broadcast() { + __tsan_mutex_pre_signal(this, 0); + LockImpl(false); + seq_++; + UnlockImpl(); + __tsan_mutex_post_signal(this, 0); + } + + private: + const bool prof_; + std::atomic<bool> locked_; + int seq_; + + // This models mutex profiling subsystem. + static Mutex prof_mu_; + static int prof_data_; + + void LockImpl(bool prof = true) { + while (!TryLockImpl()) + usleep(100); + if (prof && prof_) + Prof(); + } + + bool TryLockImpl() { + return !locked_.exchange(true); + } + + void UnlockImpl() { + locked_.store(false); + } + + void Prof() { + // This happens inside of mutex lock annotations. + __tsan_mutex_pre_divert(this, 0); + prof_mu_.Lock(); + prof_data_++; + prof_mu_.Unlock(); + __tsan_mutex_post_divert(this, 0); + } +}; + +Mutex Mutex::prof_mu_(false); +int Mutex::prof_data_; diff --git a/test/tsan/custom_mutex0.cc b/test/tsan/custom_mutex0.cc new file mode 100644 index 000000000000..998385ca1cf8 --- /dev/null +++ b/test/tsan/custom_mutex0.cc @@ -0,0 +1,31 @@ +// RUN: %clangxx_tsan -O1 --std=c++11 %s -o %t && %run %t 2>&1 | FileCheck %s +#include "custom_mutex.h" + +// Test that custom annoations provide normal mutex synchronization +// (no race reports for properly protected critical sections). + +Mutex mu; +long data; + +void *thr(void *arg) { + barrier_wait(&barrier); + mu.Lock(); + data++; + mu.Unlock(); + return 0; +} + +int main() { + barrier_init(&barrier, 2); + pthread_t th; + pthread_create(&th, 0, thr, 0); + barrier_wait(&barrier); + mu.Lock(); + data++; + mu.Unlock(); + pthread_join(th, 0); + fprintf(stderr, "DONE\n"); + return 0; +} + +// CHECK: DONE diff --git a/test/tsan/custom_mutex1.cc b/test/tsan/custom_mutex1.cc new file mode 100644 index 000000000000..06186515f697 --- /dev/null +++ b/test/tsan/custom_mutex1.cc @@ -0,0 +1,39 @@ +// RUN: %clangxx_tsan -O1 --std=c++11 %s -o %t && %deflake %run %t 2>&1 | FileCheck %s +#include "custom_mutex.h" + +// Test that failed TryLock does not induce parasitic synchronization. + +Mutex mu; +long data; + +void *thr(void *arg) { + mu.Lock(); + data++; + mu.Unlock(); + mu.Lock(); + barrier_wait(&barrier); + barrier_wait(&barrier); + mu.Unlock(); + return 0; +} + +int main() { + barrier_init(&barrier, 2); + pthread_t th; + pthread_create(&th, 0, thr, 0); + barrier_wait(&barrier); + if (mu.TryLock()) { + fprintf(stderr, "TryLock succeeded, should not\n"); + exit(0); + } + data++; + barrier_wait(&barrier); + pthread_join(th, 0); + fprintf(stderr, "DONE\n"); + return 0; +} + +// CHECK: ThreadSanitizer: data race +// CHECK-NEXT: Write of size 8 at {{.*}} by main thread: +// CHECK-NEXT: #0 main {{.*}}custom_mutex1.cc:29 +// CHECK: DONE diff --git a/test/tsan/custom_mutex2.cc b/test/tsan/custom_mutex2.cc new file mode 100644 index 000000000000..9329cbc3f432 --- /dev/null +++ b/test/tsan/custom_mutex2.cc @@ -0,0 +1,34 @@ +// RUN: %clangxx_tsan -O1 --std=c++11 %s -o %t && %deflake %run %t 2>&1 | FileCheck %s +#include "custom_mutex.h" + +// Test that Broadcast does not induce parasitic synchronization. + +Mutex mu; +long data; + +void *thr(void *arg) { + barrier_wait(&barrier); + mu.Lock(); + data++; + mu.Unlock(); + data++; + mu.Broadcast(); + return 0; +} + +int main() { + barrier_init(&barrier, 2); + pthread_t th; + pthread_create(&th, 0, thr, 0); + mu.Lock(); + barrier_wait(&barrier); + while (data == 0) + mu.Wait(); + mu.Unlock(); + pthread_join(th, 0); + fprintf(stderr, "DONE\n"); + return 0; +} + +// CHECK: ThreadSanitizer: data race +// CHECK: DONE diff --git a/test/tsan/fd_socket_connect_norace.cc b/test/tsan/fd_socket_connect_norace.cc index b9fb4340ad78..12375189a0f9 100644 --- a/test/tsan/fd_socket_connect_norace.cc +++ b/test/tsan/fd_socket_connect_norace.cc @@ -1,20 +1,24 @@ // RUN: %clangxx_tsan -O1 %s -o %t && %run %t 2>&1 | FileCheck %s +#include <arpa/inet.h> +#include <assert.h> +#include <netinet/in.h> #include <pthread.h> #include <stdio.h> #include <stdlib.h> -#include <unistd.h> -#include <sys/types.h> #include <sys/socket.h> -#include <netinet/in.h> -#include <arpa/inet.h> +#include <sys/types.h> +#include <unistd.h> -struct sockaddr_in addr; +struct sockaddr_in addr4; +struct sockaddr_in6 addr6; +struct sockaddr *addr; +socklen_t addrlen; int X; void *ClientThread(void *x) { - int c = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + int c = socket(addr->sa_family, SOCK_STREAM, IPPROTO_TCP); X = 42; - if (connect(c, (struct sockaddr*)&addr, sizeof(addr))) { + if (connect(c, addr, addrlen)) { perror("connect"); exit(1); } @@ -23,13 +27,26 @@ void *ClientThread(void *x) { } int main() { - int s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); - addr.sin_family = AF_INET; - inet_pton(AF_INET, "127.0.0.1", &addr.sin_addr); - addr.sin_port = INADDR_ANY; - socklen_t len = sizeof(addr); - bind(s, (sockaddr*)&addr, len); - getsockname(s, (sockaddr*)&addr, &len); + addr4.sin_family = AF_INET; + addr4.sin_addr.s_addr = htonl(INADDR_LOOPBACK); + addr4.sin_port = INADDR_ANY; + addr = (struct sockaddr *)&addr4; + addrlen = sizeof(addr4); + + int s = socket(addr->sa_family, SOCK_STREAM, IPPROTO_TCP); + if (s <= 0) { + // Try to fall-back to IPv6 + addr6.sin6_family = AF_INET6; + addr6.sin6_addr = in6addr_loopback; + addr6.sin6_port = INADDR_ANY; + addr = (struct sockaddr *)&addr6; + addrlen = sizeof(addr6); + s = socket(addr->sa_family, SOCK_STREAM, IPPROTO_TCP); + } + assert(s > 0); + + bind(s, addr, addrlen); + getsockname(s, addr, &addrlen); listen(s, 10); pthread_t t; pthread_create(&t, 0, ClientThread, 0); diff --git a/test/tsan/fd_socket_norace.cc b/test/tsan/fd_socket_norace.cc index 07b0cb356b8c..a1761cb27fd1 100644 --- a/test/tsan/fd_socket_norace.cc +++ b/test/tsan/fd_socket_norace.cc @@ -1,20 +1,24 @@ // RUN: %clangxx_tsan -O1 %s -o %t && %run %t 2>&1 | FileCheck %s +#include <arpa/inet.h> +#include <assert.h> +#include <netinet/in.h> #include <pthread.h> #include <stdio.h> #include <stdlib.h> -#include <unistd.h> -#include <sys/types.h> #include <sys/socket.h> -#include <netinet/in.h> -#include <arpa/inet.h> +#include <sys/types.h> +#include <unistd.h> -struct sockaddr_in addr; +struct sockaddr_in addr4; +struct sockaddr_in6 addr6; +struct sockaddr *addr; +socklen_t addrlen; int X; void *ClientThread(void *x) { X = 42; - int c = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); - if (connect(c, (struct sockaddr*)&addr, sizeof(addr))) { + int c = socket(addr->sa_family, SOCK_STREAM, IPPROTO_TCP); + if (connect(c, addr, addrlen)) { perror("connect"); exit(1); } @@ -27,13 +31,26 @@ void *ClientThread(void *x) { } int main() { - int s = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); - addr.sin_family = AF_INET; - inet_pton(AF_INET, "127.0.0.1", &addr.sin_addr); - addr.sin_port = INADDR_ANY; - socklen_t len = sizeof(addr); - bind(s, (sockaddr*)&addr, len); - getsockname(s, (sockaddr*)&addr, &len); + addr4.sin_family = AF_INET; + addr4.sin_addr.s_addr = htonl(INADDR_LOOPBACK); + addr4.sin_port = INADDR_ANY; + addr = (struct sockaddr *)&addr4; + addrlen = sizeof(addr4); + + int s = socket(addr->sa_family, SOCK_STREAM, IPPROTO_TCP); + if (s <= 0) { + // Try to fall-back to IPv6 + addr6.sin6_family = AF_INET6; + addr6.sin6_addr = in6addr_loopback; + addr6.sin6_port = INADDR_ANY; + addr = (struct sockaddr *)&addr6; + addrlen = sizeof(addr6); + s = socket(addr->sa_family, SOCK_STREAM, IPPROTO_TCP); + } + assert(s > 0); + + bind(s, addr, addrlen); + getsockname(s, addr, &addrlen); listen(s, 10); pthread_t t; pthread_create(&t, 0, ClientThread, 0); diff --git a/test/tsan/lit.cfg b/test/tsan/lit.cfg index 5d82cc9d4921..3c98d1fdca78 100644 --- a/test/tsan/lit.cfg +++ b/test/tsan/lit.cfg @@ -24,6 +24,10 @@ if config.host_os == 'Darwin': # On Darwin, we default to `abort_on_error=1`, which would make tests run # much slower. Let's override this and run lit tests with 'abort_on_error=0'. default_tsan_opts += ':abort_on_error=0' + # On Darwin, we default to ignore_noninstrumented_modules=1, which also + # suppresses some races the tests are supposed to find. Let's run without this + # setting, but turn it back on for Darwin tests (see Darwin/lit.local.cfg). + default_tsan_opts += ':ignore_noninstrumented_modules=0' # Platform-specific default TSAN_OPTIONS for lit tests. if default_tsan_opts: @@ -83,3 +87,6 @@ if config.host_os not in ['FreeBSD', 'Linux', 'Darwin']: # because the test hangs. if config.target_arch != 'aarch64': config.available_features.add('stable-runtime') + +if config.host_os == 'Darwin' and config.target_arch in ["x86_64", "x86_64h"]: + config.parallelism_group = "darwin-64bit-sanitizer" diff --git a/test/ubsan/TestCases/Integer/summary.cpp b/test/ubsan/TestCases/Integer/summary.cpp index e687afab4354..8726c14c3db0 100644 --- a/test/ubsan/TestCases/Integer/summary.cpp +++ b/test/ubsan/TestCases/Integer/summary.cpp @@ -7,7 +7,7 @@ int main() { (void)(uint64_t(10000000000000000000ull) + uint64_t(9000000000000000000ull)); - // CHECK-NOTYPE: SUMMARY: AddressSanitizer: undefined-behavior {{.*}}summary.cpp:[[@LINE-1]]:44 - // CHECK-TYPE: SUMMARY: AddressSanitizer: unsigned-integer-overflow {{.*}}summary.cpp:[[@LINE-2]]:44 + // CHECK-NOTYPE: SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior {{.*}}summary.cpp:[[@LINE-1]]:44 + // CHECK-TYPE: SUMMARY: UndefinedBehaviorSanitizer: unsigned-integer-overflow {{.*}}summary.cpp:[[@LINE-2]]:44 return 0; } diff --git a/test/ubsan/TestCases/Misc/nullability.c b/test/ubsan/TestCases/Misc/nullability.c new file mode 100644 index 000000000000..583b8ec12583 --- /dev/null +++ b/test/ubsan/TestCases/Misc/nullability.c @@ -0,0 +1,62 @@ +// RUN: %clang -w -fsanitize=nullability-arg,nullability-assign,nullability-return %s -O3 -o %t +// RUN: %run %t foo 2>&1 | count 0 +// RUN: %run %t 2>&1 | FileCheck %s + +// CHECK: nullability.c:[[@LINE+2]]:51: runtime error: null pointer returned from function declared to never return null +// CHECK-NEXT: nullability.c:[[@LINE+1]]:6: note: _Nonnull return type annotation specified here +int *_Nonnull nonnull_retval1(int *p) { return p; } + +// CHECK: nullability.c:1001:22: runtime error: null pointer passed as argument 2, which is declared to never be null +// CHECK-NEXT: nullability.c:[[@LINE+1]]:56: note: _Nonnull type annotation specified here +int *_Nonnull nonnull_retval2(int *_Nonnull arg1, int *_Nonnull arg2, + int *_Nullable arg3, int *arg4, int arg5, ...) { + return arg1; +} + +// CHECK: nullability.c:1002:15: runtime error: null pointer passed as argument 1, which is declared to never be null +// CHECK-NEXT: nullability.c:[[@LINE+1]]:23: note: _Nonnull type annotation specified here +void nonnull_arg(int *_Nonnull p) {} + +void nonnull_assign1(int *p) { + int *_Nonnull local; +// CHECK: nullability.c:[[@LINE+1]]:9: runtime error: _Nonnull binding to null pointer of type 'int * _Nonnull' + local = p; +} + +void nonnull_assign2(int *p) { + int *_Nonnull arr[1]; + // CHECK: nullability.c:[[@LINE+1]]:10: runtime error: _Nonnull binding to null pointer of type 'int * _Nonnull' + arr[0] = p; +} + +struct S1 { + int *_Nonnull mptr; +}; + +void nonnull_assign3(int *p) { + struct S1 s; + // CHECK: nullability.c:[[@LINE+1]]:10: runtime error: _Nonnull binding to null pointer of type 'int * _Nonnull' + s.mptr = p; +} + +// CHECK: nullability.c:[[@LINE+1]]:52: runtime error: _Nonnull binding to null pointer of type 'int * _Nonnull' +void nonnull_init1(int *p) { int *_Nonnull local = p; } + +// CHECK: nullability.c:[[@LINE+2]]:53: runtime error: _Nonnull binding to null pointer of type 'int * _Nonnull' +// CHECK: nullability.c:[[@LINE+1]]:56: runtime error: _Nonnull binding to null pointer of type 'int * _Nonnull' +void nonnull_init2(int *p) { int *_Nonnull arr[] = {p, p}; } + +int main(int argc, char **argv) { + int *p = (argc > 1) ? &argc : ((int *)0); + +#line 1000 + nonnull_retval1(p); + nonnull_retval2(p, p, p, p, 0, 0, 0, 0); + nonnull_arg(p); + nonnull_assign1(p); + nonnull_assign2(p); + nonnull_assign3(p); + nonnull_init1(p); + nonnull_init2(p); + return 0; +} diff --git a/test/ubsan/TestCases/Misc/vla.c b/test/ubsan/TestCases/Misc/vla.c index 10721537bbbc..1939551f2ddb 100644 --- a/test/ubsan/TestCases/Misc/vla.c +++ b/test/ubsan/TestCases/Misc/vla.c @@ -4,8 +4,8 @@ // RUN: %run %t a b int main(int argc, char **argv) { - // CHECK-MINUS-ONE: vla.c:9:11: runtime error: variable length array bound evaluates to non-positive value -1 - // CHECK-ZERO: vla.c:9:11: runtime error: variable length array bound evaluates to non-positive value 0 + // CHECK-MINUS-ONE: vla.c:[[@LINE+2]]:11: runtime error: variable length array bound evaluates to non-positive value -1 + // CHECK-ZERO: vla.c:[[@LINE+1]]:11: runtime error: variable length array bound evaluates to non-positive value 0 int arr[argc - 2]; return 0; } diff --git a/test/xray/CMakeLists.txt b/test/xray/CMakeLists.txt index 50f6926bbe1e..b51b3cd0ccd8 100644 --- a/test/xray/CMakeLists.txt +++ b/test/xray/CMakeLists.txt @@ -9,7 +9,6 @@ set(XRAY_FDR_TEST_DEPS ${SANITIZER_COMMON_LIT_TEST_DEPS}) if(NOT COMPILER_RT_STANDALONE_BUILD AND COMPILER_RT_BUILD_XRAY AND COMPILER_RT_HAS_XRAY) list(APPEND XRAY_TEST_DEPS xray) - list(APPEND XRAY_FDR_TEST_DEPS xray-fdr) endif() set(XRAY_TEST_ARCH ${XRAY_SUPPORTED_ARCH}) @@ -41,8 +40,3 @@ add_lit_testsuite(check-xray "Running the XRay tests" ${XRAY_TESTSUITES} DEPENDS ${XRAY_TEST_DEPS}) set_target_properties(check-xray PROPERTIES FOLDER "Compiler-RT Misc") - -add_lit_testsuite(check-xray-fdr "Running the XRay flight data recorder tests" - ${XRAY_FDR_TESTSUITES} - DEPENDS ${XRAY_FDR_TEST_DEPS}) -set_target_properties(check-xray-fdr PROPERTIES FOLDER "Compiler-RT Misc") diff --git a/test/xray/TestCases/Linux/arg1-logger.cc b/test/xray/TestCases/Linux/arg1-logger.cc new file mode 100644 index 000000000000..955347b153ec --- /dev/null +++ b/test/xray/TestCases/Linux/arg1-logger.cc @@ -0,0 +1,43 @@ +// Check that we can get the first function argument logged +// using a custom logging function. +// +// RUN: %clangxx_xray -std=c++11 %s -o %t +// RUN: XRAY_OPTIONS="patch_premain=true verbosity=1 xray_logfile_base=arg1-logger-" %run %t 2>&1 | FileCheck %s +// +// After all that, clean up the XRay log file. +// +// RUN: rm arg1-logger-* +// +// At the time of writing, the ARM trampolines weren't written yet. +// XFAIL: arm || aarch64 || mips +// See the mailing list discussion of r296998. +// UNSUPPORTED: powerpc64le + +#include "xray/xray_interface.h" + +#include <cinttypes> +#include <cstdio> + +void arg1logger(int32_t fn, XRayEntryType t, uint64_t a1) { + printf("Arg1: %" PRIx64 ", XRayEntryType %u\n", a1, t); +} + +[[clang::xray_always_instrument, clang::xray_log_args(1)]] void foo(void *) {} + +int main() { + // CHECK: XRay: Log file in 'arg1-logger-{{.*}}' + + __xray_set_handler_arg1(arg1logger); + foo(nullptr); + // CHECK: Arg1: 0, XRayEntryType 0 + + __xray_remove_handler_arg1(); + foo((void *) 0xBADC0DE); + // nothing expected to see here + + __xray_set_handler_arg1(arg1logger); + foo((void *) 0xDEADBEEFCAFE); + // CHECK-NEXT: Arg1: deadbeefcafe, XRayEntryType 0 + foo((void *) -1); + // CHECK-NEXT: Arg1: ffffffffffffffff, XRayEntryType 0 +} diff --git a/test/xray/TestCases/Linux/argv0-log-file-name.cc b/test/xray/TestCases/Linux/argv0-log-file-name.cc index 1765ce9b5ba1..2960c57181e0 100644 --- a/test/xray/TestCases/Linux/argv0-log-file-name.cc +++ b/test/xray/TestCases/Linux/argv0-log-file-name.cc @@ -2,7 +2,7 @@ // name. // RUN: %clangxx_xray -std=c++11 %s -o %t -// RUN: %run %t > xray.log.file.name 2>&1 +// RUN: XRAY_OPTIONS="patch_premain=true xray_naive_log=true" %run %t > xray.log.file.name 2>&1 // RUN: ls | FileCheck xray.log.file.name // RUN: rm xray-log.* xray.log.file.name diff --git a/test/xray/TestCases/Linux/fdr-mode.cc b/test/xray/TestCases/Linux/fdr-mode.cc new file mode 100644 index 000000000000..9fb54ce7b030 --- /dev/null +++ b/test/xray/TestCases/Linux/fdr-mode.cc @@ -0,0 +1,89 @@ +// RUN: %clangxx_xray -g -std=c++11 %s -o %t +// RUN: XRAY_OPTIONS="patch_premain=false xray_naive_log=false xray_logfile_base=fdr-logging-test- xray_fdr_log=true verbosity=1 xray_fdr_log_func_duration_threshold_us=0" %run %t 2>&1 | FileCheck %s +// RUN: XRAY_OPTIONS="patch_premain=false xray_naive_log=false xray_logfile_base=fdr-unwrite-test- xray_fdr_log=true verbosity=1 xray_fdr_log_func_duration_threshold_us=5000" %run %t 2>&1 | FileCheck %s +// RUN: %llvm_xray convert --symbolize --output-format=yaml -instr_map=%t "`ls fdr-logging-test-* | head -1`" | FileCheck %s --check-prefix=TRACE +// RUN: %llvm_xray convert --symbolize --output-format=yaml -instr_map=%t "`ls fdr-unwrite-test-* | head -1`" | FileCheck %s --check-prefix=UNWRITE +// RUN: rm fdr-logging-test-* +// RUN: rm fdr-unwrite-test-* +// FIXME: Make llvm-xray work on non-x86_64 as well. +// REQUIRES: x86_64-linux + +#include "xray/xray_log_interface.h" +#include <cassert> +#include <chrono> +#include <cstdio> +#include <iostream> +#include <stdlib.h> +#include <thread> +#include <time.h> + +constexpr auto kBufferSize = 16384; +constexpr auto kBufferMax = 10; + +thread_local uint64_t var = 0; +[[clang::xray_always_instrument]] void __attribute__((noinline)) fC() { ++var; } + +[[clang::xray_always_instrument]] void __attribute__((noinline)) fB() { fC(); } + +[[clang::xray_always_instrument]] void __attribute__((noinline)) fA() { fB(); } + +int main(int argc, char *argv[]) { + using namespace __xray; + FDRLoggingOptions Options; + std::cout << "Logging before init." << std::endl; + // CHECK: Logging before init. + auto status = __xray_log_init(kBufferSize, kBufferMax, &Options, + sizeof(FDRLoggingOptions)); + assert(status == XRayLogInitStatus::XRAY_LOG_INITIALIZED); + std::cout << "Init status " << status << std::endl; + // CHECK: Init status {{.*}} + std::cout << "Patching..." << std::endl; + // CHECK: Patching... + __xray_patch(); + fA(); + fC(); + fB(); + fA(); + fC(); + std::thread other_thread([]() { + fC(); + fB(); + fA(); + }); + other_thread.join(); + std::cout << "Joined" << std::endl; + // CHECK: Joined + std::cout << "Finalize status " << __xray_log_finalize() << std::endl; + // CHECK: Finalize status {{.*}} + fC(); + std::cout << "Main execution var = " << var << std::endl; + // CHECK: Main execution var = 6 + std::cout << "Flush status " << __xray_log_flushLog() << std::endl; + // CHECK: Flush status {{.*}} + __xray_unpatch(); + return 0; +} + +// Check that we're able to see two threads, each entering and exiting fA(). +// TRACE-DAG: - { type: 0, func-id: [[FIDA:[0-9]+]], function: {{.*fA.*}}, cpu: {{.*}}, thread: [[THREAD1:[0-9]+]], kind: function-enter, tsc: {{[0-9]+}} } +// TRACE: - { type: 0, func-id: [[FIDA]], function: {{.*fA.*}}, cpu: {{.*}}, thread: [[THREAD1]], kind: function-exit, tsc: {{[0-9]+}} } +// TRACE-DAG: - { type: 0, func-id: [[FIDA]], function: {{.*fA.*}}, cpu: {{.*}}, thread: [[THREAD2:[0-9]+]], kind: function-enter, tsc: {{[0-9]+}} } +// TRACE: - { type: 0, func-id: [[FIDA]], function: {{.*fA.*}}, cpu: {{.*}}, thread: [[THREAD2]], kind: function-exit, tsc: {{[0-9]+}} } +// +// Do the same as above for fC() +// TRACE-DAG: - { type: 0, func-id: [[FIDC:[0-9]+]], function: {{.*fC.*}}, cpu: {{.*}}, thread: [[THREAD1:[0-9]+]], kind: function-enter, tsc: {{[0-9]+}} } +// TRACE: - { type: 0, func-id: [[FIDC]], function: {{.*fC.*}}, cpu: {{.*}}, thread: [[THREAD1]], kind: function-exit, tsc: {{[0-9]+}} } +// TRACE-DAG: - { type: 0, func-id: [[FIDC]], function: {{.*fC.*}}, cpu: {{.*}}, thread: [[THREAD2:[0-9]+]], kind: function-enter, tsc: {{[0-9]+}} } +// TRACE: - { type: 0, func-id: [[FIDC]], function: {{.*fC.*}}, cpu: {{.*}}, thread: [[THREAD2]], kind: function-exit, tsc: {{[0-9]+}} } + +// Do the same as above for fB() +// TRACE-DAG: - { type: 0, func-id: [[FIDB:[0-9]+]], function: {{.*fB.*}}, cpu: {{.*}}, thread: [[THREAD1:[0-9]+]], kind: function-enter, tsc: {{[0-9]+}} } +// TRACE: - { type: 0, func-id: [[FIDB]], function: {{.*fB.*}}, cpu: {{.*}}, thread: [[THREAD1]], kind: function-exit, tsc: {{[0-9]+}} } +// TRACE-DAG: - { type: 0, func-id: [[FIDB]], function: {{.*fB.*}}, cpu: {{.*}}, thread: [[THREAD2:[0-9]+]], kind: function-enter, tsc: {{[0-9]+}} } +// TRACE: - { type: 0, func-id: [[FIDB]], function: {{.*fB.*}}, cpu: {{.*}}, thread: [[THREAD2]], kind: function-exit, tsc: {{[0-9]+}} } + +// Assert that when unwriting is enabled with a high threshold time, all the function records are erased. A CPU switch could erroneously fail this test, but +// is unlikely given the test program. +// UNWRITE: header +// UNWRITE-NOT: function-enter +// UNWRITE-NOT: function-exit diff --git a/test/xray/TestCases/Linux/fdr-thread-order.cc b/test/xray/TestCases/Linux/fdr-thread-order.cc new file mode 100644 index 000000000000..5edef2be2d81 --- /dev/null +++ b/test/xray/TestCases/Linux/fdr-thread-order.cc @@ -0,0 +1,38 @@ +// RUN: %clangxx_xray -g -std=c++11 %s -o %t +// RUN: XRAY_OPTIONS="patch_premain=false xray_naive_log=false xray_logfile_base=fdr-thread-order. xray_fdr_log=true verbosity=1" %run %t 2>&1 | FileCheck %s +// RUN: %llvm_xray convert --symbolize --output-format=yaml -instr_map=%t "`ls fdr-thread-order.* | head -1`" | FileCheck %s --check-prefix TRACE +// RUN: rm fdr-thread-order.* +// FIXME: Make llvm-xray work on non-x86_64 as well. +// REQUIRES: x86_64-linux +#include "xray/xray_log_interface.h" +#include <thread> +#include <cassert> + +constexpr auto kBufferSize = 16384; +constexpr auto kBufferMax = 10; + +thread_local uint64_t var = 0; +[[clang::xray_always_instrument]] void __attribute__((noinline)) f1() { ++var; } +[[clang::xray_always_instrument]] void __attribute__((noinline)) f2() { ++var; } + +int main(int argc, char *argv[]) { + using namespace __xray; + FDRLoggingOptions Options; + assert(__xray_log_init(kBufferSize, kBufferMax, &Options, + sizeof(FDRLoggingOptions)) == + XRayLogInitStatus::XRAY_LOG_INITIALIZED); + __xray_patch(); + std::thread t1([] { f1(); }); + std::thread t2([] { f2(); }); + t1.join(); + t2.join(); + __xray_log_finalize(); + __xray_log_flushLog(); + // CHECK: =={{[0-9]+}}==XRay: Log file in '{{.*}}' +} + +// We want to make sure that the order of the function log doesn't matter. +// TRACE-DAG: - { type: 0, func-id: [[FID1:[0-9]+]], function: {{.*f1.*}}, cpu: {{.*}}, thread: [[THREAD1:[0-9]+]], kind: function-enter, tsc: {{[0-9]+}} } +// TRACE-DAG: - { type: 0, func-id: [[FID2:[0-9]+]], function: {{.*f2.*}}, cpu: {{.*}}, thread: [[THREAD2:[0-9]+]], kind: function-enter, tsc: {{[0-9]+}} } +// TRACE-DAG: - { type: 0, func-id: [[FID1]], function: {{.*f1.*}}, cpu: {{.*}}, thread: [[THREAD1]], kind: function-exit, tsc: {{[0-9]+}} } +// TRACE-DAG: - { type: 0, func-id: [[FID2]], function: {{.*f2.*}}, cpu: {{.*}}, thread: [[THREAD2]], kind: function-exit, tsc: {{[0-9]+}} } diff --git a/test/xray/TestCases/Linux/fixedsize-logging.cc b/test/xray/TestCases/Linux/fixedsize-logging.cc index 90e766876c54..eb32afe93d1f 100644 --- a/test/xray/TestCases/Linux/fixedsize-logging.cc +++ b/test/xray/TestCases/Linux/fixedsize-logging.cc @@ -1,7 +1,7 @@ // Check to make sure that we have a log file with a fixed-size. // RUN: %clangxx_xray -std=c++11 %s -o %t -// RUN: XRAY_OPTIONS="verbosity=1 xray_logfile_base=fixedsize-logging-" %run %t 2>&1 | FileCheck %s +// RUN: XRAY_OPTIONS="patch_premain=true xray_naive_log=true verbosity=1 xray_logfile_base=fixedsize-logging-" %run %t 2>&1 | FileCheck %s // // After all that, clean up the output xray log. // diff --git a/test/xray/TestCases/Linux/optional-inmemory-log.cc b/test/xray/TestCases/Linux/optional-inmemory-log.cc index ef2c43f3be77..f459d5ab813f 100644 --- a/test/xray/TestCases/Linux/optional-inmemory-log.cc +++ b/test/xray/TestCases/Linux/optional-inmemory-log.cc @@ -2,7 +2,7 @@ // we turn it off via options. // RUN: %clangxx_xray -std=c++11 %s -o %t -// RUN: XRAY_OPTIONS="verbosity=1 xray_naive_log=false xray_logfile_base=optional-inmemory-log.xray-" %run %t 2>&1 | FileCheck %s +// RUN: XRAY_OPTIONS="patch_premain=true verbosity=1 xray_naive_log=false xray_logfile_base=optional-inmemory-log.xray-" %run %t 2>&1 | FileCheck %s // // Make sure we clean out the logs in case there was a bug. // diff --git a/test/xray/TestCases/Linux/pic_test.cc b/test/xray/TestCases/Linux/pic_test.cc new file mode 100644 index 000000000000..09c40b9e0317 --- /dev/null +++ b/test/xray/TestCases/Linux/pic_test.cc @@ -0,0 +1,33 @@ +// Test to check if we handle pic code properly. + +// RUN: %clangxx_xray -fxray-instrument -std=c++11 -fpic %s -o %t +// RUN: XRAY_OPTIONS="patch_premain=true verbosity=1 xray_logfile_base=pic-test-logging-" %run %t 2>&1 | FileCheck %s +// After all that, clean up the output xray log. +// +// RUN: rm pic-test-logging-* + +#include <cstdio> + +[[clang::xray_always_instrument]] +unsigned short foo (unsigned b); + +[[clang::xray_always_instrument]] +unsigned short bar (unsigned short a) +{ + printf("bar() is always instrumented!\n"); + return foo(a); +} + +unsigned short foo (unsigned b) +{ + printf("foo() is always instrumented!\n"); + return b + b + 5; +} + +int main () +{ + // CHECK: XRay: Log file in 'pic-test-logging-{{.*}}' + bar(10); + // CHECK: bar() is always instrumented! + // CHECK-NEXT: foo() is always instrumented! +} diff --git a/test/xray/Unit/lit.site.cfg.in b/test/xray/Unit/lit.site.cfg.in index 1ebc7b9ec5f3..75ea8889bf99 100644 --- a/test/xray/Unit/lit.site.cfg.in +++ b/test/xray/Unit/lit.site.cfg.in @@ -10,3 +10,7 @@ config.name = 'XRay-Unit' config.test_exec_root = "@COMPILER_RT_BINARY_DIR@/lib/xray/tests" config.test_source_root = config.test_exec_root + +# Do not patch the XRay unit tests pre-main, and also make the error logging +# verbose to get a more accurate error logging mechanism. +config.environment['XRAY_OPTIONS'] = 'patch_premain=false verbose=1' diff --git a/test/xray/lit.cfg b/test/xray/lit.cfg index 9142ad13618c..b07dcbd791f8 100644 --- a/test/xray/lit.cfg +++ b/test/xray/lit.cfg @@ -16,6 +16,9 @@ clang_xray_cxxflags = config.cxx_mode_flags + clang_xray_cflags def build_invocation(compile_flags): return ' ' + ' '.join([config.clang] + compile_flags) + ' ' +# Assume that llvm-xray is in the config.llvm_tools_dir. +llvm_xray = os.path.join(config.llvm_tools_dir, 'llvm-xray') + # Setup substitutions. config.substitutions.append( ('%clang ', build_invocation([config.target_cflags]))) @@ -26,6 +29,8 @@ config.substitutions.append( ('%clang_xray ', build_invocation(clang_xray_cflags))) config.substitutions.append( ('%clangxx_xray', build_invocation(clang_xray_cxxflags))) +config.substitutions.append( + ('%llvm_xray', llvm_xray)) # Default test suffixes. config.suffixes = ['.c', '.cc', '.cpp'] diff --git a/unittests/lit.common.unit.cfg b/unittests/lit.common.unit.cfg index 2bd8f376f00e..b08c1fe12831 100644 --- a/unittests/lit.common.unit.cfg +++ b/unittests/lit.common.unit.cfg @@ -28,3 +28,19 @@ if 'TMP' in os.environ: config.environment['TMP'] = os.environ['TMP'] if 'TEMP' in os.environ: config.environment['TEMP'] = os.environ['TEMP'] + +if config.host_os == 'Darwin': + # Only run up to 3 64-bit sanitized processes simultaneously on Darwin. + # Using more scales badly and hogs the system due to inefficient handling + # of large mmap'd regions (terabytes) by the kernel. + lit_config.parallelism_groups["darwin-64bit-sanitizer"] = 3 + + # The test config gets pickled and sent to multiprocessing workers, and that + # only works for code if it is stored at the top level of some module. + # Therefore, we have to put the code in a .py file, add it to path, and import + # it to store it in the config. + import site + site.addsitedir(os.path.dirname(__file__)) + import lit_unittest_cfg_utils + config.darwin_sanitizer_parallelism_group_func = \ + lit_unittest_cfg_utils.darwin_sanitizer_parallelism_group_func diff --git a/unittests/lit_unittest_cfg_utils.py b/unittests/lit_unittest_cfg_utils.py new file mode 100644 index 000000000000..ff7b1ee0140b --- /dev/null +++ b/unittests/lit_unittest_cfg_utils.py @@ -0,0 +1,4 @@ +# Put all 64-bit sanitizer tests in the darwin-64bit-sanitizer parallelism +# group. This will only run three of them concurrently. +def darwin_sanitizer_parallelism_group_func(test): + return "darwin-64bit-sanitizer" if "x86_64" in test.file_path else "" |